xref: /dpdk/drivers/net/sfc/sfc_repr_proxy_api.h (revision ef96f7eb4cce942d5a10de0c8ceab21ebe7d17c3)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  *
3  * Copyright(c) 2019-2021 Xilinx, Inc.
4  * Copyright(c) 2019 Solarflare Communications Inc.
5  *
6  * This software was jointly developed between OKTET Labs (under contract
7  * for Solarflare) and Solarflare Communications, Inc.
8  */
9 
10 #ifndef _SFC_REPR_PROXY_API_H
11 #define _SFC_REPR_PROXY_API_H
12 
13 #include <stdint.h>
14 
15 #include <rte_ring.h>
16 #include <rte_mempool.h>
17 
18 #include "efx.h"
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 int sfc_repr_proxy_add_port(uint16_t pf_port_id, uint16_t repr_id,
25 			    uint16_t rte_port_id,
26 			    const efx_mport_sel_t *mport_sel,
27 			    efx_pcie_interface_t intf, uint16_t pf,
28 			    uint16_t vf);
29 int sfc_repr_proxy_del_port(uint16_t pf_port_id, uint16_t repr_id);
30 
31 int sfc_repr_proxy_add_rxq(uint16_t pf_port_id, uint16_t repr_id,
32 			   uint16_t queue_id, struct rte_ring *rx_ring,
33 			   struct rte_mempool *mp);
34 void sfc_repr_proxy_del_rxq(uint16_t pf_port_id, uint16_t repr_id,
35 			    uint16_t queue_id);
36 
37 int sfc_repr_proxy_add_txq(uint16_t pf_port_id, uint16_t repr_id,
38 			   uint16_t queue_id, struct rte_ring *tx_ring,
39 			   efx_mport_id_t *egress_mport);
40 void sfc_repr_proxy_del_txq(uint16_t pf_port_id, uint16_t repr_id,
41 			    uint16_t queue_id);
42 
43 int sfc_repr_proxy_start_repr(uint16_t pf_port_id, uint16_t repr_id);
44 int sfc_repr_proxy_stop_repr(uint16_t pf_port_id, uint16_t repr_id);
45 
46 int sfc_repr_proxy_repr_entity_mac_addr_set(uint16_t pf_port_id,
47 		uint16_t repr_id, const struct rte_ether_addr *mac_addr);
48 
49 void sfc_repr_proxy_mport_alias_get(uint16_t pf_port_id,
50 				    efx_mport_id_t *mport_alias);
51 
52 #ifdef __cplusplus
53 }
54 #endif
55 #endif  /* _SFC_REPR_PROXY_API_H */
56