From d50ff7fba167035b10def282b5ec166fa7899948 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Thu, 16 Apr 2020 04:30:22 +0000 Subject: session tcp: track half open in app wrk Type: improvement Do extra checks when establishing an active connect and cleanup pending connects if application detaches. Signed-off-by: Florin Coras Change-Id: Ibe9349db57b313ba2aa5ea3960ef5cf755f5098a --- src/vnet/session/application.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/vnet/session/application.h') diff --git a/src/vnet/session/application.h b/src/vnet/session/application.h index 00b60c33469..377ea1ef4ac 100644 --- a/src/vnet/session/application.h +++ b/src/vnet/session/application.h @@ -63,6 +63,9 @@ typedef struct app_worker_ u32 api_client_index; u8 app_is_builtin; + + /** Per transport proto hash tables of half-open connection handles */ + uword **half_open_table; } app_worker_t; typedef struct app_worker_map_ @@ -251,6 +254,13 @@ int app_worker_accept_notify (app_worker_t * app_wrk, session_t * s); int app_worker_init_connected (app_worker_t * app_wrk, session_t * s); int app_worker_connect_notify (app_worker_t * app_wrk, session_t * s, session_error_t err, u32 opaque); +int app_worker_add_half_open (app_worker_t * app_wrk, transport_proto_t tp, + session_handle_t ho_handle, + session_handle_t wrk_handle); +int app_worker_del_half_open (app_worker_t * app_wrk, transport_proto_t tp, + session_handle_t ho_handle); +u64 app_worker_lookup_half_open (app_worker_t * app_wrk, transport_proto_t tp, + session_handle_t ho_handle); int app_worker_close_notify (app_worker_t * app_wrk, session_t * s); int app_worker_transport_closed_notify (app_worker_t * app_wrk, session_t * s); -- cgit 1.2.3-korg