i40e: support DCB mode
[dpdk.git] / drivers / net / i40e / i40e_rxtx.h
index 6dea402..c35828c 100644 (file)
@@ -132,6 +132,8 @@ struct i40e_rx_queue {
        uint8_t hs_mode; /* Header Split mode */
        bool q_set; /**< indicate if rx queue has been configured */
        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 */
 };
 
 struct i40e_tx_entry {
@@ -172,6 +174,7 @@ struct i40e_tx_queue {
        uint16_t tx_next_rs;
        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 */
 };
 
 /** Offload features */
@@ -231,10 +234,18 @@ int i40e_dev_rx_descriptor_done(void *rx_queue, uint16_t offset);
 
 uint16_t i40e_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
                            uint16_t nb_pkts);
+uint16_t i40e_recv_scattered_pkts_vec(void *rx_queue,
+                                     struct rte_mbuf **rx_pkts,
+                                     uint16_t nb_pkts);
+int i40e_rx_vec_dev_conf_condition_check(struct rte_eth_dev *dev);
 int i40e_rxq_vec_setup(struct i40e_rx_queue *rxq);
 int i40e_txq_vec_setup(struct i40e_tx_queue *txq);
 void i40e_rx_queue_release_mbufs_vec(struct i40e_rx_queue *rxq);
 uint16_t i40e_xmit_pkts_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
                            uint16_t nb_pkts);
+void i40e_set_rx_function(struct rte_eth_dev *dev);
+void i40e_set_tx_function_flag(struct rte_eth_dev *dev,
+                              struct i40e_tx_queue *txq);
+void i40e_set_tx_function(struct rte_eth_dev *dev);
 
 #endif /* _I40E_RXTX_H_ */