o-du/phy
Intel O-RAN/X-RAN Generated Doxygen Documentation
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
ethdi.h File Reference

This file has all definitions for the Ethernet Data Interface Layer. More...

#include <rte_config.h>
#include <rte_mbuf.h>
#include <rte_timer.h>
#include "ethernet.h"
#include "xran_fh_o_du.h"
Include dependency graph for ethdi.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  xran_io_loop_cfg
 
struct  xran_ethdi_ctx
 

Macros

#define XRAN_THREAD_DEFAULT_PRIO   (98)
 
#define PING_INTERVAL   300 /* (us) */
 
#define PING_BUSY_POLL   50 /* (us) how long to actively wait for response */
 
#define SLEEP_TIME   200 /* (us) */
 
#define BCAST   {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
 
#define TX_TIMER_INTERVAL   ((rte_get_timer_hz() / 1000000000L)*interval_us*1000) /* nanosec */
 
#define TX_RX_LOOP_TIME   rte_get_timer_hz() / 1
 

Typedefs

typedef int(* PROCESS_CB) (void *arg)
 
typedef int(* xran_ethdi_handler) (struct rte_mbuf *, int sender, uint64_t rx_time)
 
typedef int(* ethertype_handler) (struct rte_mbuf *, uint64_t rx_time)
 
typedef void() xran_ethdi_tx_callback(struct rte_timer *tim, void *arg)
 

Enumerations

enum  xran_ping_states { PING_IDLE, PING_NEEDED, AWAITING_PONG }
 
enum  xran_ethdi_vf_ports { ETHDI_UP_VF = 0, ETHDI_CP_VF, ETHDI_VF_MAX }
 
enum  xran_entities_id { ID_LLS_CU, ID_RU, ID_BROADCAST, ID_MAX }
 
enum  { MBUF_KEEP, MBUF_FREE }
 

Functions

int xran_register_ethertype_handler (uint16_t ethertype, ethertype_handler callback)
 
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)
 
struct rte_mbuf * xran_ethdi_mbuf_alloc (void)
 
int xran_ethdi_mbuf_send (struct rte_mbuf *mb, uint16_t ethertype)
 
int xran_ethdi_mbuf_send_cp (struct rte_mbuf *mb, uint16_t ethertype)
 
int xran_ethdi_filter_packet (struct rte_mbuf *pkt, uint64_t rx_time)
 
int32_t process_dpdk_io (void)
 

Variables

enum xran_if_state xran_if_current_state
 
uint8_t ping_dst_id
 
struct ether_addr entities_addrs []
 

Detailed Description

This file has all definitions for the Ethernet Data Interface Layer.

Author
Intel Corporation

Definition in file ethdi.h.

Macro Definition Documentation

◆ BCAST

#define BCAST   {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}

Definition at line 62 of file ethdi.h.

◆ PING_BUSY_POLL

#define PING_BUSY_POLL   50 /* (us) how long to actively wait for response */

Definition at line 56 of file ethdi.h.

◆ PING_INTERVAL

#define PING_INTERVAL   300 /* (us) */

Definition at line 55 of file ethdi.h.

◆ SLEEP_TIME

#define SLEEP_TIME   200 /* (us) */

Definition at line 61 of file ethdi.h.

◆ TX_RX_LOOP_TIME

#define TX_RX_LOOP_TIME   rte_get_timer_hz() / 1

Definition at line 65 of file ethdi.h.

◆ TX_TIMER_INTERVAL

#define TX_TIMER_INTERVAL   ((rte_get_timer_hz() / 1000000000L)*interval_us*1000) /* nanosec */

Definition at line 64 of file ethdi.h.

◆ XRAN_THREAD_DEFAULT_PRIO

#define XRAN_THREAD_DEFAULT_PRIO   (98)

Definition at line 52 of file ethdi.h.

Typedef Documentation

◆ ethertype_handler

typedef int(* ethertype_handler) (struct rte_mbuf *, uint64_t rx_time)

Definition at line 152 of file ethdi.h.

◆ PROCESS_CB

typedef int(* PROCESS_CB) (void *arg)

Definition at line 109 of file ethdi.h.

◆ xran_ethdi_handler

typedef int(* xran_ethdi_handler)(struct rte_mbuf *, int sender, uint64_t rx_time)

Definition at line 150 of file ethdi.h.

◆ xran_ethdi_tx_callback

typedef void() xran_ethdi_tx_callback(struct rte_timer *tim, void *arg)

Definition at line 154 of file ethdi.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MBUF_KEEP 
MBUF_FREE 

Definition at line 135 of file ethdi.h.

◆ xran_entities_id

Enumerator
ID_LLS_CU 
ID_RU 
ID_BROADCAST 
ID_MAX 

Definition at line 96 of file ethdi.h.

◆ xran_ethdi_vf_ports

Enumerator
ETHDI_UP_VF 
ETHDI_CP_VF 
ETHDI_VF_MAX 

Definition at line 74 of file ethdi.h.

◆ xran_ping_states

Enumerator
PING_IDLE 
PING_NEEDED 
AWAITING_PONG 

Definition at line 67 of file ethdi.h.

Function Documentation

◆ process_dpdk_io()

int32_t process_dpdk_io ( void  )

Definition at line 445 of file ethdi.c.

◆ xran_ethdi_filter_packet()

int xran_ethdi_filter_packet ( struct rte_mbuf *  pkt,
uint64_t  rx_time 
)

Definition at line 156 of file ethdi.c.

Here is the caller graph for this function:

◆ xran_ethdi_init_dpdk_io()

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 
)

Definition at line 288 of file ethdi.c.

Here is the caller graph for this function:

◆ xran_ethdi_mbuf_alloc()

struct rte_mbuf* xran_ethdi_mbuf_alloc ( void  )

Definition at line 77 of file ethdi.c.

Here is the caller graph for this function:

◆ xran_ethdi_mbuf_send()

int xran_ethdi_mbuf_send ( struct rte_mbuf *  mb,
uint16_t  ethertype 
)

Definition at line 82 of file ethdi.c.

◆ xran_ethdi_mbuf_send_cp()

int xran_ethdi_mbuf_send_cp ( struct rte_mbuf *  mb,
uint16_t  ethertype 
)

Definition at line 94 of file ethdi.c.

◆ xran_register_ethertype_handler()

int xran_register_ethertype_handler ( uint16_t  ethertype,
ethertype_handler  callback 
)

Definition at line 124 of file ethdi.c.

Here is the caller graph for this function:

Variable Documentation

◆ entities_addrs

struct ether_addr entities_addrs[]

◆ ping_dst_id

uint8_t ping_dst_id

◆ xran_if_current_state

enum xran_if_state xran_if_current_state

Definition at line 75 of file ethdi.c.