From 256779c85725c75de185f5cba9a4ec0c59b3151c Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Fri, 10 Apr 2020 19:52:04 +0000 Subject: [PATCH] udp: remove connected udp transport proto Type: refactor To reproduce functionality, use udp in combination with TRANSPORT_CFG_F_CONNECTED transport flag set in connect and listen parameters. Signed-off-by: Florin Coras Change-Id: Id88470c38326f8168b9646b0de49a674e0f4266f --- src/plugins/hs_apps/echo_client.c | 3 +- src/plugins/hs_apps/sapi/vpp_echo_common.c | 7 ---- src/plugins/hs_apps/sapi/vpp_echo_proto_udp.c | 1 - src/vnet/session/session.api | 3 +- src/vnet/session/session_api.c | 4 -- src/vnet/session/transport_types.h | 1 - src/vnet/udp/udp.c | 60 --------------------------- 7 files changed, 2 insertions(+), 77 deletions(-) diff --git a/src/plugins/hs_apps/echo_client.c b/src/plugins/hs_apps/echo_client.c index e10ee59a2b7..881bbd41a0b 100644 --- a/src/plugins/hs_apps/echo_client.c +++ b/src/plugins/hs_apps/echo_client.c @@ -898,8 +898,7 @@ echo_clients_command_fn (vlib_main_t * vm, if ((rv = parse_uri ((char *) ecm->connect_uri, &sep))) return clib_error_return (0, "Uri parse error: %d", rv); ecm->transport_proto = sep.transport_proto; - ecm->is_dgram = (sep.transport_proto == TRANSPORT_PROTO_UDP - || sep.transport_proto == TRANSPORT_PROTO_UDPC); + ecm->is_dgram = (sep.transport_proto == TRANSPORT_PROTO_UDP); #if ECHO_CLIENT_PTHREAD echo_clients_start_tx_pthread (); diff --git a/src/plugins/hs_apps/sapi/vpp_echo_common.c b/src/plugins/hs_apps/sapi/vpp_echo_common.c index 60ea5a13214..497f56c3e1e 100644 --- a/src/plugins/hs_apps/sapi/vpp_echo_common.c +++ b/src/plugins/hs_apps/sapi/vpp_echo_common.c @@ -301,10 +301,6 @@ unformat_transport_proto (unformat_input_t * input, va_list * args) *proto = TRANSPORT_PROTO_TCP; else if (unformat (input, "TCP")) *proto = TRANSPORT_PROTO_TCP; - else if (unformat (input, "udpc")) - *proto = TRANSPORT_PROTO_UDPC; - else if (unformat (input, "UDPC")) - *proto = TRANSPORT_PROTO_UDPC; else if (unformat (input, "udp")) *proto = TRANSPORT_PROTO_UDP; else if (unformat (input, "UDP")) @@ -340,9 +336,6 @@ format_transport_proto (u8 * s, va_list * args) case TRANSPORT_PROTO_TLS: s = format (s, "TLS"); break; - case TRANSPORT_PROTO_UDPC: - s = format (s, "UDPC"); - break; case TRANSPORT_PROTO_QUIC: s = format (s, "QUIC"); break; diff --git a/src/plugins/hs_apps/sapi/vpp_echo_proto_udp.c b/src/plugins/hs_apps/sapi/vpp_echo_proto_udp.c index 902b30ff1c3..456113cdd7d 100644 --- a/src/plugins/hs_apps/sapi/vpp_echo_proto_udp.c +++ b/src/plugins/hs_apps/sapi/vpp_echo_proto_udp.c @@ -172,7 +172,6 @@ echo_proto_cb_vft_t echo_udp_proto_cb_vft = { }; ECHO_REGISTER_PROTO (TRANSPORT_PROTO_UDP, echo_udp_proto_cb_vft); -ECHO_REGISTER_PROTO (TRANSPORT_PROTO_UDPC, echo_udp_proto_cb_vft); /* * fd.io coding-style-patch-verification: ON diff --git a/src/vnet/session/session.api b/src/vnet/session/session.api index f95abb92f78..b897ae020ed 100644 --- a/src/vnet/session/session.api +++ b/src/vnet/session/session.api @@ -13,7 +13,7 @@ * limitations under the License. */ -option version = "3.0.0"; +option version = "3.1.0"; import "vnet/interface_types.api"; import "vnet/ip/ip_types.api"; @@ -25,7 +25,6 @@ enum transport_proto : u8 TRANSPORT_PROTO_API_UDP, TRANSPORT_PROTO_API_NONE, TRANSPORT_PROTO_API_TLS, - TRANSPORT_PROTO_API_UDPC, TRANSPORT_PROTO_API_QUIC, }; diff --git a/src/vnet/session/session_api.c b/src/vnet/session/session_api.c index 43ecf2b07e9..39545375e62 100644 --- a/src/vnet/session/session_api.c +++ b/src/vnet/session/session_api.c @@ -66,8 +66,6 @@ api_session_transport_proto_decode (const vl_api_transport_proto_t * api_tp) return TRANSPORT_PROTO_UDP; case TRANSPORT_PROTO_API_TLS: return TRANSPORT_PROTO_TLS; - case TRANSPORT_PROTO_API_UDPC: - return TRANSPORT_PROTO_UDPC; case TRANSPORT_PROTO_API_QUIC: return TRANSPORT_PROTO_QUIC; default: @@ -86,8 +84,6 @@ api_session_transport_proto_encode (const transport_proto_t tp) return TRANSPORT_PROTO_API_UDP; case TRANSPORT_PROTO_TLS: return TRANSPORT_PROTO_API_TLS; - case TRANSPORT_PROTO_UDPC: - return TRANSPORT_PROTO_API_UDPC; case TRANSPORT_PROTO_QUIC: return TRANSPORT_PROTO_API_QUIC; default: diff --git a/src/vnet/session/transport_types.h b/src/vnet/session/transport_types.h index e065ed1fa59..2c4863a4812 100644 --- a/src/vnet/session/transport_types.h +++ b/src/vnet/session/transport_types.h @@ -159,7 +159,6 @@ STATIC_ASSERT (sizeof (transport_connection_t) <= 128, _(UDP, "udp", "U") \ _(NONE, "ct", "C") \ _(TLS, "tls", "J") \ - _(UDPC, "udpc", "U") \ _(QUIC, "quic", "Q") \ typedef enum _transport_proto diff --git a/src/vnet/udp/udp.c b/src/vnet/udp/udp.c index 9c427a4a982..99fa2aa00d0 100644 --- a/src/vnet/udp/udp.c +++ b/src/vnet/udp/udp.c @@ -463,62 +463,6 @@ static const transport_proto_vft_t udp_proto = { }; /* *INDENT-ON* */ -int -udpc_connection_open (transport_endpoint_cfg_t * rmt) -{ - udp_connection_t *uc; - /* Reproduce the logic of udp_open_connection to find the correct thread */ - u32 thread_index = vlib_num_workers ()? 1 : vlib_get_main ()->thread_index; - u32 uc_index; - uc_index = udp_open_connection (rmt); - if (uc_index == (u32) ~ 0) - return -1; - uc = udp_connection_get (uc_index, thread_index); - uc->flags |= UDP_CONN_F_CONNECTED; - return uc_index; -} - -u32 -udpc_connection_listen (u32 session_index, transport_endpoint_t * lcl) -{ - udp_connection_t *listener; - u32 li_index; - li_index = udp_session_bind (session_index, lcl); - if (li_index == (u32) ~ 0) - return -1; - listener = udp_listener_get (li_index); - listener->flags |= UDP_CONN_F_CONNECTED; - /* Fake udp listener, i.e., make sure session layer adds a udp instead of - * udpc listener to the lookup table */ - ((session_endpoint_cfg_t *) lcl)->transport_proto = TRANSPORT_PROTO_UDP; - return li_index; -} - -/* *INDENT-OFF* */ -static const transport_proto_vft_t udpc_proto = { - .start_listen = udpc_connection_listen, - .stop_listen = udp_session_unbind, - .connect = udpc_connection_open, - .push_header = udp_push_header, - .get_connection = udp_session_get, - .get_listener = udp_session_get_listener, - .get_half_open = udp_session_get_half_open, - .close = udp_session_close, - .cleanup = udp_session_cleanup, - .send_params = udp_session_send_params, - .format_connection = format_udp_session, - .format_half_open = format_udp_half_open_session, - .format_listener = format_udp_listener_session, - .transport_options = { - .name = "udpc", - .short_name = "U", - .tx_type = TRANSPORT_TX_DGRAM, - .service_type = TRANSPORT_SERVICE_VC, - .half_open_has_fifos = 1 - }, -}; -/* *INDENT-ON* */ - static clib_error_t * udp_init (vlib_main_t * vm) { @@ -545,10 +489,6 @@ udp_init (vlib_main_t * vm) FIB_PROTOCOL_IP4, ip4_lookup_node.index); transport_register_protocol (TRANSPORT_PROTO_UDP, &udp_proto, FIB_PROTOCOL_IP6, ip6_lookup_node.index); - transport_register_protocol (TRANSPORT_PROTO_UDPC, &udpc_proto, - FIB_PROTOCOL_IP4, ip4_lookup_node.index); - transport_register_protocol (TRANSPORT_PROTO_UDPC, &udpc_proto, - FIB_PROTOCOL_IP6, ip6_lookup_node.index); /* * Initialize data structures -- 2.16.6