FD.io VPP  v17.04-9-g99c0734
Vector Packet Processing
memory_vlib.c File Reference
+ Include dependency graph for memory_vlib.c:

Go to the source code of this file.

Macros

#define TRACE_VLIB_MEMORY_QUEUE   0
 
#define vl_typedefs   /* define message structures */
 
#define vl_print(handle, ...)   vlib_cli_output (handle, __VA_ARGS__)
 
#define vl_printfun
 
#define vl_endianfun
 
#define foreach_vlib_api_msg
 
#define foreach_histogram_bucket
 
#define foreach_rpc_api_msg
 
#define foreach_plugin_trace_msg   _(TRACE_PLUGIN_MSG_IDS,trace_plugin_msg_ids)
 

Enumerations

enum  histogram_index_t { SLEEP_N_BUCKETS }
 
enum  vl_api_replay_t { DUMP, CUSTOM_DUMP, REPLAY, INITIALIZERS }
 

Functions

static void * vl_api_memclnt_create_t_print (vl_api_memclnt_create_t *a, void *handle)
 
static void * vl_api_memclnt_delete_t_print (vl_api_memclnt_delete_t *a, void *handle)
 
static void * vl_api_trace_plugin_msg_ids_t_print (vl_api_trace_plugin_msg_ids_t *a, void *handle)
 
void vl_socket_api_send (vl_api_registration_t *rp, u8 *elem)
 
void vl_msg_api_send (vl_api_registration_t *rp, u8 *elem)
 
u8vl_api_serialize_message_table (api_main_t *am, u8 *vector)
 
void vl_api_memclnt_create_t_handler (vl_api_memclnt_create_t *mp)
 
static int call_reaper_functions (u32 client_index)
 
void vl_api_memclnt_delete_t_handler (vl_api_memclnt_delete_t *mp)
 
void vl_api_get_first_msg_id_t_handler (vl_api_get_first_msg_id_t *mp)
 
static int memory_api_init (char *region_name)
 
static void memclnt_queue_callback (vlib_main_t *vm)
 
static void send_one_plugin_msg_ids_msg (u8 *name, u16 first_msg_id, u16 last_msg_id)
 
static uword memclnt_process (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *f)
 
