1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2020 Intel Corporation 3 */ 4 5 #ifndef _IGC_TXRX_H_ 6 #define _IGC_TXRX_H_ 7 8 #include "igc_ethdev.h" 9 10 #ifdef __cplusplus 11 extern "C" { 12 #endif 13 14 /* 15 * RX/TX function prototypes 16 */ 17 void eth_igc_tx_queue_release(struct rte_eth_dev *dev, uint16_t qid); 18 void eth_igc_rx_queue_release(struct rte_eth_dev *dev, uint16_t qid); 19 void igc_dev_clear_queues(struct rte_eth_dev *dev); 20 int eth_igc_rx_queue_setup(struct rte_eth_dev *dev, uint16_t rx_queue_id, 21 uint16_t nb_rx_desc, unsigned int socket_id, 22 const struct rte_eth_rxconf *rx_conf, 23 struct rte_mempool *mb_pool); 24 25 uint32_t eth_igc_rx_queue_count(void *rx_queue); 26 27 int eth_igc_rx_descriptor_status(void *rx_queue, uint16_t offset); 28 29 int eth_igc_tx_descriptor_status(void *tx_queue, uint16_t offset); 30 31 int eth_igc_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, 32 uint16_t nb_desc, unsigned int socket_id, 33 const struct rte_eth_txconf *tx_conf); 34 int eth_igc_tx_done_cleanup(void *txqueue, uint32_t free_cnt); 35 36 int igc_rx_init(struct rte_eth_dev *dev); 37 void igc_tx_init(struct rte_eth_dev *dev); 38 void igc_rss_disable(struct rte_eth_dev *dev); 39 void 40 igc_hw_rss_hash_set(struct igc_hw *hw, struct rte_eth_rss_conf *rss_conf); 41 int igc_del_rss_filter(struct rte_eth_dev *dev); 42 void igc_rss_conf_set(struct igc_rss_filter *out, 43 const struct rte_flow_action_rss *rss); 44 int igc_add_rss_filter(struct rte_eth_dev *dev, struct igc_rss_filter *rss); 45 void igc_clear_rss_filter(struct rte_eth_dev *dev); 46 void eth_igc_rxq_info_get(struct rte_eth_dev *dev, uint16_t queue_id, 47 struct rte_eth_rxq_info *qinfo); 48 void eth_igc_txq_info_get(struct rte_eth_dev *dev, uint16_t queue_id, 49 struct rte_eth_txq_info *qinfo); 50 void eth_igc_vlan_strip_queue_set(struct rte_eth_dev *dev, 51 uint16_t rx_queue_id, int on); 52 #ifdef __cplusplus 53 } 54 #endif 55 56 #endif /* _IGC_TXRX_H_ */ 57