[PATCH] net/ice: fix path selection for QinQ Tx offload
Loftus, Ciara
ciara.loftus at intel.com
Wed Nov 12 14:46:58 CET 2025
> Subject: [PATCH] net/ice: fix path selection for QinQ Tx offload
>
> 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")
> Cc: stable at dpdk.org
>
> Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
Acked-by: Ciara Loftus <ciara.loftus at intel.com>
> ---
> drivers/net/intel/ice/ice_rxtx_vec_common.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/intel/ice/ice_rxtx_vec_common.h
> b/drivers/net/intel/ice/ice_rxtx_vec_common.h
> index a7cc4736cf..62047e9f2f 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)
>
> #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 | \
> @@ -63,7 +64,6 @@ _ice_rx_queue_release_mbufs_vec(struct ci_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 | \
> @@ -194,8 +194,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.48.1
More information about the dev
mailing list