aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/session/session.c
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2023-12-11 16:04:57 -0800
committerDave Barach <vpp@barachs.net>2024-01-09 17:07:54 +0000
commit7428eaa4a1ae55052825cdc6c0a9ae6c4f8748ac (patch)
tree03cd6175294c6b13737e83ccce112b1ca0d6d6e9 /src/vnet/session/session.c
parent5afc13d594bf874092e135a8dc94d30c4537526b (diff)
session: support for cl port reuse
Adds support for connectionless listener port reuse. Until now, cl listeners had fifos allocated to them and therefore only one app worker could ever listen, i.e., a session cannot have multiple fifos. To circumvent the limitation, this separates the fifos from the listener by allocating new cl sessions for each app worker that reuses the app listener. Flows are hashed to app worker cl sessions but, for now, this is not a consistent/fixed hash. Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ic6533cd47f2765903669f88c288bd592fb17a19e
Diffstat (limited to 'src/vnet/session/session.c')
-rw-r--r--src/vnet/session/session.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c
index 2afc37a77f8..0d2e1b1615e 100644
--- a/src/vnet/session/session.c
+++ b/src/vnet/session/session.c
@@ -867,11 +867,22 @@ session_enqueue_dgram_connection (session_t *s, session_dgram_hdr_t *hdr,
}
int
+session_enqueue_dgram_connection2 (session_t *s, session_dgram_hdr_t *hdr,
+ vlib_buffer_t *b, u8 proto, u8 queue_event)
+{
+ return session_enqueue_dgram_connection_inline (s, hdr, b, proto,
+ queue_event, 1 /* is_cl */);
+}
+
+int
session_enqueue_dgram_connection_cl (session_t *s, session_dgram_hdr_t *hdr,
vlib_buffer_t *b, u8 proto,
u8 queue_event)
{
- return session_enqueue_dgram_connection_inline (s, hdr, b, proto,
+ session_t *awls;
+
+ awls = app_listener_select_wrk_cl_session (s, hdr);
+ return session_enqueue_dgram_connection_inline (awls, hdr, b, proto,
queue_event, 1 /* is_cl */);
}