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

Macros

#define MAX_SESSION   4096
 
#define MAX_VECTOR_ASYNC   256
 
#define SSL_ASYNC_INFLIGHT   1
 
#define SSL_ASYNC_PENDING   2
 
#define SSL_ASYNC_READY   3
 
#define EMPTY_STRUCT   {0}
 

Typedefs

typedef struct openssl_tls_callback_arg_ openssl_tls_callback_arg_t
 
typedef struct openssl_event_ openssl_evt_t
 
typedef struct openssl_async_status_ openssl_async_status_t
 
typedef struct openssl_async_ openssl_async_t
 

Functions

void qat_polling ()
 
void qat_pre_init ()
 
void qat_polling_config ()
 
void dasync_polling ()
 
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)
 
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_idx, u8 thread_index)
 
static u32 openssl_evt_alloc (void)
 
int tls_async_openssl_callback (SSL *s, void *evt)
 
openssl_tls_callback_tvpp_add_async_pending_event (tls_ctx_t *ctx, openssl_resume_handler *handler)
 
int vpp_add_async_run_event (tls_ctx_t *ctx, openssl_resume_handler *handler)
 
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

◆ EMPTY_STRUCT

#define EMPTY_STRUCT   {0}

Definition at line 29 of file tls_async.c.

◆ MAX_SESSION

#define MAX_SESSION   4096

Definition at line 22 of file tls_async.c.

◆ MAX_VECTOR_ASYNC

#define MAX_VECTOR_ASYNC   256

Definition at line 23 of file tls_async.c.

◆ SSL_ASYNC_INFLIGHT

#define SSL_ASYNC_INFLIGHT   1

Definition at line 25 of file tls_async.c.

◆ SSL_ASYNC_PENDING

#define SSL_ASYNC_PENDING   2

Definition at line 26 of file tls_async.c.

◆ SSL_ASYNC_READY

#define SSL_ASYNC_READY   3

Definition at line 27 of file tls_async.c.

Typedef Documentation

◆ openssl_async_status_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 366 of file tls_async.c.

◆ event_handler()

void event_handler ( void *  tls_async)

Definition at line 338 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 96 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 426 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 416 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 
)

Definition at line 124 of file tls_async.c.

+ Here is the caller graph for this function:

◆ openssl_evt_alloc()

static u32 openssl_evt_alloc ( void  )
static

Definition at line 232 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_idx,
u8  thread_index 
)

Definition at line 209 of file tls_async.c.

+ Here is the call graph for this function:
+ 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 189 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 199 of file tls_async.c.

+ Here is the caller graph for this function:

◆ qat_polling()

void qat_polling ( )

Definition at line 404 of file tls_async.c.

◆ qat_polling_config()

void qat_polling_config ( )

Definition at line 384 of file tls_async.c.

+ Here is the call graph for this function:

◆ qat_pre_init()

void qat_pre_init ( )

Definition at line 375 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 111 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 438 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 *  evt 
)

Definition at line 248 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 497 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 456 of file tls_async.c.

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

◆ vpp_add_async_pending_event()

openssl_tls_callback_t* vpp_add_async_pending_event ( tls_ctx_t ctx,
openssl_resume_handler handler 
)

Definition at line 284 of file tls_async.c.

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

◆ vpp_add_async_run_event()

int vpp_add_async_run_event ( tls_ctx_t ctx,
openssl_resume_handler handler 
)

Definition at line 314 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:404
#define NULL
Definition: clib.h:58
void qat_pre_init()
Definition: tls_async.c:375
void qat_polling_config()
Definition: tls_async.c:384
void dasync_polling()
Definition: tls_async.c:366

Definition at line 83 of file tls_async.c.

◆ openssl_async_main

openssl_async_t openssl_async_main

Definition at line 88 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:497

(constructor) VLIB_REGISTER_NODE (tls_async_process_node)

Definition at line 89 of file tls_async.c.