[dpdk-stable] patch 'net/i40e: fix flow director enabling' has been queued to stable release 19.11.3

luca.boccassi at gmail.com luca.boccassi at gmail.com
Wed May 27 11:24:16 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/29/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 33189eecd08b48b12fc058b1b3fd38d33c0e55bb Mon Sep 17 00:00:00 2001
From: Wei Zhao <wei.zhao1 at intel.com>
Date: Thu, 21 May 2020 16:03:06 +0800
Subject: [PATCH] net/i40e: fix flow director enabling

[ upstream commit be4ef2e0d09d5179e22d7574850d707d13713a87 ]

When we flush flow FDIR, all queues are disabled for FDIR.
If FDIR rule is created again, then the flow list is empty,
as it is the first time to create rule after flush fdir filter,
so we need to enable FDIR for all queues.
And also, disable FDIR for queues should be done in function
i40e_flow_flush_fdir_filter().

Fixes: 1491f63c7559 ("net/i40e: fix flush of flow director filter")
Fixes: 6ae9b2b5e8c2 ("net/i40e: cache flow director enable value in Rx queue")

Signed-off-by: Wei Zhao <wei.zhao1 at intel.com>
Reviewed-by: Jeff Guo <jia.guo at intel.com>
---
 drivers/net/i40e/i40e_flow.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c
index 9b5e797d59..a83543c26e 100644
--- a/drivers/net/i40e/i40e_flow.c
+++ b/drivers/net/i40e/i40e_flow.c
@@ -3224,6 +3224,10 @@ i40e_flow_parse_fdir_filter(struct rte_eth_dev *dev,
 		}
 	}
 
+	/* If create the first fdir rule, enable fdir check for rx queues */
+	if (TAILQ_EMPTY(&pf->fdir.fdir_list))
+		i40e_fdir_rx_proc_enable(dev, 1);
+
 	return 0;
 err:
 	i40e_fdir_teardown(pf);
@@ -4976,9 +4980,6 @@ i40e_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
 		return -rte_errno;
 	}
 
-	/* Disable FDIR processing as all FDIR rules are now flushed */
-	i40e_fdir_rx_proc_enable(dev, 0);
-
 	return ret;
 }
 
@@ -5014,6 +5015,9 @@ i40e_flow_flush_fdir_filter(struct i40e_pf *pf)
 		for (pctype = I40E_FILTER_PCTYPE_NONF_IPV4_UDP;
 		     pctype <= I40E_FILTER_PCTYPE_L2_PAYLOAD; pctype++)
 			pf->fdir.inset_flag[pctype] = 0;
+
+		/* Disable FDIR processing as all FDIR rules are now flushed */
+		i40e_fdir_rx_proc_enable(dev, 0);
 	}
 
 	return ret;
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-05-27 10:23:32.083805139 +0100
+++ 0013-net-i40e-fix-flow-director-enabling.patch	2020-05-27 10:23:31.647933907 +0100
@@ -1,8 +1,10 @@
-From be4ef2e0d09d5179e22d7574850d707d13713a87 Mon Sep 17 00:00:00 2001
+From 33189eecd08b48b12fc058b1b3fd38d33c0e55bb Mon Sep 17 00:00:00 2001
 From: Wei Zhao <wei.zhao1 at intel.com>
 Date: Thu, 21 May 2020 16:03:06 +0800
 Subject: [PATCH] net/i40e: fix flow director enabling
 
+[ upstream commit be4ef2e0d09d5179e22d7574850d707d13713a87 ]
+
 When we flush flow FDIR, all queues are disabled for FDIR.
 If FDIR rule is created again, then the flow list is empty,
 as it is the first time to create rule after flush fdir filter,
@@ -12,7 +14,6 @@
 
 Fixes: 1491f63c7559 ("net/i40e: fix flush of flow director filter")
 Fixes: 6ae9b2b5e8c2 ("net/i40e: cache flow director enable value in Rx queue")
-Cc: stable at dpdk.org
 
 Signed-off-by: Wei Zhao <wei.zhao1 at intel.com>
 Reviewed-by: Jeff Guo <jia.guo at intel.com>
@@ -21,10 +22,10 @@
  1 file changed, 7 insertions(+), 3 deletions(-)
 
 diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c
-index 25c77e7aa6..8f8df6fae9 100644
+index 9b5e797d59..a83543c26e 100644
 --- a/drivers/net/i40e/i40e_flow.c
 +++ b/drivers/net/i40e/i40e_flow.c
-@@ -3462,6 +3462,10 @@ i40e_flow_parse_fdir_filter(struct rte_eth_dev *dev,
+@@ -3224,6 +3224,10 @@ i40e_flow_parse_fdir_filter(struct rte_eth_dev *dev,
  		}
  	}
  
@@ -35,7 +36,7 @@
  	return 0;
  err:
  	i40e_fdir_teardown(pf);
-@@ -5330,9 +5334,6 @@ i40e_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
+@@ -4976,9 +4980,6 @@ i40e_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
  		return -rte_errno;
  	}
  
@@ -45,7 +46,7 @@
  	return ret;
  }
  
-@@ -5368,6 +5369,9 @@ i40e_flow_flush_fdir_filter(struct i40e_pf *pf)
+@@ -5014,6 +5015,9 @@ i40e_flow_flush_fdir_filter(struct i40e_pf *pf)
  		for (pctype = I40E_FILTER_PCTYPE_NONF_IPV4_UDP;
  		     pctype <= I40E_FILTER_PCTYPE_L2_PAYLOAD; pctype++)
  			pf->fdir.inset_flag[pctype] = 0;


More information about the stable mailing list