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