FD.io VPP  v21.01.1
Vector Packet Processing
tls_async.c File Reference
+ Include dependency graph for tls_async.c:

Go to the source code of this file.

Data Structures

struct  openssl_tls_callback_arg_
 
struct  openssl_event_
 
struct  openssl_async_queue_
 
struct  openssl_async_
 
struct  engine_polling
 

Macros

#define SSL_ASYNC_INFLIGHT   1
 
#define SSL_ASYNC_READY   2
 
#define SSL_ASYNC_REENTER   3
 
#define MAX_VECTOR_ASYNC   256
 
#define thread_idx   cb_args.thread_index
 
#define event_idx   cb_args.event_index
 

Typedefs

typedef struct openssl_tls_callback_arg_ openssl_tls_callback_arg_t
 
typedef struct openssl_event_ openssl_evt_t
 
typedef struct openssl_async_queue_ openssl_async_queue_t
 
typedef struct openssl_async_ openssl_async_t
 

Functions

void qat_polling ()
 
void qat_pre_init ()
 
void qat_polling_config ()
 
void dasync_polling ()
 
void qat_init_thread (void *arg)
 
void session_send_rpc_evt_to_thread (u32 thread_index, void *fp, void *rpc_args)
 
void evt_pool_init (vlib_main_t *vm)
 
int openssl_engine_register (char *engine_name, char *algorithm, int async)
 
static openssl_evt_topenssl_evt_get (u32 evt_index)
 
static openssl_evt_topenssl_evt_get_w_thread (int evt_index, u8 thread_index)
 
int openssl_evt_free (int event_index, u8 thread_index)
 
static u32 openssl_evt_alloc (void)
 
int tls_async_openssl_callback (SSL *s, void *cb_arg)
 
int vpp_tls_async_init_event (tls_ctx_t *ctx, openssl_resume_handler *handler, session_t *session)
 
int vpp_openssl_is_inflight (tls_ctx_t *ctx)
 
int vpp_tls_async_update_event (tls_ctx_t *ctx, int eagain)
 
void event_handler (void *tls_async)
 
void openssl_async_polling ()
 
void openssl_async_node_enable_disable (u8 is_en)
 
int tls_async_do_job (int eidx, u32 thread_index)
 
int tls_resume_from_crypto (int thread_index)
 
static clib_error_ttls_async_init (vlib_main_t *vm)
 
static uword tls_async_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 

Variables

struct engine_polling engine_list []
 
openssl_async_t openssl_async_main
 
static vlib_node_registration_t tls_async_process_node
 (constructor) VLIB_REGISTER_NODE (tls_async_process_node) More...
 

Macro Definition Documentation

◆ event_idx

#define event_idx   cb_args.event_index

Definition at line 41 of file tls_async.c.

◆ MAX_VECTOR_ASYNC

#define MAX_VECTOR_ASYNC   256

Definition at line 24 of file tls_async.c.

◆ SSL_ASYNC_INFLIGHT

#define SSL_ASYNC_INFLIGHT   1

Definition at line 21 of file tls_async.c.

◆ SSL_ASYNC_READY

#define SSL_ASYNC_READY   2

Definition at line 22 of file tls_async.c.

◆ SSL_ASYNC_REENTER

#define SSL_ASYNC_REENTER   3

Definition at line 23 of file tls_async.c.

◆ thread_idx

#define thread_idx   cb_args.thread_index

Definition at line 40 of file tls_async.c.

Typedef Documentation

◆ openssl_async_queue_t

◆ openssl_async_t

◆ openssl_evt_t

typedef struct openssl_event_ openssl_evt_t

◆ openssl_tls_callback_arg_t

Function Documentation

◆ dasync_polling()

void dasync_polling ( )

Definition at line 358 of file tls_async.c.

◆ event_handler()

void event_handler ( void *  tls_async)

Definition at line 334 of file tls_async.c.

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

◆ evt_pool_init()

void evt_pool_init ( vlib_main_t vm)

Definition at line 89 of file tls_async.c.

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

◆ openssl_async_node_enable_disable()

