FD.io VPP  v19.04-6-g6f05f72
Vector Packet Processing
main.c File Reference
+ Include dependency graph for main.c:

Go to the source code of this file.

Data Structures

struct  vlib_process_bootstrap_args_t
 

Macros

#define VLIB_FRAME_SIZE_ALLOC   (VLIB_FRAME_SIZE + 4)
 
#define VLIB_FRAME_SIZE_EXTRA   4
 
#define VLIB_FRAME_MAGIC   (0xabadc0ed)
 
#define A(x)   vec_add1(vm->pcap_buffer, (x))
 
#define foreach_weak_reference_stub
 

Functions

static u32 vlib_frame_bytes (u32 n_scalar_bytes, u32 n_vector_bytes)
 
static u32vlib_frame_find_magic (vlib_frame_t *f, vlib_node_t *node)
 
static vlib_frame_size_tget_frame_size_info (vlib_node_main_t *nm, u32 n_scalar_bytes, u32 n_vector_bytes)
 
static u32 vlib_frame_alloc_to_node (vlib_main_t *vm, u32 to_node_index, u32 frame_flags)
 
static u32 vlib_frame_alloc (vlib_main_t *vm, vlib_node_runtime_t *from_node_runtime, u32 to_next_index)
 
vlib_frame_tvlib_get_frame_to_node (vlib_main_t *vm, u32 to_node_index)
 
void vlib_put_frame_to_node (vlib_main_t *vm, u32 to_node_index, vlib_frame_t *f)
 
void vlib_frame_free (vlib_main_t *vm, vlib_node_runtime_t *r, vlib_frame_t *f)
 
