<div dir="ltr"><div><div style="font-family:trebuchet ms,sans-serif;color:rgb(103,78,167)" class="gmail_default">Thanks Xueming for taking care of this.</div><div style="font-family:trebuchet ms,sans-serif;color:rgb(103,78,167)" class="gmail_default"><br></div><div style="font-family:trebuchet ms,sans-serif;color:rgb(103,78,167)" class="gmail_default">Does it mean it will automatically go to other stable branches also, like 22.11.x ?</div><br clear="all"></div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><span style="font-family:verdana,sans-serif">Thanks</span></div><div><span style="font-family:verdana,sans-serif">Amiya</span><br></div></div></div></div><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Wed, 30 Jul 2025 at 20:30, Xueming Li <<a href="mailto:xuemingl@nvidia.com">xuemingl@nvidia.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
FYI, your patch has been queued to stable release 23.11.5<br>
<br>
Note it hasn't been pushed to <a href="http://dpdk.org/browse/dpdk-stable" rel="noreferrer" target="_blank">http://dpdk.org/browse/dpdk-stable</a> yet.<br>
It will be pushed if I get no objections before 08/10/25. So please<br>
shout if anyone has objections.<br>
<br>
Also note that after the patch there's a diff of the upstream commit vs the<br>
patch applied to the branch. This will indicate if there was any rebasing<br>
needed to apply to the stable branch. If there were code changes for rebasing<br>
(ie: not only metadata diffs), please double check that the rebase was<br>
correctly done.<br>
<br>
Queued patches are on a temporary branch at:<br>
<a href="https://git.dpdk.org/dpdk-stable/log/?h=23.11-staging" rel="noreferrer" target="_blank">https://git.dpdk.org/dpdk-stable/log/?h=23.11-staging</a><br>
<br>
This queued commit can be viewed at:<br>
<a href="https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=f2c11a141c46c6a9d461493b70490940d8147680" rel="noreferrer" target="_blank">https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=f2c11a141c46c6a9d461493b70490940d8147680</a><br>
<br>
Thanks.<br>
<br>
Xueming Li <<a href="mailto:xuemingl@nvidia.com" target="_blank">xuemingl@nvidia.com</a>><br>
<br>
---<br>
>From f2c11a141c46c6a9d461493b70490940d8147680 Mon Sep 17 00:00:00 2001<br>
From: Amiya Ranjan Mohakud <<a href="mailto:amiyaranjan.mohakud@gmail.com" target="_blank">amiyaranjan.mohakud@gmail.com</a>><br>
Date: Mon, 23 Jun 2025 23:41:36 +0530<br>
Subject: [PATCH] net/iavf: fix VLAN strip setting after enabling filter<br>
Cc: Xueming Li <<a href="mailto:xuemingl@nvidia.com" target="_blank">xuemingl@nvidia.com</a>><br>
<br>
[ upstream commit 3bfad066f9b4764981c9ad90a750fa6f1afcf15a ]<br>
<br>
For i40e kernel drivers which support either vlan(v1) or vlan(v2)<br>
VIRTCHNL OP, it will set strip on when setting filter on.<br>
But DPDK side will not change strip flag.<br>
To be consistent with DPDL side, explicitly disable strip again.<br>
<br>
Bugzilla ID: 1725<br>
Fixes: e25c7ed114b2 ("net/iavf: fix VLAN offload strip flag")<br>
Cc: <a href="mailto:stable@dpdk.org" target="_blank">stable@dpdk.org</a><br>
<br>
Signed-off-by: Amiya Ranjan Mohakud <<a href="mailto:amiyaranjan.mohakud@gmail.com" target="_blank">amiyaranjan.mohakud@gmail.com</a>><br>
Reviewed-by: Ciara Loftus <<a href="mailto:ciara.loftus@intel.com" target="_blank">ciara.loftus@intel.com</a>><br>
---<br>
 .mailmap                       |  1 +<br>
 drivers/net/iavf/iavf_ethdev.c | 48 ++++++++++++++++++++--------------<br>
 2 files changed, 30 insertions(+), 19 deletions(-)<br>
