34 #include <rte_config.h> 36 #include <rte_timer.h> 43 #undef RTE_LIBRTE_PDUMP 45 #ifdef RTE_LIBRTE_PDUMP 46 #include <rte_pdump.h> 52 #define XRAN_THREAD_DEFAULT_PRIO (98) 55 #define PING_INTERVAL 300 56 #define PING_BUSY_POLL 50 61 #define SLEEP_TIME 200 62 #define BCAST {0xff, 0xff, 0xff, 0xff, 0xff, 0xff} 64 #define TX_TIMER_INTERVAL ((rte_get_timer_hz() / 1000000000L)*interval_us*1000) 65 #define TX_RX_LOOP_TIME rte_get_timer_hz() / 1 104 static char *
const entity_names[] = {
105 "xRAN lls-CU sim app",
122 struct rte_timer timer_autodetect;
123 struct rte_timer timer_ping;
124 struct rte_timer timer_sync;
125 struct rte_timer timer_tx;
161 int *lcore_id,
struct ether_addr *p_lls_cu_addr,
struct ether_addr *p_ru_addr,
162 uint16_t cp_vlan, uint16_t up_vlan);
167 void xran_ethdi_stop_tx(
void);
168 void xran_ethdi_ports_stats(
void);
169 int xran_ethdi_dpdk_io_loop(
void *);
int(* PROCESS_CB)(void *arg)
int32_t process_dpdk_io(void)
struct ether_addr entities_addrs[]
char * dpdk_dev[ETHDI_VF_MAX]
int(* ethertype_handler)(struct rte_mbuf *, uint64_t rx_time)
int xran_ethdi_filter_packet(struct rte_mbuf *pkt, uint64_t rx_time)
int xran_ethdi_mbuf_send(struct rte_mbuf *mb, uint16_t ethertype)
struct xran_ethdi_ctx g_ethdi_ctx
struct rte_mbuf * xran_ethdi_mbuf_alloc(void)
This file has all definitions for the Ethernet Data Interface Layer.
void() xran_ethdi_tx_callback(struct rte_timer *tim, void *arg)
enum xran_if_state xran_if_current_state
int xran_ethdi_init_dpdk_io(char *name, const struct xran_io_loop_cfg *io_cfg, int *lcore_id, struct ether_addr *p_lls_cu_addr, struct ether_addr *p_ru_addr, uint16_t cp_vlan, uint16_t up_vlan)
int xran_ethdi_mbuf_send_cp(struct rte_mbuf *mb, uint16_t ethertype)
This file provides public interface to xRAN Front Haul layer implementation as defined in the ORAN-WG...
int(* xran_ethdi_handler)(struct rte_mbuf *, int sender, uint64_t rx_time)
int xran_register_ethertype_handler(uint16_t ethertype, ethertype_handler callback)