static clib_error_tshow_frame_stats (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static void vlib_next_frame_change_ownership (vlib_main_t *vm, vlib_node_runtime_t *node_runtime, u32 next_index)
 
static void validate_frame_magic (vlib_main_t *vm, vlib_frame_t *f, vlib_node_t *n, uword next_index)
 
vlib_frame_tvlib_get_next_frame_internal (vlib_main_t *vm, vlib_node_runtime_t *node, u32 next_index, u32 allocate_new_next_frame)
 
static void vlib_put_next_frame_validate (vlib_main_t *vm, vlib_node_runtime_t *rt, u32 next_index, u32 n_vectors_left)
 
void vlib_put_next_frame (vlib_main_t *vm, vlib_node_runtime_t *r, u32 next_index, u32 n_vectors_left)
 Release pointer to next frame vector data. More...
 
never_inline void vlib_node_runtime_sync_stats (vlib_main_t *vm, vlib_node_runtime_t *r, uword n_calls, uword n_vectors, uword n_clocks, uword n_ticks0, uword n_ticks1)
 
static void vlib_process_sync_stats (vlib_main_t *vm, vlib_process_t *p, uword n_calls, uword n_vectors, uword n_clocks, uword n_ticks0, uword n_ticks1)
 
void vlib_node_sync_stats (vlib_main_t *vm, vlib_node_t *n)
 
static u32 vlib_node_runtime_update_stats (vlib_main_t *vm, vlib_node_runtime_t *node, uword n_calls, uword n_vectors, uword n_clocks, uword n_ticks0, uword n_ticks1)
 
static void vlib_node_runtime_perf_counter (vlib_main_t *vm, u64 *pmc0, u64 *pmc1)
 
static void vlib_process_update_stats (vlib_main_t *vm, vlib_process_t *p, uword n_calls, uword n_vectors, uword n_clocks)
 
static clib_error_tvlib_cli_elog_clear (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_telog_save_buffer (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
void elog_post_mortem_dump (void)
 
static clib_error_telog_stop (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_telog_restart (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_telog_resize (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static void elog_show_buffer_internal (vlib_main_t *vm, u32 n_events_to_show)
 
static clib_error_telog_show_buffer (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
void vlib_gdb_show_event_log (void)
 
static void vlib_elog_main_loop_event (vlib_main_t *vm, u32 node_index, u64 time, u32 n_vectors, u32 is_return)
 
static void add_trajectory_trace (vlib_buffer_t *b, u32 node_index)
 
u8format_vnet_buffer_flags (u8 *s, va_list *args)
 
u8format_vnet_buffer_opaque (u8 *s, va_list *args)
 
u8format_vnet_buffer_opaque2 (u8 *s, va_list *args)
 
static u8format_buffer_metadata (u8 *s, va_list *args)
 
static void dispatch_pcap_trace (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static_always_inline u64 dispatch_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_node_type_t type, vlib_node_state_t dispatch_state, vlib_frame_t *frame, u64 last_time_stamp)
 
static u64 dispatch_pending_node (vlib_main_t *vm, uword pending_frame_index, u64 last_time_stamp)
 
static uword vlib_process_stack_is_valid (vlib_process_t *p)
 
static uword vlib_process_bootstrap (uword _a)
 
static_always_inline uword vlib_process_startup (vlib_main_t *vm, vlib_process_t *p, vlib_frame_t *f)
 
static_always_inline uword vlib_process_resume (vlib_process_t *p)
 
static u64 dispatch_process (vlib_main_t *vm, vlib_process_t *p, vlib_frame_t *f, u64 last_time_stamp)
 
void vlib_start_process (vlib_main_t *vm, uword process_index)
 
static u64 dispatch_suspended_process (vlib_main_t *vm, uword process_index, u64 last_time_stamp)
 
void vl_api_send_pending_rpc_requests (vlib_main_t *)
 
static_always_inline void vlib_main_or_worker_loop (vlib_main_t *vm, int is_main)
 
static void vlib_main_loop (vlib_main_t *vm)
 
void vlib_worker_loop (vlib_main_t *vm)
 
static clib_error_tvlib_main_configure (vlib_main_t *vm, unformat_input_t *input)
 
static void dummy_queue_signal_callback (vlib_main_t *vm)
 
int vlib_main (vlib_main_t *volatile vm, unformat_input_t *input)
 
static clib_error_tpcap_dispatch_trace_command_internal (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd, int rx_tx)
 
static clib_error_tpcap_dispatch_trace_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 

Variables

 CJ_GLOBAL_LOG_PROTOTYPE
 
u32 wraps
 
static vlib_cli_command_t show_frame_stats_cli
 (constructor) VLIB_CLI_COMMAND (show_frame_stats_cli) More...
 
static vlib_cli_command_t elog_clear_cli
 (constructor) VLIB_CLI_COMMAND (elog_clear_cli) More...
 
static vlib_cli_command_t elog_save_cli
 (constructor) VLIB_CLI_COMMAND (elog_save_cli) More...
 
static vlib_cli_command_t elog_stop_cli
 (constructor) VLIB_CLI_COMMAND (elog_stop_cli) More...
 
static vlib_cli_command_t elog_restart_cli
 (constructor) VLIB_CLI_COMMAND (elog_restart_cli) More...
 
static vlib_cli_command_t elog_resize_cli
 (constructor) VLIB_CLI_COMMAND (elog_resize_cli) More...
 
static vlib_cli_command_t elog_show_cli
 (constructor) VLIB_CLI_COMMAND (elog_show_cli) More...
 
vlib_main_t vlib_global_main
 
 foreach_weak_reference_stub
 
static vlib_cli_command_t pcap_dispatch_trace_command
 (constructor) VLIB_CLI_COMMAND (pcap_dispatch_trace_command) More...
 

Macro Definition Documentation

#define A (   x)    vec_add1(vm->pcap_buffer, (x))

Definition at line 1024 of file main.c.

#define foreach_weak_reference_stub
Value:
clib_error_t * vlibmemory_init(vlib_main_t *vm)
Definition: memory_api.c:953
clib_error_t * map_api_segment_init(vlib_main_t *vm)
Definition: memory_api.c:482
clib_error_t * vpe_api_init(vlib_main_t *vm)
Definition: api.c:557
clib_error_t * vlib_map_stat_segment_init(void)
Definition: stat_segment.c:223

Definition at line 1968 of file main.c.

#define VLIB_FRAME_MAGIC   (0xabadc0ed)
#define VLIB_FRAME_SIZE_ALLOC   (VLIB_FRAME_SIZE + 4)

Definition at line 53 of file main.c.

#define VLIB_FRAME_SIZE_EXTRA   4

Function Documentation

static void add_trajectory_trace ( vlib_buffer_t b,
u32  node_index 
)
inlinestatic

Definition at line 970 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline u64 dispatch_node ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_node_type_t  type,
vlib_node_state_t  dispatch_state,
vlib_frame_t frame,
u64  last_time_stamp 
)

Definition at line 1134 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void dispatch_pcap_trace ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 1027 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u64 dispatch_pending_node ( vlib_main_t vm,
uword  pending_frame_index,
u64  last_time_stamp 
)
static

Definition at line 1325 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u64 dispatch_process ( vlib_main_t vm,
vlib_process_t p,
vlib_frame_t f,
u64  last_time_stamp 
)
static

Definition at line 1511 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u64 dispatch_suspended_process ( vlib_main_t vm,
uword  process_index,
u64  last_time_stamp 
)
static

Definition at line 1592 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void dummy_queue_signal_callback ( vlib_main_t vm)
static

Definition at line 1964 of file main.c.

+ Here is the caller graph for this function:

void elog_post_mortem_dump ( void  )

Definition at line 756 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* elog_resize ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 822 of file main.c.

+ Here is the call graph for this function:

static clib_error_t* elog_restart ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 802 of file main.c.

+ Here is the call graph for this function:

static clib_error_t* elog_save_buffer ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 719 of file main.c.

+ Here is the call graph for this function:

static clib_error_t* elog_show_buffer ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 882 of file main.c.

+ Here is the call graph for this function:

static void elog_show_buffer_internal ( vlib_main_t vm,
u32  n_events_to_show 
)
static

Definition at line 854 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* elog_stop ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 782 of file main.c.

+ Here is the call graph for this function:

static u8* format_buffer_metadata ( u8 s,
va_list *  args 
)
static

Definition at line 1006 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8 * format_vnet_buffer_flags ( u8 s,
va_list *  args 
)

Definition at line 982 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8 * format_vnet_buffer_opaque ( u8 s,
va_list *  args 
)

Definition at line 990 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8 * format_vnet_buffer_opaque2 ( u8 s,
va_list *  args 
)

Definition at line 999 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static vlib_frame_size_t* get_frame_size_info ( vlib_node_main_t nm,
u32  n_scalar_bytes,
u32  n_vector_bytes 
)
inlinestatic

Definition at line 95 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* pcap_dispatch_trace_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 2286 of file main.c.

+ Here is the call graph for this function:

static clib_error_t* pcap_dispatch_trace_command_internal ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd,
int  rx_tx 
)
inlinestatic

Definition at line 2129 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* show_frame_stats ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 250 of file main.c.

+ Here is the call graph for this function:

static void validate_frame_magic ( vlib_main_t vm,
vlib_frame_t f,
vlib_node_t n,
uword  next_index 
)
inlinestatic

Definition at line 354 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vl_api_send_pending_rpc_requests ( vlib_main_t vm)

Definition at line 1668 of file main.c.

+ Here is the caller graph for this function:

static clib_error_t* vlib_cli_elog_clear ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 702 of file main.c.

+ Here is the call graph for this function:

static void vlib_elog_main_loop_event ( vlib_main_t vm,
u32  node_index,
u64  time,
u32  n_vectors,
u32  is_return 
)
inlinestatic

Definition at line 917 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 vlib_frame_alloc ( vlib_main_t vm,
vlib_node_runtime_t from_node_runtime,
u32  to_next_index 
)
static

Definition at line 176 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 vlib_frame_alloc_to_node ( vlib_main_t vm,
u32  to_node_index,
u32  frame_flags 
)
static

Definition at line 121 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 vlib_frame_bytes ( u32  n_scalar_bytes,
u32  n_vector_bytes 
)
inlinestatic

Definition at line 58 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32* vlib_frame_find_magic ( vlib_frame_t f,
vlib_node_t node 
)
inlinestatic

Definition at line 83 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vlib_frame_free ( vlib_main_t vm,
vlib_node_runtime_t r,
vlib_frame_t f 
)

Definition at line 218 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vlib_gdb_show_event_log ( void  )

Definition at line 911 of file main.c.

+ Here is the call graph for this function:

vlib_frame_t* vlib_get_frame_to_node ( vlib_main_t vm,
u32  to_node_index 
)

Definition at line 189 of file main.c.

+ Here is the call graph for this function:

vlib_frame_t* vlib_get_next_frame_internal ( vlib_main_t vm,
vlib_node_runtime_t node,
u32  next_index,
u32  allocate_new_next_frame 
)

Definition at line 363 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vlib_main ( vlib_main_t *volatile  vm,
unformat_input_t input 
)

Definition at line 1982 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* vlib_main_configure ( vlib_main_t vm,
unformat_input_t input 
)
static

Definition at line 1934 of file main.c.

+ Here is the call graph for this function:

static void vlib_main_loop ( vlib_main_t vm)
static

Definition at line 1920 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline void vlib_main_or_worker_loop ( vlib_main_t vm,
int  is_main 
)

Definition at line 1674 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void vlib_next_frame_change_ownership ( vlib_main_t vm,
vlib_node_runtime_t node_runtime,
u32  next_index 
)
static

Definition at line 280 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void vlib_node_runtime_perf_counter ( vlib_main_t vm,
u64 pmc0,
u64 pmc1 
)
inlinestatic

Definition at line 684 of file main.c.

+ Here is the caller graph for this function:

never_inline void vlib_node_runtime_sync_stats ( vlib_main_t vm,
vlib_node_runtime_t r,
uword  n_calls,
uword  n_vectors,
uword  n_clocks,
uword  n_ticks0,
uword  n_ticks1 
)

Definition at line 551 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 vlib_node_runtime_update_stats ( vlib_main_t vm,
vlib_node_runtime_t node,
uword  n_calls,
uword  n_vectors,
uword  n_clocks,
uword  n_ticks0,
uword  n_ticks1 
)
inlinestatic

Definition at line 630 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vlib_node_sync_stats ( vlib_main_t vm,
vlib_node_t n 
)

Definition at line 593 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword vlib_process_bootstrap ( uword  _a)
static

Definition at line 1453 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline uword vlib_process_resume ( vlib_process_t p)

Definition at line 1498 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword vlib_process_stack_is_valid ( vlib_process_t p)
inlinestatic

Definition at line 1439 of file main.c.

+ Here is the caller graph for this function:

static_always_inline uword vlib_process_startup ( vlib_main_t vm,
vlib_process_t p,
vlib_frame_t f 
)

Definition at line 1480 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void vlib_process_sync_stats ( vlib_main_t vm,
vlib_process_t p,
uword  n_calls,
uword  n_vectors,
uword  n_clocks,
uword  n_ticks0,
uword  n_ticks1 
)
inlinestatic

Definition at line 579 of file main.c.

+ Here is the call graph for this function:

static void vlib_process_update_stats ( vlib_main_t vm,
vlib_process_t p,
uword  n_calls,
uword  n_vectors,
uword  n_clocks 
)
inlinestatic

Definition at line 693 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vlib_put_frame_to_node ( vlib_main_t vm,
u32  to_node_index,
vlib_frame_t f 
)

Definition at line 198 of file main.c.

+ Here is the call graph for this function:

void vlib_put_next_frame ( vlib_main_t vm,
vlib_node_runtime_t r,
u32  next_index,
u32  n_packets_left 
)

Release pointer to next frame vector data.

Standard single/dual loop boilerplate element.

Parameters
vmvlib_main_t pointer, varies by thread
rcurrent node vlib_node_runtime_t pointer
next_indexgraph arc index
n_packets_leftnumber of slots still available in vector

Definition at line 465 of file main.c.

+ Here is the call graph for this function:

static void vlib_put_next_frame_validate ( vlib_main_t vm,
vlib_node_runtime_t rt,
u32  next_index,
u32  n_vectors_left 
)
static

Definition at line 429 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vlib_start_process ( vlib_main_t vm,
uword  process_index 
)

Definition at line 1584 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vlib_worker_loop ( vlib_main_t vm)

Definition at line 1926 of file main.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

CJ_GLOBAL_LOG_PROTOTYPE

Definition at line 49 of file main.c.

vlib_cli_command_t elog_clear_cli
static
Initial value:
= {
.path = "event-logger clear",
.short_help = "Clear the event log",
.function = vlib_cli_elog_clear,
}
static clib_error_t * vlib_cli_elog_clear(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: main.c:702

(constructor) VLIB_CLI_COMMAND (elog_clear_cli)

Definition at line 710 of file main.c.

vlib_cli_command_t elog_resize_cli
static
Initial value:
= {
.path = "event-logger resize",
.short_help = "event-logger resize <nnn>",
.function = elog_resize,
}
static clib_error_t * elog_resize(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: main.c:822

(constructor) VLIB_CLI_COMMAND (elog_resize_cli)

Definition at line 844 of file main.c.

vlib_cli_command_t elog_restart_cli
static
Initial value:
= {
.path = "event-logger restart",
.short_help = "Restart the event-logger",
.function = elog_restart,
}
static clib_error_t * elog_restart(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: main.c:802

(constructor) VLIB_CLI_COMMAND (elog_restart_cli)

Definition at line 814 of file main.c.

vlib_cli_command_t elog_save_cli
static
Initial value:
= {
.path = "event-logger save",
.short_help = "event-logger save <filename> (saves log in /tmp/<filename>)",
.function = elog_save_buffer,
}
static clib_error_t * elog_save_buffer(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: main.c:719

(constructor) VLIB_CLI_COMMAND (elog_save_cli)

Definition at line 774 of file main.c.

vlib_cli_command_t elog_show_cli
static
Initial value:
= {
.path = "show event-logger",
.short_help = "Show event logger info",
.function = elog_show_buffer,
}
static clib_error_t * elog_show_buffer(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: main.c:882

(constructor) VLIB_CLI_COMMAND (elog_show_cli)

Definition at line 903 of file main.c.

vlib_cli_command_t elog_stop_cli
static
Initial value:
= {
.path = "event-logger stop",
.short_help = "Stop the event-logger",
.function = elog_stop,
}
static clib_error_t * elog_stop(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: main.c:782

(constructor) VLIB_CLI_COMMAND (elog_stop_cli)

Definition at line 794 of file main.c.

foreach_weak_reference_stub

Definition at line 1977 of file main.c.

vlib_cli_command_t pcap_dispatch_trace_command
static
Initial value:
= {
.path = "pcap dispatch trace",
.short_help =
"pcap dispatch trace [on|off] [max <nn>] [file <name>] [status]\n"
" [buffer-trace <input-node-name> <nn>]",
}
static clib_error_t * pcap_dispatch_trace_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: main.c:2286

(constructor) VLIB_CLI_COMMAND (pcap_dispatch_trace_command)

Definition at line 2345 of file main.c.

vlib_cli_command_t show_frame_stats_cli
static
Initial value:
= {
.path = "show vlib frame-allocation",
.short_help = "Show node dispatch frame statistics",
.function = show_frame_stats,
}
static clib_error_t * show_frame_stats(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: main.c:250

(constructor) VLIB_CLI_COMMAND (show_frame_stats_cli)

Definition at line 271 of file main.c.

vlib_main_t vlib_global_main

Definition at line 1931 of file main.c.

u32 wraps

Definition at line 55 of file main.c.