hsa: remove fake binary api registration in echo apps

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I73fbf991f42e643f906b6a3badd95ef46106eb25
diff --git a/src/plugins/hs_apps/echo_client.c b/src/plugins/hs_apps/echo_client.c
index 188aa90..072d767 100644
--- a/src/plugins/hs_apps/echo_client.c
+++ b/src/plugins/hs_apps/echo_client.c
@@ -321,19 +321,6 @@
 /* *INDENT-ON* */
 
 static int
-create_api_loopback (echo_client_main_t * ecm)
-{
-  api_main_t *am = vlibapi_get_main ();
-  vl_shmem_hdr_t *shmem_hdr;
-
-  shmem_hdr = am->shmem_hdr;
-  ecm->vl_input_queue = shmem_hdr->vl_input_queue;
-  ecm->my_client_index = vl_api_memclnt_create_internal ("echo_client",
-							 ecm->vl_input_queue);
-  return 0;
-}
-
-static int
 echo_clients_init (vlib_main_t * vm)
 {
   echo_client_main_t *ecm = &echo_client_main;
@@ -341,9 +328,6 @@
   u32 num_threads;
   int i;
 
-  if (create_api_loopback (ecm))
-    return -1;
-
   num_threads = 1 /* main thread */  + vtm->n_threads;
 
   /* Init test data. Big buffer */
@@ -648,7 +632,8 @@
   clib_memset (a, 0, sizeof (*a));
   clib_memset (options, 0, sizeof (options));
 
-  a->api_client_index = ecm->my_client_index;
+  a->api_client_index = ~0;
+  a->name = format (0, "echo_client");
   if (ecm->transport_proto == TRANSPORT_PROTO_QUIC)
     echo_clients.session_connected_callback =
       quic_echo_clients_session_connected_callback;
@@ -681,6 +666,7 @@
     return clib_error_return (0, "attach returned %d", rv);
 
   ecm->app_index = a->app_index;
+  vec_free (a->name);
 
   clib_memset (a_cert, 0, sizeof (*a_cert));
   a_cert->app_index = a->app_index;
diff --git a/src/plugins/hs_apps/echo_server.c b/src/plugins/hs_apps/echo_server.c
index 4e75861..a5335bb 100644
--- a/src/plugins/hs_apps/echo_server.c
+++ b/src/plugins/hs_apps/echo_server.c
@@ -301,21 +301,6 @@
   .session_reset_callback = echo_server_session_reset_callback
 };
 
-/* Abuse VPP's input queue */
-static int
-create_api_loopback (vlib_main_t * vm)
-{
-  echo_server_main_t *esm = &echo_server_main;
-  api_main_t *am = vlibapi_get_main ();
-  vl_shmem_hdr_t *shmem_hdr;
-
-  shmem_hdr = am->shmem_hdr;
-  esm->vl_input_queue = shmem_hdr->vl_input_queue;
-  esm->my_client_index = vl_api_memclnt_create_internal ("echo_server",
-							 esm->vl_input_queue);
-  return 0;
-}
-
 static int
 echo_server_attach (u8 * appns_id, u64 appns_flags, u64 appns_secret)
 {
@@ -342,7 +327,8 @@
   if (esm->private_segment_size)
     segment_size = esm->private_segment_size;
 
-  a->api_client_index = esm->my_client_index;
+  a->api_client_index = ~0;
+  a->name = format (0, "echo_server");
   a->session_cb_vft = &echo_server_session_cb_vft;
   a->options = options;
   a->options[APP_OPTIONS_SEGMENT_SIZE] = segment_size;
@@ -369,6 +355,7 @@
       return -1;
     }
   esm->app_index = a->app_index;
+  vec_free (a->name);
 
   clib_memset (a_cert, 0, sizeof (*a_cert));
   a_cert->app_index = a->app_index;
@@ -433,15 +420,6 @@
   u32 num_threads;
   int i;
 
-  if (esm->my_client_index == (u32) ~ 0)
-    {
-      if (create_api_loopback (vm))
-	{
-	  clib_warning ("failed to create api loopback");
-	  return -1;
-	}
-    }
-
   num_threads = 1 /* main thread */  + vtm->n_threads;
   vec_validate (echo_server_main.vpp_queue, num_threads - 1);
   vec_validate (esm->rx_buf, num_threads - 1);