[PATCH v2 1/4] net/i40e: fix supported offloads for Rx vector path

Ciara Loftus ciara.loftus at intel.com
Tue Sep 2 12:48:56 CEST 2025


The set of supported Rx offloads in the vector path had been defined as
those supported by the scalar path. This was incorrect so define a new
list of supported offloads for the vector path. The list is the same
as the scalar path except it excludes vlan extend and qinq strip.

Also, remove a redundant check for the VLAN Extend offload in the
driver code. This check is now performed in the common rx path
selection code.

Fixes: 052ae311091c ("net/i40e: use the common Rx path selection infrastructure")

Signed-off-by: Ciara Loftus <ciara.loftus at intel.com>
---
 drivers/net/intel/i40e/i40e_rxtx.h            | 11 ++++++++++-
 drivers/net/intel/i40e/i40e_rxtx_vec_common.h |  6 ------
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/net/intel/i40e/i40e_rxtx.h b/drivers/net/intel/i40e/i40e_rxtx.h
index 5d5d4e08b0..1f210dfdff 100644
--- a/drivers/net/intel/i40e/i40e_rxtx.h
+++ b/drivers/net/intel/i40e/i40e_rxtx.h
@@ -80,7 +80,16 @@ enum i40e_header_split_mode {
 		RTE_ETH_RX_OFFLOAD_VLAN_FILTER |	\
 		RTE_ETH_RX_OFFLOAD_RSS_HASH)
 
-#define I40E_RX_VECTOR_OFFLOADS I40E_RX_SCALAR_OFFLOADS
+#define I40E_RX_VECTOR_OFFLOADS (			\
+		RTE_ETH_RX_OFFLOAD_VLAN_STRIP |		\
+		RTE_ETH_RX_OFFLOAD_IPV4_CKSUM |		\
+		RTE_ETH_RX_OFFLOAD_UDP_CKSUM |		\
+		RTE_ETH_RX_OFFLOAD_TCP_CKSUM |		\
+		RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM |	\
+		RTE_ETH_RX_OFFLOAD_KEEP_CRC |		\
+		RTE_ETH_RX_OFFLOAD_SCATTER |		\
+		RTE_ETH_RX_OFFLOAD_VLAN_FILTER |	\
+		RTE_ETH_RX_OFFLOAD_RSS_HASH)
 
 /** Offload features */
 union i40e_tx_offload {
diff --git a/drivers/net/intel/i40e/i40e_rxtx_vec_common.h b/drivers/net/intel/i40e/i40e_rxtx_vec_common.h
index e118df9ce0..39c9d2ee10 100644
--- a/drivers/net/intel/i40e/i40e_rxtx_vec_common.h
+++ b/drivers/net/intel/i40e/i40e_rxtx_vec_common.h
@@ -54,12 +54,6 @@ static inline int
 i40e_rx_vec_dev_conf_condition_check_default(struct rte_eth_dev *dev)
 {
 #ifndef RTE_LIBRTE_IEEE1588
-	struct rte_eth_rxmode *rxmode = &dev->data->dev_conf.rxmode;
-
-	/* no QinQ support */
-	if (rxmode->offloads & RTE_ETH_RX_OFFLOAD_VLAN_EXTEND)
-		return -1;
-
 	/**
 	 * Vector mode is allowed only when number of Rx queue
 	 * descriptor is power of 2.
-- 
2.34.1



More information about the dev mailing list