numam-dpdk/drivers/net/mlx5
Lior Margalit 0c3fa68396 net/mlx5: fix RSS expansion for L2/L3 VXLAN
The RSS expansion algorithm is using a graph to find the possible
expansion paths. The current implementation does not differentiate
between standard (L2) VXLAN and L3 VXLAN. As result the flow is expanded
with all possible paths.
For example:
testpmd> flow create... / vxlan / end actions rss level 2 / end
It is currently expanded to the following paths:
ETH IPV4 UDP VXLAN END
ETH IPV4 UDP VXLAN ETH IPV4 END
ETH IPV4 UDP VXLAN ETH IPV6 END
ETH IPV4 UDP VXLAN IPV4 END
ETH IPV4 UDP VXLAN IPV6 END

The fix is to adjust the expansion according to the outer UDP destination
port. In case flow pattern defines a match on the standard udp port, 4789,
or does not define a match on the destination port, which also implies
setting the standard one, the expansion for the above example will be:
ETH IPV4 UDP VXLAN END
ETH IPV4 UDP VXLAN ETH IPV4 END
ETH IPV4 UDP VXLAN ETH IPV6 END
Otherwise, the expansion will be:
ETH IPV4 UDP VXLAN END
ETH IPV4 UDP VXLAN IPV4 END
ETH IPV4 UDP VXLAN IPV6 END

Fixes: f4f06e3615 ("net/mlx5: add flow VXLAN item")
Cc: stable@dpdk.org

Signed-off-by: Lior Margalit <lmargalit@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
2021-10-18 09:12:42 +02:00
..
linux net/mlx5: fix tunneling support query 2021-10-12 15:29:34 +02:00
windows net/mlx5: support keeping CRC on Windows 2021-10-12 15:29:39 +02:00
meson.build net/mlx5: export PMD-specific API file 2021-07-22 17:23:26 +02:00
mlx5_defs.h net/mlx5: optimize hash list table allocate on demand 2021-07-15 16:09:22 +02:00
mlx5_devx.c net/mlx5: fix Rx queue timestamp format 2021-06-24 13:19:50 +02:00
mlx5_devx.h net/mlx5: share Tx control code 2020-10-09 13:17:42 +02:00
mlx5_ethdev.c net/mlx5: reduce PCI dependency 2021-07-22 00:11:14 +02:00
mlx5_flow_aso.c net/mlx5: support meter for trTCM profiles 2021-07-22 13:29:01 +02:00
mlx5_flow_dv.c net/mlx5: fix domains selection for meter policy 2021-10-14 10:48:33 +02:00
mlx5_flow_meter.c eal: remove sys/queue.h from public headers 2021-10-01 13:09:43 +02:00
mlx5_flow_verbs.c ethdev: remove deprecated shared counter attribute 2021-10-12 19:20:57 +02:00
mlx5_flow.c net/mlx5: fix RSS expansion for L2/L3 VXLAN 2021-10-18 09:12:42 +02:00
mlx5_flow.h ethdev: use extension header for GTP PSC item 2021-09-28 12:34:58 +02:00
mlx5_mac.c net/mlx5: support Sub-Function 2021-07-22 00:11:14 +02:00
mlx5_mr.c mempool: add namespace to flags 2021-10-20 10:00:16 +02:00
mlx5_mr.h net/mlx5: support mempool registration 2021-10-19 16:35:16 +02:00
mlx5_rss.c net/mlx5: separate Rx function declarations to another file 2021-04-15 08:24:49 +02:00
mlx5_rx.c ethdev: change input parameters for Rx queue count 2021-10-13 22:14:58 +02:00
mlx5_rx.h ethdev: change input parameters for Rx queue count 2021-10-13 22:14:58 +02:00
mlx5_rxmode.c net/mlx5: support Sub-Function 2021-07-22 00:11:14 +02:00
mlx5_rxq.c ethdev: remove jumbo offload flag 2021-10-18 19:20:21 +02:00
mlx5_rxtx_vec_altivec.h net/mlx5: fix meta register conversion for extensive mode 2021-07-22 16:24:56 +02:00
mlx5_rxtx_vec_neon.h net/mlx5: fix meta register conversion for extensive mode 2021-07-22 16:24:56 +02:00
mlx5_rxtx_vec_sse.h net/mlx5: fix meta register conversion for extensive mode 2021-07-22 16:24:56 +02:00
mlx5_rxtx_vec.c net/mlx5: fix mbuf replenishment check for zipped CQE 2021-08-19 10:13:40 +02:00
mlx5_rxtx_vec.h net/mlx5: implement vectorized MPRQ burst 2020-11-03 23:24:25 +01:00
mlx5_rxtx.c net/mlx5: separate Tx burst functions to different files 2021-04-15 08:24:59 +02:00
mlx5_rxtx.h net/mlx5: migrate to bus-agnostic common interface 2021-07-22 00:11:14 +02:00
mlx5_stats.c net/mlx5: separate Tx function declarations to another file 2021-04-15 08:24:53 +02:00
mlx5_trigger.c net/mlx5: support mempool registration 2021-10-19 16:35:16 +02:00
mlx5_tx_empw.c net/mlx5: separate Tx burst functions to different files 2021-04-15 08:24:59 +02:00
mlx5_tx_mpw.c net/mlx5: separate Tx burst functions to different files 2021-04-15 08:24:59 +02:00
mlx5_tx_nompw.c net/mlx5: separate Tx burst functions to different files 2021-04-15 08:24:59 +02:00
mlx5_tx_txpp.c net/mlx5: separate Tx burst functions to different files 2021-04-15 08:24:59 +02:00
mlx5_tx.c net/mlx5: separate Tx function implementations to new file 2021-04-15 08:24:58 +02:00
mlx5_tx.h ethdev: change queue release callback 2021-10-06 19:16:03 +02:00
mlx5_txpp.c net: rename Ethernet header fields 2021-10-08 14:58:11 +02:00
mlx5_txq.c net/mlx5: fix tunneling support query 2021-10-12 15:29:34 +02:00
mlx5_utils.c common/mlx5: move list utility from net driver 2021-07-15 15:19:13 +02:00
mlx5_utils.h common/mlx5: move list utility from net driver 2021-07-15 15:19:13 +02:00
mlx5_vlan.c net/mlx5: separate Rx function declarations to another file 2021-04-15 08:24:49 +02:00
mlx5.c net/mlx5: query tunneling support on Windows 2021-10-12 15:29:36 +02:00
mlx5.h net/mlx5: query tunneling support on Windows 2021-10-12 15:29:36 +02:00
rte_pmd_mlx5.h net/mlx5: add flow sync API 2020-11-03 23:35:04 +01:00
version.map version: 21.11-rc0 2021-08-17 08:37:52 +02:00