net/mlx5: fix wildcard item for Direct Verbs
authorYongseok Koh <yskoh@mellanox.com>
Tue, 23 Oct 2018 16:52:13 +0000 (16:52 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 26 Oct 2018 20:14:06 +0000 (22:14 +0200)
commit39bee16117967273d49d61a29a0d57c64408e1fc
treec972df6af39ee8432b715d5317e0e4f4ad28097c
parent6949c43c147c504087f367ee0c42939809a6473e
net/mlx5: fix wildcard item for Direct Verbs

If a network layer is specified with no spec, it means wildcard match.
flow_dv_translate_item_*() returns without writing anything if spec is
null and it causes creation of wrong flow. E.g., the following flow has to
patch with any ipv4 packet.

  flow create 0 ingress pattern eth / ipv4 / end actions ...

But, with the current code, it matches any packet because PMD doesn't write
anything about IPv4. The matcher value and mask becomes completely zero. It
should have written the IP version at least. It is same for the rest of
items.

Even if the spec is null, PMD has to write constant fields before return,
e.g. IP version and IP protocol number.

Fixes: fc2c498ccb94 ("net/mlx5: add Direct Verbs translate items")

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
drivers/net/mlx5/mlx5_flow_dv.c