FD.io VPP  v18.10-32-g1161dda
Vector Packet Processing
application.c File Reference
+ Include dependency graph for application.c:

Go to the source code of this file.

Typedefs

typedef int( app_send_evt_handler_fn) (app_worker_t *app, stream_session_t *s, u8 lock)
 

Functions

static app_listener_t * app_listener_alloc (application_t *app)
 
static app_listener_t * app_listener_get (application_t *app, u32 app_listener_index)
 
static void app_listener_free (application_t *app, app_listener_t *app_listener)
 
static app_listener_t * app_local_listener_alloc (application_t *app)
 
static app_listener_t * app_local_listener_get (application_t *app, u32 app_listener_index)
 
static void app_local_listener_free (application_t *app, app_listener_t *app_listener)
 
static app_worker_map_t * app_worker_map_alloc (application_t *app)
 
static u32 app_worker_map_index (application_t *app, app_worker_map_t *map)
 
static void app_worker_map_free (application_t *app, app_worker_map_t *map)
 
static app_worker_map_t * app_worker_map_get (application_t *app, u32 map_index)
 
static u8 * app_get_name_from_reg_index (application_t *app)
 
static u8 * app_get_name (application_t *app)
 
u32 application_session_table (application_t *app, u8 fib_proto)
 
u32 application_local_session_table (application_t *app)
 
static void application_local_listener_session_endpoint (local_session_t *ll, session_endpoint_t *sep)
 
int application_api_queue_is_full (application_t *app)
 
u8 * application_name_from_index (u32 app_index)
 Returns app name. More...
 
static void application_table_add (application_t *app)
 
static void application_table_del (application_t *app)
 
application_t * application_lookup (u32 api_client_index)
 
application_t * application_lookup_name (const u8 *name)
 
application_t * application_alloc (void)
 
application_t * application_get (u32 app_index)
 
application_t * application_get_if_valid (u32 app_index)
 
u32 application_index (application_t *app)
 
static void application_verify_cb_fns (session_cb_vft_t *cb_fns)
 
static u8 application_verify_cfg (ssvm_segment_type_t st)
 Check app config for given segment type. More...
 
int application_alloc_and_init (app_init_args_t *a)
 
void application_free (application_t *app)
 
app_worker_t * application_get_worker (application_t *app, u32 wrk_map_index)
 
app_worker_t * application_get_default_worker (application_t *app)
 
app_worker_t * application_listener_select_worker (stream_session_t *ls, u8 is_local)
 
app_worker_t * app_worker_alloc (application_t *app)
 
app_worker_t * app_worker_get (u32 wrk_index)
 
app_worker_t * app_worker_get_if_valid (u32 wrk_index)
 
void app_worker_free (app_worker_t *app_wrk)
 
int app_worker_alloc_and_init (application_t *app, app_worker_t **wrk)
 
application_t * app_worker_get_app (u32 wrk_index)
 
static segment_manager_t * app_worker_alloc_segment_manager (app_worker_t *app_wrk)
 
int app_worker_start_listen (app_worker_t *app_wrk, stream_session_t *ls)
 
int app_worker_stop_listen (app_worker_t *app_wrk, session_handle_t handle)
 
int application_start_listen (application_t *app, session_endpoint_extended_t *sep_ext, session_handle_t *res)
 Start listening local transport endpoint for requested transport. More...
 
int application_stop_listen (u32 app_index, u32 app_wrk_index, session_handle_t handle)
 Stop listening on session associated to handle. More...
 
int app_worker_open_session (app_worker_t *app, session_endpoint_t *sep, u32 api_context)
 
int app_worker_alloc_connects_segment_manager (app_worker_t *app_wrk)
 
segment_manager_t * app_worker_get_connect_segment_manager (app_worker_t *app)
 
segment_manager_t * app_worker_get_listen_segment_manager (app_worker_t *app, stream_session_t *listener)
 
clib_error_t * vnet_app_worker_add_del (vnet_app_worker_add_del_args_t *a)
 
segment_manager_t * application_get_local_segment_manager (app_worker_t *app)
 
