]> git.droids-corp.org - dpdk.git/commit
net/mlx5: fix RSS expansion with EtherType
authorLior Margalit <lmargalit@nvidia.com>
Mon, 1 Nov 2021 06:38:41 +0000 (08:38 +0200)
committerRaslan Darawsheh <rasland@nvidia.com>
Mon, 1 Nov 2021 13:53:37 +0000 (14:53 +0100)
commita451287102fec4eecdb2938760a57334bccc204f
tree84441b50625103b66e7bf61cd9123510e3d6fcab
parent7797b0fe64463d46b0c91f61bacc01a48e23f8e8
net/mlx5: fix RSS expansion with EtherType

The RSS expansion algorithm is using a graph to find the possible
expansion paths. A graph node with the 'explicit' flag will be skipped,
if it is not found in the flow pattern.
The current implementation misses a check for the explicit flag when
expanding the pattern according to ETH item with EtherType.
For example:
testpmd> flow create 0 ingress pattern eth / ipv6 / udp / vxlan / eth
type is 2048 / end actions rss level 2 types udp end / end
The "eth type is 2048" item in the pattern may be expanded to "ETH IPv4".
The ETH node in the expansion graph is followed by VLAN node marked as
explicit. The fix is to skip the VLAN node and continue the expansion
with its next nodes, IPv4 and IPv6.
The expansion paths for the above example will be:
ETH IPV6 UDP VXLAN ETH END
ETH IPV6 UDP VXLAN ETH IPV4 UDP END

Fixes: 69d268b4fff3 ("net/mlx5: fix RSS expansion for explicit graph node")
Cc: stable@dpdk.org
Signed-off-by: Lior Margalit <lmargalit@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
drivers/net/mlx5/mlx5_flow.c