FD.io VPP  v18.01.2-1-g9b554f3
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 __clib_unused u8format_memif_device (u8 *s, va_list *args)
 
static __clib_unused u8format_memif_tx_trace (u8 *s, va_list *args)
 
static_always_inline void memif_prefetch_buffer_and_data (vlib_main_t *vm, u32 bi)
 
static_always_inline void memif_copy_buffer_to_tx_ring (vlib_main_t *vm, vlib_node_runtime_t *node, memif_if_t *mif, u32 bi, memif_ring_t *ring, u16 *head, u16 mask)
 Copy buffer to tx ring. More...
 
static_always_inline uword memif_interface_tx_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, memif_if_t *mif, memif_ring_type_t type)
 
uword CLIB_MULTIARCH_FN() memif_interface_tx (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static __clib_unused void memif_set_interface_next_node (vnet_main_t *vnm, u32 hw_if_index, u32 node_index)
 
static __clib_unused void memif_clear_hw_interface_counters (u32 instance)
 
static __clib_unused clib_error_tmemif_interface_rx_mode_change (vnet_main_t *vnm, u32 hw_if_index, u32 qid, vnet_hw_interface_rx_mode mode)
 
static __clib_unused clib_error_tmemif_interface_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags)
 
static __clib_unused 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)
 
static void __clib_constructor dpdk_interface_tx_multiarch_select (void)
 

Variables

static __clib_unused char * memif_tx_func_error_strings []
 
vlib_node_function_t __clib_weak memif_interface_tx_avx512
 
vlib_node_function_t __clib_weak memif_interface_tx_avx2
 

Macro Definition Documentation

#define foreach_memif_tx_func_error
Value:
_(NO_FREE_SLOTS, "no free tx slots") \
_(TRUNC_PACKET, "packet > buffer size -- truncated in tx ring") \
_(PENDING_MSGS, "pending msgs in tx ring")

Definition at line 31 of file device.c.

Enumeration Type Documentation

Enumerator
MEMIF_TX_N_ERROR 

Definition at line 36 of file device.c.

Function Documentation

static void __clib_constructor dpdk_interface_tx_multiarch_select ( void  )
static

Definition at line 359 of file device.c.

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

Definition at line 64 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_memif_device_name ( u8 s,
va_list *  args 
)

Definition at line 52 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 80 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static __clib_unused void memif_clear_hw_interface_counters ( u32  instance)
static

Definition at line 291 of file device.c.

+ Here is the caller graph for this function:

static_always_inline void memif_copy_buffer_to_tx_ring ( vlib_main_t vm,
vlib_node_runtime_t node,
memif_if_t mif,
u32  bi,
memif_ring_t ring,
u16 head,
u16  mask 
)

Copy buffer to tx ring.

Parameters
*vm (in)
*node (in)
*mif (in) pointer to memif interface
bi(in) vlib buffer index
*ring (in) pointer to memif ring
*head (in/out) ring head
mask(in) ring size - 1

Definition at line 106 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static __clib_unused clib_error_t* memif_interface_admin_up_down ( vnet_main_t vnm,
u32  hw_if_index,
u32  flags 
)
static

Definition at line 314 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 297 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uword CLIB_MULTIARCH_FN() memif_interface_tx ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)

Definition at line 257 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline uword memif_interface_tx_inline ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame,
memif_if_t mif,
memif_ring_type_t  type 
)

Definition at line 161 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline void memif_prefetch_buffer_and_data ( vlib_main_t vm,
u32  bi 
)

Definition at line 87 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 272 of file device.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static __clib_unused 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 330 of file device.c.

+ Here is the call graph for this function:

VNET_DEVICE_CLASS ( memif_device_class  )

Variable Documentation

vlib_node_function_t __clib_weak memif_interface_tx_avx2

Definition at line 357 of file device.c.

vlib_node_function_t __clib_weak memif_interface_tx_avx512

Definition at line 356 of file device.c.

__clib_unused char* memif_tx_func_error_strings[]
static
Initial value:
= {
#define _(n,s)
}
#define foreach_memif_tx_func_error
Definition: device.c:31

Definition at line 44 of file device.c.