diff options
author | Florin Coras <fcoras@cisco.com> | 2020-04-16 04:30:22 +0000 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2020-04-17 14:58:23 +0000 |
commit | d50ff7fba167035b10def282b5ec166fa7899948 (patch) | |
tree | c228e4e1abf11118730c568643134c887dac3d71 /src/vnet/session/application.h | |
parent | ce815deb72fd3941b000aecec931131afc9d6c34 (diff) |
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 <fcoras@cisco.com>
Change-Id: Ibe9349db57b313ba2aa5ea3960ef5cf755f5098a
Diffstat (limited to 'src/vnet/session/application.h')
-rw-r--r-- | src/vnet/session/application.h | 10 |
1 files changed, 10 insertions, 0 deletions
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); |