segment_manager_t * application_get_local_segment_manager_w_session (app_worker_t *app, local_session_t *ls)
 
int application_is_proxy (application_t *app)
 
int application_is_builtin (application_t *app)
 
int application_is_builtin_proxy (application_t *app)
 
u8 application_has_local_scope (application_t *app)
 
u8 application_has_global_scope (application_t *app)
 
u8 application_use_mq_for_ctrl (application_t *app)
 
int app_worker_add_segment_notify (u32 app_wrk_index, ssvm_private_t *fs)
 Send an API message to the external app, to map new segment. More...
 
u32 application_n_listeners (app_worker_t *app)
 
stream_session_t * app_worker_first_listener (app_worker_t *app, u8 fib_proto, u8 transport_proto)
 
u8 app_worker_application_is_builtin (app_worker_t *app_wrk)
 
stream_session_t * application_proxy_listener (app_worker_t *app, u8 fib_proto, u8 transport_proto)
 
static clib_error_t * application_start_stop_proxy_fib_proto (application_t *app, u8 fib_proto, u8 transport_proto, u8 is_start)
 
static void application_start_stop_proxy_local_scope (application_t *app, u8 transport_proto, u8 is_start)
 
void application_start_stop_proxy (application_t *app, transport_proto_t transport_proto, u8 is_start)
 
void application_setup_proxy (application_t *app)
 
void application_remove_proxy (application_t *app)
 
segment_manager_properties_t * application_segment_manager_properties (application_t *app)
 
segment_manager_properties_t * application_get_segment_manager_properties (u32 app_index)
 
static int app_enqueue_evt (svm_msg_q_t *mq, svm_msg_q_msg_t *msg, u8 lock)
 
static int app_send_io_evt_rx (app_worker_t *app_wrk, stream_session_t *s, u8 lock)
 
static int app_send_io_evt_tx (app_worker_t *app_wrk, stream_session_t *s, u8 lock)
 
int app_worker_send_event (app_worker_t *app, stream_session_t *s, u8 evt_type)
 Send event to application. More...
 
int app_worker_lock_and_send_event (app_worker_t *app, stream_session_t *s, u8 evt_type)
 Send event to application. More...
 
local_session_t * application_local_session_alloc (app_worker_t *app_wrk)
 
void application_local_session_free (app_worker_t *app, local_session_t *s)
 
local_session_t * application_get_local_session (app_worker_t *app_wrk, u32 session_index)
 
local_session_t * application_get_local_session_from_handle (session_handle_t handle)
 
local_session_t * application_local_listen_session_alloc (application_t *app)
 
u32 application_local_listener_index (application_t *app, local_session_t *ll)
 
void application_local_listen_session_free (application_t *app, local_session_t *ll)
 
int application_start_local_listen (application_t *app, session_endpoint_extended_t *sep_ext, session_handle_t *handle)
 
int application_stop_local_listen (u32 app_index, u32 wrk_map_index, session_handle_t lh)
 Clean up local session table. More...
 
static void application_local_session_fix_eventds (svm_msg_q_t *sq, svm_msg_q_t *cq)
 
int application_local_session_connect (app_worker_t *client_wrk, app_worker_t *server_wrk, local_session_t *ll, u32 opaque)
 
static uword application_client_local_connect_key (local_session_t *ls)
 
static void application_client_local_connect_key_parse (uword key, u32 *app_wrk_index, u32 *session_index)
 
int application_local_session_connect_notify (local_session_t *ls)
 
int application_local_session_cleanup (app_worker_t *client_wrk, app_worker_t *server_wrk, local_session_t *ls)
 
int application_local_session_disconnect (u32 app_index, local_session_t *ls)
 
int application_local_session_disconnect_w_index (u32 app_wrk_index, u32 ls_index)
 
void app_worker_local_sessions_free (app_worker_t *app_wrk)
 
clib_error_t * vnet_app_add_tls_cert (vnet_app_add_tls_cert_args_t *a)
 
