> 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: [email protected]
> 
> Signed-off-by: Bruce Richardson <[email protected]>

Acked-by: Ciara Loftus <[email protected]>

> ---
>  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

Reply via email to