|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
35 return format (0,
"[%d], node index out of range 0x%x, error 0x%x",
40 return format (0,
"[%d], code %d out of range for node %v",
126 if (b0->
flags & VLIB_BUFFER_IS_TRACED)
131 if (b1->
flags & VLIB_BUFFER_IS_TRACED)
150 if (b0->
flags & VLIB_BUFFER_IS_TRACED)
240 return frame->n_vectors;
261 .vector_size =
sizeof (
u32),
272 .vector_size =
sizeof (
u32),
static void vlib_buffer_free(vlib_main_t *vm, u32 *buffers, u32 n_buffers)
Free buffers Frees the entire buffer chain for each buffer.
vlib_buffer_t * bufs[VLIB_FRAME_SIZE]
#define vlib_prefetch_buffer_header(b, type)
Prefetch buffer metadata.
vlib_main_t vlib_node_runtime_t vlib_frame_t * frame
static u32 vlib_error_get_node(vlib_node_main_t *nm, vlib_error_t e)
vlib_node_registration_t error_punt_node
(constructor) VLIB_REGISTER_NODE (error_punt_node)
vlib_error_desc_t * counters_heap
static vlib_buffer_t * vlib_get_buffer(vlib_main_t *vm, u32 buffer_index)
Translate buffer index into buffer pointer.
#define VLIB_NODE_FLAG_FRAME_NO_FREE_AFTER_DISPATCH
vlib_get_buffers(vm, from, b, n_left_from)
vlib_node_registration_t error_drop_node
(constructor) VLIB_REGISTER_NODE (error_drop_node)
vlib_main_t vlib_node_runtime_t * node
vlib_error_main_t error_main
vlib_node_main_t node_main
static u32 vlib_error_get_code(vlib_node_main_t *nm, vlib_error_t e)
static void vlib_error_elog_count(vlib_main_t *vm, uword counter, uword increment)
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
static u32 counter_index(vlib_main_t *vm, vlib_error_t e)
static u8 * validate_error_frame(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *f)
static_always_inline uword process_drop_punt(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, error_disposition_t disposition)
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
vlib_error_t error
Error code for buffers to be enqueued to error handler.
#define VLIB_NODE_FN(node)
#define VLIB_NODE_FLAG_TRACE
static void * vlib_frame_vector_args(vlib_frame_t *f)
Get pointer to frame vector data.
static void trace_errors(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
#define static_always_inline
#define vlib_prefetch_buffer_with_index(vm, bi, type)
Prefetch buffer metadata by buffer index The first 64 bytes of buffer contains most header informatio...
static vlib_node_t * vlib_get_node(vlib_main_t *vm, u32 i)
Get vlib node by index.
void(* os_punt_frame)(struct vlib_main_t *vm, struct vlib_node_runtime_t *node, vlib_frame_t *frame)
sll srl srl sll sra u16x4 i
static_always_inline uword clib_count_equal_u32(u32 *data, uword max_count)
#define VLIB_NODE_FLAG_IS_DROP
#define VLIB_NODE_FLAG_IS_PUNT
static u8 * format_error_trace(u8 *s, va_list *va)
struct _vlib_node_registration vlib_node_registration_t
void vlib_frame_free(vlib_main_t *vm, vlib_node_runtime_t *r, vlib_frame_t *f)
description fragment has unexpected format
void * vlib_add_trace(vlib_main_t *vm, vlib_node_runtime_t *r, vlib_buffer_t *b, u32 n_data_bytes)
static u8 * validate_error(vlib_main_t *vm, vlib_error_t *e, u32 index)
u32 flags
buffer flags: VLIB_BUFFER_FREE_LIST_INDEX_MASK: bits used to store free list index,...
VLIB buffer representation.
#define VLIB_REGISTER_NODE(x,...)