static clib_error_tvl_api_show_histogram_command (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
 
static clib_error_tvl_api_clear_histogram_command (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
 
void vl_enable_disable_memory_api (vlib_main_t *vm, int enable)
 
static uword api_rx_from_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static clib_error_tsetup_memclnt_exit (vlib_main_t *vm)
 
static clib_error_tvl_api_ring_command (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
 
void dump_socket_clients (vlib_main_t *vm, api_main_t *am)
 
static clib_error_tvl_api_client_command (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
 
static clib_error_tvl_api_status_command (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
 
static clib_error_tvl_api_message_table_command (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
 
static clib_error_tvl_api_trace_command (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
 
clib_error_tvlibmemory_init (vlib_main_t *vm)
 
void vl_set_memory_region_name (char *name)
 
static int range_compare (vl_api_msg_range_t *a0, vl_api_msg_range_t *a1)
 
static u8format_api_msg_range (u8 *s, va_list *args)
 
static clib_error_tvl_api_show_plugin_command (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
 
static void vl_api_rpc_call_t_handler (vl_api_rpc_call_t *mp)
 
static void vl_api_rpc_reply_t_handler (vl_api_rpc_reply_t *mp)
 
void vl_api_rpc_call_main_thread (void *fp, u8 *data, u32 data_length)
 
static void vl_api_trace_plugin_msg_ids_t_handler (vl_api_trace_plugin_msg_ids_t *mp)
 
static clib_error_trpc_api_hookup (vlib_main_t *vm)
 
 VLIB_API_INIT_FUNCTION (rpc_api_hookup)
 
u8format_vl_msg_api_trace_status (u8 *s, va_list *args)
 
void vl_msg_api_custom_dump_configure (api_main_t *am)
 
static void vl_msg_api_process_file (vlib_main_t *vm, u8 *filename, u32 first_index, u32 last_index, vl_api_replay_t which)
 
static clib_error_tapi_trace_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 
static clib_error_tapi_config_fn (vlib_main_t *vm, unformat_input_t *input)
 

Variables

static u64 vector_rate_histogram [SLEEP_N_BUCKETS]
 
static vlib_cli_command_t cli_show_api_histogram_command
 (constructor) VLIB_CLI_COMMAND (cli_show_api_histogram_command) More...
 
static vlib_cli_command_t cli_clear_api_histogram_command
 (constructor) VLIB_CLI_COMMAND (cli_clear_api_histogram_command) More...
 
static vlib_node_registration_t memclnt_node
 (constructor) VLIB_REGISTER_NODE (memclnt_node) More...
 
static vlib_node_registration_t api_rx_from_node_node
 (constructor) VLIB_REGISTER_NODE (api_rx_from_node_node) More...
 
static vlib_cli_command_t cli_show_api_command
 (constructor) VLIB_CLI_COMMAND (cli_show_api_command) More...
 
static vlib_cli_command_t cli_show_api_ring_command
 (constructor) VLIB_CLI_COMMAND (cli_show_api_ring_command) More...
 
static vlib_cli_command_t cli_show_api_clients_command
 (constructor) VLIB_CLI_COMMAND (cli_show_api_clients_command) More...
 
static vlib_cli_command_t cli_show_api_status_command
 (constructor) VLIB_CLI_COMMAND (cli_show_api_status_command) More...
 
static vlib_cli_command_t cli_show_api_message_table_command
 (constructor) VLIB_CLI_COMMAND (cli_show_api_message_table_command) More...
 
static vlib_cli_command_t trace
 (constructor) VLIB_CLI_COMMAND (trace) More...
 
static vlib_cli_command_t cli_show_api_plugin_command
 (constructor) VLIB_CLI_COMMAND (cli_show_api_plugin_command) More...
 
static vlib_cli_command_t api_trace_command
 (constructor) VLIB_CLI_COMMAND (api_trace_command) More...
 

Macro Definition Documentation

#define foreach_histogram_bucket
Value:
_(400) \
_(200) \
_(100) \
_(10)

Definition at line 394 of file memory_vlib.c.

#define foreach_plugin_trace_msg   _(TRACE_PLUGIN_MSG_IDS,trace_plugin_msg_ids)

Definition at line 1420 of file memory_vlib.c.

#define foreach_rpc_api_msg
Value:
_(RPC_CALL,rpc_call) \
_(RPC_REPLY,rpc_reply)

Definition at line 1416 of file memory_vlib.c.

#define foreach_vlib_api_msg
Value:
_(MEMCLNT_CREATE, memclnt_create) \
_(MEMCLNT_DELETE, memclnt_delete) \
_(GET_FIRST_MSG_ID, get_first_msg_id)

Definition at line 355 of file memory_vlib.c.

#define TRACE_VLIB_MEMORY_QUEUE   0

Definition at line 41 of file memory_vlib.c.

#define vl_endianfun

Definition at line 87 of file memory_vlib.c.

#define vl_print (   handle,
  ... 
)    vlib_cli_output (handle, __VA_ARGS__)

Definition at line 50 of file memory_vlib.c.

#define vl_printfun

Definition at line 51 of file memory_vlib.c.

#define vl_typedefs   /* define message structures */

Definition at line 45 of file memory_vlib.c.

Enumeration Type Documentation

Enumerator
SLEEP_N_BUCKETS 

Definition at line 400 of file memory_vlib.c.

Enumerator
DUMP 
CUSTOM_DUMP 
REPLAY 
INITIALIZERS 

Definition at line 1450 of file memory_vlib.c.

Function Documentation

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

Definition at line 1894 of file memory_vlib.c.

+ Here is the call graph for this function:

static uword api_rx_from_node ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 803 of file memory_vlib.c.

+ Here is the call graph for this function:

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

Definition at line 1767 of file memory_vlib.c.

+ Here is the call graph for this function:

static int call_reaper_functions ( u32  client_index)
static

Definition at line 225 of file memory_vlib.c.

+ Here is the caller graph for this function:

void dump_socket_clients ( vlib_main_t vm,
api_main_t am 
)

Definition at line 923 of file memory_vlib.c.

+ Here is the caller graph for this function:

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

Definition at line 1224 of file memory_vlib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_vl_msg_api_trace_status ( u8 s,
va_list *  args 
)

Definition at line 1459 of file memory_vlib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword memclnt_process ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t f 
)
static

Definition at line 438 of file memory_vlib.c.

+ Here is the call graph for this function:

static void memclnt_queue_callback ( vlib_main_t vm)
static

Definition at line 765 of file memory_vlib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int memory_api_init ( char *  region_name)
static

Definition at line 364 of file memory_vlib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int range_compare ( vl_api_msg_range_t a0,
vl_api_msg_range_t a1 
)
static

Definition at line 1213 of file memory_vlib.c.

+ Here is the caller graph for this function:

static clib_error_t* rpc_api_hookup ( vlib_main_t vm)
static

Definition at line 1424 of file memory_vlib.c.

+ Here is the call graph for this function:

static void send_one_plugin_msg_ids_msg ( u8 name,
u16  first_msg_id,
u16  last_msg_id 
)
static

Definition at line 416 of file memory_vlib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* setup_memclnt_exit ( vlib_main_t vm)
static

Definition at line 862 of file memory_vlib.c.

+ Here is the call graph for this function:

static clib_error_t* vl_api_clear_histogram_command ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cli_cmd 
)
static

Definition at line 735 of file memory_vlib.c.

static clib_error_t* vl_api_client_command ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cli_cmd 
)
static

Definition at line 928 of file memory_vlib.c.

+ Here is the call graph for this function:

void vl_api_get_first_msg_id_t_handler ( vl_api_get_first_msg_id_t mp)

Definition at line 316 of file memory_vlib.c.

+ Here is the call graph for this function:

void vl_api_memclnt_create_t_handler ( vl_api_memclnt_create_t mp)

Definition at line 143 of file memory_vlib.c.

+ Here is the call graph for this function:

static void* vl_api_memclnt_create_t_print ( vl_api_memclnt_create_t a,
void *  handle 
)
inlinestatic

Definition at line 56 of file memory_vlib.c.

void vl_api_memclnt_delete_t_handler ( vl_api_memclnt_delete_t mp)

Definition at line 245 of file memory_vlib.c.

+ Here is the call graph for this function:

static void* vl_api_memclnt_delete_t_print ( vl_api_memclnt_delete_t a,
void *  handle 
)
inlinestatic

Definition at line 67 of file memory_vlib.c.

static clib_error_t* vl_api_message_table_command ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cli_cmd 
)
static

Definition at line 1059 of file memory_vlib.c.

+ Here is the call graph for this function:

static clib_error_t* vl_api_ring_command ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cli_cmd 
)
static

Definition at line 872 of file memory_vlib.c.

+ Here is the call graph for this function:

void vl_api_rpc_call_main_thread ( void *  fp,
u8 data,
u32  data_length 
)

Definition at line 1327 of file memory_vlib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void vl_api_rpc_call_t_handler ( vl_api_rpc_call_t mp)
static

Definition at line 1276 of file memory_vlib.c.

+ Here is the call graph for this function:

static void vl_api_rpc_reply_t_handler ( vl_api_rpc_reply_t mp)
static

Definition at line 1321 of file memory_vlib.c.

u8* vl_api_serialize_message_table ( api_main_t am,
u8 vector 
)

Definition at line 117 of file memory_vlib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* vl_api_show_histogram_command ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cli_cmd 
)
static

Definition at line 692 of file memory_vlib.c.

+ Here is the call graph for this function:

static clib_error_t* vl_api_show_plugin_command ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cli_cmd 
)
static

