FD.io VPP  v20.01-48-g3e0dafb74
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

◆ app_send_evt_handler_fn

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

Definition at line 632 of file application_worker.c.

Function Documentation

◆ app_send_io_evt_rx()

static int app_send_io_evt_rx ( app_worker_t app_wrk,
session_t s 
)
inlinestatic

Definition at line 549 of file application_worker.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,
session_t s 
)
inlinestatic

Definition at line 596 of file application_worker.c.

+ Here is the call graph for this function:

◆ app_worker_accept_notify()

int app_worker_accept_notify ( app_worker_t app_wrk,
session_t s 
)

Definition at line 291 of file application_worker.c.

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

◆ app_worker_add_segment_notify()

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 526 of file application_worker.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 26 of file application_worker.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 436 of file application_worker.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 128 of file application_worker.c.

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

◆ app_worker_alloc_session_fifos()

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:

◆ app_worker_application_is_builtin()

static u8 app_worker_application_is_builtin ( app_worker_t app_wrk)
inlinestatic

Definition at line 543 of file application_worker.c.

+ Here is the caller graph for this function:

◆ app_worker_builtin_rx()

int app_worker_builtin_rx ( app_worker_t app_wrk,
session_t s 
)

Definition at line 357 of file application_worker.c.

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

◆ app_worker_builtin_tx()

int app_worker_builtin_tx ( app_worker_t app_wrk,
session_t s 
)

Definition at line 365 of file application_worker.c.

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

◆ app_worker_cleanup_notify()

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

Definition at line 347 of file application_worker.c.

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

◆ app_worker_close_notify()

int app_worker_close_notify ( app_worker_t app_wrk,
session_t s 
)

Definition at line 322 of file application_worker.c.

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

◆ app_worker_connect_notify()

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

Definition at line 314 of file application_worker.c.

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

◆ app_worker_connect_session()

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

Definition at line 421 of file application_worker.c.

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

◆ app_worker_del_segment_notify()

int app_worker_del_segment_notify ( app_worker_t app_wrk,
u64  segment_handle 
)

Definition at line 535 of file application_worker.c.

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

◆ app_worker_first_listener()

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

Definition at line 476 of file application_worker.c.

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

◆ app_worker_format_connects()

void app_worker_format_connects ( app_worker_t app_wrk,
int  verbose 
)

Definition at line 706 of file application_worker.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 55 of file application_worker.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 41 of file application_worker.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 118 of file application_worker.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 451 of file application_worker.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 47 of file application_worker.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,
session_t listener 
)

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

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

◆ app_worker_init_accepted()

int app_worker_init_accepted ( session_t s)

Definition at line 273 of file application_worker.c.

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

◆ app_worker_init_connected()

int app_worker_init_connected ( app_worker_t app_wrk,
session_t s 
)

Definition at line 298 of file application_worker.c.

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

◆ app_worker_init_listener()

int app_worker_init_listener ( app_worker_t app_wrk,
session_t ls 
)

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

+ Here is the caller graph for this function:

◆ app_worker_migrate_notify()

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

Definition at line 377 of file application_worker.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,
session_t s 
)

Definition at line 386 of file application_worker.c.

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

◆ app_worker_proxy_listener()

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

Definition at line 500 of file application_worker.c.

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

◆ app_worker_reset_notify()

int app_worker_reset_notify ( app_worker_t app_wrk,
session_t s 
)

Definition at line 339 of file application_worker.c.

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

◆ app_worker_start_listen()

int app_worker_start_listen ( app_worker_t app_wrk,
app_listener_t app_listener 
)

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

Definition at line 246 of file application_worker.c.

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

◆ app_worker_stop_listen_session()

static void app_worker_stop_listen_session ( app_worker_t app_wrk,
session_t ls 
)
static

Definition at line 220 of file application_worker.c.

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

◆ app_worker_transport_closed_notify()

int app_worker_transport_closed_notify ( app_worker_t app_wrk,
session_t s 
)

Definition at line 330 of file application_worker.c.

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

◆ format_app_worker()

u8* format_app_worker ( u8 s,
va_list *  args 
)

Definition at line 693 of file application_worker.c.

+ Here is the call graph for this function:

◆ format_app_worker_listener()

u8* format_app_worker_listener ( u8 s,
va_list *  args 
)

Definition at line 654 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_fns

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 634 of file application_worker.c.

◆ app_workers

app_worker_t* app_workers
static

Pool of workers associated to apps.

Definition at line 23 of file application_worker.c.