clib_error_t * vnet_app_add_tls_key (vnet_app_add_tls_key_args_t *a)
 
u8 * format_app_worker_listener (u8 *s, va_list *args)
 
static void application_format_listeners (application_t *app, int verbose)
 
static void app_worker_format_connects (app_worker_t *app_wrk, int verbose)
 
static void application_format_connects (application_t *app, int verbose)
 
static void app_worker_format_local_sessions (app_worker_t *app_wrk, int verbose)
 
static void application_format_local_sessions (application_t *app, int verbose)
 
static void app_worker_format_local_connects (app_worker_t *app, int verbose)
 
static void application_format_local_connects (application_t *app, int verbose)
 
u8 * format_application (u8 *s, va_list *args)
 
void application_format_all_listeners (vlib_main_t *vm, int do_local, int verbose)
 
void application_format_all_clients (vlib_main_t *vm, int do_local, int verbose)
 
static clib_error_t * show_app_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 

Variables

static app_main_t app_main
 
static app_send_evt_handler_fn *const app_send_evt_handler_fns [3]
 
static vlib_cli_command_t show_app_command
 (constructor) VLIB_CLI_COMMAND (show_app_command) More...
 

Typedef Documentation

typedef int( app_send_evt_handler_fn) (app_worker_t *app, stream_session_t *s, u8 lock)

Definition at line 1309 of file application.c.

Function Documentation

static int app_enqueue_evt ( svm_msg_q_t *  mq,
svm_msg_q_msg_t *  msg,
u8  lock 
)
inlinestatic

Definition at line 1198 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8* app_get_name ( application_t *  app)
static

Definition at line 116 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8* app_get_name_from_reg_index ( application_t *  app)
static

Definition at line 101 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static app_listener_t* app_listener_alloc ( application_t *  app)
static

Definition at line 24 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void app_listener_free ( application_t *  app,
app_listener_t *  app_listener 
)
static

Definition at line 40 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static app_listener_t* app_listener_get ( application_t *  app,
u32  app_listener_index 
)
static

Definition at line 34 of file application.c.

+ Here is the caller graph for this function:

static app_listener_t* app_local_listener_alloc ( application_t *  app)
static

Definition at line 49 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void app_local_listener_free ( application_t *  app,
app_listener_t *  app_listener 
)
static

Definition at line 65 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static app_listener_t* app_local_listener_get ( application_t *  app,
u32  app_listener_index 
)
static

Definition at line 59 of file application.c.

+ Here is the caller graph for this function:

static int app_send_io_evt_rx ( app_worker_t *  app_wrk,
stream_session_t *  s,
u8  lock 
)
inlinestatic

Definition at line 1225 of file application.c.

+ Here is the call graph for this function:

static int app_send_io_evt_tx ( app_worker_t *  app_wrk,
stream_session_t *  s,
u8  lock 
)
inlinestatic

Definition at line 1277 of file application.c.

+ Here is the call graph for this function:

int app_worker_add_segment_notify ( u32  app_wrk_index,
ssvm_private_t *  fs 
)

Send an API message to the external app, to map new segment.

Definition at line 985 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

app_worker_t* app_worker_alloc ( application_t *  app)

Definition at line 483 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_alloc_and_init ( application_t *  app,
app_worker_t **  wrk 
)

Definition at line 579 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_alloc_connects_segment_manager ( app_worker_t *  app_wrk)

Definition at line 852 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static segment_manager_t* app_worker_alloc_segment_manager ( app_worker_t *  app_wrk)
static

Definition at line 637 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8 app_worker_application_is_builtin ( app_worker_t *  app_wrk)

Definition at line 1023 of file application.c.

+ Here is the caller graph for this function:

stream_session_t* app_worker_first_listener ( app_worker_t *  app,
u8  fib_proto,
u8  transport_proto 
)

Definition at line 999 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void app_worker_format_connects ( app_worker_t *  app_wrk,
int  verbose 
)
static

Definition at line 1981 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void app_worker_format_local_connects ( app_worker_t *  app,
int  verbose 
)
static

