aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2024-07-11 05:15:47 -0700
committerDave Barach <vpp@barachs.net>2024-07-16 15:50:30 +0000
commit3a2cf84fa5d364f45dc354e23c3dd09b12cba9a8 (patch)
tree127cbbf8027ef38df92f491527d55fcc7a387a3b
parent2da273ace86764c5999ffd30e6e1ca5fcfd09f4b (diff)
tls: track app owner of transport session
Allow other apps to own transport sessions for tls. Type: improvement Change-Id: Ida04cef1dc49acb7117cbed8657e26890bf43d2a Signed-off-by: Florin Coras <fcoras@cisco.com>
-rw-r--r--src/vnet/tls/tls.c4
-rw-r--r--src/vnet/tls/tls.h1
2 files changed, 4 insertions, 1 deletions
diff --git a/src/vnet/tls/tls.c b/src/vnet/tls/tls.c
index 9bc9323732e..9ca3a91af29 100644
--- a/src/vnet/tls/tls.c
+++ b/src/vnet/tls/tls.c
@@ -28,7 +28,7 @@ tls_disconnect_transport (tls_ctx_t * ctx)
{
vnet_disconnect_args_t a = {
.handle = ctx->tls_session_handle,
- .app_index = tls_main.app_index,
+ .app_index = ctx->ts_app_index,
};
if (vnet_disconnect_session (&a))
@@ -649,6 +649,7 @@ tls_connect (transport_endpoint_cfg_t * tep)
ctx = tls_ctx_half_open_get (ctx_index);
ctx->parent_app_wrk_index = sep->app_wrk_index;
ctx->parent_app_api_context = sep->opaque;
+ ctx->ts_app_index = tm->app_index;
ctx->tcp_is_ip4 = sep->is_ip4;
ctx->tls_type = sep->transport_proto;
ctx->ckpair_index = ccfg->ckpair_index;
@@ -748,6 +749,7 @@ tls_start_listen (u32 app_listener_index, transport_endpoint_cfg_t *tep)
lctx = tls_listener_ctx_get (lctx_index);
lctx->parent_app_wrk_index = sep->app_wrk_index;
+ lctx->ts_app_index = tm->app_index;
lctx->tls_session_handle = tls_al_handle;
lctx->app_session_handle = listen_session_get_handle (app_listener);
lctx->tcp_is_ip4 = sep->is_ip4;
diff --git a/src/vnet/tls/tls.h b/src/vnet/tls/tls.h
index 38f4c4b8f81..30bcce005fb 100644
--- a/src/vnet/tls/tls.h
+++ b/src/vnet/tls/tls.h
@@ -102,6 +102,7 @@ typedef struct tls_ctx_
#define parent_app_api_context c_tls_ctx_id.parent_app_api_ctx
#define migration_ctx c_tls_ctx_id.migrate_ctx
+ u32 ts_app_index;
tls_conn_flags_t flags;
u8 *srv_hostname;
u32 evt_index;