<br>
diff --git a/.mailmap b/.mailmap<br>
index e17823a260..80c6f855dc 100644<br>
--- a/.mailmap<br>
+++ b/.mailmap<br>
@@ -84,6 +84,7 @@ Amir Avivi <<a href="mailto:amir.avivi@intel.com" target="_blank">amir.avivi@intel.com</a>><br>
 Amit Bernstein <<a href="mailto:amitbern@amazon.com" target="_blank">amitbern@amazon.com</a>><br>
 Amit Gupta <<a href="mailto:agupta3@marvell.com" target="_blank">agupta3@marvell.com</a>><br>
 Amit Prakash Shukla <<a href="mailto:amitprakashs@marvell.com" target="_blank">amitprakashs@marvell.com</a>><br>
+Amiya Ranjan Mohakud <<a href="mailto:amiyaranjan.mohakud@gmail.com" target="_blank">amiyaranjan.mohakud@gmail.com</a>><br>
 Amr Mokhtar <<a href="mailto:amr.mokhtar@intel.com" target="_blank">amr.mokhtar@intel.com</a>><br>
 Amruta Zende <<a href="mailto:amruta.zende@intel.com" target="_blank">amruta.zende@intel.com</a>><br>
 Amrutha Sampath <<a href="mailto:amrutha.sampath@intel.com" target="_blank">amrutha.sampath@intel.com</a>><br>
diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c<br>
index 4472fd2c2d..391ba2c812 100644<br>
--- a/drivers/net/iavf/iavf_ethdev.c<br>
+++ b/drivers/net/iavf/iavf_ethdev.c<br>
@@ -1364,13 +1364,38 @@ iavf_dev_del_mac_addr(struct rte_eth_dev *dev, uint32_t index)<br>
        vf->mac_num--;<br>
 }<br>
<br>
+static int<br>
+iavf_disable_vlan_strip_ex(struct rte_eth_dev *dev, int on)<br>
+{<br>
+       /* For i40e kernel drivers which supports both vlan(v1 & v2) VIRTCHNL OP,<br>
+        * it will set strip on when setting filter on but dpdk side will not<br>
+        * change strip flag. To be consistent with dpdk side, explicitly disable<br>
+        * strip again.<br>
+        *<br>
+        */<br>
+       struct iavf_adapter *adapter =<br>
+               IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);<br>
+       struct rte_eth_conf *dev_conf = &dev->data->dev_conf;<br>
+       int err;<br>
+<br>
+       if (adapter->hw.mac.type == IAVF_MAC_XL710 ||<br>
+           adapter->hw.mac.type == IAVF_MAC_VF ||<br>
+           adapter->hw.mac.type == IAVF_MAC_X722_VF) {<br>
+               if (on && !(dev_conf->rxmode.offloads & RTE_ETH_RX_OFFLOAD_VLAN_STRIP)) {<br>
+                       err = iavf_disable_vlan_strip(adapter);<br>
+                       if (err)<br>
+                               return -EIO;<br>
+               }<br>
+       }<br>
+       return 0;<br>
+}<br>
+<br>
 static int<br>
 iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)<br>
 {<br>
        struct iavf_adapter *adapter =<br>
                IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);<br>
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);<br>
-       struct rte_eth_conf *dev_conf = &dev->data->dev_conf;<br>
        int err;<br>
<br>
        if (adapter->closed)<br>
@@ -1380,7 +1405,8 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)<br>
                err = iavf_add_del_vlan_v2(adapter, vlan_id, on);<br>
                if (err)<br>
                        return -EIO;<br>
-               return 0;<br>
+<br>
+               return iavf_disable_vlan_strip_ex(dev, on);<br>
        }<br>
<br>
        if (!(vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_VLAN))<br>
@@ -1390,23 +1416,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)<br>
        if (err)<br>
                return -EIO;<br>
