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 B6D5746A9C for ; Mon, 30 Jun 2025 14:26:17 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B1D074025D; Mon, 30 Jun 2025 14:26:17 +0200 (CEST) Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by mails.dpdk.org (Postfix) with ESMTP id A40564025D for ; Mon, 30 Jun 2025 14:26:15 +0200 (CEST) Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-3a51481a598so1121923f8f.3 for ; Mon, 30 Jun 2025 05:26:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751286375; x=1751891175; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YVfD+VwMG6LucB9tcl3H/MLsqjLwrhVS+z2+8WeUTE0=; b=NVX9lFa919QuJ+/dkyWgwWGkEWpL6SFJCLotY5yw9tommevFhUrQnY1m0NFBx8mxBN 7GclLT5MpoR/6D62ybABtHgMQQDeV6x6cI2XVLnGUsPm+CxPrmI4bzQRClwCVztCo7yZ OOnjZ/5j656l2xVSVA+lRv1DAubQ60VMiYtaXYgcJ+fcx0XXj7Xx6SgQyxWPVupvNREA QIQLsSgFjuUO3V85Hcg3s8PH2pZGSrU2O0QwYYxvgJvO4h0qMN0+muzBi+wJ9+F3UniF bvXbvupiMGtLKxQoF1gtOO825tzViSyCKVj8wVqYKkC5C6G3DCHwYr3rEY8SowsjH6CS WgnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751286375; x=1751891175; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YVfD+VwMG6LucB9tcl3H/MLsqjLwrhVS+z2+8WeUTE0=; b=I2gKxb1rJWxI5Ur8WQA8oPjVVGCWZyDB6PNYUGFXdgDvJmdBN6s21kgfy3GtPfJxNQ mVlOqkrvsfGjjSzUCihkqO/cPysfeeBjFrUqdC8y+vNuijpCbK+UhzBj1+u9DsF74Cy4 q8qymsoZTHn2yPpg4Ko5bLuZo/RIDtZt3oxCnskZmR1d4q/sB5+R6bON8eMEss0GhpQe zCgMUQKJ+22FKfee8S1AyjfXk+CK/PLS/pXDA7oCnYY1EssAavt3rhhHJ4vSXFTjS0/K ucuSYpEvxmofXMLcRQRT2NlILTyYDuY1QXX2gULw/O02+wcLOmxSLWzCM5d3N93D0SKG akMw== X-Forwarded-Encrypted: i=1; AJvYcCX7fSdegsiaxpzbWeII3T7T4eySx4yGWYxN8vdjsSuf6Bd1eFK+npSvhVgVmMO5LV9M+PNau4c=@dpdk.org X-Gm-Message-State: AOJu0YziYN/uWyUX8SAKCxrlmE0iJ/17bPlSLbY8mVdJui6qpeY/V4lu OunOzqMN7MggtLyku8C8bgofzfsvVLQwh7Jg07+y36mxfE2U3uvf/q0b X-Gm-Gg: ASbGnctGCTWX0fiAh5zV1LKsck+oaZJyEwV40dMyElveyF3JRmnrly9G0+a7CdJs5As IpKW7X6iE55AGcCTZhvc/sBHeQhMJoyDhRUjibg1GdLt+JPo/rBavjjPhOwYXdxRL8n6i2dIAb5 W9bFU60DfCN0UvPIMtrF09+ELxcz5ChXwAQtBjzNMT3sbdDpeVwyyA6lnJywj/Qdn199YlWjVae 3NVVj3ozxlB7IffhYc8dHGDBx5Sv/4OQiOcIWmujcPAOG31HhgWJPA9Iekfpyq3jBsUXUDXx+gk jHcXXAi841WsuE67KAi8zpPY5tWp3uYgo3whmP9VZvYWy77FvCxdRPRGXXMK55PalFfG3pSNAu2 sXQ== X-Google-Smtp-Source: AGHT+IGjtIqIeK90/nVaiCHEfHcUdtQa4HQ36umK6OJ7+Viqlcig09m5jxxs659QICYhsmUbTTwiFg== X-Received: by 2002:a05:6000:2586:b0:3a3:7cbd:39b1 with SMTP id ffacd0b85a97d-3aa43f26982mr8899577f8f.24.1751286375047; Mon, 30 Jun 2025 05:26:15 -0700 (PDT) Received: from localhost ([2a01:4b00:d036:ae00:ded1:f637:68f:c2a6]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3a892e5f34csm10104219f8f.85.2025.06.30.05.26.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Jun 2025 05:26:14 -0700 (PDT) From: luca.boccassi@gmail.com To: Amiya Ranjan Mohakud Cc: Ciara Loftus , dpdk stable Subject: patch 'net/iavf: fix VLAN strip setting after enabling filter' has been queued to stable release 22.11.9 Date: Mon, 30 Jun 2025 13:25:36 +0100 Message-ID: <20250630122556.1133654-6-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250630122556.1133654-1-luca.boccassi@gmail.com> References: <20250612210733.2506558-72-luca.boccassi@gmail.com> <20250630122556.1133654-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 Hi, FYI, your patch has been queued to stable release 22.11.9 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 07/02/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://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/67bc75f0e394c192fdb985a29d69a4f89a2413c3 Thanks. Luca Boccassi --- >From 67bc75f0e394c192fdb985a29d69a4f89a2413c3 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 [ 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") Signed-off-by: Amiya Ranjan Mohakud Reviewed-by: Ciara Loftus --- .mailmap | 1 + drivers/net/iavf/iavf_ethdev.c | 68 +++++++++++++++++++--------------- 2 files changed, 40 insertions(+), 29 deletions(-) diff --git a/.mailmap b/.mailmap index 9a89b1a12e..f53fdf0d85 100644 --- a/.mailmap +++ b/.mailmap @@ -79,6 +79,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 656a4c6176..62e75f3626 100644 --- a/drivers/net/iavf/iavf_ethdev.c +++ b/drivers/net/iavf/iavf_ethdev.c @@ -1345,40 +1345,21 @@ iavf_dev_del_mac_addr(struct rte_eth_dev *dev, uint32_t index) } static int -iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on) +iavf_disable_vlan_strip_ex(struct rte_eth_dev *dev, 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) - return -EIO; - - if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_VLAN_V2) { - err = iavf_add_del_vlan_v2(adapter, vlan_id, on); - if (err) - return -EIO; - return 0; - } - - if (!(vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_VLAN)) - return -ENOTSUP; - - err = iavf_add_del_vlan(adapter, vlan_id, on); - if (err) - return -EIO; - - /* For i40e kernel driver which only supports vlan(v1) VIRTCHNL OP, + /* 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, disable strip - * again. + * change strip flag. To be consistent with dpdk side, explicitly 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. */ + 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); @@ -1389,6 +1370,35 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on) 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); + int err; + + if (adapter->closed) + return -EIO; + + if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_VLAN_V2) { + err = iavf_add_del_vlan_v2(adapter, vlan_id, on); + if (err) + return -EIO; + + return iavf_disable_vlan_strip_ex(dev, on); + } + + if (!(vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_VLAN)) + return -ENOTSUP; + + err = iavf_add_del_vlan(adapter, vlan_id, on); + if (err) + return -EIO; + + return iavf_disable_vlan_strip_ex(dev, on); +} + static void iavf_iterate_vlan_filters_v2(struct rte_eth_dev *dev, bool enable) { -- 2.47.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-06-30 13:21:22.012550361 +0100 +++ 0006-net-iavf-fix-VLAN-strip-setting-after-enabling-filte.patch 2025-06-30 13:21:21.743057270 +0100 @@ -1 +1 @@ -From 3bfad066f9b4764981c9ad90a750fa6f1afcf15a Mon Sep 17 00:00:00 2001 +From 67bc75f0e394c192fdb985a29d69a4f89a2413c3 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 3bfad066f9b4764981c9ad90a750fa6f1afcf15a ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org @@ -18,2 +19,2 @@ - .mailmap | 1 + - drivers/net/intel/iavf/iavf_ethdev.c | 68 ++++++++++++++++------------ + .mailmap | 1 + + drivers/net/iavf/iavf_ethdev.c | 68 +++++++++++++++++++--------------- @@ -23 +24 @@ -index c6d72058bb..1b238970fb 100644 +index 9a89b1a12e..f53fdf0d85 100644 @@ -26 +27 @@ -@@ -88,6 +88,7 @@ Amir Avivi +@@ -79,6 +79,7 @@ Amir Avivi @@ -34,5 +35,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 -@@ -1378,40 +1378,21 @@ 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 656a4c6176..62e75f3626 100644 +--- a/drivers/net/iavf/iavf_ethdev.c ++++ b/drivers/net/iavf/iavf_ethdev.c +@@ -1345,40 +1345,21 @@ iavf_dev_del_mac_addr(struct rte_eth_dev *dev, uint32_t index) @@ -89 +90 @@ -@@ -1422,6 +1403,35 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on) +@@ -1389,6 +1370,35 @@ iavf_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)