FD.io VPP  v19.01.3-6-g70449b9b9
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_tapp_listener_alloc (application_t *app)
 
static app_listener_tapp_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_tapp_local_listener_alloc (application_t *app)
 
static app_listener_tapp_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_tapp_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_tapp_worker_map_get (application_t *app, u32 map_index)
 
static const u8app_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)
 
const u8application_name_from_index (u32 app_index)
 Returns app name for app-index. More...
 
static void application_api_table_add (u32 app_index, u32 api_client_index)
 
static void application_api_table_del (u32 api_client_index)
 
static void application_name_table_add (application_t *app)
 
static void application_name_table_del (application_t *app)
 
application_tapplication_lookup (u32 api_client_index)
 
application_tapplication_lookup_name (const u8 *name)
 
application_tapplication_alloc (void)
 
application_tapplication_get (u32 app_index)
 
application_tapplication_get_if_valid (u32 app_index)
 
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)
 
void application_detach_process (application_t *app, u32 api_client_index)
 
app_worker_tapplication_get_worker (application_t *app, u32 wrk_map_index)
 
app_worker_tapplication_get_default_worker (application_t *app)
 
u32 application_n_workers (application_t *app)
 
app_worker_tapplication_listener_select_worker (stream_session_t *ls, u8 is_local)
 
app_worker_tapp_worker_alloc (application_t *app)
 
app_worker_tapp_worker_get (u32 wrk_index)
 
app_worker_tapp_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_tapp_worker_get_app (u32 wrk_index)
 
static segment_manager_tapp_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 app_worker_own_session (app_worker_t *app_wrk, stream_session_t *s)
 
int application_start_listen (application_t *app, session_endpoint_cfg_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_tapp_worker_get_connect_segment_manager (app_worker_t *app)
 
segment_manager_tapp_worker_get_or_alloc_connect_segment_manager (app_worker_t *app_wrk)
 
segment_manager_tapp_worker_get_listen_segment_manager (app_worker_t *app, stream_session_t *listener)
 
clib_error_tvnet_app_worker_add_del (vnet_app_worker_add_del_args_t *a)
 
segment_manager_tapplication_get_local_segment_manager (app_worker_t *app)
 
segment_manager_tapplication_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, u64 segment_handle)
 Send an API message to the external app, to map new segment. More...
 
u32 application_n_listeners (app_worker_t *app)
 
stream_session_tapp_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_tapplication_proxy_listener (app_worker_t *app, u8 fib_proto, u8 transport_proto)
 
static clib_error_tapplication_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_tapplication_segment_manager_properties (application_t *app)
 
segment_manager_properties_tapplication_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_tapplication_local_session_alloc (app_worker_t *app_wrk)
 
void application_local_session_free (app_worker_t *app, local_session_t *s)
 
local_session_tapplication_get_local_session (app_worker_t *app_wrk, u32 session_index)
 
local_session_tapplication_get_local_session_from_handle (session_handle_t handle)
 
local_session_tapplication_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_cfg_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 u64 application_client_local_connect_key (local_session_t *ls)
 
static void application_client_local_connect_key_parse (u64 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_tvnet_app_add_tls_cert (vnet_app_add_tls_cert_args_t *a)
 
clib_error_tvnet_app_add_tls_key (vnet_app_add_tls_key_args_t *a)
 
u8format_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)
 
u8format_application_worker (u8 *s, va_list *args)
 
u8format_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_tshow_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

◆ app_send_evt_handler_fn

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

Definition at line 1388 of file application.c.

Function Documentation

◆ app_enqueue_evt()

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

Definition at line 1277 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_get_name()

static const u8* app_get_name ( application_t app)
static

Definition at line 103 of file application.c.

+ Here is the caller graph for this function:

◆ app_listener_alloc()

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:

◆ app_listener_free()

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:

◆ app_listener_get()

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:

◆ app_local_listener_alloc()

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:

◆ app_local_listener_free()

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:

◆ app_local_listener_get()

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:

◆ app_send_io_evt_rx()

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

Definition at line 1304 of file application.c.

+ Here is the call graph for this function:

◆ app_send_io_evt_tx()

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

Definition at line 1356 of file application.c.

+ Here is the call graph for this function:

