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 003CE470AE for ; Sun, 21 Dec 2025 16:01:25 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EEF354042C; Sun, 21 Dec 2025 16:01:25 +0100 (CET) Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013064.outbound.protection.outlook.com [40.107.201.64]) by mails.dpdk.org (Postfix) with ESMTP id A81904025F for ; Sun, 21 Dec 2025 16:01:24 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fkFBp4XzEoy/mw/IS5ydG6sdKjGsWgVX7aBnEe153aoSEwl/FnlJ1vl6lxN3j1bQSYBhN5d/lTp5wxFcmpiQbF9E3r9R/fGm4sngHb9+gYUDTUNQAjrM0+HE6+/zzJMbr1SVXyvYkReOZV7D0G6/lKMR+Qdo9LlxcN0X6SJ88Flox9gHtlFY9t2WCG4ut4TGicfcedDVGsiAsB5OVu43czmaE6NZLZxhhoFf6P+0wRJ6AzizLZpi0uuE5bV9+mMMfT5wCutIV03kP26suQJ38VCwAvm5mJgvXbPUVfm9WFHYTmIvcWix7gezQo5y1g5mFr8t9hlZhBsoL9+dCA74cQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jgx7t2vOTd4bDRZ6MvUsUIh3YdqmPClEdphURAncHUQ=; b=JjjR2Bt+Rvm8d15cUQaR1DYRVAZwalqSWs2IHdMTE1zPRm7LkHuWHqDWBSkuetLZitV3+2Ni4t5qZUI5mz1cLuBMudt1O+QtVTjViXos2PSCF/zhSCepZS7N75sijPxPisEveAkj3C8iOgeueGYQZH1AQ82ZCMN4F2IDM5xZ0YW0pljt9wbunWBDuefPxxrmk+gAbQUsxG747tXEV4qdRQ9C2Oxm4jJVxOVwNPb4xm1L/Ph5LKCXpPmfrwYyHeiDfLuvFqQjSuoYaG3wocyO5fZHjFp2O9rzwgsYRE6Dt/4Z8t3NXn8LlNpBGYtvjjpsVRZ6qnnCUbf1McUsJcYCfQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=intel.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jgx7t2vOTd4bDRZ6MvUsUIh3YdqmPClEdphURAncHUQ=; b=EwunOehGhoc+QWSAYSzNR7u3AhhEy0Ebsi3wM5rjU616TFMuMyYYQH+NHijxbzysSuQNX0DRIoQgAeSqY/IqwRU9SfF7lhrAl7wLZeKwbK2h8u2LHuCVGsSIHmkV5WKcmu/c4W4TnYlMAfgL73sXhf7odFkgpPQJHrPVTtwwluJPosSbLRhoZ0QrgnO6G1/St0imxJspy+EwoiZDsKTGVcgRp/nv80SL2nyoS1H18rWt/aRCaw+y/YHAMomP8v0El1lmhkATVuYqNg+6S72bsiwoWEiQQmIGA2PbQVuX8ptsUOIKpTgwowPVO90mISQDtnYtPOiiYcbu7HjSZaHmOQ== Received: from IA4P221CA0002.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:559::8) by PH7PR12MB7138.namprd12.prod.outlook.com (2603:10b6:510:1ee::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.10; Sun, 21 Dec 2025 15:01:17 +0000 Received: from BL6PEPF00022575.namprd02.prod.outlook.com (2603:10b6:208:559:cafe::86) by IA4P221CA0002.outlook.office365.com (2603:10b6:208:559::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.11 via Frontend Transport; Sun, 21 Dec 2025 15:01:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by BL6PEPF00022575.mail.protection.outlook.com (10.167.249.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9456.9 via Frontend Transport; Sun, 21 Dec 2025 15:01:16 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Sun, 21 Dec 2025 07:01:00 -0800 Received: from rnnvmail204.nvidia.com (10.129.68.6) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Sun, 21 Dec 2025 07:01:00 -0800 Received: from nvidia.com (10.127.8.12) by mail.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20 via Frontend Transport; Sun, 21 Dec 2025 07:00:59 -0800 From: Shani Peretz To: Bruce Richardson CC: Ciara Loftus , dpdk stable Subject: patch 'net/ice: fix VLAN tag reporting on Rx' has been queued to stable release 23.11.6 Date: Sun, 21 Dec 2025 16:56:22 +0200 Message-ID: <20251221145746.763179-34-shperetz@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251221145746.763179-1-shperetz@nvidia.com> References: <20251221145746.763179-1-shperetz@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL6PEPF00022575:EE_|PH7PR12MB7138:EE_ X-MS-Office365-Filtering-Correlation-Id: 536abd3f-cb41-41d9-ad03-08de40a1cac1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700013|376014|1800799024|82310400026|13003099007|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?L1edgu1oGYiWiv9Ja4/Di8EbGEYvYyKlOYB7Pp5Wc86TcQfgQ1cqrO2DeWl1?= =?us-ascii?Q?D1ce++Qlqf/LctpUI8AG00tOMaxSK4GGMZYzRLGjGYNdw2QZOj769O1LP1Nr?= =?us-ascii?Q?w1iS5Xsz0uAhZL4B5ya14KGP62k96uDscrVV4SZ8pbMRwe7EeSrHu3XE32ry?= =?us-ascii?Q?MiL+3N4jQO7X5uhiNJo6UZN6QBOssOz+qEWlBla4az9Bej+XZBozv93Y9ouz?= =?us-ascii?Q?D+jE9TOYR3QEQYIbxEddvBb/PzDey9YfGxSmYI90IgLgCXgwXRu9Tqj3gSEN?= =?us-ascii?Q?wG72EdW1uMtb3wnT320vT4fSufNeYZXnf02GRCmtoNRvuN0NFeS5lBTYcY8P?= =?us-ascii?Q?s1DFFBeMrJzPMqkkimc+dotWBq//+aLIzjj16SgZBzCJ7AHjCvZeMlqEahmV?= =?us-ascii?Q?07j+iqVlmvIShTvh5UQjx58Vba8i75Q/Gwnvchj1dGQ9m4piEmix1JqqYhOK?= =?us-ascii?Q?iJhlHpbUUgpdpSWvh2HyffzEzX45sBvNk0/L/Qx+SuBctQfBeiQpNkKSe/yW?= =?us-ascii?Q?fM+RYOrK95fHxy38B8OIm1EECRJ41ak+ghOZJy1MSRWYjseQ7aF8Zs7dgbso?= =?us-ascii?Q?AbIBdXyaLA85F0lvQ+Ufhsf6vOX6at5+S0UOiwVZjuyRf2IxrDrDCGqLbwKo?= =?us-ascii?Q?f6zQ8hMHy9JXVvtkG/8GSal80k4xg/yt1xvyDJBUvUqFDPFUeTqKAIOxfCef?= =?us-ascii?Q?RNMtjz5qRd3dlIKDVV3hIKtpjaG7ndIhUkSVJa+UmPNVfszeT+fg98wI5rDo?= =?us-ascii?Q?HQhc3meTwhbuqheLIM+LTjEfM9pRECGe0NlHt6SmZJsrf7jOco2rMlnbnG6y?= =?us-ascii?Q?+m5fx4EV/7t+GN5b36AGxwCYliHI4APDoPUT67j2fP35CBXQ1eRDjivX8I1L?= =?us-ascii?Q?gqfhWseoBXzOoBUIqC8iKrcLQVEQhniNDTTJ4llHx3V1lrItOEiAQOeXJNW1?= =?us-ascii?Q?4gekETTsihE6rfKEETsYTIin1zOCgzj1k0iyICk2FsEWJ7QNOvIfJCKDtFkW?= =?us-ascii?Q?pwycwkmgqcrzU1KLnUNCnNDbvte0dinxCLBEglf/+cg18TDY6Wt19eRcfRaF?= =?us-ascii?Q?gARRbzL6cy1A91zBVDdykqA1YGp7baN78M4tuj9/1OhduVRZh4F7Xbaf8Fu8?= =?us-ascii?Q?aosP7yJg4rdTz+De3NrN2g1nQgkMjSw1dTRrKgF1oTsYZA+8bPZO852qM/kr?= =?us-ascii?Q?Zr7x3ZvC1lLr0cO4rFILa2n1HAwlNoUEHcqEdP15NBTQfSssBxsAJ3fk8ERG?= =?us-ascii?Q?M30BkdLb45Vq4Nf6ocXRCzoTDg4BD28OmqO6d8UIg/84bcTMSHIrUD775Mlo?= =?us-ascii?Q?5I/go7SNwR3TCot9yBuH+iRfUBmjbXYt8NmcZDU+k4Ycq2ia6kjtsG3Bc05x?= =?us-ascii?Q?NAbFAblpTiSeJCcI52NnTexv8FCmUdnJUErXao0EKI1wxJ7muVmejRtfqUMU?= =?us-ascii?Q?4Pe7Z4mM6qcUj9+0c33B7VN8QZRMEIn/CEnyoB9aD4exr6IRXj8aXUN33Gdo?= =?us-ascii?Q?gWhUiRgiAKModaCk6aWifvDN85h01QSR914lovPRmdvyDZEJAznUmUGKpviI?= =?us-ascii?Q?Rtr8hj697cGz7QAKN5TiHEaef5u2OjY7oO8BhRxF?= X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230040)(36860700013)(376014)(1800799024)(82310400026)(13003099007)(7053199007); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2025 15:01:16.7107 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 536abd3f-cb41-41d9-ad03-08de40a1cac1 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022575.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7138 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 23.11.6 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 12/26/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/shanipr/dpdk-stable This queued commit can be viewed at: https://github.com/shanipr/dpdk-stable/commit/6c6757f46a247ab11993744fe22aefcfcf68b8f0 Thanks. Shani --- >From 6c6757f46a247ab11993744fe22aefcfcf68b8f0 Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Thu, 7 Aug 2025 20:08:26 +0100 Subject: [PATCH] net/ice: fix VLAN tag reporting on Rx [ upstream commit fba64e026d03f4926e1ddc15a2128b8447b73d69 ] The ice driver expects the first, or outer, VLAN tag in a packet to be written to the L2TAG1 field of the descriptor, as configured by the l2tsel field when configuring the queue context initially for the device. However, when configuring the actual VLAN or QinQ strip behaviour, that l2tsel field was changed, sending the single/outer vlan tag to the L2TAG2 field in the descriptor. This meant that it was not getting picked up correctly by the Rx paths. This issue has been around for a long time, but was previously partially hidden by the issue fixed in [1], since due to that bug, the l2tsel field was not getting overridden in the single-queue case (since the single queue was the final queue). Fix the issue by just removing the code updating the l2tsel field, and leave it as set by default in the initial queue configuration. [1] commit 4cd8c72f661c ("net/ice: fix inconsistency in Rx queue VLAN tag placement") Fixes: de5da9d16430 ("net/ice: support double VLAN") Signed-off-by: Bruce Richardson Acked-by: Ciara Loftus --- drivers/net/ice/ice_ethdev.c | 83 ++---------------------------------- 1 file changed, 3 insertions(+), 80 deletions(-) diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index be826d3108..91609b948d 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -57,14 +57,6 @@ static const char * const ice_valid_args[] = { /* Maximum number of VSI */ #define ICE_MAX_NUM_VSIS (768UL) -/* The 119 bit offset of the LAN Rx queue context is the L2TSEL control bit. */ -#define ICE_L2TSEL_QRX_CONTEXT_REG_IDX 3 -#define ICE_L2TSEL_BIT_OFFSET 23 -enum ice_l2tsel { - ICE_L2TSEL_EXTRACT_FIRST_TAG_L2TAG2_2ND, - ICE_L2TSEL_EXTRACT_FIRST_TAG_L2TAG1, -}; - struct proto_xtr_ol_flag { const struct rte_mbuf_dynflag param; bool required; @@ -4721,49 +4713,12 @@ ice_vsi_config_vlan_stripping(struct ice_vsi *vsi, bool ena) return ret; } -/** - * ice_vsi_update_l2tsel - update l2tsel field for all Rx rings on this VSI - * @vsi: VSI used to update l2tsel on - * @l2tsel: l2tsel setting requested - * - * Use the l2tsel setting to update all of the Rx queue context bits for l2tsel. - * This will modify which descriptor field the first offloaded VLAN will be - * stripped into. - */ -static void ice_vsi_update_l2tsel(struct ice_vsi *vsi, enum ice_l2tsel l2tsel) -{ - struct ice_hw *hw = ICE_VSI_TO_HW(vsi); - struct ice_pf *pf = ICE_VSI_TO_PF(vsi); - struct rte_eth_dev_data *dev_data = pf->dev_data; - u32 l2tsel_bit; - uint16_t i; - - if (l2tsel == ICE_L2TSEL_EXTRACT_FIRST_TAG_L2TAG2_2ND) - l2tsel_bit = 0; - else - l2tsel_bit = BIT(ICE_L2TSEL_BIT_OFFSET); - - for (i = 0; i < dev_data->nb_rx_queues; i++) { - u32 qrx_context_offset; - u32 regval; - - qrx_context_offset = - QRX_CONTEXT(ICE_L2TSEL_QRX_CONTEXT_REG_IDX, i); - - regval = rd32(hw, qrx_context_offset); - regval &= ~BIT(ICE_L2TSEL_BIT_OFFSET); - regval |= l2tsel_bit; - wr32(hw, qrx_context_offset, regval); - } -} - /* Configure outer vlan stripping on or off in QinQ mode */ static int ice_vsi_config_outer_vlan_stripping(struct ice_vsi *vsi, bool on) { uint16_t outer_ethertype = vsi->adapter->pf.outer_ethertype; struct ice_hw *hw = ICE_VSI_TO_HW(vsi); - int err = 0; if (vsi->vsi_id >= ICE_MAX_NUM_VSIS) { PMD_DRV_LOG(ERR, "VSI ID exceeds the maximum"); @@ -4775,41 +4730,9 @@ ice_vsi_config_outer_vlan_stripping(struct ice_vsi *vsi, bool on) return -EOPNOTSUPP; } - if (on) { - err = ice_vsi_ena_outer_stripping(vsi, outer_ethertype); - if (!err) { - enum ice_l2tsel l2tsel = - ICE_L2TSEL_EXTRACT_FIRST_TAG_L2TAG2_2ND; - - /* PF tells the VF that the outer VLAN tag is always - * extracted to VIRTCHNL_VLAN_TAG_LOCATION_L2TAG2_2 and - * inner is always extracted to - * VIRTCHNL_VLAN_TAG_LOCATION_L2TAG1. This is needed to - * support outer stripping so the first tag always ends - * up in L2TAG2_2ND and the second/inner tag, if - * enabled, is extracted in L2TAG1. - */ - ice_vsi_update_l2tsel(vsi, l2tsel); - } - } else { - err = ice_vsi_dis_outer_stripping(vsi); - if (!err) { - enum ice_l2tsel l2tsel = - ICE_L2TSEL_EXTRACT_FIRST_TAG_L2TAG1; - - /* PF tells the VF that the outer VLAN tag is always - * extracted to VIRTCHNL_VLAN_TAG_LOCATION_L2TAG2_2 and - * inner is always extracted to - * VIRTCHNL_VLAN_TAG_LOCATION_L2TAG1. This is needed to - * support inner stripping while outer stripping is - * disabled so that the first and only tag is extracted - * in L2TAG1. - */ - ice_vsi_update_l2tsel(vsi, l2tsel); - } - } - - return err; + return on ? + ice_vsi_ena_outer_stripping(vsi, outer_ethertype) : + ice_vsi_dis_outer_stripping(vsi); } static int -- 2.43.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-12-21 16:54:19.096969745 +0200 +++ 0034-net-ice-fix-VLAN-tag-reporting-on-Rx.patch 2025-12-21 16:54:16.969059000 +0200 @@ -1 +1 @@ -From fba64e026d03f4926e1ddc15a2128b8447b73d69 Mon Sep 17 00:00:00 2001 +From 6c6757f46a247ab11993744fe22aefcfcf68b8f0 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit fba64e026d03f4926e1ddc15a2128b8447b73d69 ] + @@ -25 +26,0 @@ -Cc: stable@dpdk.org @@ -30 +31 @@ - drivers/net/intel/ice/ice_ethdev.c | 83 ++---------------------------- + drivers/net/ice/ice_ethdev.c | 83 ++---------------------------------- @@ -33,5 +34,5 @@ -diff --git a/drivers/net/intel/ice/ice_ethdev.c b/drivers/net/intel/ice/ice_ethdev.c -index 513777e372..6c65a8341a 100644 ---- a/drivers/net/intel/ice/ice_ethdev.c -+++ b/drivers/net/intel/ice/ice_ethdev.c -@@ -65,14 +65,6 @@ static const char * const ice_valid_args[] = { +diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c +index be826d3108..91609b948d 100644 +--- a/drivers/net/ice/ice_ethdev.c ++++ b/drivers/net/ice/ice_ethdev.c +@@ -57,14 +57,6 @@ static const char * const ice_valid_args[] = { @@ -52 +53 @@ -@@ -4965,49 +4957,12 @@ ice_vsi_config_vlan_stripping(struct ice_vsi *vsi, bool ena) +@@ -4721,49 +4713,12 @@ ice_vsi_config_vlan_stripping(struct ice_vsi *vsi, bool ena) @@ -79 +79,0 @@ -- const struct ci_rx_queue *rxq = dev_data->rx_queues[i]; @@ -83 +83,2 @@ -- qrx_context_offset = QRX_CONTEXT(ICE_L2TSEL_QRX_CONTEXT_REG_IDX, rxq->reg_idx); +- qrx_context_offset = +- QRX_CONTEXT(ICE_L2TSEL_QRX_CONTEXT_REG_IDX, i); @@ -102 +103 @@ -@@ -5019,41 +4974,9 @@ ice_vsi_config_outer_vlan_stripping(struct ice_vsi *vsi, bool on) +@@ -4775,41 +4730,9 @@ ice_vsi_config_outer_vlan_stripping(struct ice_vsi *vsi, bool on)