FD.io VPP  v19.04.2-12-g66b1689
Vector Packet Processing
application.h File Reference
+ Include dependency graph for application.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  app_worker_
 
struct  app_worker_map_
 
struct  app_listener_
 
struct  application_
 
struct  app_main_
 
struct  app_init_args_
 

Macros

#define APP_DEBUG   0
 
#define APP_DBG(_fmt, _args...)
 
#define APP_INVALID_INDEX   ((u32)~0)
 
#define APP_NS_INVALID_INDEX   ((u32)~0)
 
#define APP_INVALID_SEGMENT_MANAGER_INDEX   ((u32) ~0)
 

Typedefs

typedef struct app_worker_ app_worker_t
 
typedef struct app_worker_map_ app_worker_map_t
 
typedef struct app_listener_ app_listener_t
 
typedef struct application_ application_t
 
typedef struct app_main_ app_main_t
 
typedef struct app_init_args_ app_init_args_t
 
typedef struct _vnet_app_worker_add_del_args vnet_app_worker_add_del_args_t
 

Functions

app_listener_tapp_listener_get (application_t *app, u32 al_index)
 
int app_listener_alloc_and_init (application_t *app, session_endpoint_cfg_t *sep, app_listener_t **listener)
 
void app_listener_cleanup (app_listener_t *app_listener)
 
session_handle_t app_listener_handle (app_listener_t *app_listener)
 
app_listener_tapp_listener_lookup (application_t *app, session_endpoint_cfg_t *sep)
 
app_listener_tapp_listener_get_w_handle (session_handle_t handle)
 
app_listener_tapp_listener_get_w_session (session_t *ls)
 
session_tapp_listener_get_session (app_listener_t *al)
 
session_tapp_listener_get_local_session (app_listener_t *al)
 
application_tapplication_get (u32 index)
 
application_tapplication_get_if_valid (u32 index)
 
application_tapplication_lookup (u32 api_client_index)
 
application_tapplication_lookup_name (const u8 *name)
 
app_worker_tapplication_get_worker (application_t *app, u32 wrk_index)
 
app_worker_tapplication_get_default_worker (application_t *app)
 
app_worker_tapplication_listener_select_worker (session_t *ls)
 
int application_change_listener_owner (session_t *s, app_worker_t *app_wrk)
 
int application_is_proxy (application_t *app)
 
int application_is_builtin (application_t *app)
 
int application_is_builtin_proxy (application_t *app)
 
u32 application_session_table (application_t *app, u8 fib_proto)
 
u32 application_local_session_table (application_t *app)
 
const u8application_name_from_index (u32 app_or_wrk)
 Returns app name for app-index. More...
 
u8 application_has_local_scope (application_t *app)
 
u8 application_has_global_scope (application_t *app)
 
void application_setup_proxy (application_t *app)
 
void application_remove_proxy (application_t *app)
 
segment_manager_properties_tapplication_get_segment_manager_properties (u32 app_index)
 
segment_manager_properties_tapplication_segment_manager_properties (application_t *app)
 
app_worker_tapp_worker_alloc (application_t *app)
 
int application_alloc_worker_and_init (application_t *app, app_worker_t **wrk)
 
app_worker_tapp_worker_get (u32 wrk_index)
 
app_worker_tapp_worker_get_if_valid (u32 wrk_index)
 
application_tapp_worker_get_app (u32 wrk_index)
 
int app_worker_own_session (app_worker_t *app_wrk, session_t *s)
 
void app_worker_free (app_worker_t *app_wrk)
 
int app_worker_connect_session (app_worker_t *app, session_endpoint_t *tep, u32 api_context)
 
int app_worker_start_listen (app_worker_t *app_wrk, app_listener_t *lstnr)
 
int app_worker_stop_listen (app_worker_t *app_wrk, app_listener_t *al)
 
int app_worker_init_accepted (session_t *s)
 
int app_worker_accept_notify (app_worker_t *app_wrk, session_t *s)
 