◆ app_worker_add_segment_notify()

int app_worker_add_segment_notify ( u32  app_wrk_index,
u64  segment_handle 
)

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

Definition at line 1063 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_alloc()

app_worker_t* app_worker_alloc ( application_t app)

Definition at line 501 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_alloc_and_init()

int app_worker_alloc_and_init ( application_t app,
app_worker_t **  wrk 
)

Definition at line 597 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_alloc_connects_segment_manager()

int app_worker_alloc_connects_segment_manager ( app_worker_t app_wrk)

Definition at line 913 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_alloc_segment_manager()

static segment_manager_t* app_worker_alloc_segment_manager ( app_worker_t app_wrk)
static

Definition at line 655 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_application_is_builtin()

u8 app_worker_application_is_builtin ( app_worker_t app_wrk)

Definition at line 1102 of file application.c.

+ Here is the caller graph for this function:

◆ app_worker_first_listener()

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

Definition at line 1078 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_format_connects()

static void app_worker_format_connects ( app_worker_t app_wrk,
int  verbose 
)
static

Definition at line 2068 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_format_local_connects()

static void app_worker_format_local_connects ( app_worker_t app,
int  verbose 
)
static

Definition at line 2226 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_format_local_sessions()

static void app_worker_format_local_sessions ( app_worker_t app_wrk,
int  verbose 
)
static

Definition at line 2151 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_free()

void app_worker_free ( app_worker_t app_wrk)

Definition at line 531 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_get()

app_worker_t* app_worker_get ( u32  wrk_index)

Definition at line 517 of file application.c.

+ Here is the caller graph for this function:

◆ app_worker_get_app()

application_t* app_worker_get_app ( u32  wrk_index)

Definition at line 645 of file application.c.

+ Here is the call graph for this function:

◆ app_worker_get_connect_segment_manager()

segment_manager_t* app_worker_get_connect_segment_manager ( app_worker_t app)

Definition at line 928 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_get_if_valid()

app_worker_t* app_worker_get_if_valid ( u32  wrk_index)

Definition at line 523 of file application.c.

+ Here is the caller graph for this function:

◆ app_worker_get_listen_segment_manager()

segment_manager_t* app_worker_get_listen_segment_manager ( app_worker_t app,
stream_session_t listener 
)

Definition at line 943 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_get_or_alloc_connect_segment_manager()

segment_manager_t* app_worker_get_or_alloc_connect_segment_manager ( app_worker_t app_wrk)

Definition at line 935 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_local_sessions_free()

void app_worker_local_sessions_free ( app_worker_t app_wrk)

Definition at line 1926 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_lock_and_send_event()

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 1418 of file application.c.

+ Here is the caller graph for this function:

◆ app_worker_map_alloc()

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:

◆ app_worker_map_free()

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:

◆ app_worker_map_get()

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:

◆ app_worker_map_index()

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:

◆ app_worker_open_session()

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

Definition at line 898 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_own_session()

int app_worker_own_session ( app_worker_t app_wrk,
stream_session_t s 
)

Definition at line 728 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_send_event()

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 1405 of file application.c.

◆ app_worker_start_listen()

int app_worker_start_listen ( app_worker_t app_wrk,
stream_session_t ls 
)

Definition at line 675 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ app_worker_stop_listen()

int app_worker_stop_listen ( app_worker_t app_wrk,
session_handle_t  handle 
)

Definition at line 699 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_alloc()

application_t* application_alloc ( void  )

Definition at line 203 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_alloc_and_init()

int application_alloc_and_init ( app_init_args_t a)

Definition at line 270 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_api_table_add()

static void application_api_table_add ( u32  app_index,
u32  api_client_index 
)
static

Definition at line 156 of file application.c.

+ Here is the caller graph for this function:

◆ application_api_table_del()

static void application_api_table_del ( u32  api_client_index)
static

Definition at line 163 of file application.c.

+ Here is the caller graph for this function:

◆ application_client_local_connect_key()

static u64 application_client_local_connect_key ( local_session_t ls)
static

Definition at line 1749 of file application.c.

+ Here is the caller graph for this function:

◆ application_client_local_connect_key_parse()

static void application_client_local_connect_key_parse ( u64  key,
u32 app_wrk_index,
u32 session_index 
)
static

