net/ice/base: init marker group table for parser
[dpdk.git] / drivers / net / ice / ice_rxtx_vec_common.h
index 942647f..2d8ef7d 100644 (file)
@@ -195,7 +195,7 @@ _ice_tx_queue_release_mbufs_vec(struct ice_tx_queue *txq)
        i = txq->tx_next_dd - txq->tx_rs_thresh + 1;
 
 #ifdef CC_AVX512_SUPPORT
-       struct rte_eth_dev *dev = txq->vsi->adapter->eth_dev;
+       struct rte_eth_dev *dev = &rte_eth_devices[txq->vsi->adapter->pf.dev_data->port_id];
 
        if (dev->tx_pkt_burst == ice_xmit_pkts_vec_avx512 ||
            dev->tx_pkt_burst == ice_xmit_pkts_vec_avx512_offload) {
@@ -247,6 +247,28 @@ ice_rxq_vec_setup_default(struct ice_rx_queue *rxq)
        return 0;
 }
 
+#define ICE_TX_NO_VECTOR_FLAGS (                       \
+               DEV_TX_OFFLOAD_MULTI_SEGS |             \
+               DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM |       \
+               DEV_TX_OFFLOAD_TCP_TSO)
+
+#define ICE_TX_VECTOR_OFFLOAD (                                \
+               DEV_TX_OFFLOAD_VLAN_INSERT |            \
+               DEV_TX_OFFLOAD_QINQ_INSERT |            \
+               DEV_TX_OFFLOAD_IPV4_CKSUM |             \
+               DEV_TX_OFFLOAD_SCTP_CKSUM |             \
+               DEV_TX_OFFLOAD_UDP_CKSUM |              \
+               DEV_TX_OFFLOAD_TCP_CKSUM)
+
+#define ICE_RX_VECTOR_OFFLOAD (                                \
+               DEV_RX_OFFLOAD_CHECKSUM |               \
+               DEV_RX_OFFLOAD_SCTP_CKSUM |             \
+               DEV_RX_OFFLOAD_VLAN |                   \
+               DEV_RX_OFFLOAD_RSS_HASH)
+
+#define ICE_VECTOR_PATH                0
+#define ICE_VECTOR_OFFLOAD_PATH        1
+
 static inline int
 ice_rx_vec_queue_default(struct ice_rx_queue *rxq)
 {
@@ -265,24 +287,11 @@ ice_rx_vec_queue_default(struct ice_rx_queue *rxq)
        if (rxq->proto_xtr != PROTO_XTR_NONE)
                return -1;
 
-       return 0;
-}
-
-#define ICE_TX_NO_VECTOR_FLAGS (                       \
-               DEV_TX_OFFLOAD_MULTI_SEGS |             \
-               DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM |       \
-               DEV_TX_OFFLOAD_TCP_TSO)
-
-#define ICE_TX_VECTOR_OFFLOAD (                                \
-               DEV_TX_OFFLOAD_VLAN_INSERT |            \
-               DEV_TX_OFFLOAD_QINQ_INSERT |            \
-               DEV_TX_OFFLOAD_IPV4_CKSUM |             \
-               DEV_TX_OFFLOAD_SCTP_CKSUM |             \
-               DEV_TX_OFFLOAD_UDP_CKSUM |              \
-               DEV_TX_OFFLOAD_TCP_CKSUM)
+       if (rxq->offloads & ICE_RX_VECTOR_OFFLOAD)
+               return ICE_VECTOR_OFFLOAD_PATH;
 
-#define ICE_VECTOR_PATH                0
-#define ICE_VECTOR_OFFLOAD_PATH        1
+       return ICE_VECTOR_PATH;
+}
 
 static inline int
 ice_tx_vec_queue_default(struct ice_tx_queue *txq)
@@ -308,14 +317,19 @@ ice_rx_vec_dev_check_default(struct rte_eth_dev *dev)
 {
        int i;
        struct ice_rx_queue *rxq;
+       int ret = 0;
+       int result = 0;
 
        for (i = 0; i < dev->data->nb_rx_queues; i++) {
                rxq = dev->data->rx_queues[i];
-               if (ice_rx_vec_queue_default(rxq))
+               ret = (ice_rx_vec_queue_default(rxq));
+               if (ret < 0)
                        return -1;
+               if (ret == ICE_VECTOR_OFFLOAD_PATH)
+                       result = ret;
        }
 
-       return 0;
+       return result;
 }
 
 static inline int