ethdev: add namespace
[dpdk.git] / drivers / net / i40e / i40e_rxtx.h
index 2106bb3..5e6eecc 100644 (file)
@@ -24,6 +24,9 @@
 #define        I40E_MIN_RING_DESC      64
 #define        I40E_MAX_RING_DESC      4096
 
+#define I40E_FDIR_NUM_TX_DESC   (I40E_FDIR_PRG_PKT_CNT << 1)
+#define I40E_FDIR_NUM_RX_DESC   (I40E_FDIR_PRG_PKT_CNT << 1)
+
 #define I40E_MIN_TSO_MSS          256
 #define I40E_MAX_TSO_MSS          9674
 
@@ -117,7 +120,8 @@ struct i40e_rx_queue {
        bool rx_deferred_start; /**< don't start this queue in dev start */
        uint16_t rx_using_sse; /**<flag indicate the usage of vPMD for rx */
        uint8_t dcb_tc;         /**< Traffic class of rx queue */
-       uint64_t offloads; /**< Rx offload flags of DEV_RX_OFFLOAD_* */
+       uint64_t offloads; /**< Rx offload flags of RTE_ETH_RX_OFFLOAD_* */
+       const struct rte_memzone *mz;
 };
 
 struct i40e_tx_entry {
@@ -126,6 +130,10 @@ struct i40e_tx_entry {
        uint16_t last_id;
 };
 
+struct i40e_vec_tx_entry {
+       struct rte_mbuf *mbuf;
+};
+
 /*
  * Structure associated with each TX queue.
  */
@@ -158,7 +166,8 @@ struct i40e_tx_queue {
        bool q_set; /**< indicate if tx queue has been configured */
        bool tx_deferred_start; /**< don't start this queue in dev start */
        uint8_t dcb_tc;         /**< Traffic class of tx queue */
-       uint64_t offloads; /**< Tx offload flags of DEV_RX_OFFLOAD_* */
+       uint64_t offloads; /**< Tx offload flags of RTE_ETH_RX_OFFLOAD_* */
+       const struct rte_memzone *mz;
 };
 
 /** Offload features */
@@ -190,8 +199,10 @@ int i40e_dev_tx_queue_setup(struct rte_eth_dev *dev,
                            uint16_t nb_desc,
                            unsigned int socket_id,
                            const struct rte_eth_txconf *tx_conf);
-void i40e_dev_rx_queue_release(void *rxq);
-void i40e_dev_tx_queue_release(void *txq);
+void i40e_rx_queue_release(void *rxq);
+void i40e_tx_queue_release(void *txq);
+void i40e_dev_rx_queue_release(struct rte_eth_dev *dev, uint16_t qid);
+void i40e_dev_tx_queue_release(struct rte_eth_dev *dev, uint16_t qid);
 uint16_t i40e_recv_pkts(void *rx_queue,
                        struct rte_mbuf **rx_pkts,
                        uint16_t nb_pkts);
@@ -201,6 +212,8 @@ uint16_t i40e_recv_scattered_pkts(void *rx_queue,
 uint16_t i40e_xmit_pkts(void *tx_queue,
                        struct rte_mbuf **tx_pkts,
                        uint16_t nb_pkts);
+uint16_t i40e_simple_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+                              uint16_t nb_pkts);
 uint16_t i40e_prep_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
                uint16_t nb_pkts);
 int i40e_tx_queue_init(struct i40e_tx_queue *txq);
@@ -212,12 +225,11 @@ void i40e_dev_free_queues(struct rte_eth_dev *dev);
 void i40e_reset_rx_queue(struct i40e_rx_queue *rxq);
 void i40e_reset_tx_queue(struct i40e_tx_queue *txq);
 void i40e_tx_queue_release_mbufs(struct i40e_tx_queue *txq);
+int i40e_tx_done_cleanup(void *txq, uint32_t free_cnt);
 int i40e_alloc_rx_queue_mbufs(struct i40e_rx_queue *rxq);
 void i40e_rx_queue_release_mbufs(struct i40e_rx_queue *rxq);
 
-uint32_t i40e_dev_rx_queue_count(struct rte_eth_dev *dev,
-                                uint16_t rx_queue_id);
-int i40e_dev_rx_descriptor_done(void *rx_queue, uint16_t offset);
+uint32_t i40e_dev_rx_queue_count(void *rx_queue);
 int i40e_dev_rx_descriptor_status(void *rx_queue, uint16_t offset);
 int i40e_dev_tx_descriptor_status(void *tx_queue, uint16_t offset);
 
@@ -244,6 +256,16 @@ uint16_t i40e_recv_scattered_pkts_vec_avx2(void *rx_queue,
        struct rte_mbuf **rx_pkts, uint16_t nb_pkts);
 uint16_t i40e_xmit_pkts_vec_avx2(void *tx_queue, struct rte_mbuf **tx_pkts,
        uint16_t nb_pkts);
+int i40e_get_monitor_addr(void *rx_queue, struct rte_power_monitor_cond *pmc);
+uint16_t i40e_recv_pkts_vec_avx512(void *rx_queue,
+                                  struct rte_mbuf **rx_pkts,
+                                  uint16_t nb_pkts);
+uint16_t i40e_recv_scattered_pkts_vec_avx512(void *rx_queue,
+                                            struct rte_mbuf **rx_pkts,
+                                            uint16_t nb_pkts);
+uint16_t i40e_xmit_pkts_vec_avx512(void *tx_queue,
+                                  struct rte_mbuf **tx_pkts,
+                                  uint16_t nb_pkts);
 
 /* For each value it means, datasheet of hardware can tell more details
  *