Definition at line 1238 of file memory_vlib.c.

+ Here is the call graph for this function:

static clib_error_t* vl_api_status_command ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cli_cmd 
)
static

Definition at line 993 of file memory_vlib.c.

+ Here is the call graph for this function:

static clib_error_t* vl_api_trace_command ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cli_cmd 
)
static

Definition at line 1106 of file memory_vlib.c.

+ Here is the call graph for this function:

static void vl_api_trace_plugin_msg_ids_t_handler ( vl_api_trace_plugin_msg_ids_t mp)
static

Definition at line 1382 of file memory_vlib.c.

static void* vl_api_trace_plugin_msg_ids_t_print ( vl_api_trace_plugin_msg_ids_t a,
void *  handle 
)
inlinestatic

Definition at line 76 of file memory_vlib.c.

void vl_enable_disable_memory_api ( vlib_main_t vm,
int  enable 
)

Definition at line 794 of file memory_vlib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vl_msg_api_custom_dump_configure ( api_main_t am)

Definition at line 1497 of file memory_vlib.c.

+ Here is the caller graph for this function:

static void vl_msg_api_process_file ( vlib_main_t vm,
u8 filename,
u32  first_index,
u32  last_index,
vl_api_replay_t  which 
)
static

Definition at line 1502 of file memory_vlib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vl_msg_api_send ( vl_api_registration_t rp,
u8 elem 
)

Definition at line 104 of file memory_vlib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vl_set_memory_region_name ( char *  name)

Definition at line 1205 of file memory_vlib.c.

+ Here is the caller graph for this function:

void vl_socket_api_send ( vl_api_registration_t rp,
u8 elem 
)

Definition at line 95 of file memory_vlib.c.

+ Here is the caller graph for this function:

VLIB_API_INIT_FUNCTION ( rpc_api_hookup  )

+ Here is the caller graph for this function:

clib_error_t* vlibmemory_init ( vlib_main_t vm)

Definition at line 1180 of file memory_vlib.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

