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 1E5FB489EF for ; Mon, 27 Oct 2025 17:23:14 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 117E440685; Mon, 27 Oct 2025 17:23:14 +0100 (CET) Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) by mails.dpdk.org (Postfix) with ESMTP id D4DF940685 for ; Mon, 27 Oct 2025 17:23:11 +0100 (CET) Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-427015003eeso4372452f8f.0 for ; Mon, 27 Oct 2025 09:23:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761582191; x=1762186991; 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=WQUp1b0eJ2i/tQCJoczY7hMi9BWwph/IRb/GoQGJsiE=; b=G+oDYHhufNKXR0+fWjCV9PUVjJC9026ZriRIfsc5zHARGAeaQB60zDimSz1WbBGh3Q jM7hcgPKaIc36xB9lKqhhxqpsrSQUm26pkalF6xktKJb43NeAa4e1c1jFcuGLKx+Tips Kloa2Sktft7/Wlajdo/Sc93p5uX2uoeVSFKySBppHUgIAUYm2w+3SeYDbWKe9kbp0BwS 90q7pZtFnd7hiZqoMeJ1CYE8npV+HPvjcQ0KK4ZYUvKg0oWbcslQGpkfN8lUzSGERfC1 aWM7YUZMVGULqhtZ81qm0geimwxtTLPwxnlZvqaZErRMimgWWE6RTD/7gAqYPButQYpQ 4vJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761582191; x=1762186991; 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=WQUp1b0eJ2i/tQCJoczY7hMi9BWwph/IRb/GoQGJsiE=; b=dKjfbbRZT09dq7DqsdHbvDewwvS/QwFuN1AASn72gHZmf2gZE5a87cOJQTW/6hyKVA W7TaoWgSAtXZmuJBYlyH0IJ2RvZS42KXOQ9cHYgGouUOCUpkBRmAfgJ0EvAiQL8vJKnv CwBHO4KAiK1WanC6rYbyYt0anhhIaB4+Z++5QOXJTNFzx52fD6IVAPgbJeX2xH+8s9vH JzSWJTpc1pGq0CryHB5Duv0Kh1sn693Dixmv7jHvMA0waN6OeIaCdLH36DzijTOT40aB Pgj268A87Z7Dv6ypXyUUxXA86lSJ8nOEZkB5DWnwxO6vPFVZ6DyBgf6sVA6BnqORD3Yf AsCw== X-Gm-Message-State: AOJu0Yy5wMx2DY7wYjsZWcwwVw73lnOpZGGOVd/SpQ88nrsiEK2G5YjH lIhhnVNbMqE66AcKcwSJd0g/w+d0yp0RREYBZO9ECvCOzspF02XhT/rV X-Gm-Gg: ASbGnctSb4I8SmSkjRH5CutTQ5OSMS2+bzWwMUCY/hIJ0QUT2c5ORfe0bEM2Er9LC0T oOhqGKb8Zn6og5bdeHej977og8qv1c5jA4q48cz8OdUH5S7XaxzXCv+LDO9iC/J5kjw5v+OMgB2 u98L2H2mjLBAk2T+lbWXXsUn/a2WcdRcbnhfy4YE2JH47lzJO1cv4wYbRpFu7TM+aZQ+/mhGIPI gEFZGAVZ2tPZkZ4jWG6g/RHldkgFznjav4VReUgci5oT+LROjQJN2oBC9oI4kvHQ/svST5ILPGw GD5bnJ6GyEKq4gbDuGaJ4lWjHExmG73hM68SHfbV1Ced3o8WCymiQl3trZ5zBtiF6fZc5qZSoNx jSwAiEcZ0kJ+t7kZkMxmUSBOs4h+cZPO5Ud6w7P98FTG4Bj6WSk4VC3Y3fmzZntaQbHgnE1ZYS3 TIThAaMKaxrv71ooYnM+PsEt/GSXg= X-Google-Smtp-Source: AGHT+IEftQ6tGs6nu8wivGv2WRqYCUbR2MGtDbT0RkVR9qEZWtaP7dpM+dQHkUxSUyhAAeOB616yYw== X-Received: by 2002:a5d:5f93:0:b0:427:151:3db6 with SMTP id ffacd0b85a97d-429a7e591d3mr304340f8f.24.1761582191237; Mon, 27 Oct 2025 09:23:11 -0700 (PDT) Received: from localhost ([2a01:4b00:d036:ae00:6fc5:c3bc:147e:832c]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-429952e3201sm15200479f8f.47.2025.10.27.09.23.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Oct 2025 09:23:10 -0700 (PDT) From: luca.boccassi@gmail.com To: Xingui Yang Cc: dpdk stable Subject: patch 'net/hns3: fix VLAN tag loss for short tunnel frame' has been queued to stable release 22.11.11 Date: Mon, 27 Oct 2025 16:19:35 +0000 Message-ID: <20251027162001.3710450-57-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251027162001.3710450-1-luca.boccassi@gmail.com> References: <20251027162001.3710450-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.11 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 10/29/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/a93b0c242f9ec715d68fa676c74baa978ecdf0d1 Thanks. Luca Boccassi --- >From a93b0c242f9ec715d68fa676c74baa978ecdf0d1 Mon Sep 17 00:00:00 2001 From: Xingui Yang Date: Mon, 29 Sep 2025 19:35:53 +0800 Subject: [PATCH] net/hns3: fix VLAN tag loss for short tunnel frame [ upstream commit 2262fc29485bd863db55e820a194bf1e4be8a87c ] When the hardware handles short tunnel frames below 65 bytes, the VLAN tag will be lost if VLAN insert or QinQ insert is enabled. Therefore, the packet size of the tunnel frame is padded to 65 bytes to fix this issue. Fixes: de620754a109 ("net/hns3: fix sending packets less than 60 bytes") Signed-off-by: Xingui Yang --- drivers/net/hns3/hns3_ethdev.h | 1 + drivers/net/hns3/hns3_rxtx.c | 48 +++++++++++++++++++++++----------- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/drivers/net/hns3/hns3_ethdev.h b/drivers/net/hns3/hns3_ethdev.h index 9ebf807202..864fb186b1 100644 --- a/drivers/net/hns3/hns3_ethdev.h +++ b/drivers/net/hns3/hns3_ethdev.h @@ -74,6 +74,7 @@ #define HNS3_DEFAULT_MTU 1500UL #define HNS3_DEFAULT_FRAME_LEN (HNS3_DEFAULT_MTU + HNS3_ETH_OVERHEAD) #define HNS3_HIP08_MIN_TX_PKT_LEN 33 +#define HNS3_MIN_TUN_PKT_LEN 65 #define HNS3_BITS_PER_BYTE 8 diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c index 56060730b0..3256e12b63 100644 --- a/drivers/net/hns3/hns3_rxtx.c +++ b/drivers/net/hns3/hns3_rxtx.c @@ -4124,6 +4124,37 @@ hns3_tx_fill_hw_ring(struct hns3_tx_queue *txq, } } +static bool +hns3_tx_pktmbuf_append(struct hns3_tx_queue *txq, + struct rte_mbuf *tx_pkt) +{ + uint16_t add_len = 0; + uint32_t ptype; + char *appended; + + if (unlikely(tx_pkt->ol_flags & (RTE_MBUF_F_TX_VLAN | RTE_MBUF_F_TX_QINQ) && + rte_pktmbuf_pkt_len(tx_pkt) < HNS3_MIN_TUN_PKT_LEN)) { + ptype = rte_net_get_ptype(tx_pkt, NULL, RTE_PTYPE_L2_MASK | + RTE_PTYPE_L3_MASK | RTE_PTYPE_L4_MASK | + RTE_PTYPE_TUNNEL_MASK); + if (ptype & RTE_PTYPE_TUNNEL_MASK) + add_len = HNS3_MIN_TUN_PKT_LEN - rte_pktmbuf_pkt_len(tx_pkt); + } else if (unlikely(rte_pktmbuf_pkt_len(tx_pkt) < txq->min_tx_pkt_len)) { + add_len = txq->min_tx_pkt_len - rte_pktmbuf_pkt_len(tx_pkt); + } + + if (unlikely(add_len > 0)) { + appended = rte_pktmbuf_append(tx_pkt, add_len); + if (appended == NULL) { + txq->dfx_stats.pkt_padding_fail_cnt++; + return false; + } + memset(appended, 0, add_len); + } + + return true; +} + uint16_t hns3_xmit_pkts_simple(void *tx_queue, struct rte_mbuf **tx_pkts, @@ -4201,21 +4232,8 @@ hns3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) * by hardware in Tx direction, driver need to pad it to avoid * error. */ - if (unlikely(rte_pktmbuf_pkt_len(tx_pkt) < - txq->min_tx_pkt_len)) { - uint16_t add_len; - char *appended; - - add_len = txq->min_tx_pkt_len - - rte_pktmbuf_pkt_len(tx_pkt); - appended = rte_pktmbuf_append(tx_pkt, add_len); - if (appended == NULL) { - txq->dfx_stats.pkt_padding_fail_cnt++; - break; - } - - memset(appended, 0, add_len); - } + if (!hns3_tx_pktmbuf_append(txq, tx_pkt)) + break; m_seg = tx_pkt; -- 2.47.3 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-10-27 15:54:36.894420222 +0000 +++ 0057-net-hns3-fix-VLAN-tag-loss-for-short-tunnel-frame.patch 2025-10-27 15:54:34.835950552 +0000 @@ -1 +1 @@ -From 2262fc29485bd863db55e820a194bf1e4be8a87c Mon Sep 17 00:00:00 2001 +From a93b0c242f9ec715d68fa676c74baa978ecdf0d1 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 2262fc29485bd863db55e820a194bf1e4be8a87c ] + @@ -11 +12,0 @@ -Cc: stable@dpdk.org @@ -20 +21 @@ -index f6bb1b5d43..209b042816 100644 +index 9ebf807202..864fb186b1 100644 @@ -23 +24 @@ -@@ -75,6 +75,7 @@ +@@ -74,6 +74,7 @@ @@ -32 +33 @@ -index aa7ee6f3e8..df703134be 100644 +index 56060730b0..3256e12b63 100644 @@ -35 +36 @@ -@@ -4219,6 +4219,37 @@ hns3_tx_fill_hw_ring(struct hns3_tx_queue *txq, +@@ -4124,6 +4124,37 @@ hns3_tx_fill_hw_ring(struct hns3_tx_queue *txq, @@ -73 +74 @@ -@@ -4296,21 +4327,8 @@ hns3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) +@@ -4201,21 +4232,8 @@ hns3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)