Definition at line 1755 of file application.c.

+ Here is the caller graph for this function:

◆ application_detach_process()

void application_detach_process ( application_t app,
u32  api_client_index 
)

Definition at line 412 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_format_all_clients()

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

Definition at line 2372 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_format_all_listeners()

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

Definition at line 2340 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_format_connects()

static void application_format_connects ( application_t app,
int  verbose 
)
static

Definition at line 2131 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_format_listeners()

static void application_format_listeners ( application_t app,
int  verbose 
)
static

Definition at line 2039 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_format_local_connects()

static void application_format_local_connects ( application_t app,
int  verbose 
)
static

Definition at line 2263 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_format_local_sessions()

static void application_format_local_sessions ( application_t app,
int  verbose 
)
static

Definition at line 2185 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_free()

void application_free ( application_t app)

Definition at line 355 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_get()

application_t* application_get ( u32  app_index)

Definition at line 213 of file application.c.

+ Here is the caller graph for this function:

◆ application_get_default_worker()

app_worker_t* application_get_default_worker ( application_t app)

Definition at line 466 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_get_if_valid()

application_t* application_get_if_valid ( u32  app_index)

Definition at line 221 of file application.c.

+ Here is the caller graph for this function:

◆ application_get_local_segment_manager()

segment_manager_t* application_get_local_segment_manager ( app_worker_t app)

Definition at line 1005 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_get_local_segment_manager_w_session()

segment_manager_t* application_get_local_segment_manager_w_session ( app_worker_t app,
local_session_t ls 
)

Definition at line 1011 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_get_local_session()

local_session_t* application_get_local_session ( app_worker_t app_wrk,
u32  session_index 
)

Definition at line 1445 of file application.c.

+ Here is the caller graph for this function:

◆ application_get_local_session_from_handle()

local_session_t* application_get_local_session_from_handle ( session_handle_t  handle)

Definition at line 1453 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_get_segment_manager_properties()

segment_manager_properties_t* application_get_segment_manager_properties ( u32  app_index)

Definition at line 1270 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_get_worker()

app_worker_t* application_get_worker ( application_t app,
u32  wrk_map_index 
)

Definition at line 456 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_has_global_scope()

u8 application_has_global_scope ( application_t app)

Definition at line 1048 of file application.c.

+ Here is the caller graph for this function:

◆ application_has_local_scope()

u8 application_has_local_scope ( application_t app)

Definition at line 1042 of file application.c.

+ Here is the caller graph for this function:

◆ application_is_builtin()

int application_is_builtin ( application_t app)

Definition at line 1030 of file application.c.

+ Here is the caller graph for this function:

◆ application_is_builtin_proxy()

int application_is_builtin_proxy ( application_t app)

Definition at line 1036 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_is_proxy()

int application_is_proxy ( application_t app)

Definition at line 1024 of file application.c.

+ Here is the caller graph for this function:

◆ application_listener_select_worker()

app_worker_t* application_listener_select_worker ( stream_session_t ls,
u8  is_local 
)

Definition at line 478 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_local_listen_session_alloc()

local_session_t* application_local_listen_session_alloc ( application_t app)

Definition at line 1465 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_local_listen_session_free()

void application_local_listen_session_free ( application_t app,
local_session_t ll 
)

Definition at line 1480 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_local_listener_index()

u32 application_local_listener_index ( application_t app,
local_session_t ll 
)

Definition at line 1474 of file application.c.

+ Here is the caller graph for this function:

◆ application_local_listener_session_endpoint()

static void application_local_listener_session_endpoint ( local_session_t ll,
session_endpoint_t sep 
)
static

Definition at line 134 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_local_session_alloc()

local_session_t* application_local_session_alloc ( app_worker_t app_wrk)

Definition at line 1425 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_local_session_cleanup()

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

Definition at line 1805 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_local_session_connect()

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

Definition at line 1641 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_local_session_connect_notify()

int application_local_session_connect_notify ( local_session_t ls)

Definition at line 1763 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_local_session_disconnect()

int application_local_session_disconnect ( u32  app_index,
local_session_t ls 
)

Definition at line 1854 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_local_session_disconnect_w_index()

