numam-dpdk/drivers/net/mlx5
Xiaoyu Min a26cc30fa0 net/mlx5: limit inner RSS expansion for MPLS
If user wants to do MPLS inner RSS and only provides pattern
till MPLS without inner items [1], RSS expansion will expand flows
into 13 sub-flows[2] which is too many and it impacts flow insert
rate, stack usage becomes large as well.

This expansion into 13 sub-flows seems not worthy of and it can
be significantly reduced (i.e, 7 sub-flows [3]) by user providing
at least one inner L2/L3 item [4].

[1]:
pattern eth / ipv4 / udp / mpls / end actions rss type tcp udp ip
end level 2 / end

[2]:
eth / ipv4 / udp / mpls
eth / ipv4 / udp / mpls / ipv4
eth / ipv4 / udp / mpls / ipv4 / udp
eth / ipv4 / udp / mpls / ipv4 / tcp
eth / ipv4 / udp / mpls / ipv6
eth / ipv4 / udp / mpls / ipv6 / udp
eth / ipv4 / udp / mpls / ipv6 / tcp
eth / ipv4 / udp / mpls / eth / ipv4
eth / ipv4 / udp / mpls / eth / ipv4 / udp
eth / ipv4 / udp / mpls / eth / ipv4 / tcp
eth / ipv4 / udp / mpls / eth / ipv6
eth / ipv4 / udp / mpls / eth / ipv6 / udp
eth / ipv4 / udp / mpls / eth / ipv6 / tcp

[3]:
eth / ipv4 / udp / mpls / eth
eth / ipv4 / udp / mpls / eth / ipv4 / udp
eth / ipv4 / udp / mpls / eth / ipv4 / tcp
eth / ipv4 / udp / mpls / eth / ipv6
eth / ipv4 / udp / mpls / eth / ipv6 / udp
eth / ipv4 / udp / mpls / eth / ipv6 / tcp

[4]:
pattern eth / ipv4 / udp / mpls / eth / end actions rss type tcp udp ip
level 2 / end

Signed-off-by: Xiaoyu Min <jackmin@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
2021-07-08 22:09:32 +02:00
..
linux net/mlx5: optimize meter profile lookup 2021-07-08 22:09:24 +02:00
windows net/mlx5: optimize meter profile lookup 2021-07-08 22:09:24 +02:00
meson.build net/mlx5: initialize flow meter ASO SQ 2021-04-21 08:28:04 +02:00
mlx5_defs.h net/mlx5: support flow count action handle 2021-04-30 12:41:07 +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: separate Tx function declarations to another file 2021-04-15 08:24:53 +02:00
mlx5_flow_aso.c net/mlx5: add translation of connection tracking action 2021-05-05 14:30:15 +02:00
mlx5_flow_dv.c net/mlx5: remove unsupported flow item MPLS over IP 2021-07-08 22:09:31 +02:00
mlx5_flow_meter.c net/mlx5: fix meter policy ID table container 2021-07-08 22:09:25 +02:00
mlx5_flow_verbs.c net/mlx5: support flow count action handle 2021-04-30 12:41:07 +02:00
mlx5_flow.c net/mlx5: limit inner RSS expansion for MPLS 2021-07-08 22:09:32 +02:00
mlx5_flow.h net/mlx5: fix metering cleanup on stop 2021-05-16 14:58:23 +02:00
mlx5_mac.c net: provide IP-related API on any OS 2021-04-15 01:56:43 +02:00
mlx5_mr.c net/mlx5: fix r/w lock usage in DMA unmap 2021-07-08 22:09:27 +02:00
mlx5_mr.h common/mlx5: remove inclusion of Verbs header files 2020-07-21 15:46:30 +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 net/mlx5: convert meta register to big-endian 2021-06-24 13:19:53 +02:00
mlx5_rx.h net/mlx5: support power monitoring 2021-05-03 12:12:42 +02:00
mlx5_rxmode.c net/mlx5: separate Tx function declarations to another file 2021-04-15 08:24:53 +02:00
mlx5_rxq.c net/mlx5: separate Tx function declarations to another file 2021-04-15 08:24:53 +02:00
mlx5_rxtx_vec_altivec.h net/mlx5: convert meta register to big-endian 2021-06-24 13:19:53 +02:00
mlx5_rxtx_vec_neon.h net/mlx5: convert meta register to big-endian 2021-06-24 13:19:53 +02:00
mlx5_rxtx_vec_sse.h net/mlx5: convert meta register to big-endian 2021-06-24 13:19:53 +02:00
mlx5_rxtx_vec.c net/mlx5: separate Rx function declarations to another file 2021-04-15 08:24:49 +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: separate Tx function declarations to another file 2021-04-15 08:24:53 +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: fix loopback for Direct Verbs queue 2021-05-18 10:30:45 +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 net/mlx5: fix TSO multi-segment inline length 2021-07-08 22:09:23 +02:00
mlx5_txpp.c net/mlx5: separate Tx function declarations to another file 2021-04-15 08:24:53 +02:00
mlx5_txq.c net/mlx5: separate Tx function implementations to new file 2021-04-15 08:24:58 +02:00
mlx5_utils.c common/mlx5: share hash list tool 2021-05-04 22:49:37 +02:00
mlx5_utils.h common/mlx5: share hash list tool 2021-05-04 22:49:37 +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: fix meter policy ID table container 2021-07-08 22:09:25 +02:00
mlx5.h net/mlx5: add more details to flow dump 2021-07-08 22:09:27 +02:00
rte_pmd_mlx5.h net/mlx5: add flow sync API 2020-11-03 23:35:04 +01:00
version.map net/mlx5: add flow sync API 2020-11-03 23:35:04 +01:00