1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2018 Chelsio Communications. 3 * All rights reserved. 4 */ 5 6 #ifndef _CXGBE_PFVF_H_ 7 #define _CXGBE_PFVF_H_ 8 9 #define CXGBE_FW_PARAM_DEV(param) \ 10 (V_FW_PARAMS_MNEM(FW_PARAMS_MNEM_DEV) | \ 11 V_FW_PARAMS_PARAM_X(FW_PARAMS_PARAM_DEV_##param)) 12 13 #define CXGBE_FW_PARAM_PFVF(param) \ 14 (V_FW_PARAMS_MNEM(FW_PARAMS_MNEM_PFVF) | \ 15 V_FW_PARAMS_PARAM_X(FW_PARAMS_PARAM_PFVF_##param) | \ 16 V_FW_PARAMS_PARAM_Y(0) | \ 17 V_FW_PARAMS_PARAM_Z(0)) 18 19 void cxgbe_dev_rx_queue_release(struct rte_eth_dev *eth_dev, uint16_t qid); 20 void cxgbe_dev_tx_queue_release(struct rte_eth_dev *eth_dev, uint16_t qid); 21 int cxgbe_dev_stop(struct rte_eth_dev *eth_dev); 22 int cxgbe_dev_close(struct rte_eth_dev *eth_dev); 23 int cxgbe_dev_info_get(struct rte_eth_dev *eth_dev, 24 struct rte_eth_dev_info *device_info); 25 int cxgbe_dev_promiscuous_enable(struct rte_eth_dev *eth_dev); 26 int cxgbe_dev_promiscuous_disable(struct rte_eth_dev *eth_dev); 27 int cxgbe_dev_allmulticast_enable(struct rte_eth_dev *eth_dev); 28 int cxgbe_dev_allmulticast_disable(struct rte_eth_dev *eth_dev); 29 int cxgbe_mac_addr_set(struct rte_eth_dev *dev, struct rte_ether_addr *addr); 30 int cxgbe_dev_configure(struct rte_eth_dev *eth_dev); 31 int cxgbe_dev_tx_queue_setup(struct rte_eth_dev *eth_dev, uint16_t queue_idx, 32 uint16_t nb_desc, unsigned int socket_id, 33 const struct rte_eth_txconf *tx_conf); 34 int cxgbe_dev_rx_queue_setup(struct rte_eth_dev *eth_dev, uint16_t queue_idx, 35 uint16_t nb_desc, unsigned int socket_id, 36 const struct rte_eth_rxconf *rx_conf, 37 struct rte_mempool *mp); 38 int cxgbe_dev_tx_queue_start(struct rte_eth_dev *eth_dev, 39 uint16_t tx_queue_id); 40 int cxgbe_dev_rx_queue_start(struct rte_eth_dev *eth_dev, 41 uint16_t tx_queue_id); 42 int cxgbe_dev_tx_queue_stop(struct rte_eth_dev *eth_dev, uint16_t tx_queue_id); 43 int cxgbe_dev_rx_queue_stop(struct rte_eth_dev *eth_dev, uint16_t rx_queue_id); 44 int cxgbe_dev_mtu_set(struct rte_eth_dev *eth_dev, uint16_t mtu); 45 int cxgbe_dev_start(struct rte_eth_dev *eth_dev); 46 int cxgbe_dev_link_update(struct rte_eth_dev *eth_dev, 47 int wait_to_complete); 48 int cxgbe_dev_set_link_up(struct rte_eth_dev *dev); 49 int cxgbe_dev_set_link_down(struct rte_eth_dev *dev); 50 uint16_t cxgbe_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, 51 uint16_t nb_pkts); 52 uint16_t cxgbe_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, 53 uint16_t nb_pkts); 54 const uint32_t *cxgbe_dev_supported_ptypes_get(struct rte_eth_dev *eth_dev, 55 size_t *no_of_elements); 56 int cxgbe_dev_xstats_get_by_id(struct rte_eth_dev *dev, 57 const uint64_t *ids, uint64_t *values, 58 unsigned int n); 59 int cxgbe_dev_xstats_get_names_by_id(struct rte_eth_dev *dev, 60 const uint64_t *ids, 61 struct rte_eth_xstat_name *xnames, 62 unsigned int n); 63 int cxgbe_dev_xstats_get_names(struct rte_eth_dev *dev, 64 struct rte_eth_xstat_name *xstats_names, 65 unsigned int n); 66 int cxgbe_dev_xstats_get(struct rte_eth_dev *dev, 67 struct rte_eth_xstat *xstats, unsigned int n); 68 int cxgbe_fw_version_get(struct rte_eth_dev *dev, char *fw_version, 69 size_t fw_size); 70 #endif /* _CXGBE_PFVF_H_ */ 71