numam-dpdk/drivers/net/mlx5
Xiaoyu Min 889cf609e5 net/mlx5: fix validation of push VLAN without full mask
Due the limitation of HW, when PMD create push VLAN action it needs to
know what exactly the value of VID/PCP.

PMD try to figure out them via:
  - of_set_vlan_vid/pcp actions
  - VLAN item in pattern
If none of above is provided, default value - zero is used.

However user will write rule like [1] which match on a range of VID and
without of_set_vlan_vid action and expect the VID will inherit from
original packet. This is not supported by HW currently. PMD will set VID
to default value - zero because it cannot figure out the exact value of
VID from VLAN item.

This is sort of misleading for some users.

In order to avoid this, PMD will spit out error for rule like [1] to
force user to provide explicit VID/PCP for new pushed VLAN headers.

[1]: testpmd> flow create 2 ingress transfer group 0 priority 3 pattern
               eth / vlan vid spec 2859 vid prefix 4 / ipv4 / end
	       actcions  of_push_vlan ethertype 0x88A8 /
	       of_set_vlan_pcp vlan_pcp 6 / port_id id 0 / end

Fixes: 9aee7a8418 ("net/mlx5: support push flow action on VLAN header")
Cc: stable@dpdk.org

Signed-off-by: Xiaoyu Min <jackmin@mellanox.com>
Reviewed-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
2020-04-21 13:57:08 +02:00
..
Makefile build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
meson.build build: disable experimental API check internally 2020-04-14 16:22:34 +02:00
mlx5_defs.h net/mlx5: add device parameter for MPRQ stride size 2020-04-21 13:57:08 +02:00
mlx5_ethdev.c net/mlx: replace hardcoded value with macro 2020-02-14 12:42:12 +01:00
mlx5_flow_dv.c net/mlx5: fix validation of push VLAN without full mask 2020-04-21 13:57:08 +02:00
mlx5_flow_meter.c common/mlx5: improve assert control 2020-02-05 09:51:21 +01:00
mlx5_flow_verbs.c net/mlx5: fix index when creating flow 2020-04-21 13:57:07 +02:00
mlx5_flow.c net/mlx5: fix index when creating flow 2020-04-21 13:57:07 +02:00
mlx5_flow.h net/mlx5: fix meter suffix table leak 2020-04-21 13:57:08 +02:00
mlx5_mac.c common/mlx5: improve assert control 2020-02-05 09:51:21 +01:00
mlx5_mp.c common/mlx5: refactor memory management 2020-04-21 13:57:08 +02:00
mlx5_mr.c common/mlx5: refactor memory management 2020-04-21 13:57:08 +02:00
mlx5_mr.h common/mlx5: refactor memory management 2020-04-21 13:57:08 +02:00
mlx5_rss.c common/mlx5: improve assert control 2020-02-05 09:51:21 +01:00
mlx5_rxmode.c net/mlx5: reduce Netlink commands dependencies 2020-02-05 09:51:20 +01:00
mlx5_rxq.c net/mlx5: enable MPRQ multi-stride operations 2020-04-21 13:57:08 +02:00
mlx5_rxtx_vec_altivec.h net/mlx5: prefetch CQEs for a faster decompression 2020-04-21 13:57:05 +02:00
mlx5_rxtx_vec_neon.h net/mlx5: prefetch CQEs for a faster decompression 2020-04-21 13:57:05 +02:00
mlx5_rxtx_vec_sse.h net/mlx5: prefetch CQEs for a faster decompression 2020-04-21 13:57:05 +02:00
mlx5_rxtx_vec.c replace cold attributes 2020-04-16 18:30:58 +02:00
mlx5_rxtx_vec.h common/mlx5: refactor memory management 2020-04-21 13:57:08 +02:00
mlx5_rxtx.c common/mlx5: refactor memory management 2020-04-21 13:57:08 +02:00
mlx5_rxtx.h common/mlx5: refactor memory management 2020-04-21 13:57:08 +02:00
mlx5_socket.c net/mlx5: replace destructor syntax with common macro 2020-04-16 18:07:29 +02:00
mlx5_stats.c net/mlx5: use open/read/close for ib stats query 2020-04-21 13:57:07 +02:00
mlx5_trigger.c common/mlx5: refactor memory management 2020-04-21 13:57:08 +02:00
mlx5_txq.c common/mlx5: refactor memory management 2020-04-21 13:57:08 +02:00
mlx5_utils.c common/mlx5: improve assert control 2020-02-05 09:51:21 +01:00
mlx5_utils.h common/mlx5: improve assert control 2020-02-05 09:51:21 +01:00
mlx5_vlan.c common/mlx5: improve assert control 2020-02-05 09:51:21 +01:00
mlx5.c common/mlx5: refactor memory management 2020-04-21 13:57:08 +02:00
mlx5.h common/mlx5: refactor memory management 2020-04-21 13:57:08 +02:00
rte_pmd_mlx5_version.map net/mlx5: support fine grain dynamic flag 2020-02-05 09:51:20 +01:00
rte_pmd_mlx5.h net/mlx5: support fine grain dynamic flag 2020-02-05 09:51:20 +01:00