vlib_node_registration_t api_rx_from_node_node
static
Initial value:
= {
.function = api_rx_from_node,
.vector_size = 4,
.name = "api-rx-from-node",
}
static uword api_rx_from_node(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: memory_vlib.c:803

(constructor) VLIB_REGISTER_NODE (api_rx_from_node_node)

Definition at line 853 of file memory_vlib.c.

vlib_cli_command_t api_trace_command
static
Initial value:
= {
.path = "api trace",
.short_help =
"api trace [on|off][dump|save|replay <file>][status][free][post-mortem-on]",
.function = api_trace_command_fn,
}
static clib_error_t * api_trace_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: memory_vlib.c:1767

(constructor) VLIB_CLI_COMMAND (api_trace_command)

Definition at line 1885 of file memory_vlib.c.

vlib_cli_command_t cli_clear_api_histogram_command
static
Initial value:
= {
.path = "clear api histogram",
.short_help = "clear api histogram",
}
static clib_error_t * vl_api_clear_histogram_command(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
Definition: memory_vlib.c:735

(constructor) VLIB_CLI_COMMAND (cli_clear_api_histogram_command)

Definition at line 747 of file memory_vlib.c.

vlib_cli_command_t cli_show_api_clients_command
static
Initial value:
= {
.path = "show api clients",
.short_help = "Client information",
.function = vl_api_client_command,
}
static clib_error_t * vl_api_client_command(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
Definition: memory_vlib.c:928

(constructor) VLIB_CLI_COMMAND (cli_show_api_clients_command)

Definition at line 1043 of file memory_vlib.c.

vlib_cli_command_t cli_show_api_command
static
Initial value:
= {
.path = "show api",
.short_help = "Show API information",
}

(constructor) VLIB_CLI_COMMAND (cli_show_api_command)

Definition at line 1028 of file memory_vlib.c.

vlib_cli_command_t cli_show_api_histogram_command
static
Initial value:
= {
.path = "show api histogram",
.short_help = "show api histogram",
}
static clib_error_t * vl_api_show_histogram_command(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
Definition: memory_vlib.c:692

(constructor) VLIB_CLI_COMMAND (cli_show_api_histogram_command)

Definition at line 727 of file memory_vlib.c.

vlib_cli_command_t cli_show_api_message_table_command
static
Initial value:
= {
.path = "show api message-table",
.short_help = "Message Table",
}
static clib_error_t * vl_api_message_table_command(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
Definition: memory_vlib.c:1059

(constructor) VLIB_CLI_COMMAND (cli_show_api_message_table_command)

Definition at line 1098 of file memory_vlib.c.

vlib_cli_command_t cli_show_api_plugin_command
static
Initial value:
= {
.path = "show api plugin",
.short_help = "show api plugin",
}
static clib_error_t * vl_api_show_plugin_command(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
Definition: memory_vlib.c:1238

(constructor) VLIB_CLI_COMMAND (cli_show_api_plugin_command)

Definition at line 1268 of file memory_vlib.c.

vlib_cli_command_t cli_show_api_ring_command
static
Initial value:
= {
.path = "show api ring-stats",
.short_help = "Message ring statistics",
.function = vl_api_ring_command,
}
static clib_error_t * vl_api_ring_command(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
Definition: memory_vlib.c:872

(constructor) VLIB_CLI_COMMAND (cli_show_api_ring_command)

Definition at line 1035 of file memory_vlib.c.

vlib_cli_command_t cli_show_api_status_command
static
Initial value:
= {
.path = "show api status",
.short_help = "Show API trace status",
.function = vl_api_status_command,
}
static clib_error_t * vl_api_status_command(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
Definition: memory_vlib.c:993

(constructor) VLIB_CLI_COMMAND (cli_show_api_status_command)

Definition at line 1051 of file memory_vlib.c.

vlib_node_registration_t memclnt_node
static
Initial value:
= {
.function = memclnt_process,
.name = "api-rx-from-ring",
.state = VLIB_NODE_STATE_DISABLED,
}
static uword memclnt_process(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *f)
Definition: memory_vlib.c:438

(constructor) VLIB_REGISTER_NODE (memclnt_node)

Definition at line 756 of file memory_vlib.c.

vlib_cli_command_t trace
static
Initial value:
= {
.path = "set api-trace",
.short_help = "API trace",
.function = vl_api_trace_command,
}
static clib_error_t * vl_api_trace_command(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cli_cmd)
Definition: memory_vlib.c:1106

(constructor) VLIB_CLI_COMMAND (trace)

Definition at line 1172 of file memory_vlib.c.

u64 vector_rate_histogram[SLEEP_N_BUCKETS]
static

Definition at line 408 of file memory_vlib.c.