* [dpdk-dev] [PATCH 0/2] fix RSS expansion missing items @ 2021-07-07 2:32 Xiaoyu Min 2021-07-07 2:32 ` [dpdk-dev] [PATCH 1/2] net/mlx5: fix missing RSS expandable items Xiaoyu Min ` (3 more replies) 0 siblings, 4 replies; 8+ messages in thread From: Xiaoyu Min @ 2021-07-07 2:32 UTC (permalink / raw) Cc: dev This patch set fixs the missing items in RSS expansion. Xiaoyu Min (2): net/mlx5: fix missing RSS expandable items net/mlx5: fix missing RSS expansion of IPv6 frag drivers/net/mlx5/mlx5_flow.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) -- 2.32.0 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [dpdk-dev] [PATCH 1/2] net/mlx5: fix missing RSS expandable items 2021-07-07 2:32 [dpdk-dev] [PATCH 0/2] fix RSS expansion missing items Xiaoyu Min @ 2021-07-07 2:32 ` Xiaoyu Min 2021-07-07 2:32 ` [dpdk-dev] [PATCH 2/2] net/mlx5: fix missing RSS expansion of IPv6 frag Xiaoyu Min ` (2 subsequent siblings) 3 siblings, 0 replies; 8+ messages in thread From: Xiaoyu Min @ 2021-07-07 2:32 UTC (permalink / raw) To: Matan Azrad, Shahaf Shuler, Viacheslav Ovsiienko, Gregory Etelson Cc: dev, stable Some RSS expandable items are missing which leads to the expanded rte flow rules with wrong patterns. Fix by adding missed items. Fixes: d91093b9a2af ("net/mlx5: fix RSS pattern expansion") Cc: stable@dpdk.org Signed-off-by: Xiaoyu Min <jackmin@nvidia.com> --- drivers/net/mlx5/mlx5_flow.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 987fc66205..1b682ac8ed 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -132,6 +132,8 @@ mlx5_flow_is_rss_expandable_item(const struct rte_flow_item *item) case RTE_FLOW_ITEM_TYPE_GRE: case RTE_FLOW_ITEM_TYPE_GENEVE: case RTE_FLOW_ITEM_TYPE_MPLS: + case RTE_FLOW_ITEM_TYPE_VXLAN_GPE: + case RTE_FLOW_ITEM_TYPE_GRE_KEY: return true; default: break; -- 2.32.0 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [dpdk-dev] [PATCH 2/2] net/mlx5: fix missing RSS expansion of IPv6 frag 2021-07-07 2:32 [dpdk-dev] [PATCH 0/2] fix RSS expansion missing items Xiaoyu Min 2021-07-07 2:32 ` [dpdk-dev] [PATCH 1/2] net/mlx5: fix missing RSS expandable items Xiaoyu Min @ 2021-07-07 2:32 ` Xiaoyu Min 2021-07-12 8:05 ` Raslan Darawsheh 2021-07-08 5:38 ` [dpdk-dev] [PATCH 0/2] fix RSS expansion missing items Matan Azrad 2021-07-14 8:55 ` Raslan Darawsheh 3 siblings, 1 reply; 8+ messages in thread From: Xiaoyu Min @ 2021-07-07 2:32 UTC (permalink / raw) To: Matan Azrad, Shahaf Shuler, Viacheslav Ovsiienko, Dekel Peled, Ori Kam Cc: dev, stable 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@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@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: return true; default: break; @@ -453,6 +454,7 @@ enum mlx5_expansion { MLX5_EXPANSION_IPV6, MLX5_EXPANSION_IPV6_UDP, MLX5_EXPANSION_IPV6_TCP, + MLX5_EXPANSION_IPV6_FRAG_EXT, }; /** Supported expansion of items. */ @@ -607,7 +609,8 @@ static const struct mlx5_flow_expand_node mlx5_support_expansion[] = { }, [MLX5_EXPANSION_IPV6] = { .next = MLX5_FLOW_EXPAND_RSS_NEXT(MLX5_EXPANSION_IPV6_UDP, - MLX5_EXPANSION_IPV6_TCP), + MLX5_EXPANSION_IPV6_TCP, + MLX5_EXPANSION_IPV6_FRAG_EXT), .type = RTE_FLOW_ITEM_TYPE_IPV6, .rss_types = ETH_RSS_IPV6 | ETH_RSS_FRAG_IPV6 | ETH_RSS_NONFRAG_IPV6_OTHER, @@ -620,6 +623,9 @@ static const struct mlx5_flow_expand_node mlx5_support_expansion[] = { .type = RTE_FLOW_ITEM_TYPE_TCP, .rss_types = ETH_RSS_NONFRAG_IPV6_TCP, }, + [MLX5_EXPANSION_IPV6_FRAG_EXT] = { + .type = RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT, + }, }; static struct rte_flow_action_handle * -- 2.32.0 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH 2/2] net/mlx5: fix missing RSS expansion of IPv6 frag 2021-07-07 2:32 ` [dpdk-dev] [PATCH 2/2] net/mlx5: fix missing RSS expansion of IPv6 frag Xiaoyu Min @ 2021-07-12 8:05 ` Raslan Darawsheh 2021-07-14 7:31 ` Jack Min 0 siblings, 1 reply; 8+ messages in thread From: Raslan Darawsheh @ 2021-07-12 8:05 UTC (permalink / raw) To: Jack Min, Matan Azrad, Shahaf Shuler, Slava Ovsiienko, Dekel Peled, Ori Kam Cc: dev, stable Hi, > -----Original Message----- > From: dev <dev-bounces@dpdk.org> On Behalf Of Xiaoyu Min > Sent: Wednesday, July 7, 2021 5:33 AM > To: Matan Azrad <matan@nvidia.com>; Shahaf Shuler > <shahafs@nvidia.com>; Slava Ovsiienko <viacheslavo@nvidia.com>; Dekel > Peled <dekelp@nvidia.com>; Ori Kam <orika@nvidia.com> > Cc: dev@dpdk.org; stable@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@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@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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH 2/2] net/mlx5: fix missing RSS expansion of IPv6 frag 2021-07-12 8:05 ` Raslan Darawsheh @ 2021-07-14 7:31 ` Jack Min 2021-07-14 7:47 ` Raslan Darawsheh 0 siblings, 1 reply; 8+ messages in thread From: Jack Min @ 2021-07-14 7:31 UTC (permalink / raw) To: Raslan Darawsheh Cc: Matan Azrad, Shahaf Shuler, Slava Ovsiienko, Dekel Peled, Ori Kam, dev, stable On Mon, 21-07-12, 08:05, Raslan Darawsheh wrote: Hey, > Hi, > > > -----Original Message----- > > From: dev <dev-bounces@dpdk.org> On Behalf Of Xiaoyu Min > > Sent: Wednesday, July 7, 2021 5:33 AM > > To: Matan Azrad <matan@nvidia.com>; Shahaf Shuler > > <shahafs@nvidia.com>; Slava Ovsiienko <viacheslavo@nvidia.com>; Dekel > > Peled <dekelp@nvidia.com>; Ori Kam <orika@nvidia.com> > > Cc: dev@dpdk.org; stable@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@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@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. No, it will not expand to any items because the .next field is empty of entry MLX5_EXPANSION_IPV6_FRAG_EXT in mlx5_support_expansion[]. -Jack > > Kindest regards, > Raslan Darawsheh ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH 2/2] net/mlx5: fix missing RSS expansion of IPv6 frag 2021-07-14 7:31 ` Jack Min @ 2021-07-14 7:47 ` Raslan Darawsheh 0 siblings, 0 replies; 8+ messages in thread From: Raslan Darawsheh @ 2021-07-14 7:47 UTC (permalink / raw) To: Jack Min Cc: Matan Azrad, Shahaf Shuler, Slava Ovsiienko, Dekel Peled, Ori Kam, dev, stable > -----Original Message----- > From: Jack Min <jackmin@nvidia.com> > Sent: Wednesday, July 14, 2021 10:31 AM > To: Raslan Darawsheh <rasland@nvidia.com> > Cc: Matan Azrad <matan@nvidia.com>; Shahaf Shuler > <shahafs@nvidia.com>; Slava Ovsiienko <viacheslavo@nvidia.com>; Dekel > Peled <dekelp@nvidia.com>; Ori Kam <orika@nvidia.com>; dev@dpdk.org; > stable@dpdk.org > Subject: Re: [dpdk-dev] [PATCH 2/2] net/mlx5: fix missing RSS expansion of > IPv6 frag > > On Mon, 21-07-12, 08:05, Raslan Darawsheh wrote: > > Hey, > > Hi, > > > > > -----Original Message----- > > > From: dev <dev-bounces@dpdk.org> On Behalf Of Xiaoyu Min > > > Sent: Wednesday, July 7, 2021 5:33 AM > > > To: Matan Azrad <matan@nvidia.com>; Shahaf Shuler > > > <shahafs@nvidia.com>; Slava Ovsiienko <viacheslavo@nvidia.com>; > > > Dekel Peled <dekelp@nvidia.com>; Ori Kam <orika@nvidia.com> > > > Cc: dev@dpdk.org; stable@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@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@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. > > No, it will not expand to any items because the .next field is empty of entry > MLX5_EXPANSION_IPV6_FRAG_EXT in mlx5_support_expansion[]. > Great thanks for explanation, > -Jack > > > > Kindest regards, > > Raslan Darawsheh Kindest regards Raslan Darawsheh ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH 0/2] fix RSS expansion missing items 2021-07-07 2:32 [dpdk-dev] [PATCH 0/2] fix RSS expansion missing items Xiaoyu Min 2021-07-07 2:32 ` [dpdk-dev] [PATCH 1/2] net/mlx5: fix missing RSS expandable items Xiaoyu Min 2021-07-07 2:32 ` [dpdk-dev] [PATCH 2/2] net/mlx5: fix missing RSS expansion of IPv6 frag Xiaoyu Min @ 2021-07-08 5:38 ` Matan Azrad 2021-07-14 8:55 ` Raslan Darawsheh 3 siblings, 0 replies; 8+ messages in thread From: Matan Azrad @ 2021-07-08 5:38 UTC (permalink / raw) To: Jack Min; +Cc: dev From: Xiaoyu Min > This patch set fixs the missing items in RSS expansion. > > Xiaoyu Min (2): > net/mlx5: fix missing RSS expandable items > net/mlx5: fix missing RSS expansion of IPv6 frag > Series-acked -by: Matan Azrad <matan@nvidia.com> > drivers/net/mlx5/mlx5_flow.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > -- > 2.32.0 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [dpdk-dev] [PATCH 0/2] fix RSS expansion missing items 2021-07-07 2:32 [dpdk-dev] [PATCH 0/2] fix RSS expansion missing items Xiaoyu Min ` (2 preceding siblings ...) 2021-07-08 5:38 ` [dpdk-dev] [PATCH 0/2] fix RSS expansion missing items Matan Azrad @ 2021-07-14 8:55 ` Raslan Darawsheh 3 siblings, 0 replies; 8+ messages in thread From: Raslan Darawsheh @ 2021-07-14 8:55 UTC (permalink / raw) To: Jack Min; +Cc: dev Hi, > -----Original Message----- > From: dev <dev-bounces@dpdk.org> On Behalf Of Xiaoyu Min > Sent: Wednesday, July 7, 2021 5:33 AM > Cc: dev@dpdk.org > Subject: [dpdk-dev] [PATCH 0/2] fix RSS expansion missing items > > This patch set fixs the missing items in RSS expansion. > > Xiaoyu Min (2): > net/mlx5: fix missing RSS expandable items > net/mlx5: fix missing RSS expansion of IPv6 frag > > drivers/net/mlx5/mlx5_flow.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > -- > 2.32.0 Series applied to next-net-mlx, Kindest regards, Raslan Darawsheh ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2021-07-14 8:55 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-07-07 2:32 [dpdk-dev] [PATCH 0/2] fix RSS expansion missing items Xiaoyu Min 2021-07-07 2:32 ` [dpdk-dev] [PATCH 1/2] net/mlx5: fix missing RSS expandable items Xiaoyu Min 2021-07-07 2:32 ` [dpdk-dev] [PATCH 2/2] net/mlx5: fix missing RSS expansion of IPv6 frag Xiaoyu Min 2021-07-12 8:05 ` Raslan Darawsheh 2021-07-14 7:31 ` Jack Min 2021-07-14 7:47 ` Raslan Darawsheh 2021-07-08 5:38 ` [dpdk-dev] [PATCH 0/2] fix RSS expansion missing items Matan Azrad 2021-07-14 8:55 ` Raslan Darawsheh
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).