FD.io VPP  v21.10.1-2-g0a485f517
Vector Packet Processing
device.c File Reference
+ Include dependency graph for device.c:

Go to the source code of this file.

Macros

#define foreach_memif_tx_func_error
 

Enumerations

enum  memif_tx_func_error_t { MEMIF_TX_N_ERROR }
 

Functions

u8format_memif_device_name (u8 *s, va_list *args)
 
static u8format_memif_device (u8 *s, va_list *args)
 
static u8format_memif_tx_trace (u8 *s, va_list *args)
 
static_always_inline void memif_add_copy_op (memif_per_thread_data_t *ptd, void *data, u32 len, u16 buffer_offset, u16 buffer_vec_index)
 
static_always_inline uword memif_interface_tx_inline (vlib_main_t *vm, vlib_node_runtime_t *node, u32 *buffers, memif_if_t *mif, memif_ring_type_t type, memif_queue_t *mq, memif_per_thread_data_t *ptd, u32 n_left)
 
static_always_inline uword memif_interface_tx_zc_inline (vlib_main_t *vm, vlib_node_runtime_t *node, u32 *buffers, memif_if_t *mif, memif_queue_t *mq, memif_per_thread_data_t *ptd, u32 n_left)
 
VNET_DEVICE_CLASS_TX_FN() memif_device_class (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static void memif_set_interface_next_node (vnet_main_t *vnm, u32 hw_if_index, u32 node_index)
 
static void memif_clear_hw_interface_counters (u32 instance)
 
static clib_error_tmemif_interface_rx_mode_change (vnet_main_t *vnm, u32 hw_if_index, u32 qid, vnet_hw_if_rx_mode mode)
 
static clib_error_tmemif_subif_add_del_function (vnet_main_t *vnm, u32 hw_if_index, struct vnet_sw_interface_t *st, int is_add)
 
 VNET_DEVICE_CLASS (memif_device_class)
 

Variables

static vlib_error_desc_t memif_tx_func_error_counters []
 

Macro Definition Documentation

◆ foreach_memif_tx_func_error

#define foreach_memif_tx_func_error
Value:
_ (NO_FREE_SLOTS, no_free_slots, ERROR, "no free tx slots") \
_ (ROLLBACK, rollback, ERROR, "no enough space in tx buffers")

Definition at line 31 of file device.c.

Enumeration Type Documentation

◆ memif_tx_func_error_t

Enumerator
MEMIF_TX_N_ERROR 

Definition at line 35 of file device.c.

Function Documentation

◆ format_memif_device()

static u8* format_memif_device ( u8 s,
va_list *  args 
)
static

Definition at line 65 of file device.c.

+ Here is the call graph for this function:

◆ format_memif_device_name()

u8* format_memif_device_name ( u8 s,
va_list *  args 
)

Definition at line 51 of file device.c.

+ Here is the caller graph for this function:

◆ format_memif_tx_trace()

static u8* format_memif_tx_trace ( u8 s,
va_list *  args 
)
static

Definition at line 81 of file device.c.

◆ memif_add_copy_op()

static_always_inline void memif_add_copy_op ( memif_per_thread_data_t ptd,
void *  data,
u32  len,
u16  buffer_offset,
u16  buffer_vec_index 
)

Definition at line 88 of file device.c.

◆ memif_clear_hw_interface_counters()

static void memif_clear_hw_interface_counters ( u32  instance)
static

Definition at line 449 of file device.c.

◆ memif_device_class()

VNET_DEVICE_CLASS_TX_FN() memif_device_class ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)

Definition at line 372 of file device.c.

+ Here is the call graph for this function:

◆ memif_interface_rx_mode_change()

static clib_error_t* memif_interface_rx_mode_change ( vnet_main_t vnm,
u32  hw_if_index,
u32  qid,
vnet_hw_if_rx_mode  mode 
)
static

Definition at line 455 of file device.c.

+ Here is the call graph for this function:

◆ memif_interface_tx_inline()

static_always_inline uword memif_interface_tx_inline ( vlib_main_t vm,
vlib_node_runtime_t node,
u32 buffers,
memif_if_t mif,
memif_ring_type_t  type,
memif_queue_t mq,
memif_per_thread_data_t ptd,
u32  n_left 
)

Definition at line 100 of file device.c.

+ Here is the caller graph for this function:

◆ memif_interface_tx_zc_inline()

static_always_inline uword memif_interface_tx_zc_inline ( vlib_main_t vm,
vlib_node_runtime_t node,
u32 buffers,
memif_if_t mif,
memif_queue_t mq,
memif_per_thread_data_t ptd,
u32  n_left 
)

Definition at line 283 of file device.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ memif_set_interface_next_node()

static void memif_set_interface_next_node ( vnet_main_t vnm,
u32  hw_if_index,
u32  node_index 
)
static

Definition at line 430 of file device.c.

+ Here is the call graph for this function:

◆ memif_subif_add_del_function()

static clib_error_t* memif_subif_add_del_function ( vnet_main_t vnm,
u32  hw_if_index,
struct vnet_sw_interface_t st,
int  is_add 
)
static

Definition at line 472 of file device.c.

◆ VNET_DEVICE_CLASS()

VNET_DEVICE_CLASS ( memif_device_class  )

Variable Documentation

◆ memif_tx_func_error_counters

vlib_error_desc_t memif_tx_func_error_counters[]
static
Initial value:
= {
#define _(f, n, s, d)
}

Definition at line 43 of file device.c.

foreach_memif_tx_func_error
#define foreach_memif_tx_func_error
Definition: device.c:31