DPDK patches and discussions
 help / color / mirror / Atom feed
* [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 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 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
                   ` (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).