udp: remove connected udp transport proto 75/26475/1
authorFlorin Coras <fcoras@cisco.com>
Fri, 10 Apr 2020 19:52:04 +0000 (19:52 +0000)
committerFlorin Coras <fcoras@cisco.com>
Fri, 10 Apr 2020 19:52:04 +0000 (19:52 +0000)
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 <fcoras@cisco.com>
Change-Id: Id88470c38326f8168b9646b0de49a674e0f4266f

src/plugins/hs_apps/echo_client.c
src/plugins/hs_apps/sapi/vpp_echo_common.c
src/plugins/hs_apps/sapi/vpp_echo_proto_udp.c
src/vnet/session/session.api
src/vnet/session/session_api.c
src/vnet/session/transport_types.h
src/vnet/udp/udp.c

index e10ee59..881bbd4 100644 (file)
@@ -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 ();
index 60ea5a1..497f56c 100644 (file)
@@ -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;
index 902b30f..456113c 100644 (file)
@@ -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
index f95abb9..b897ae0 100644 (file)
@@ -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,
 };
 
index 43ecf2b..3954537 100644 (file)
@@ -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:
index e065ed1..2c4863a 100644 (file)
@@ -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
index 9c427a4..99fa2aa 100644 (file)
@@ -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