FD.io VPP  v19.01.3-6-g70449b9b9
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 368 of file tls_async.c.

◆ event_handler()

void event_handler ( void *  tls_async)

Definition at line 340 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 428 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 418 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 126 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 234 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 211 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 191 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 201 of file tls_async.c.

+ Here is the caller graph for this function:

◆ qat_polling()

void qat_polling ( )

Definition at line 406 of file tls_async.c.

◆ qat_polling_config()

void qat_polling_config ( )

Definition at line 386 of file tls_async.c.

+ Here is the call graph for this function:

◆ qat_pre_init()

void qat_pre_init ( )

Definition at line 377 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 440 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 491 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 250 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 499 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 458 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 286 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 316 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:406
#define NULL
Definition: clib.h:58
void qat_pre_init()
Definition: tls_async.c:377
void qat_polling_config()
Definition: tls_async.c:386
void dasync_polling()
Definition: tls_async.c:368

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",
}
static uword tls_async_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: tls_async.c:499

(constructor) VLIB_REGISTER_NODE (tls_async_process_node)

Definition at line 89 of file tls_async.c.