Hi, > -----Original Message----- > From: dev <dev-boun...@dpdk.org> On Behalf Of Xiaoyu Min > Sent: Wednesday, July 7, 2021 5:33 AM > To: Matan Azrad <ma...@nvidia.com>; Shahaf Shuler > <shah...@nvidia.com>; Slava Ovsiienko <viachesl...@nvidia.com>; Dekel > Peled <dek...@nvidia.com>; Ori Kam <or...@nvidia.com> > Cc: dev@dpdk.org; sta...@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: sta...@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 <jack...@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