Definition at line 2141 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void app_worker_format_local_sessions ( app_worker_t *  app_wrk,
int  verbose 
)
static

Definition at line 2066 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void app_worker_free ( app_worker_t *  app_wrk)

Definition at line 513 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

app_worker_t* app_worker_get ( u32  wrk_index)

Definition at line 499 of file application.c.

+ Here is the caller graph for this function:

application_t* app_worker_get_app ( u32  wrk_index)

Definition at line 627 of file application.c.

+ Here is the call graph for this function:

segment_manager_t* app_worker_get_connect_segment_manager ( app_worker_t *  app)

Definition at line 867 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

app_worker_t* app_worker_get_if_valid ( u32  wrk_index)

Definition at line 505 of file application.c.

+ Here is the caller graph for this function:

segment_manager_t* app_worker_get_listen_segment_manager ( app_worker_t *  app,
stream_session_t *  listener 
)

Definition at line 874 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void app_worker_local_sessions_free ( app_worker_t *  app_wrk)

Definition at line 1837 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_lock_and_send_event ( app_worker_t *  app,
stream_session_t *  s,
u8  evt_type 
)

Send event to application.

Logic from queue perspective is blocking. However, if queue is full, we return.

Definition at line 1339 of file application.c.

+ Here is the caller graph for this function:

static app_worker_map_t* app_worker_map_alloc ( application_t *  app)
static

Definition at line 74 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void app_worker_map_free ( application_t *  app,
app_worker_map_t *  map 
)
static

Definition at line 89 of file application.c.

+ Here is the caller graph for this function:

static app_worker_map_t* app_worker_map_get ( application_t *  app,
u32  map_index 
)
static

Definition at line 95 of file application.c.

+ Here is the caller graph for this function:

static u32 app_worker_map_index ( application_t *  app,
app_worker_map_t *  map 
)
static

Definition at line 83 of file application.c.

+ Here is the caller graph for this function:

int app_worker_open_session ( app_worker_t *  app,
session_endpoint_t *  sep,
u32  api_context 
)

Definition at line 837 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_send_event ( app_worker_t *  app,
stream_session_t *  s,
u8  evt_type 
)

Send event to application.

Logic from queue perspective is non-blocking. If there's not enough space to enqueue a message, we return.

Definition at line 1326 of file application.c.

int app_worker_start_listen ( app_worker_t *  app_wrk,
stream_session_t *  ls 
)

Definition at line 657 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_stop_listen ( app_worker_t *  app_wrk,
session_handle_t  handle 
)

Definition at line 681 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

application_t* application_alloc ( void  )

Definition at line 233 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int application_alloc_and_init ( app_init_args_t *  a)

Definition at line 306 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int application_api_queue_is_full ( application_t *  app)

Definition at line 159 of file application.c.

+ Here is the call graph for this function:

static uword application_client_local_connect_key ( local_session_t *  ls)
static

Definition at line 1663 of file application.c.

+ Here is the caller graph for this function:

static void application_client_local_connect_key_parse ( uword  key,
u32 *  app_wrk_index,
u32 *  session_index 
)
static

Definition at line 1669 of file application.c.

+ Here is the caller graph for this function:

void application_format_all_clients ( vlib_main_t *  vm,
int  do_local,
int  verbose 
)

Definition at line 2266 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void application_format_all_listeners ( vlib_main_t *  vm,
int  do_local,
int  verbose 
)

Definition at line 2234 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void application_format_connects ( application_t *  app,
int  verbose 
)
static

Definition at line 2046 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void application_format_listeners ( application_t *  app,
int  verbose 
)
static

Definition at line 1952 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void application_format_local_connects ( application_t *  app,
int  verbose 
)
static

Definition at line 2178 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void application_format_local_sessions ( application_t *  app,
int  verbose 
)
static

Definition at line 2100 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void application_free ( application_t *  app)

Definition at line 388 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

application_t* application_get ( u32  app_index)

Definition at line 243 of file application.c.

+ Here is the caller graph for this function:

app_worker_t* application_get_default_worker ( application_t *  app)