int app_worker_init_connected (app_worker_t *app_wrk, session_t *s)
 
int app_worker_connect_notify (app_worker_t *app_wrk, session_t *s, u32 opaque)
 
int app_worker_close_notify (app_worker_t *app_wrk, session_t *s)
 
int app_worker_reset_notify (app_worker_t *app_wrk, session_t *s)
 
int app_worker_builtin_rx (app_worker_t *app_wrk, session_t *s)
 
segment_manager_tapp_worker_get_listen_segment_manager (app_worker_t *, session_t *)
 
segment_manager_tapp_worker_get_connect_segment_manager (app_worker_t *)
 
segment_manager_tapp_worker_get_or_alloc_connect_segment_manager (app_worker_t *)
 
int app_worker_alloc_connects_segment_manager (app_worker_t *app)
 
int app_worker_add_segment_notify (app_worker_t *app_wrk, u64 segment_handle)
 Send an API message to the external app, to map new segment. More...
 
int app_worker_del_segment_notify (app_worker_t *app_wrk, u64 segment_handle)
 
u32 app_worker_n_listeners (app_worker_t *app)
 
session_tapp_worker_first_listener (app_worker_t *app, u8 fib_proto, u8 transport_proto)
 
int app_worker_send_event (app_worker_t *app, session_t *s, u8 evt)
 Send event to application. More...
 
int app_worker_lock_and_send_event (app_worker_t *app, session_t *s, u8 evt_type)
 Send event to application. More...
 
session_tapp_worker_proxy_listener (app_worker_t *app, u8 fib_proto, u8 transport_proto)
 
u8format_app_worker (u8 *s, va_list *args)
 
u8format_app_worker_listener (u8 *s, va_list *args)
 
void app_worker_format_connects (app_worker_t *app_wrk, int verbose)
 
int vnet_app_worker_add_del (vnet_app_worker_add_del_args_t *a)
 
uword unformat_application_proto (unformat_input_t *input, va_list *args)
 

Macro Definition Documentation

#define APP_DBG (   _fmt,
  _args... 
)

Definition at line 29 of file application.h.

#define APP_DEBUG   0

Definition at line 24 of file application.h.

#define APP_INVALID_INDEX   ((u32)~0)

Definition at line 164 of file application.h.

#define APP_INVALID_SEGMENT_MANAGER_INDEX   ((u32) ~0)

Definition at line 166 of file application.h.

#define APP_NS_INVALID_INDEX   ((u32)~0)

Definition at line 165 of file application.h.

Typedef Documentation

typedef struct app_listener_ app_listener_t
typedef struct app_main_ app_main_t
typedef struct app_worker_ app_worker_t
typedef struct application_ application_t
typedef struct _vnet_app_worker_add_del_args vnet_app_worker_add_del_args_t

Function Documentation

int app_listener_alloc_and_init ( application_t app,
session_endpoint_cfg_t sep,
app_listener_t **  listener 
)

Definition at line 162 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void app_listener_cleanup ( app_listener_t app_listener)

Definition at line 259 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

app_listener_t* app_listener_get ( application_t app,
u32  al_index 
)

Definition at line 45 of file application.c.

+ Here is the caller graph for this function:

session_t* app_listener_get_local_session ( app_listener_t al)

Definition at line 310 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

session_t* app_listener_get_session ( app_listener_t al)

Definition at line 301 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

app_listener_t* app_listener_get_w_handle ( session_handle_t  handle)

Definition at line 120 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

app_listener_t* app_listener_get_w_session ( session_t ls)

Definition at line 109 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

session_handle_t app_listener_handle ( app_listener_t app_listener)

Definition at line 75 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

app_listener_t* app_listener_lookup ( application_t app,
session_endpoint_cfg_t sep 
)

Definition at line 130 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_accept_notify ( app_worker_t app_wrk,
session_t s 
)

Definition at line 294 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_add_segment_notify ( app_worker_t app_wrk,
u64  segment_handle 
)

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

Definition at line 499 of file application_worker.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 26 of file application_worker.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)

