FD.io VPP  v18.04-17-g3a0d853
Vector Packet Processing
node.c File Reference
+ Include dependency graph for node.c:

Go to the source code of this file.

Data Structures

struct  memif_input_trace_t
 

Macros

#define foreach_memif_input_error
 

Enumerations

enum  memif_input_error_t { MEMIF_INPUT_N_ERROR }
 

Functions

static __clib_unused u8format_memif_input_trace (u8 *s, va_list *args)
 
static_always_inline u32 memif_next_from_ip_hdr (vlib_node_runtime_t *node, vlib_buffer_t *b)
 
static_always_inline void memif_trace_buffer (vlib_main_t *vm, vlib_node_runtime_t *node, memif_if_t *mif, vlib_buffer_t *b, u32 next, u16 qid, uword *n_tracep)
 
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 void memif_add_to_chain (vlib_main_t *vm, vlib_buffer_t *b, u32 *buffers, u32 buffer_size)
 
static_always_inline u32 sat_sub (u32 x, u32 y)
 
static_always_inline u32 memif_desc_is_invalid (memif_if_t *mif, memif_desc_t *d, u32 buffer_length)
 
static_always_inline uword memif_device_input_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, memif_if_t *mif, memif_ring_type_t type, u16 qid, memif_interface_mode_t mode)
 
static_always_inline uword memif_device_input_zc_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, memif_if_t *mif, u16 qid, memif_interface_mode_t mode)
 
uword CLIB_MULTIARCH_FN() memif_input_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static void __clib_constructor memif_input_multiarch_select (void)
 

Variables

static __clib_unused char * memif_input_error_strings []
 
vlib_node_registration_t memif_input_node
 (constructor) VLIB_REGISTER_NODE (memif_input_node) More...
 
vlib_node_function_t __clib_weak memif_input_fn_avx512
 
vlib_node_function_t __clib_weak memif_input_fn_avx2
 

Macro Definition Documentation

#define foreach_memif_input_error
Value:
_(BUFFER_ALLOC_FAIL, "buffer allocation failed") \
_(NOT_IP, "not ip packet")

Definition at line 33 of file node.c.

Enumeration Type Documentation

Enumerator
MEMIF_INPUT_N_ERROR 

Definition at line 37 of file node.c.

Function Documentation

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

Definition at line 59 of file node.c.

+ Here is the call graph for this function:

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 108 of file node.c.

+ Here is the caller graph for this function:

static_always_inline void memif_add_to_chain ( vlib_main_t vm,
vlib_buffer_t b,
u32 buffers,
u32  buffer_size 
)

Definition at line 120 of file node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline u32 memif_desc_is_invalid ( memif_if_t mif,
memif_desc_t d,
u32  buffer_length 
)

Definition at line 154 of file node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline uword memif_device_input_inline ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame,
memif_if_t mif,
memif_ring_type_t  type,
u16  qid,
memif_interface_mode_t  mode 
)

Definition at line 174 of file node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline uword memif_device_input_zc_inline ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame,
memif_if_t mif,
u16  qid,
memif_interface_mode_t  mode 
)

Definition at line 529 of file node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 858 of file node.c.

+ Here is the call graph for this function:

static void __clib_constructor memif_input_multiarch_select ( void  )
static

Definition at line 931 of file node.c.

static_always_inline u32 memif_next_from_ip_hdr ( vlib_node_runtime_t node,
vlib_buffer_t b 
)

Definition at line 74 of file node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline void memif_trace_buffer ( vlib_main_t vm,
vlib_node_runtime_t node,
memif_if_t mif,
vlib_buffer_t b,
u32  next,
u16  qid,
uword n_tracep 
)

Definition at line 89 of file node.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline u32 sat_sub ( u32  x,
u32  y 
)

Definition at line 145 of file node.c.

+ Here is the caller graph for this function:

Variable Documentation

__clib_unused char* memif_input_error_strings[]
static
Initial value:
= {
#define _(n,s)
}
#define foreach_memif_input_error
Definition: node.c:33

Definition at line 45 of file node.c.

vlib_node_function_t __clib_weak memif_input_fn_avx2

Definition at line 927 of file node.c.

vlib_node_function_t __clib_weak memif_input_fn_avx512

Definition at line 926 of file node.c.

vlib_node_registration_t memif_input_node
Initial value:
= {
.function = memif_input_fn,
.name = "memif-input",
.sibling_of = "device-input",
.format_trace = format_memif_input_trace,
.state = VLIB_NODE_STATE_INTERRUPT,
.n_errors = MEMIF_INPUT_N_ERROR,
.error_strings = memif_input_error_strings,
}
static __clib_unused char * memif_input_error_strings[]
Definition: node.c:45
uword CLIB_MULTIARCH_FN() memif_input_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: node.c:858
static __clib_unused u8 * format_memif_input_trace(u8 *s, va_list *args)
Definition: node.c:59

(constructor) VLIB_REGISTER_NODE (memif_input_node)

Definition at line 915 of file node.c.