<br>
-       /* For i40e kernel driver which only supports vlan(v1) VIRTCHNL OP,<br>
-        * it will set strip on when setting filter on but dpdk side will not<br>
-        * change strip flag. To be consistent with dpdk side, disable strip<br>
-        * again.<br>
-        *<br>
-        * For i40e kernel driver which supports vlan v2, dpdk will invoke vlan v2<br>
-        * related function, so it won't go through here.<br>
-        */<br>
-       if (adapter->hw.mac.type == IAVF_MAC_XL710 ||<br>
-           adapter->hw.mac.type == IAVF_MAC_X722_VF) {<br>
-               if (on && !(dev_conf->rxmode.offloads & RTE_ETH_RX_OFFLOAD_VLAN_STRIP)) {<br>
-                       err = iavf_disable_vlan_strip(adapter);<br>
-                       if (err)<br>
-                               return -EIO;<br>
-               }<br>
-       }<br>
-       return 0;<br>
+       return iavf_disable_vlan_strip_ex(dev, on);<br>
 }<br>
<br>
 static void<br>
-- <br>
2.34.1<br>
<br>
---<br>
  Diff of the applied patch vs upstream commit (please double-check if non-empty:<br>
---<br>
--- -   2025-07-30 22:50:03.776876738 +0800<br>
+++ 0010-net-iavf-fix-VLAN-strip-setting-after-enabling-filte.patch     2025-07-30 22:50:03.000752668 +0800<br>
@@ -1 +1 @@<br>
-From 3bfad066f9b4764981c9ad90a750fa6f1afcf15a Mon Sep 17 00:00:00 2001<br>
+From f2c11a141c46c6a9d461493b70490940d8147680 Mon Sep 17 00:00:00 2001<br>
@@ -4,0 +5,3 @@<br>
+Cc: Xueming Li <<a href="mailto:xuemingl@nvidia.com" target="_blank">xuemingl@nvidia.com</a>><br>
+<br>
+[ upstream commit 3bfad066f9b4764981c9ad90a750fa6f1afcf15a ]<br>
@@ -18,2 +21,2 @@<br>
- .mailmap                             |  1 +<br>
- drivers/net/intel/iavf/iavf_ethdev.c | 48 +++++++++++++++++-----------<br>
+ .mailmap                       |  1 +<br>
+ drivers/net/iavf/iavf_ethdev.c | 48 ++++++++++++++++++++--------------<br>
@@ -23 +26 @@<br>
-index c6d72058bb..1b238970fb 100644<br>
+index e17823a260..80c6f855dc 100644<br>
@@ -26 +29 @@<br>
-@@ -88,6 +88,7 @@ Amir Avivi <<a href="mailto:amir.avivi@intel.com" target="_blank">amir.avivi@intel.com</a>><br>
+@@ -84,6 +84,7 @@ Amir Avivi <<a href="mailto:amir.avivi@intel.com" target="_blank">amir.avivi@intel.com</a>><br>
@@ -34,5 +37,5 @@<br>
-diff --git a/drivers/net/intel/iavf/iavf_ethdev.c b/drivers/net/intel/iavf/iavf_ethdev.c<br>
-index 02649c19b2..c33fdd9069 100644<br>
---- a/drivers/net/intel/iavf/iavf_ethdev.c<br>
-+++ b/drivers/net/intel/iavf/iavf_ethdev.c<br>
-@@ -1377,13 +1377,38 @@ iavf_dev_del_mac_addr(struct rte_eth_dev *dev, uint32_t index)<br>
+diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c<br>
+index 4472fd2c2d..391ba2c812 100644<br>
+--- a/drivers/net/iavf/iavf_ethdev.c<br>
++++ b/drivers/net/iavf/iavf_ethdev.c<br>
+@@ -1364,13 +1364,38 @@ iavf_dev_del_mac_addr(struct rte_eth_dev *dev, uint32_t index)<br>
@@ -78 +81 @@<br>
-@@ -1393,7 +1418,8 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)<br>
+@@ -1380,7 +1405,8 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)<br>
@@ -88 +91 @@<br>
-@@ -1403,23 +1429,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)<br>
+@@ -1390,23 +1416,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)<br>
</blockquote></div>