[dpdk-dev] [PATCH 2/2] net/mlx5: fix missing RSS expansion of IPv6 frag

Raslan Darawsheh rasland at nvidia.com
Mon Jul 12 10:05:34 CEST 2021


Hi,

> -----Original Message-----
> From: dev <dev-bounces at dpdk.org> On Behalf Of Xiaoyu Min
> Sent: Wednesday, July 7, 2021 5:33 AM
> To: Matan Azrad <matan at nvidia.com>; Shahaf Shuler
> <shahafs at nvidia.com>; Slava Ovsiienko <viacheslavo at nvidia.com>; Dekel
> Peled <dekelp at nvidia.com>; Ori Kam <orika at nvidia.com>
> Cc: dev at dpdk.org; stable at dpdk.org
> Subject: [dpdk-dev] [PATCH 2/2] net/mlx5: fix missing RSS expansion of IPv6
> frag
> 
> IPV6_FRAG_EXT item is missed for RSS expansion which causes flows like
> [1] are wrongly expanded.
> 
> Different from other items, IPV6_FRAG_EXT hasn't next field because HW
> only support to do hash of UDP/TCP for non-fragment.
> 
> This MLX5_EXPANSION_IPV6_FRAG_EXT node in RSS expansion graph only
> helps
> RSS expansion function to locate right node in graph from which start
> to expand.
> 
> Fixes: 0e5a0d8f7556 ("net/mlx5: support match on IPv6 fragment
> extension")
> Cc: stable at dpdk.org
> 
> [1]:
> flow create 0 ingress pattern eth / ipv6 / udp dst is 250 / vxlan-gpe /
> ipv6 / ipv6_frag_ext / end actions rss level 2 types ip end / end
> 
> Signed-off-by: Xiaoyu Min <jackmin at nvidia.com>
> ---
>  drivers/net/mlx5/mlx5_flow.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
> index 1b682ac8ed..90b8cf6692 100644
> --- a/drivers/net/mlx5/mlx5_flow.c
> +++ b/drivers/net/mlx5/mlx5_flow.c
> @@ -134,6 +134,7 @@ mlx5_flow_is_rss_expandable_item(const struct
> rte_flow_item *item)
>  	case RTE_FLOW_ITEM_TYPE_MPLS:
>  	case RTE_FLOW_ITEM_TYPE_VXLAN_GPE:
>  	case RTE_FLOW_ITEM_TYPE_GRE_KEY:
> +	case RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT:

Adding IPV6_FRAG_EXT to the list of expandable is not accurate,
Assuming HW support matching on L4 info after frag - which I think it doesn't.
It will lead that the first frag will get different hash than other frags since it the only one which contain info of L4 header
This will lead to different RSS spreading and that's not correct.

Kindest regards,
Raslan Darawsheh


More information about the dev mailing list