Definition at line 409 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_builtin_rx ( app_worker_t app_wrk,
session_t s 
)

Definition at line 341 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_close_notify ( app_worker_t app_wrk,
session_t s 
)

Definition at line 325 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_connect_notify ( app_worker_t app_wrk,
session_t s,
u32  opaque 
)

Definition at line 317 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_connect_session ( app_worker_t app,
session_endpoint_t tep,
u32  api_context 
)

Definition at line 394 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_del_segment_notify ( app_worker_t app_wrk,
u64  segment_handle 
)

Definition at line 507 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 449 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void app_worker_format_connects ( app_worker_t app_wrk,
int  verbose 
)

Definition at line 711 of file application_worker.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 55 of file application_worker.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 41 of file application_worker.c.

+ Here is the caller graph for this function:

application_t* app_worker_get_app ( u32  wrk_index)

Definition at line 120 of file application_worker.c.

+ Here is the call graph for this function:

segment_manager_t* app_worker_get_connect_segment_manager ( app_worker_t )

Definition at line 424 of file application_worker.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 47 of file application_worker.c.

+ Here is the caller graph for this function:

segment_manager_t* app_worker_get_listen_segment_manager ( app_worker_t ,
session_t  
)

Definition at line 439 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

segment_manager_t* app_worker_get_or_alloc_connect_segment_manager ( app_worker_t )

Definition at line 431 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_init_accepted ( session_t s)

Definition at line 276 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_init_connected ( app_worker_t app_wrk,
session_t s 
)

Definition at line 301 of file application_worker.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,
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 652 of file application_worker.c.

+ Here is the caller graph for this function:

u32 app_worker_n_listeners ( app_worker_t app)
int app_worker_own_session ( app_worker_t app_wrk,
session_t s 
)

Definition at line 349 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

session_t* app_worker_proxy_listener ( app_worker_t app,
u8  fib_proto,
u8  transport_proto 
)

Definition at line 473 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_reset_notify ( app_worker_t app_wrk,
session_t s 
)

Definition at line 333 of file application_worker.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,
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 639 of file application_worker.c.

int app_worker_start_listen ( app_worker_t app_wrk,
app_listener_t lstnr 
)

Definition at line 194 of file application_worker.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,
app_listener_t al 
)

Definition at line 249 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int application_alloc_worker_and_init ( application_t app,
app_worker_t **  wrk 
)

Definition at line 707 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int application_change_listener_owner ( session_t s,
app_worker_t app_wrk 
)

Definition at line 1114 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  index)

Definition at line 447 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 684 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  index)

Definition at line 455 of file application.c.

+ Here is the caller graph for this function:

segment_manager_properties_t* application_get_segment_manager_properties ( u32  app_index)

Definition at line 1323 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_index 
)

Definition at line 674 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 1171 of file application.c.

+ Here is the caller graph for this function:

u8 application_has_local_scope ( application_t app)

Definition at line 1165 of file application.c.

+ Here is the caller graph for this function:

int application_is_builtin ( application_t app)

Definition at line 1153 of file application.c.

+ Here is the caller graph for this function:

int application_is_builtin_proxy ( application_t app)

Definition at line 1159 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 1147 of file application.c.

+ Here is the caller graph for this function:

app_worker_t* application_listener_select_worker ( session_t ls)

Definition at line 696 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 368 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 415 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 426 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const u8* application_name_from_index ( u32  app_or_wrk)

Returns app name for app-index.

Definition at line 381 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 1301 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 1317 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 353 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 1285 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_app_worker ( u8 s,
va_list *  args 
)

Definition at line 698 of file application_worker.c.

+ Here is the call graph for this function:

u8* format_app_worker_listener ( u8 s,
va_list *  args 
)

Definition at line 659 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uword unformat_application_proto ( unformat_input_t input,
va_list *  args 
)
int vnet_app_worker_add_del ( vnet_app_worker_add_del_args_t a)

Definition at line 747 of file application.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function: