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 8C5AC48A44 for ; Fri, 31 Oct 2025 15:39:11 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 860C340150; Fri, 31 Oct 2025 15:39:11 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id 29BD740150 for ; Fri, 31 Oct 2025 15:39:10 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1761921549; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TV2bdcjwMRuxuQMjWC+M4DE4LTKPzwRgWlnL+vLg9Xk=; b=gfV2wI/W05YIi8f7lcm9zWuV7cHd8rCmgmgocURyBdTaG4YrIknpqq/9Xuanh0FsqlXPDB hcbfYUp420udyXO92pp7ZKQjcYjtkDNZqAqNLGfK0gIu8/6s/R8RV44pk+xcf6lIm5hcXf tCDjsTxVJUaTMT4A3fYUsanZDkJL09g= Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-120-QnRU7f-lPFOjZnzqdWbZhA-1; Fri, 31 Oct 2025 10:39:06 -0400 X-MC-Unique: QnRU7f-lPFOjZnzqdWbZhA-1 X-Mimecast-MFC-AGG-ID: QnRU7f-lPFOjZnzqdWbZhA_1761921545 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 901EA1800673; Fri, 31 Oct 2025 14:39:05 +0000 (UTC) Received: from rh.redhat.com (unknown [10.44.32.50]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 16DF4180044F; Fri, 31 Oct 2025 14:39:03 +0000 (UTC) From: Kevin Traynor To: Xingui Yang Cc: dpdk stable Subject: patch 'net/hns3: fix VLAN tag loss for short tunnel frame' has been queued to stable release 24.11.4 Date: Fri, 31 Oct 2025 14:33:41 +0000 Message-ID: <20251031143421.324432-99-ktraynor@redhat.com> In-Reply-To: <20251031143421.324432-1-ktraynor@redhat.com> References: <20251031143421.324432-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: SPro1vR9V3TiQ2NlY_jzXmtNT51Oq5rzJWcy5aY7oog_1761921545 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true 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 24.11.4 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/05/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/kevintraynor/dpdk-stable This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable/commit/0d4ac08fdca35ed6ccba96e8e156c1ce0245a6e1 Thanks. Kevin --- >From 0d4ac08fdca35ed6ccba96e8e156c1ce0245a6e1 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 9b8566139b..70ac2f66f8 100644 --- a/drivers/net/hns3/hns3_ethdev.h +++ b/drivers/net/hns3/hns3_ethdev.h @@ -79,4 +79,5 @@ #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 4d2f77e834..9421fa58e2 100644 --- a/drivers/net/hns3/hns3_rxtx.c +++ b/drivers/net/hns3/hns3_rxtx.c @@ -4206,4 +4206,35 @@ 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, @@ -4283,19 +4314,6 @@ hns3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) * 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.51.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-10-31 13:53:55.250221168 +0000 +++ 0099-net-hns3-fix-VLAN-tag-loss-for-short-tunnel-frame.patch 2025-10-31 13:53:52.278524124 +0000 @@ -1 +1 @@ -From 2262fc29485bd863db55e820a194bf1e4be8a87c Mon Sep 17 00:00:00 2001 +From 0d4ac08fdca35ed6ccba96e8e156c1ce0245a6e1 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 9b8566139b..70ac2f66f8 100644 @@ -23 +24 @@ -@@ -76,4 +76,5 @@ +@@ -79,4 +79,5 @@ @@ -30 +31 @@ -index aa7ee6f3e8..df703134be 100644 +index 4d2f77e834..9421fa58e2 100644 @@ -33 +34 @@ -@@ -4220,4 +4220,35 @@ hns3_tx_fill_hw_ring(struct hns3_tx_queue *txq, +@@ -4206,4 +4206,35 @@ hns3_tx_fill_hw_ring(struct hns3_tx_queue *txq, @@ -69 +70 @@ -@@ -4297,19 +4328,6 @@ hns3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) +@@ -4283,19 +4314,6 @@ hns3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)