summaryrefslogtreecommitdiffstats
path: root/src/vnet/udp/udp.h
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2022-10-24 18:46:20 -0700
committerDave Barach <openvpp@barachs.net>2022-10-25 17:19:03 +0000
commit1c29dfb7bbdddc3cdf8e2ed42c9d33f568466f7a (patch)
tree7f5a5f6dd8b613e93820630c24702c3407c9b5dd /src/vnet/udp/udp.h
parent186798270acb7e7c4159af982bb3f3dd5d9f50d0 (diff)
udp: postpone cleanup of udp connections
Avoid deleting connections in session layer io event handler. Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I87b3e53f9039161688467d9716875583ad797c07
Diffstat (limited to 'src/vnet/udp/udp.h')
-rw-r--r--src/vnet/udp/udp.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/vnet/udp/udp.h b/src/vnet/udp/udp.h
index 94362ad991c..ee71e365a84 100644
--- a/src/vnet/udp/udp.h
+++ b/src/vnet/udp/udp.h
@@ -117,6 +117,11 @@ typedef enum
N_UDP_AF,
} udp_af_t;
+typedef struct udp_worker_
+{
+ u32 *pending_cleanups;
+} udp_worker_t;
+
typedef struct
{
udp_dst_port_info_t *dst_port_infos[N_UDP_AF];
@@ -138,7 +143,9 @@ typedef struct
/*
* Per-worker thread udp connection pools used with session layer
*/
+
udp_connection_t **connections;
+ udp_worker_t *wrk;
udp_connection_t *listener_pool;
u16 default_mtu;
@@ -185,6 +192,12 @@ udp_connection_from_transport (transport_connection_t * tc)
return ((udp_connection_t *) tc);
}
+always_inline udp_worker_t *
+udp_worker_get (u32 thread_index)
+{
+ return vec_elt_at_index (udp_main.wrk, thread_index);
+}
+
void udp_connection_free (udp_connection_t * uc);
udp_connection_t *udp_connection_alloc (u32 thread_index);