[dpdk-stable] patch 'net/i40e: fix queue region in RSS flow' has been queued to stable release 19.11.3

luca.boccassi at gmail.com luca.boccassi at gmail.com
Fri May 22 11:40:04 CEST 2020


Hi,

FYI, your patch has been queued to stable release 19.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/24/20. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Luca Boccassi

---
>From fc047c800bad0e396e954523861151fbb5e794e1 Mon Sep 17 00:00:00 2001
From: Shougang Wang <shougangx.wang at intel.com>
Date: Fri, 15 May 2020 07:32:31 +0000
Subject: [PATCH] net/i40e: fix queue region in RSS flow

[ upstream commit da7018ec29d405e9b36b6997eedb728c04bb0fe8 ]

This patch fixes the issue that the queue region does not
take effect due to incorrectly setting the flow type.

Fixes: ecad87d22383 ("net/i40e: move RSS to flow API")

Signed-off-by: Shougang Wang <shougangx.wang at intel.com>
Reviewed-by: Jeff Guo <jia.guo at intel.com>
Tested-by: Hailin Xu <hailinx.xu at intel.com>
Tested-by: Lunyuan Cui <lunyuanx.cui at intel.com>
---
 drivers/net/i40e/i40e_flow.c | 36 ++++++++++++++++++++++++++++++++----
 1 file changed, 32 insertions(+), 4 deletions(-)

diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c
index ea3b223e11..9b5e797d59 100644
--- a/drivers/net/i40e/i40e_flow.c
+++ b/drivers/net/i40e/i40e_flow.c
@@ -4327,7 +4327,34 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev,
 	struct i40e_rte_flow_rss_conf *rss_info = &pf->rss_info;
 	uint16_t i, j, n, tmp;
 	uint32_t index = 0;
-	uint64_t hf_bit = 1;
+
+	static const struct {
+		uint64_t rss_type;
+		enum i40e_filter_pctype pctype;
+	} pctype_match_table[] = {
+		{ETH_RSS_FRAG_IPV4,
+			I40E_FILTER_PCTYPE_FRAG_IPV4},
+		{ETH_RSS_NONFRAG_IPV4_TCP,
+			I40E_FILTER_PCTYPE_NONF_IPV4_TCP},
+		{ETH_RSS_NONFRAG_IPV4_UDP,
+			I40E_FILTER_PCTYPE_NONF_IPV4_UDP},
+		{ETH_RSS_NONFRAG_IPV4_SCTP,
+			I40E_FILTER_PCTYPE_NONF_IPV4_SCTP},
+		{ETH_RSS_NONFRAG_IPV4_OTHER,
+			I40E_FILTER_PCTYPE_NONF_IPV4_OTHER},
+		{ETH_RSS_FRAG_IPV6,
+			I40E_FILTER_PCTYPE_FRAG_IPV6},
+		{ETH_RSS_NONFRAG_IPV6_TCP,
+			I40E_FILTER_PCTYPE_NONF_IPV6_TCP},
+		{ETH_RSS_NONFRAG_IPV6_UDP,
+			I40E_FILTER_PCTYPE_NONF_IPV6_UDP},
+		{ETH_RSS_NONFRAG_IPV6_SCTP,
+			I40E_FILTER_PCTYPE_NONF_IPV6_SCTP},
+		{ETH_RSS_NONFRAG_IPV6_OTHER,
+			I40E_FILTER_PCTYPE_NONF_IPV6_OTHER},
+		{ETH_RSS_L2_PAYLOAD,
+			I40E_FILTER_PCTYPE_L2_PAYLOAD},
+	};
 
 	NEXT_ITEM_OF_ACTION(act, actions, index);
 	rss = act->conf;
@@ -4345,9 +4372,10 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev,
 	}
 
 	if (action_flag) {
-		for (n = 0; n < 64; n++) {
-			if (rss->types & (hf_bit << n)) {
-				conf_info->region[0].hw_flowtype[0] = n;
+		for (j = 0; j < RTE_DIM(pctype_match_table); j++) {
+			if (rss->types & pctype_match_table[j].rss_type) {
+				conf_info->region[0].hw_flowtype[0] =
+					(uint8_t)pctype_match_table[j].pctype;
 				conf_info->region[0].flowtype_num = 1;
 				conf_info->queue_region_number = 1;
 				break;
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-05-22 10:37:40.187412741 +0100
+++ 0025-net-i40e-fix-queue-region-in-RSS-flow.patch	2020-05-22 10:37:39.140412929 +0100
@@ -1,30 +1,33 @@
-From da7018ec29d405e9b36b6997eedb728c04bb0fe8 Mon Sep 17 00:00:00 2001
+From fc047c800bad0e396e954523861151fbb5e794e1 Mon Sep 17 00:00:00 2001
 From: Shougang Wang <shougangx.wang at intel.com>
 Date: Fri, 15 May 2020 07:32:31 +0000
 Subject: [PATCH] net/i40e: fix queue region in RSS flow
 
+[ upstream commit da7018ec29d405e9b36b6997eedb728c04bb0fe8 ]
+
 This patch fixes the issue that the queue region does not
 take effect due to incorrectly setting the flow type.
 
 Fixes: ecad87d22383 ("net/i40e: move RSS to flow API")
-Cc: stable at dpdk.org
 
 Signed-off-by: Shougang Wang <shougangx.wang at intel.com>
 Reviewed-by: Jeff Guo <jia.guo at intel.com>
 Tested-by: Hailin Xu <hailinx.xu at intel.com>
 Tested-by: Lunyuan Cui <lunyuanx.cui at intel.com>
 ---
- drivers/net/i40e/i40e_flow.c | 35 ++++++++++++++++++++++++++++++++---
- 1 file changed, 32 insertions(+), 3 deletions(-)
+ drivers/net/i40e/i40e_flow.c | 36 ++++++++++++++++++++++++++++++++----
+ 1 file changed, 32 insertions(+), 4 deletions(-)
 
 diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c
-index 72f3527386..25c77e7aa6 100644
+index ea3b223e11..9b5e797d59 100644
 --- a/drivers/net/i40e/i40e_flow.c
 +++ b/drivers/net/i40e/i40e_flow.c
-@@ -4622,6 +4622,34 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev,
+@@ -4327,7 +4327,34 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev,
+ 	struct i40e_rte_flow_rss_conf *rss_info = &pf->rss_info;
+ 	uint16_t i, j, n, tmp;
  	uint32_t index = 0;
- 	uint64_t hf_bit = 1;
- 
+-	uint64_t hf_bit = 1;
++
 +	static const struct {
 +		uint64_t rss_type;
 +		enum i40e_filter_pctype pctype;
@@ -52,14 +55,13 @@
 +		{ETH_RSS_L2_PAYLOAD,
 +			I40E_FILTER_PCTYPE_L2_PAYLOAD},
 +	};
-+
+ 
  	NEXT_ITEM_OF_ACTION(act, actions, index);
  	rss = act->conf;
- 
-@@ -4638,9 +4666,10 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev,
+@@ -4345,9 +4372,10 @@ i40e_flow_parse_rss_action(struct rte_eth_dev *dev,
  	}
  
- 	if (p_info.action_flag && rss->queue_num) {
+ 	if (action_flag) {
 -		for (n = 0; n < 64; n++) {
 -			if (rss->types & (hf_bit << n)) {
 -				conf_info->region[0].hw_flowtype[0] = n;


More information about the stable mailing list