|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
129 for (
index = first_nf_index;
index < first_nf_index +
139 "%s next index %d owns enqueue rights to %s\n",
141 index - first_nf_index,
143 fformat (stderr,
" nf index %d nf->frame %p\n",
169 fformat (stderr,
"node runtime index %d name %s\n",
index,
182 else if (verbose == 1)
186 fformat (stderr,
"verbose not 0 or 1\n");
203 else if (verbose == 1)
205 else if (verbose == 2)
209 fformat (stderr,
"verbose not 0 - 2\n");
223 return dt < 0 ? -1 : (dt > 0 ? +1 : 0);
243 fmt =
"------------------- Start of thread %d %s -------------------\n";
246 tm = &this_vlib_main->trace_main;
258 s =
format (s,
"No packets in trace buffer\n");
270 "Limiting display to %d packets."
271 " To display more specify max.",
306 "vgb(bi) returns vlib_get_buffer(vlib_get_main(), bi)");
324 .short_help =
"Describe functions which can be called from gdb",
376 fformat (stderr,
"gdb_validate_buffer(): %v", s);
379 fformat (stderr,
"gdb_validate_buffer(): no error found\n");
389 #if VLIB_BUFFER_TRACE_TRAJECTORY > 0
398 trace =
b->trajectory_trace;
400 fformat (stderr,
"Context trace for bi %d b 0x%llx, visited %d\n", bi,
b,
403 for (
i = 0;
i <
b->trajectory_nb;
i++)
418 fformat (stderr,
"in vlib/buffers.h, "
419 "#define VLIB_BUFFER_TRACE_TRAJECTORY 1\n");
int pifi(void *p, u32 index)
GDB callable function: pifi - call pool_is_free_index - is passed index free?
static vlib_cli_command_t trace
(constructor) VLIB_CLI_COMMAND (trace)
void trace_apply_filter(vlib_main_t *vm)
format_function_t format_vlib_trace
u32 vbi(vlib_buffer_t *b)
static vlib_buffer_t * vlib_get_buffer(vlib_main_t *vm, u32 buffer_index)
Translate buffer index into buffer pointer.
static uword pointer_to_uword(const void *p)
@ VLIB_NODE_TYPE_INTERNAL
vnet_buffer_opaque2_t * vb2(void *vb_arg)
void gdb_dump_trajectory_trace(u32 bi)
Dump a trajectory trace, reasonably easy to call from gdb.
static clib_error_t * show_gdb_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
GDB callable function: show_gdb_command_fn - show gdb.
vlib_node_main_t node_main
vlib_cli_command_t vlib_cli_show_session_command
(constructor) VLIB_CLI_COMMAND (vlib_cli_show_session_command)
u32 next_frame_index
Start of next frames for this node.
vlib_buffer_main_t * buffer_main
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
void gdb_show_session(int verbose)
vlib_worker_thread_t * vlib_worker_threads
pool_header_t * ph(void *p)
GDB callable function: ph - call pool_header - get pool header.
#define pool_is_free_index(P, I)
Use free bitmap to query whether given index is free.
vlib_next_frame_t * next_frames
#define foreach_vlib_main()
#define pool_foreach(VAR, POOL)
Iterate through pool.
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
u8 * vlib_validate_buffers(vlib_main_t *vm, u32 *buffers, uword next_buffer_stride, uword n_buffers, vlib_buffer_known_state_t known_state, uword follow_buffer_next)
#define vec_add1(V, E)
Add 1 element to end of vector (unspecified alignment).
#define vec_elt_at_index(v, i)
Get vector value at index i checking that i is in bounds.
void gdb_show_errors(int verbose)
static int trace_cmp(void *a1, void *a2)
sll srl srl sll sra u16x4 i
#define VLIB_CLI_COMMAND(x,...)
vlib_buffer_t * vgb(u32 bi)
uword pe(void *v)
GDB callable function: pe - call pool_elts - number of elements in a pool.
void vlib_cli_output(vlib_main_t *vm, char *fmt,...)
void vlib_runtime_index_to_node_name(u32 index)
GDB callable function: vlib_runtime_index_to_node_name.
vnet_buffer_opaque_t * vb(void *vb_arg)
clib_error_t * gdb_func_init(vlib_main_t *vm)
#define vec_free(V)
Free vector's memory (no header).
void vlib_dump_frame_ownership(void)
GDB callable function: vlib_dump_frame_ownership.
u32 node_index
Node index.
vlib_trace_header_t ** trace_buffer_pool
description fragment has unexpected format
vec_header_t * pvh(void *p)
GDB callable function: pvh - Return vector header of vector.
#define VLIB_INIT_FUNCTION(x)
static vlib_main_t * vlib_get_first_main(void)
#define CLIB_LOG2_CACHE_LINE_BYTES
#define vec_foreach(var, vec)
Vector iterator.
static uword pool_elts(void *v)
Number of active elements in a pool.
u32 vl(void *p)
GDB callable function: vl - Return vector length of vector.
static vlib_cli_command_t show_gdb_funcs_command
(constructor) VLIB_CLI_COMMAND (show_gdb_funcs_command)
int gdb_validate_buffer(vlib_buffer_t *b)
#define vec_sort_with_function(vec, f)
Sort a vector using the supplied element comparison function.
vlib_cli_command_function_t * function
static pool_header_t * pool_header(void *v)
Get pool header from user pool pointer.
static vlib_main_t * vlib_get_main(void)
clib_error_t *() vlib_init_function_t(struct vlib_main_t *vm)
void debug_hex_bytes(u8 *s, u32 n)
GDB callable function: debug_hex_bytes - return formatted hex string.
@ VLIB_BUFFER_KNOWN_ALLOCATED
vlib_cli_command_t vlib_cli_show_errors
(constructor) VLIB_CLI_COMMAND (vlib_cli_show_errors)
VLIB buffer representation.