From 87b7e3df2b6f0335424c338ee7d61d426ef45904 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Fri, 27 Mar 2020 15:06:07 +0000 Subject: session udp: flag for connected udp Type: improvement This can be used as alternative to udpc Signed-off-by: Florin Coras Change-Id: Ic3f7efe6728b25d4a8a0b61ddb36de66b4672c4f --- src/vnet/udp/udp.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/vnet/udp') diff --git a/src/vnet/udp/udp.c b/src/vnet/udp/udp.c index 8fa1147b030..b069e720c7c 100644 --- a/src/vnet/udp/udp.c +++ b/src/vnet/udp/udp.c @@ -81,13 +81,14 @@ udp_session_bind (u32 session_index, transport_endpoint_t * lcl) { udp_main_t *um = vnet_get_udp_main (); vlib_main_t *vm = vlib_get_main (); + transport_endpoint_cfg_t *lcl_ext; udp_connection_t *listener; + udp_dst_port_info_t *pi; u32 node_index; void *iface_ip; - udp_dst_port_info_t *pi; - pi = - udp_get_dst_port_info (um, clib_net_to_host_u16 (lcl->port), lcl->is_ip4); + pi = udp_get_dst_port_info (um, clib_net_to_host_u16 (lcl->port), + lcl->is_ip4); if (pi) return -1; @@ -110,6 +111,11 @@ udp_session_bind (u32 session_index, transport_endpoint_t * lcl) listener->c_s_index = session_index; listener->c_fib_index = lcl->fib_index; listener->flags |= UDP_CONN_F_OWNS_PORT; + lcl_ext = (transport_endpoint_cfg_t *) lcl; + if (lcl_ext->transport_flags & TRANSPORT_CFG_F_CONNECTED) + listener->flags |= UDP_CONN_F_CONNECTED; + else + listener->c_flags |= TRANSPORT_CONNECTION_F_CLESS; clib_spinlock_init (&listener->rx_lock); node_index = lcl->is_ip4 ? udp4_input_node.index : udp6_input_node.index; @@ -327,6 +333,10 @@ udp_open_connection (transport_endpoint_cfg_t * rmt) uc->c_proto = TRANSPORT_PROTO_UDP; uc->c_fib_index = rmt->fib_index; uc->flags |= UDP_CONN_F_OWNS_PORT; + if (rmt->transport_flags & TRANSPORT_CFG_F_CONNECTED) + uc->flags |= UDP_CONN_F_CONNECTED; + else + uc->c_flags |= TRANSPORT_CONNECTION_F_CLESS; return uc->c_c_index; } -- cgit 1.2.3-korg