net/mlx5: fix match on ethertype and CVLAN tag
authorDekel Peled <dekelp@mellanox.com>
Thu, 20 Feb 2020 11:33:25 +0000 (13:33 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 21 Feb 2020 10:41:21 +0000 (11:41 +0100)
commit797329d6c4a1d054a6fce38c960811cb7878283d
tree779c1aeb1cf64796db99960b4379fdadde986ea3
parent50f576d657d78e87a3eac597353d236969969c17
net/mlx5: fix match on ethertype and CVLAN tag

HW supports match on one Ethertype, the Ethertype following the last
VLAN tag of the packet (see PRM).
Previous patch added specific handling for packets with VLAN tag,
after setting match on Ethertype.

This patch moves the handling of packets with VLAN tag, to be done
before and instead of setting match on Ethertype.

Previous patch also added, as part of specific handling for packets
with VLAN tag, the setting of cvlan_tag mask bit in translation of
L3 items.
In case of L3 tunnel there is no inner L2 header, so setting this
mask bit is wrong and causes match failures.

This patch adds check to make sure L2 header exists before setting
cvlan_tag mask bit for L3 items.

Fixes: 00f75a40576b ("net/mlx5: fix VLAN match for DV mode")
Cc: stable@dpdk.org
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
Tested-by: Raslan Darawsheh <rasland@mellanox.com>
drivers/net/mlx5/mlx5_flow_dv.c