o-du/phy
Intel O-RAN/X-RAN Generated Doxygen Documentation
Macros | Functions | Variables
ethdi.c File Reference

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

#include <stdio.h>
#include <string.h>
#include <stdint.h>
#include <errno.h>
#include <sys/queue.h>
#include <err.h>
#include <assert.h>
#include <linux/limits.h>
#include <sys/types.h>
#include <stdlib.h>
#include <sys/time.h>
#include <time.h>
#include <unistd.h>
#include <rte_config.h>
#include <rte_common.h>
#include <rte_log.h>
#include <rte_memory.h>
#include <rte_memcpy.h>
#include <rte_memzone.h>
#include <rte_eal.h>
#include <rte_per_lcore.h>
#include <rte_launch.h>
#include <rte_atomic.h>
#include <rte_cycles.h>
#include <rte_prefetch.h>
#include <rte_lcore.h>
#include <rte_branch_prediction.h>
#include <rte_interrupts.h>
#include <rte_pci.h>
#include <rte_debug.h>
#include <rte_ethdev.h>
#include <rte_ring.h>
#include <rte_mbuf.h>
#include <rte_timer.h>
#include "ethernet.h"
#include "ethdi.h"
#include "xran_fh_o_du.h"
#include "xran_mlog_lnx.h"
#include "xran_printf.h"
#include "../src/xran_lib_mlog_tasks_id.h"
Include dependency graph for ethdi.c:

Go to the source code of this file.

Macros

#define _GNU_SOURCE
 
#define BURST_RX_IO_SIZE   48
 
#define CHECK_INTERVAL   100 /* 100ms */
 
#define MAX_CHECK_TIME   90 /* 9s (90 * 100ms) in total */
 

Functions

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_register_ethertype_handler (uint16_t ethertype, ethertype_handler callback)
 
int xran_handle_ether (uint16_t ethertype, struct rte_mbuf *pkt, uint64_t rx_time)
 
int xran_ethdi_filter_packet (struct rte_mbuf *pkt, uint64_t rx_time)
 
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)
 
int32_t process_dpdk_io (void)
 

Variables

struct xran_ethdi_ctx g_ethdi_ctx = { 0 }
 
enum xran_if_state xran_if_current_state = XRAN_STOPPED
 
struct {
   uint16_t   ethertype
 
   ethertype_handler   fn
 
xran_ethertype_handlers []
 

Detailed Description

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

Author
Intel Corporation

Definition in file ethdi.c.

Macro Definition Documentation

◆ _GNU_SOURCE

#define _GNU_SOURCE

Definition at line 26 of file ethdi.c.

◆ BURST_RX_IO_SIZE

#define BURST_RX_IO_SIZE   48

Definition at line 72 of file ethdi.c.

◆ CHECK_INTERVAL

#define CHECK_INTERVAL   100 /* 100ms */

◆ MAX_CHECK_TIME

#define MAX_CHECK_TIME   90 /* 9s (90 * 100ms) in total */

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_handle_ether()

int xran_handle_ether ( uint16_t  ethertype,
struct rte_mbuf *  pkt,
uint64_t  rx_time 
)

Definition at line 140 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

◆ ethertype

uint16_t ethertype

Definition at line 114 of file ethdi.c.

◆ fn

Definition at line 115 of file ethdi.c.

◆ g_ethdi_ctx

struct xran_ethdi_ctx g_ethdi_ctx = { 0 }

Definition at line 74 of file ethdi.c.

◆ xran_ethertype_handlers

struct { ... } xran_ethertype_handlers[]
Initial value:
= {
{ ETHER_TYPE_ETHDI, NULL },
{ ETHER_TYPE_ECPRI, NULL },
}
#define ETHER_TYPE_ECPRI
Definition: ethernet.h:42
#define ETHER_TYPE_START_TX
Definition: ethernet.h:44
#define ETHER_TYPE_ETHDI
Definition: ethernet.h:41

◆ xran_if_current_state

enum xran_if_state xran_if_current_state = XRAN_STOPPED

Definition at line 75 of file ethdi.c.