void openssl_async_node_enable_disable ( u8  is_en)

Definition at line 412 of file tls_async.c.

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

◆ openssl_async_polling()

void openssl_async_polling ( )

Definition at line 402 of file tls_async.c.

+ Here is the caller graph for this function:

◆ openssl_engine_register()

int openssl_engine_register ( char *  engine_name,
char *  algorithm,
int  async 
)

Definition at line 116 of file tls_async.c.

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

◆ openssl_evt_alloc()

static u32 openssl_evt_alloc ( void  )
static

Definition at line 223 of file tls_async.c.

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

◆ openssl_evt_free()

int openssl_evt_free ( int  event_index,
u8  thread_index 
)

Definition at line 212 of file tls_async.c.

+ Here is the caller graph for this function:

◆ openssl_evt_get()

static openssl_evt_t* openssl_evt_get ( u32  evt_index)
static

Definition at line 192 of file tls_async.c.

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

◆ openssl_evt_get_w_thread()

static openssl_evt_t* openssl_evt_get_w_thread ( int  evt_index,
u8  thread_index 
)
static

Definition at line 202 of file tls_async.c.

+ Here is the caller graph for this function:

◆ qat_init_thread()

void qat_init_thread ( void *  arg)

Definition at line 376 of file tls_async.c.

+ Here is the call graph for this function:

◆ qat_polling()

void qat_polling ( )

Definition at line 390 of file tls_async.c.

◆ qat_polling_config()

void qat_polling_config ( )

◆ qat_pre_init()

void qat_pre_init ( )

Definition at line 367 of file tls_async.c.

◆ session_send_rpc_evt_to_thread()

void session_send_rpc_evt_to_thread ( u32  thread_index,
void *  fp,
void *  rpc_args 
)

Definition at line 110 of file session.c.

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

◆ tls_async_do_job()

int tls_async_do_job ( int  eidx,
u32  thread_index 
)

Definition at line 430 of file tls_async.c.

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

◆ tls_async_init()

static clib_error_t* tls_async_init ( vlib_main_t vm)
static

Definition at line 489 of file tls_async.c.

+ Here is the call graph for this function:

◆ tls_async_openssl_callback()

int tls_async_openssl_callback ( SSL *  s,
void *  cb_arg 
)

Definition at line 243 of file tls_async.c.

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

◆ tls_async_process()

static uword tls_async_process ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 496 of file tls_async.c.

+ Here is the call graph for this function:

◆ tls_resume_from_crypto()

int tls_resume_from_crypto ( int  thread_index)

Definition at line 448 of file tls_async.c.

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

◆ vpp_openssl_is_inflight()

int vpp_openssl_is_inflight ( tls_ctx_t ctx)

Definition at line 306 of file tls_async.c.

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

◆ vpp_tls_async_init_event()

int vpp_tls_async_init_event ( tls_ctx_t ctx,
openssl_resume_handler handler,
session_t session 
)

Definition at line 280 of file tls_async.c.

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

◆ vpp_tls_async_update_event()

int vpp_tls_async_update_event ( tls_ctx_t ctx,
int  eagain 
)

Definition at line 319 of file tls_async.c.

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

Variable Documentation

◆ engine_list

struct engine_polling engine_list[]
Initial value:
= {
{"dasync", dasync_polling, NULL, NULL}
}
void qat_polling()
Definition: tls_async.c:390
void qat_pre_init()
Definition: tls_async.c:367
void dasync_polling()
Definition: tls_async.c:358
void qat_init_thread(void *arg)
Definition: tls_async.c:376

Definition at line 76 of file tls_async.c.

◆ openssl_async_main

openssl_async_t openssl_async_main

Definition at line 81 of file tls_async.c.

◆ tls_async_process_node

static vlib_node_registration_t tls_async_process_node
static
Initial value:
= {
.function = tls_async_process,
.name = "tls-async-process",
.state = VLIB_NODE_STATE_DISABLED,
}
static uword tls_async_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: tls_async.c:496

(constructor) VLIB_REGISTER_NODE (tls_async_process_node)

Definition at line 82 of file tls_async.c.