int application_local_session_disconnect_w_index ( u32  app_wrk_index,
u32  ls_index 
)

Definition at line 1916 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_local_session_fix_eventds()

static void application_local_session_fix_eventds ( svm_msg_q_t sq,
svm_msg_q_t cq 
)
static

Definition at line 1624 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_local_session_free()

void application_local_session_free ( app_worker_t app,
local_session_t s 
)

Definition at line 1437 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_local_session_table()

u32 application_local_session_table ( application_t app)

Definition at line 124 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_lookup()

application_t* application_lookup ( u32  api_client_index)

Definition at line 181 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_lookup_name()

application_t* application_lookup_name ( const u8 name)

Definition at line 192 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_n_listeners()

u32 application_n_listeners ( app_worker_t app)

Definition at line 1072 of file application.c.

+ Here is the call graph for this function:

◆ application_n_workers()

u32 application_n_workers ( application_t app)

Definition at line 472 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_name_from_index()

const u8* application_name_from_index ( u32  app_index)

Returns app name for app-index.

Definition at line 147 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_name_table_add()

static void application_name_table_add ( application_t app)
static

Definition at line 169 of file application.c.

+ Here is the caller graph for this function:

◆ application_name_table_del()

static void application_name_table_del ( application_t app)
static

Definition at line 175 of file application.c.

+ Here is the caller graph for this function:

◆ application_proxy_listener()

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

Definition at line 1108 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_remove_proxy()

void application_remove_proxy ( application_t app)

Definition at line 1248 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_segment_manager_properties()

segment_manager_properties_t* application_segment_manager_properties ( application_t app)

Definition at line 1264 of file application.c.

+ Here is the caller graph for this function:

◆ application_session_table()

u32 application_session_table ( application_t app,
u8  fib_proto 
)

Definition at line 109 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_setup_proxy()

void application_setup_proxy ( application_t app)

Definition at line 1232 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_start_listen()

int application_start_listen ( application_t app,
session_endpoint_cfg_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 777 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_start_local_listen()

int application_start_local_listen ( application_t app,
session_endpoint_cfg_t sep_ext,
session_handle_t handle 
)

Definition at line 1489 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_start_stop_proxy()

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

Definition at line 1216 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_start_stop_proxy_fib_proto()

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 1132 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_start_stop_proxy_local_scope()

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

Definition at line 1189 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_stop_listen()

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 859 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_stop_local_listen()

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 1551 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ application_use_mq_for_ctrl()

u8 application_use_mq_for_ctrl ( application_t app)

Definition at line 1054 of file application.c.

+ Here is the caller graph for this function:

◆ application_verify_cb_fns()

static void application_verify_cb_fns ( session_cb_vft_t cb_fns)
static

Definition at line 230 of file application.c.

+ Here is the caller graph for this function:

◆ application_verify_cfg()

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 248 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_app_worker_listener()

u8* format_app_worker_listener ( u8 s,
va_list *  args 
)

Definition at line 2000 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_application()

u8* format_application ( u8 s,
va_list *  args 
)

Definition at line 2296 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_application_worker()

u8* format_application_worker ( u8 s,
va_list *  args 
)

Definition at line 2283 of file application.c.

+ Here is the call graph for this 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 
)
static

Definition at line 2405 of file application.c.

+ Here is the call graph for this function:

◆ vnet_app_add_tls_cert()

clib_error_t* vnet_app_add_tls_cert ( vnet_app_add_tls_cert_args_t a)

Definition at line 1976 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vnet_app_add_tls_key()

clib_error_t* vnet_app_add_tls_key ( vnet_app_add_tls_key_args_t a)

Definition at line 1988 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ vnet_app_worker_add_del()

clib_error_t* vnet_app_worker_add_del ( vnet_app_worker_add_del_args_t a)

Definition at line 953 of file application.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ app_main

app_main_t app_main
static

Definition at line 21 of file application.c.

◆ app_send_evt_handler_fns

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:1304
static int app_send_io_evt_tx(app_worker_t *app_wrk, stream_session_t *s, u8 lock)
Definition: application.c:1356

Definition at line 1391 of file application.c.

◆ show_app_command

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:2405

(constructor) VLIB_CLI_COMMAND (show_app_command)

Definition at line 2469 of file application.c.