FD.io VPP  v19.08-27-gf4dcae4
Vector Packet Processing
application_worker.c File Reference
+ Include dependency graph for application_worker.c:

Go to the source code of this file.

Typedefs

typedef int( app_send_evt_handler_fn) (app_worker_t *app, session_t *s)
 

Functions

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)
 
application_tapp_worker_get_app (u32 wrk_index)
 
static segment_manager_tapp_worker_alloc_segment_manager (app_worker_t *app_wrk)
 
static int app_worker_alloc_session_fifos (segment_manager_t *sm, session_t *s)
 
int app_worker_init_listener (app_worker_t *app_wrk, session_t *ls)
 
int app_worker_start_listen (app_worker_t *app_wrk, app_listener_t *app_listener)
 
static void app_worker_stop_listen_session (app_worker_t *app_wrk, session_t *ls)
 
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_transport_closed_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_cleanup_notify (app_worker_t *app_wrk, session_t *s, session_cleanup_ntf_t ntf)
 
int app_worker_builtin_rx (app_worker_t *app_wrk, session_t *s)
 
int app_worker_builtin_tx (app_worker_t *app_wrk, session_t *s)
 
int app_worker_migrate_notify (app_worker_t *app_wrk, session_t *s, session_handle_t new_sh)
 
int app_worker_own_session (app_worker_t *app_wrk, session_t *s)
 
int app_worker_connect_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, session_t *listener)
 
session_tapp_worker_first_listener (app_worker_t *app_wrk, u8 fib_proto, u8 transport_proto)
 
session_tapp_worker_proxy_listener (app_worker_t *app_wrk, u8 fib_proto, u8 transport_proto)
 
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)
 
static u8 app_worker_application_is_builtin (app_worker_t *app_wrk)
 
static int app_send_io_evt_rx (app_worker_t *app_wrk, session_t *s)
 
static int app_send_io_evt_tx (app_worker_t *app_wrk, session_t *s)
 
int app_worker_lock_and_send_event (app_worker_t *app, session_t *s, u8 evt_type)
 Send event to application. More...
 
u8format_app_worker_listener (u8 *s, va_list *args)
 
u8format_app_worker (u8 *s, va_list *args)
 
void app_worker_format_connects (app_worker_t *app_wrk, int verbose)
 

Variables

static app_worker_tapp_workers
 Pool of workers associated to apps. More...
 
static app_send_evt_handler_fn *const app_send_evt_handler_fns [2]
 

Typedef Documentation

typedef int( app_send_evt_handler_fn) (app_worker_t *app, session_t *s)

Definition at line 628 of file application_worker.c.

Function Documentation

static int app_send_io_evt_rx ( app_worker_t app_wrk,
session_t s 
)
inlinestatic

Definition at line 547 of file application_worker.c.

+ Here is the call graph for this function:

static int app_send_io_evt_tx ( app_worker_t app_wrk,
session_t s 
)
inlinestatic

Definition at line 592 of file application_worker.c.

+ Here is the call graph for this function:

int app_worker_accept_notify ( app_worker_t app_wrk,
session_t s 
)

Definition at line 290 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 525 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_wrk)

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static int app_worker_alloc_session_fifos ( segment_manager_t sm,
session_t s 
)
static

Definition at line 148 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8 app_worker_application_is_builtin ( app_worker_t app_wrk)
inlinestatic

Definition at line 541 of file application_worker.c.

+ Here is the caller graph for this function:

int app_worker_builtin_rx ( app_worker_t app_wrk,
session_t s 
)

Definition at line 356 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_tx ( app_worker_t app_wrk,
session_t s 
)

Definition at line 364 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_cleanup_notify ( app_worker_t app_wrk,
session_t s,
session_cleanup_ntf_t  ntf 
)

Definition at line 346 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 321 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 313 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 sep,
u32  api_context 
)

Definition at line 420 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 533 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_wrk,
u8  fib_proto,
u8  transport_proto 
)

Definition at line 475 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 702 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 118 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 app)

Definition at line 450 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 app,
session_t listener 
)

Definition at line 465 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 app_wrk)

Definition at line 457 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 272 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 297 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_listener ( app_worker_t app_wrk,
session_t ls 
)

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

+ Here is the caller graph for this function:

int app_worker_migrate_notify ( app_worker_t app_wrk,
session_t s,
session_handle_t  new_sh 
)

Definition at line 376 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_own_session ( app_worker_t app_wrk,
session_t s 
)

Definition at line 385 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_wrk,
u8  fib_proto,
u8  transport_proto 
)

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:

int app_worker_reset_notify ( app_worker_t app_wrk,
session_t s 
)

Definition at line 338 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_start_listen ( app_worker_t app_wrk,
app_listener_t app_listener 
)

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void app_worker_stop_listen_session ( app_worker_t app_wrk,
session_t ls 
)
static

Definition at line 219 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int app_worker_transport_closed_notify ( app_worker_t app_wrk,
session_t s 
)

Definition at line 329 of file application_worker.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 689 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 650 of file application_worker.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

app_send_evt_handler_fn* const app_send_evt_handler_fns[2]
static
Initial value:
= {
}
static int app_send_io_evt_tx(app_worker_t *app_wrk, session_t *s)
static int app_send_io_evt_rx(app_worker_t *app_wrk, session_t *s)

Definition at line 630 of file application_worker.c.

app_worker_t* app_workers
static

Pool of workers associated to apps.

Definition at line 23 of file application_worker.c.