From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E78BC46C54 for ; Wed, 30 Jul 2025 17:24:02 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CA5DB402E6; Wed, 30 Jul 2025 17:24:02 +0200 (CEST) Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) by mails.dpdk.org (Postfix) with ESMTP id 14EA1402E6 for ; Wed, 30 Jul 2025 17:24:02 +0200 (CEST) Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-adfb562266cso1063428966b.0 for ; Wed, 30 Jul 2025 08:24:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753889041; x=1754493841; darn=dpdk.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=/ckciHoLSdOtW8jO5MMfNdqdapX+ORFh9aiZU2e8Apo=; b=KjVyfL4bK/RW44rbNpHpX9ouS4KurmCPykFjJcdYFr7A3AYH56vmomzKzUPYeSL5UK WlUAVf5IP9nHyF5GWKFFl3qAY47JPBV97N6NxIMWAkWEFdkdKS/k6SGn8kehTCw2z8qn KbyC9Cv1wKLH1cbsw4noxswex3K3yBJOap5CqUVDfVAkiKakPD/LE+vtjq7qYKogVKNt wQrgSvdD0aoD2DHZojbWoWDtR4DiRb4KyRKtCYOCmUM4BvCrVDXH7OnIUpgIAeKIIuGC 1yva8Cx+oTwQ6tu7FIIv7rYXplBjKLnieGe7mAo2AA1AHR+F2f2nRZymeqYFXYa7fxTo bAIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753889041; x=1754493841; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=/ckciHoLSdOtW8jO5MMfNdqdapX+ORFh9aiZU2e8Apo=; b=sWCdc4GSuW9dvCY4WHBsIs9/aT59ywpOVTRGRjgKwzM4EJhuWxYYL7fKNTIojtNMyd KxpC7PdrHVxI5gDBowCuM56m4KwC5JEjyUgX/HhYP9ANBrxrHpxMI1Ui3iFvj6upoCpj i9/JFn5u3YsycsdHyxFiUvqBmH5BONrAjDKkFxD92k4WzJ49NoLAw+l9HWj0qa9Vvzib OY7UUx1w4LSk7uo1JcpM8HSakcrj5OpXaB8TTS02lip443GJ80coFB4uiUAdm9QlYU7Z EDr14Pd0fRBMAx4kEJXyRSt29K3ZZaCd+C+ZhjPZbId01NMN6HTUhVnCuYZMMKkhss1d mlVA== X-Forwarded-Encrypted: i=1; AJvYcCV8ii9d1vt1Z/Mx7u2FR3CsgRmnOSPlo8lXBhQz4q6KSYKC4Xm2Npanfw+f6Md5r3EqZZuyYgo=@dpdk.org X-Gm-Message-State: AOJu0YzWXpr0zOxbPFpwreHimNLnKIQYnQ6L6OcXT62QHNXtDQ/pY4w1 1XKRZbq6rRQlPBYStaLwWa8px5QGnSqEUnT6Zva9NypHMT19N0aDmz8BkrdIXmn9tIOP19TTFLN s5TOzI1tcIiaxoE3BP+Yw53u7n1rSMlM= X-Gm-Gg: ASbGncsoGeTjZBCuaOduk4MMNvRofDfoOZ9KykgysYpIMny0xd9q4kO1AoT3egmuIsr hsTOh3+h16gB5+d3LdiNwNBLf5GmuG+SIjSQq2wS8/f4ZABe0FZc421fQpJK3j4zYiImSZ+JjKZ s9IO5lfpEo84FGlKEfG9S1ScCXowRdBTaPJSLoPezmykj557aTHBALF78OxB5ZyU/jFMHv0N4mO AAogCBiPqPsbDlzS84bVmvOyywLaJ2M7YFSKS8= X-Google-Smtp-Source: AGHT+IE9hOS0WqSm0GwiAAWDCq1vkFoXbWAYp/yHW/ECr3HGZyu/0/qLf6y5GN86343XjiWudQugUj+ItwvmQey1a5A= X-Received: by 2002:a17:907:9626:b0:ae0:aa0d:7bfa with SMTP id a640c23a62f3a-af8fda0174cmr413737466b.50.1753889041073; Wed, 30 Jul 2025 08:24:01 -0700 (PDT) MIME-Version: 1.0 References: <20250626120145.27369-1-xuemingl@nvidia.com> <20250730145633.245984-1-xuemingl@nvidia.com> <20250730145633.245984-11-xuemingl@nvidia.com> In-Reply-To: <20250730145633.245984-11-xuemingl@nvidia.com> From: Amiya Ranjan Mohakud Date: Wed, 30 Jul 2025 20:53:48 +0530 X-Gm-Features: Ac12FXyUP_5G9yzVkdFAtJV7euGpZb2-LNkUAtZm-6qFcrmd-_X3hgRxZQYcYSU Message-ID: Subject: Re: patch 'net/iavf: fix VLAN strip setting after enabling filter' has been queued to stable release 23.11.5 To: Xueming Li Cc: Ciara Loftus , dpdk stable Content-Type: multipart/alternative; boundary="00000000000044c984063b271d1c" X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org --00000000000044c984063b271d1c Content-Type: text/plain; charset="UTF-8" Thanks Xueming for taking care of this. Does it mean it will automatically go to other stable branches also, like 22.11.x ? Thanks Amiya On Wed, 30 Jul 2025 at 20:30, Xueming Li wrote: > Hi, > > FYI, your patch has been queued to stable release 23.11.5 > > Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. > It will be pushed if I get no objections before 08/10/25. 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. > > Queued patches are on a temporary branch at: > https://git.dpdk.org/dpdk-stable/log/?h=23.11-staging > > This queued commit can be viewed at: > > https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=f2c11a141c46c6a9d461493b70490940d8147680 > > Thanks. > > Xueming Li > > --- > From f2c11a141c46c6a9d461493b70490940d8147680 Mon Sep 17 00:00:00 2001 > From: Amiya Ranjan Mohakud > Date: Mon, 23 Jun 2025 23:41:36 +0530 > Subject: [PATCH] net/iavf: fix VLAN strip setting after enabling filter > Cc: Xueming Li > > [ upstream commit 3bfad066f9b4764981c9ad90a750fa6f1afcf15a ] > > For i40e kernel drivers which support either vlan(v1) or vlan(v2) > VIRTCHNL OP, it will set strip on when setting filter on. > But DPDK side will not change strip flag. > To be consistent with DPDL side, explicitly disable strip again. > > Bugzilla ID: 1725 > Fixes: e25c7ed114b2 ("net/iavf: fix VLAN offload strip flag") > Cc: stable@dpdk.org > > Signed-off-by: Amiya Ranjan Mohakud > Reviewed-by: Ciara Loftus > --- > .mailmap | 1 + > drivers/net/iavf/iavf_ethdev.c | 48 ++++++++++++++++++++-------------- > 2 files changed, 30 insertions(+), 19 deletions(-) > > diff --git a/.mailmap b/.mailmap > index e17823a260..80c6f855dc 100644 > --- a/.mailmap > +++ b/.mailmap > @@ -84,6 +84,7 @@ Amir Avivi > Amit Bernstein > Amit Gupta > Amit Prakash Shukla > +Amiya Ranjan Mohakud > Amr Mokhtar > Amruta Zende > Amrutha Sampath > diff --git a/drivers/net/iavf/iavf_ethdev.c > b/drivers/net/iavf/iavf_ethdev.c > index 4472fd2c2d..391ba2c812 100644 > --- a/drivers/net/iavf/iavf_ethdev.c > +++ b/drivers/net/iavf/iavf_ethdev.c > @@ -1364,13 +1364,38 @@ iavf_dev_del_mac_addr(struct rte_eth_dev *dev, > uint32_t index) > vf->mac_num--; > } > > +static int > +iavf_disable_vlan_strip_ex(struct rte_eth_dev *dev, int on) > +{ > + /* For i40e kernel drivers which supports both vlan(v1 & v2) > VIRTCHNL OP, > + * it will set strip on when setting filter on but dpdk side will > not > + * change strip flag. To be consistent with dpdk side, explicitly > disable > + * strip again. > + * > + */ > + struct iavf_adapter *adapter = > + IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); > + struct rte_eth_conf *dev_conf = &dev->data->dev_conf; > + int err; > + > + if (adapter->hw.mac.type == IAVF_MAC_XL710 || > + adapter->hw.mac.type == IAVF_MAC_VF || > + adapter->hw.mac.type == IAVF_MAC_X722_VF) { > + if (on && !(dev_conf->rxmode.offloads & > RTE_ETH_RX_OFFLOAD_VLAN_STRIP)) { > + err = iavf_disable_vlan_strip(adapter); > + if (err) > + return -EIO; > + } > + } > + return 0; > +} > + > static int > iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int > on) > { > struct iavf_adapter *adapter = > IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); > struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter); > - struct rte_eth_conf *dev_conf = &dev->data->dev_conf; > int err; > > if (adapter->closed) > @@ -1380,7 +1405,8 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, > uint16_t vlan_id, int on) > err = iavf_add_del_vlan_v2(adapter, vlan_id, on); > if (err) > return -EIO; > - return 0; > + > + return iavf_disable_vlan_strip_ex(dev, on); > } > > if (!(vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_VLAN)) > @@ -1390,23 +1416,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, > uint16_t vlan_id, int on) > if (err) > return -EIO; > > - /* For i40e kernel driver which only supports vlan(v1) VIRTCHNL OP, > - * it will set strip on when setting filter on but dpdk side will > not > - * change strip flag. To be consistent with dpdk side, disable > strip > - * again. > - * > - * For i40e kernel driver which supports vlan v2, dpdk will invoke > vlan v2 > - * related function, so it won't go through here. > - */ > - if (adapter->hw.mac.type == IAVF_MAC_XL710 || > - adapter->hw.mac.type == IAVF_MAC_X722_VF) { > - if (on && !(dev_conf->rxmode.offloads & > RTE_ETH_RX_OFFLOAD_VLAN_STRIP)) { > - err = iavf_disable_vlan_strip(adapter); > - if (err) > - return -EIO; > - } > - } > - return 0; > + return iavf_disable_vlan_strip_ex(dev, on); > } > > static void > -- > 2.34.1 > > --- > Diff of the applied patch vs upstream commit (please double-check if > non-empty: > --- > --- - 2025-07-30 22:50:03.776876738 +0800 > +++ 0010-net-iavf-fix-VLAN-strip-setting-after-enabling-filte.patch > 2025-07-30 22:50:03.000752668 +0800 > @@ -1 +1 @@ > -From 3bfad066f9b4764981c9ad90a750fa6f1afcf15a Mon Sep 17 00:00:00 2001 > +From f2c11a141c46c6a9d461493b70490940d8147680 Mon Sep 17 00:00:00 2001 > @@ -4,0 +5,3 @@ > +Cc: Xueming Li > + > +[ upstream commit 3bfad066f9b4764981c9ad90a750fa6f1afcf15a ] > @@ -18,2 +21,2 @@ > - .mailmap | 1 + > - drivers/net/intel/iavf/iavf_ethdev.c | 48 +++++++++++++++++----------- > + .mailmap | 1 + > + drivers/net/iavf/iavf_ethdev.c | 48 ++++++++++++++++++++-------------- > @@ -23 +26 @@ > -index c6d72058bb..1b238970fb 100644 > +index e17823a260..80c6f855dc 100644 > @@ -26 +29 @@ > -@@ -88,6 +88,7 @@ Amir Avivi > +@@ -84,6 +84,7 @@ Amir Avivi > @@ -34,5 +37,5 @@ > -diff --git a/drivers/net/intel/iavf/iavf_ethdev.c > b/drivers/net/intel/iavf/iavf_ethdev.c > -index 02649c19b2..c33fdd9069 100644 > ---- a/drivers/net/intel/iavf/iavf_ethdev.c > -+++ b/drivers/net/intel/iavf/iavf_ethdev.c > -@@ -1377,13 +1377,38 @@ iavf_dev_del_mac_addr(struct rte_eth_dev *dev, > uint32_t index) > +diff --git a/drivers/net/iavf/iavf_ethdev.c > b/drivers/net/iavf/iavf_ethdev.c > +index 4472fd2c2d..391ba2c812 100644 > +--- a/drivers/net/iavf/iavf_ethdev.c > ++++ b/drivers/net/iavf/iavf_ethdev.c > +@@ -1364,13 +1364,38 @@ iavf_dev_del_mac_addr(struct rte_eth_dev *dev, > uint32_t index) > @@ -78 +81 @@ > -@@ -1393,7 +1418,8 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, > uint16_t vlan_id, int on) > +@@ -1380,7 +1405,8 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, > uint16_t vlan_id, int on) > @@ -88 +91 @@ > -@@ -1403,23 +1429,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, > uint16_t vlan_id, int on) > +@@ -1390,23 +1416,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, > uint16_t vlan_id, int on) > --00000000000044c984063b271d1c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thanks=C2=A0Xueming for taking = care of this.

Do= es it mean it will automatically go to other stable branches also, like 22.= 11.x ?

Thanks
Amiya


On Wed, 30 Jul 2025 at 20:30, Xueming Li <xuemingl@nvidia.com> wrote:
<= /div>
Hi,

FYI, your patch has been queued to stable release 23.11.5

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stab= le yet.
It will be pushed if I get no objections before 08/10/25. 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 rebasi= ng
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://git.dpdk.org/dpdk-stable/log/?h=3D23.= 11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=3D23.11-staging&id= =3Df2c11a141c46c6a9d461493b70490940d8147680

Thanks.

Xueming Li <xue= mingl@nvidia.com>

---
>From f2c11a141c46c6a9d461493b70490940d8147680 Mon Sep 17 00:00:00 2001
From: Amiya Ranjan Mohakud <amiyaranjan.mohakud@gmail.com>
Date: Mon, 23 Jun 2025 23:41:36 +0530
Subject: [PATCH] net/iavf: fix VLAN strip setting after enabling filter
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 3bfad066f9b4764981c9ad90a750fa6f1afcf15a ]

For i40e kernel drivers which support either vlan(v1) or vlan(v2)
VIRTCHNL OP, it will set strip on when setting filter on.
But DPDK side will not change strip flag.
To be consistent with DPDL side, explicitly disable strip again.

Bugzilla ID: 1725
Fixes: e25c7ed114b2 ("net/iavf: fix VLAN offload strip flag")
Cc: stable@dpdk.org

Signed-off-by: Amiya Ranjan Mohakud <
amiyaranjan.mohakud@gmail.com>
Reviewed-by: Ciara Loftus <ciara.loftus@intel.com>
---
=C2=A0.mailmap=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 1 +
=C2=A0drivers/net/iavf/iavf_ethdev.c | 48 ++++++++++++++++++++-------------= -
=C2=A02 files changed, 30 insertions(+), 19 deletions(-)

diff --git a/.mailmap b/.mailmap
index e17823a260..80c6f855dc 100644
--- a/.mailmap
+++ b/.mailmap
@@ -84,6 +84,7 @@ Amir Avivi <amir.avivi@intel.com>
=C2=A0Amit Bernstein <amitbern@amazon.com>
=C2=A0Amit Gupta <agupta3@marvell.com>
=C2=A0Amit Prakash Shukla <amitprakashs@marvell.com>
+Amiya Ranjan Mohakud <amiyaranjan.mohakud@gmail.com>
=C2=A0Amr Mokhtar <amr.mokhtar@intel.com>
=C2=A0Amruta Zende <amruta.zende@intel.com>
=C2=A0Amrutha Sampath <amrutha.sampath@intel.com>
diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.= c
index 4472fd2c2d..391ba2c812 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -1364,13 +1364,38 @@ iavf_dev_del_mac_addr(struct rte_eth_dev *dev, uint= 32_t index)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 vf->mac_num--;
=C2=A0}

+static int
+iavf_disable_vlan_strip_ex(struct rte_eth_dev *dev, int on)
+{
+=C2=A0 =C2=A0 =C2=A0 =C2=A0/* For i40e kernel drivers which supports both = vlan(v1 & v2) VIRTCHNL OP,
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 * it will set strip on when setting filter on = but dpdk side will not
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 * change strip flag. To be consistent with dpd= k side, explicitly disable
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 * strip again.
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 *
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 */
+=C2=A0 =C2=A0 =C2=A0 =C2=A0struct iavf_adapter *adapter =3D
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0IAVF_DEV_PRIVATE_TO= _ADAPTER(dev->data->dev_private);
+=C2=A0 =C2=A0 =C2=A0 =C2=A0struct rte_eth_conf *dev_conf =3D &dev->= data->dev_conf;
+=C2=A0 =C2=A0 =C2=A0 =C2=A0int err;
+
+=C2=A0 =C2=A0 =C2=A0 =C2=A0if (adapter->hw.mac.type =3D=3D IAVF_MAC_XL7= 10 ||
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0adapter->hw.mac.type =3D=3D IA= VF_MAC_VF ||
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0adapter->hw.mac.type =3D=3D IA= VF_MAC_X722_VF) {
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (on && != (dev_conf->rxmode.offloads & RTE_ETH_RX_OFFLOAD_VLAN_STRIP)) {
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0err =3D iavf_disable_vlan_strip(adapter);
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0if (err)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return -EIO;
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
+=C2=A0 =C2=A0 =C2=A0 =C2=A0}
+=C2=A0 =C2=A0 =C2=A0 =C2=A0return 0;
+}
+
=C2=A0static int
=C2=A0iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, i= nt on)
=C2=A0{
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct iavf_adapter *adapter =3D
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 IAVF_DEV_PRIVATE_TO= _ADAPTER(dev->data->dev_private);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 struct iavf_info *vf =3D IAVF_DEV_PRIVATE_TO_VF= (adapter);
-=C2=A0 =C2=A0 =C2=A0 =C2=A0struct rte_eth_conf *dev_conf =3D &dev->= data->dev_conf;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 int err;

=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (adapter->closed)
@@ -1380,7 +1405,8 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uin= t16_t vlan_id, int on)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 err =3D iavf_add_de= l_vlan_v2(adapter, vlan_id, on);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (err)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 return -EIO;
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return 0;
+
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return iavf_disable= _vlan_strip_ex(dev, on);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }

=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (!(vf->vf_res->vf_cap_flags & VIRT= CHNL_VF_OFFLOAD_VLAN))
@@ -1390,23 +1416,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, ui= nt16_t vlan_id, int on)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 if (err)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return -EIO;

-=C2=A0 =C2=A0 =C2=A0 =C2=A0/* For i40e kernel driver which only supports v= lan(v1) VIRTCHNL OP,
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 * it will set strip on when setting filter on = but dpdk side will not
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 * change strip flag. To be consistent with dpd= k side, disable strip
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 * again.
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 *
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 * For i40e kernel driver which supports vlan v= 2, dpdk will invoke vlan v2
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 * related function, so it won't go through= here.
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 */
-=C2=A0 =C2=A0 =C2=A0 =C2=A0if (adapter->hw.mac.type =3D=3D IAVF_MAC_XL7= 10 ||
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0adapter->hw.mac.type =3D=3D IA= VF_MAC_X722_VF) {
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (on && != (dev_conf->rxmode.offloads & RTE_ETH_RX_OFFLOAD_VLAN_STRIP)) {
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0err =3D iavf_disable_vlan_strip(adapter);
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0if (err)
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return -EIO;
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}
-=C2=A0 =C2=A0 =C2=A0 =C2=A0}
-=C2=A0 =C2=A0 =C2=A0 =C2=A0return 0;
+=C2=A0 =C2=A0 =C2=A0 =C2=A0return iavf_disable_vlan_strip_ex(dev, on);
=C2=A0}

=C2=A0static void
--
2.34.1

---
=C2=A0 Diff of the applied patch vs upstream commit (please double-check if= non-empty:
---
--- -=C2=A0 =C2=A02025-07-30 22:50:03.776876738 +0800
+++ 0010-net-iavf-fix-VLAN-strip-setting-after-enabling-filte.patch=C2=A0 = =C2=A0 =C2=A02025-07-30 22:50:03.000752668 +0800
@@ -1 +1 @@
-From 3bfad066f9b4764981c9ad90a750fa6f1afcf15a Mon Sep 17 00:00:00 2001
+From f2c11a141c46c6a9d461493b70490940d8147680 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 3bfad066f9b4764981c9ad90a750fa6f1afcf15a ]
@@ -18,2 +21,2 @@
- .mailmap=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0|=C2=A0 1 +
- drivers/net/intel/iavf/iavf_ethdev.c | 48 +++++++++++++++++----------- + .mailmap=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0|=C2=A0 1 +
+ drivers/net/iavf/iavf_ethdev.c | 48 ++++++++++++++++++++-------------- @@ -23 +26 @@
-index c6d72058bb..1b238970fb 100644
+index e17823a260..80c6f855dc 100644
@@ -26 +29 @@
-@@ -88,6 +88,7 @@ Amir Avivi <amir.avivi@intel.com>
+@@ -84,6 +84,7 @@ Amir Avivi <amir.avivi@intel.com>
@@ -34,5 +37,5 @@
-diff --git a/drivers/net/intel/iavf/iavf_ethdev.c b/drivers/net/intel/iavf= /iavf_ethdev.c
-index 02649c19b2..c33fdd9069 100644
---- a/drivers/net/intel/iavf/iavf_ethdev.c
-+++ b/drivers/net/intel/iavf/iavf_ethdev.c
-@@ -1377,13 +1377,38 @@ iavf_dev_del_mac_addr(struct rte_eth_dev *dev, uin= t32_t index)
+diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev= .c
+index 4472fd2c2d..391ba2c812 100644
+--- a/drivers/net/iavf/iavf_ethdev.c
++++ b/drivers/net/iavf/iavf_ethdev.c
+@@ -1364,13 +1364,38 @@ iavf_dev_del_mac_addr(struct rte_eth_dev *dev, uin= t32_t index)
@@ -78 +81 @@
-@@ -1393,7 +1418,8 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, ui= nt16_t vlan_id, int on)
+@@ -1380,7 +1405,8 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, ui= nt16_t vlan_id, int on)
@@ -88 +91 @@
-@@ -1403,23 +1429,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, u= int16_t vlan_id, int on)
+@@ -1390,23 +1416,7 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, u= int16_t vlan_id, int on)
--00000000000044c984063b271d1c--