summaryrefslogtreecommitdiffstats
path: root/src/vnet/session/application.h
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2020-04-16 04:30:22 +0000
committerDave Barach <openvpp@barachs.net>2020-04-17 14:58:23 +0000
commitd50ff7fba167035b10def282b5ec166fa7899948 (patch)
treec228e4e1abf11118730c568643134c887dac3d71 /src/vnet/session/application.h
parentce815deb72fd3941b000aecec931131afc9d6c34 (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.h10
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);