Definition at line 454 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

application_t* application_get_if_valid ( u32  app_index)

Definition at line 251 of file application.c.

+ Here is the caller graph for this function:

segment_manager_t* application_get_local_segment_manager ( app_worker_t *  app)

Definition at line 927 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

segment_manager_t* application_get_local_segment_manager_w_session ( app_worker_t *  app,
local_session_t *  ls 
)

Definition at line 933 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

local_session_t* application_get_local_session ( app_worker_t *  app_wrk,
u32  session_index 
)

Definition at line 1366 of file application.c.

+ Here is the caller graph for this function:

local_session_t* application_get_local_session_from_handle ( session_handle_t  handle)

Definition at line 1374 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

segment_manager_properties_t* application_get_segment_manager_properties ( u32  app_index)

Definition at line 1191 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

app_worker_t* application_get_worker ( application_t *  app,
u32  wrk_map_index 
)

Definition at line 444 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8 application_has_global_scope ( application_t *  app)

Definition at line 970 of file application.c.

+ Here is the caller graph for this function:

u8 application_has_local_scope ( application_t *  app)

Definition at line 964 of file application.c.

+ Here is the caller graph for this function:

u32 application_index ( application_t *  app)

Definition at line 260 of file application.c.

+ Here is the caller graph for this function:

int application_is_builtin ( application_t *  app)

Definition at line 952 of file application.c.

+ Here is the caller graph for this function:

int application_is_builtin_proxy ( application_t *  app)

Definition at line 958 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int application_is_proxy ( application_t *  app)

Definition at line 946 of file application.c.

+ Here is the caller graph for this function:

app_worker_t* application_listener_select_worker ( stream_session_t *  ls,
u8  is_local 
)

Definition at line 460 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

local_session_t* application_local_listen_session_alloc ( application_t *  app)

Definition at line 1386 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void application_local_listen_session_free ( application_t *  app,
local_session_t *  ll 
)

Definition at line 1401 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 application_local_listener_index ( application_t *  app,
local_session_t *  ll 
)

Definition at line 1395 of file application.c.

+ Here is the caller graph for this function:

static void application_local_listener_session_endpoint ( local_session_t *  ll,
session_endpoint_t *  sep 
)
static

Definition at line 149 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

local_session_t* application_local_session_alloc ( app_worker_t *  app_wrk)

Definition at line 1346 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int application_local_session_cleanup ( app_worker_t *  client_wrk,
app_worker_t *  server_wrk,
local_session_t *  ls 
)

Definition at line 1717 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int application_local_session_connect ( app_worker_t *  client_wrk,
app_worker_t *  server_wrk,
local_session_t *  ll,
u32  opaque 
)

Definition at line 1562 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int application_local_session_connect_notify ( local_session_t *  ls)

Definition at line 1677 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int application_local_session_disconnect ( u32  app_index,
local_session_t *  ls 
)

Definition at line 1765 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int application_local_session_disconnect_w_index ( u32  app_wrk_index,
u32  ls_index 
)

Definition at line 1827 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void application_local_session_fix_eventds ( svm_msg_q_t *  sq,
svm_msg_q_t *  cq 
)
static

Definition at line 1545 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void application_local_session_free ( app_worker_t *  app,
local_session_t *  s 
)

Definition at line 1358 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 application_local_session_table ( application_t *  app)

Definition at line 139 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

application_t* application_lookup ( u32  api_client_index)

Definition at line 211 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

application_t* application_lookup_name ( const u8 *  name)

Definition at line 222 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 application_n_listeners ( app_worker_t *  app)

Definition at line 993 of file application.c.

+ Here is the call graph for this function:

u8* application_name_from_index ( u32  app_index)

Returns app name.

Since the name is not stored per app, we generate it on the fly. It is the caller's responsibility to free the vector

Definition at line 183 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

stream_session_t* application_proxy_listener ( app_worker_t *  app,
u8  fib_proto,
u8  transport_proto 
)

Definition at line 1029 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void application_remove_proxy ( application_t *  app)

Definition at line 1169 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

segment_manager_properties_t* application_segment_manager_properties ( application_t *  app)

Definition at line 1185 of file application.c.

+ Here is the caller graph for this function:

u32 application_session_table ( application_t *  app,
u8  fib_proto 
)

Definition at line 124 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void application_setup_proxy ( application_t *  app)

Definition at line 1153 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int application_start_listen ( application_t *  app,
session_endpoint_extended_t *  sep_ext,
session_handle_t *  res 
)

Start listening local transport endpoint for requested transport.

Creates a 'dummy' stream session with state LISTENING to be used in session lookups, prior to establishing connection. Requests transport to build it's own specific listening connection.

Definition at line 717 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int application_start_local_listen ( application_t *  app,
session_endpoint_extended_t *  sep_ext,
session_handle_t *  handle 
)

Definition at line 1410 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void application_start_stop_proxy ( application_t *  app,
transport_proto_t  transport_proto,
u8  is_start 
)

Definition at line 1137 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* application_start_stop_proxy_fib_proto ( application_t *  app,
u8  fib_proto,
u8  transport_proto,
u8  is_start 
)
static

Definition at line 1053 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void application_start_stop_proxy_local_scope ( application_t *  app,
u8  transport_proto,
u8  is_start 
)
static

Definition at line 1110 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int application_stop_listen ( u32  app_index,
u32  app_wrk_index,
session_handle_t  handle 
)

Stop listening on session associated to handle.

Parameters
handlelistener handle
app_indexindex of the app owning the handle.
app_wrk_indexindex of the worker requesting the stop

Definition at line 799 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int application_stop_local_listen ( u32  app_index,
u32  wrk_map_index,
session_handle_t  lh 
)

Clean up local session table.

If we have a listener session use it to find the port and proto. If not, the handle must be a local table handle so parse it.

Definition at line 1472 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void application_table_add ( application_t *  app)
static

Definition at line 192 of file application.c.

+ Here is the caller graph for this function:

static void application_table_del ( application_t *  app)
static

Definition at line 202 of file application.c.

+ Here is the caller graph for this function:

u8 application_use_mq_for_ctrl ( application_t *  app)

Definition at line 976 of file application.c.

+ Here is the caller graph for this function:

static void application_verify_cb_fns ( session_cb_vft_t *  cb_fns)
static

Definition at line 266 of file application.c.

+ Here is the caller graph for this function:

static u8 application_verify_cfg ( ssvm_segment_type_t  st)
static

Check app config for given segment type.

Returns 1 on success and 0 otherwise

Definition at line 284 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_app_worker_listener ( u8 *  s,
va_list *  args 
)

Definition at line 1911 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_application ( u8 *  s,
va_list *  args 
)

Definition at line 2198 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 2299 of file application.c.

+ Here is the call graph for this function:

clib_error_t* vnet_app_add_tls_cert ( vnet_app_add_tls_cert_args_t *  a)

Definition at line 1887 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vnet_app_add_tls_key ( vnet_app_add_tls_key_args_t *  a)

Definition at line 1899 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vnet_app_worker_add_del ( vnet_app_worker_add_del_args_t *  a)

Definition at line 884 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

app_main_t app_main
static

Definition at line 21 of file application.c.

app_send_evt_handler_fn* const app_send_evt_handler_fns[3]
static
Initial value:
= {
0,
}
static int app_send_io_evt_rx(app_worker_t *app_wrk, stream_session_t *s, u8 lock)
Definition: application.c:1225
static int app_send_io_evt_tx(app_worker_t *app_wrk, stream_session_t *s, u8 lock)
Definition: application.c:1277

Definition at line 1312 of file application.c.

vlib_cli_command_t show_app_command
static
Initial value:
=
{
.path = "show app",
.short_help = "show app [server|client] [verbose]",
.function = show_app_command_fn,
}
static clib_error_t * show_app_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: application.c:2299

(constructor) VLIB_CLI_COMMAND (show_app_command)

Definition at line 2343 of file application.c.