xref: /dpdk/drivers/net/cxgbe/cxgbe_pfvf.h (revision ba6a168a06581b5b3d523f984722a3e5f65bbb82)
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