36 s =
format (s,
"HANDED-OFF: from thread %d trace index %d",
43 #define foreach_handoff_trace_error \ 44 _(BUGS, "Warning: packets sent to the handoff trace node!") 48 #define _(sym,str) HANDOFF_TRACE_ERROR_##sym, 55 #define _(sym,string) string, 67 HANDOFF_TRACE_ERROR_BUGS, frame->
n_vectors);
81 .name =
"handoff_trace",
84 .vector_size =
sizeof (
u32),
110 (vm, node, 0 , b, 1 )))
static void vlib_buffer_free(vlib_main_t *vm, u32 *buffers, u32 n_buffers)
Free buffers Frees the entire buffer chain for each buffer.
static u32 vlib_buffer_get_trace_index(vlib_buffer_t *b)
Extract the trace (pool) index from a trace handle.
static u8 * format_handoff_trace(u8 *s, va_list *args)
#define VLIB_NODE_FLAG_TRACE_SUPPORTED
#define foreach_handoff_trace_error
description fragment has unexpected format
vl_api_fib_path_type_t type
static vlib_node_registration_t handoff_trace_node
(constructor) VLIB_REGISTER_NODE (handoff_trace_node)
int vlib_add_handoff_trace(vlib_main_t *vm, vlib_buffer_t *b)
static __clib_warn_unused_result int vlib_trace_buffer(vlib_main_t *vm, vlib_node_runtime_t *r, u32 next_index, vlib_buffer_t *b, int follow_chain)
static char * handoff_trace_error_strings[]
u32 node_index
Node index.
static void vlib_node_increment_counter(vlib_main_t *vm, u32 node_index, u32 counter_index, u64 increment)
#define VLIB_REGISTER_NODE(x,...)
static vlib_node_runtime_t * vlib_node_get_runtime(vlib_main_t *vm, u32 node_index)
Get node runtime by node index.
static u32 vlib_buffer_get_trace_thread(vlib_buffer_t *b)
Extract the thread id from a trace handle.
vlib_main_t vlib_node_runtime_t * node
static uword handoff_trace_node_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
struct _vlib_node_registration vlib_node_registration_t
vlib_main_t vlib_node_runtime_t vlib_frame_t * frame
VLIB buffer representation.
static void * vlib_frame_vector_args(vlib_frame_t *f)
Get pointer to frame vector data.
void * vlib_add_trace(vlib_main_t *vm, vlib_node_runtime_t *r, vlib_buffer_t *b, u32 n_data_bytes)