X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsession%2Fapplication.h;h=9943576377d9244c0e95629804a310c684f44d4b;hb=30928f87a3c9d98e288d1364d50c032e052e69ab;hp=24c6fc3eeaff7d38fc6c68c98fe8225916e47752;hpb=49568afd2096600f5d6745385d81d873c8893e29;p=vpp.git diff --git a/src/vnet/session/application.h b/src/vnet/session/application.h index 24c6fc3eeaf..9943576377d 100644 --- a/src/vnet/session/application.h +++ b/src/vnet/session/application.h @@ -111,20 +111,12 @@ typedef struct application_ /** Pool of listeners for the app */ app_listener_t *listeners; - /* - * TLS & QUIC Specific - */ - - /** Certificate to be used for listen sessions */ - u8 *tls_cert; - - /** PEM encoded key */ - u8 *tls_key; - /** Preferred tls engine */ u8 tls_engine; - u64 *quicly_ctx; + /** quic initialization vector */ + char quic_iv[17]; + u8 quic_iv_set; } application_t; @@ -144,6 +136,16 @@ typedef struct app_main_ * Hash table of builtin apps by name */ uword *app_by_name; + + /** + * Pool from which we allocate certificates (key, cert) + */ + app_cert_key_pair_t *cert_key_pair_store; + + /* + * Last registered crypto engine type + */ + crypto_engine_type_t last_crypto_engine; } app_main_t; typedef struct app_init_args_ @@ -279,11 +281,28 @@ session_t *app_worker_proxy_listener (app_worker_t * app, u8 fib_proto, u8 transport_proto); u8 *format_app_worker (u8 * s, va_list * args); u8 *format_app_worker_listener (u8 * s, va_list * args); +u8 *format_crypto_engine (u8 * s, va_list * args); +u8 *format_crypto_context (u8 * s, va_list * args); void app_worker_format_connects (app_worker_t * app_wrk, int verbose); int vnet_app_worker_add_del (vnet_app_worker_add_del_args_t * a); uword unformat_application_proto (unformat_input_t * input, va_list * args); +app_cert_key_pair_t *app_cert_key_pair_get (u32 index); +app_cert_key_pair_t *app_cert_key_pair_get_if_valid (u32 index); +app_cert_key_pair_t *app_cert_key_pair_get_default (); + +/* Needed while we support both bapi and mq ctrl messages */ +int mq_send_session_bound_cb (u32 app_wrk_index, u32 api_context, + session_handle_t handle, int rv); +int mq_send_session_connected_cb (u32 app_wrk_index, u32 api_context, + session_t * s, u8 is_fail); +void mq_send_unlisten_reply (app_worker_t * app_wrk, session_handle_t sh, + u32 context, int rv); + +crypto_engine_type_t app_crypto_engine_type_add (void); +u8 app_crypto_engine_n_types (void); + #endif /* SRC_VNET_SESSION_APPLICATION_H_ */ /*