patch 'net/ice: fix path selection for QinQ Tx offload' has been queued to stable release 23.11.6
Shani Peretz
shperetz at nvidia.com
Thu Dec 25 10:18:37 CET 2025
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/30/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/13c0e5bacbe088bc8912073660e6b6903731c34b
Thanks.
Shani
---
>From 13c0e5bacbe088bc8912073660e6b6903731c34b Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson at intel.com>
Date: Wed, 12 Nov 2025 11:57:26 +0000
Subject: [PATCH] net/ice: fix path selection for QinQ Tx offload
[ upstream commit 61ccab85e3972d6e3ee61b3e6a6a6872a33e5ac3 ]
The capabilities flag for the vector offload path include the QinQ
offload capability, but in fact the offload path lacks any ability to
create context descriptors. This means that it cannot insert multiple
vlan tags for QinQ support, so move the offload from the VECTOR_OFFLOAD
list to the NO_VECTOR list. Similarly, remove any check for the QinQ
mbuf flag in any packets being transmitted, since that offload is
invalid to request if the feature is not enabled.
Fixes: 808a17b3c1e6 ("net/ice: add Rx AVX512 offload path")
Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
Acked-by: Ciara Loftus <ciara.loftus at intel.com>
---
drivers/net/ice/ice_rxtx_vec_common.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ice/ice_rxtx_vec_common.h b/drivers/net/ice/ice_rxtx_vec_common.h
index d745eda567..fa6db8f44f 100644
--- a/drivers/net/ice/ice_rxtx_vec_common.h
+++ b/drivers/net/ice/ice_rxtx_vec_common.h
@@ -249,6 +249,7 @@ ice_rxq_vec_setup_default(struct ice_rx_queue *rxq)
#define ICE_TX_NO_VECTOR_FLAGS ( \
RTE_ETH_TX_OFFLOAD_MULTI_SEGS | \
+ RTE_ETH_TX_OFFLOAD_QINQ_INSERT | \
RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM | \
RTE_ETH_TX_OFFLOAD_TCP_TSO | \
RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO | \
@@ -259,7 +260,6 @@ ice_rxq_vec_setup_default(struct ice_rx_queue *rxq)
#define ICE_TX_VECTOR_OFFLOAD ( \
RTE_ETH_TX_OFFLOAD_VLAN_INSERT | \
- RTE_ETH_TX_OFFLOAD_QINQ_INSERT | \
RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | \
RTE_ETH_TX_OFFLOAD_SCTP_CKSUM | \
RTE_ETH_TX_OFFLOAD_UDP_CKSUM | \
@@ -415,8 +415,8 @@ ice_txd_enable_offload(struct rte_mbuf *tx_pkt,
*txd_hi |= ((uint64_t)td_offset) << ICE_TXD_QW1_OFFSET_S;
- /* Tx VLAN/QINQ insertion Offload */
- if (ol_flags & (RTE_MBUF_F_TX_VLAN | RTE_MBUF_F_TX_QINQ)) {
+ /* Tx VLAN insertion Offload */
+ if (ol_flags & RTE_MBUF_F_TX_VLAN) {
td_cmd |= ICE_TX_DESC_CMD_IL2TAG1;
*txd_hi |= ((uint64_t)tx_pkt->vlan_tci <<
ICE_TXD_QW1_L2TAG1_S);
--
2.43.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-12-25 11:16:40.128424489 +0200
+++ 0076-net-ice-fix-path-selection-for-QinQ-Tx-offload.patch 2025-12-25 11:16:36.110780000 +0200
@@ -1 +1 @@
-From 61ccab85e3972d6e3ee61b3e6a6a6872a33e5ac3 Mon Sep 17 00:00:00 2001
+From 13c0e5bacbe088bc8912073660e6b6903731c34b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 61ccab85e3972d6e3ee61b3e6a6a6872a33e5ac3 ]
+
@@ -15 +16,0 @@
-Cc: stable at dpdk.org
@@ -20 +21 @@
- drivers/net/intel/ice/ice_rxtx_vec_common.h | 6 +++---
+ drivers/net/ice/ice_rxtx_vec_common.h | 6 +++---
@@ -23,5 +24,5 @@
-diff --git a/drivers/net/intel/ice/ice_rxtx_vec_common.h b/drivers/net/intel/ice/ice_rxtx_vec_common.h
-index a24694c0b1..39581cb7ae 100644
---- a/drivers/net/intel/ice/ice_rxtx_vec_common.h
-+++ b/drivers/net/intel/ice/ice_rxtx_vec_common.h
-@@ -53,6 +53,7 @@ _ice_rx_queue_release_mbufs_vec(struct ci_rx_queue *rxq)
+diff --git a/drivers/net/ice/ice_rxtx_vec_common.h b/drivers/net/ice/ice_rxtx_vec_common.h
+index d745eda567..fa6db8f44f 100644
+--- a/drivers/net/ice/ice_rxtx_vec_common.h
++++ b/drivers/net/ice/ice_rxtx_vec_common.h
+@@ -249,6 +249,7 @@ ice_rxq_vec_setup_default(struct ice_rx_queue *rxq)
@@ -35 +36 @@
-@@ -64,7 +65,6 @@ _ice_rx_queue_release_mbufs_vec(struct ci_rx_queue *rxq)
+@@ -259,7 +260,6 @@ ice_rxq_vec_setup_default(struct ice_rx_queue *rxq)
@@ -43 +44 @@
-@@ -195,8 +195,8 @@ ice_txd_enable_offload(struct rte_mbuf *tx_pkt,
+@@ -415,8 +415,8 @@ ice_txd_enable_offload(struct rte_mbuf *tx_pkt,
More information about the stable
mailing list