Fix the fifo-size limitation in tcp_echo
[vpp.git] / src / tests / vnet / session / tcp_echo.c
index 6e41e4b..f37a727 100644 (file)
@@ -353,7 +353,7 @@ memfd_segment_attach (void)
   clib_error_t *error;
   int rv;
 
-  if ((error = vl_socket_client_recv_fd_msg (&ssvm->fd, 5)))
+  if ((error = vl_socket_client_recv_fd_msg (&ssvm->fd, 1, 5)))
     {
       clib_error_report (error);
       return -1;
@@ -379,7 +379,7 @@ fifo_segment_attach (char *name, u32 size, ssvm_segment_type_t type)
 
   if (type == SSVM_SEGMENT_MEMFD)
     {
-      if ((error = vl_socket_client_recv_fd_msg (&a->memfd_fd, 5)))
+      if ((error = vl_socket_client_recv_fd_msg (&a->memfd_fd, 1, 5)))
        {
          clib_error_report (error);
          return -1;
@@ -621,7 +621,7 @@ send_test_chunk (echo_main_t * em, session_t * s)
   u64 test_buf_len, bytes_this_chunk, test_buf_offset;
   svm_fifo_t *tx_fifo = s->server_tx_fifo;
   u8 *test_data = em->connect_test_data;
-  u32 enq_space, min_chunk = 16 << 10;
+  u32 enq_space = 16 << 10;
   int written;
 
   test_buf_len = vec_len (test_data);
@@ -629,8 +629,6 @@ send_test_chunk (echo_main_t * em, session_t * s)
   bytes_this_chunk = clib_min (test_buf_len - test_buf_offset,
                               s->bytes_to_send);
   enq_space = svm_fifo_max_enqueue (tx_fifo);
-  if (enq_space < clib_min (bytes_this_chunk, min_chunk))
-    return;
 
   bytes_this_chunk = clib_min (bytes_this_chunk, enq_space);
   written = svm_fifo_enqueue_nowait (tx_fifo, bytes_this_chunk,
@@ -881,20 +879,16 @@ session_disconnected_handler (session_disconnected_msg_t * mp)
   int rv = 0;
 
   p = hash_get (em->session_index_by_vpp_handles, mp->handle);
-
-  if (p)
-    {
-      clib_warning ("disconnected");
-      session = pool_elt_at_index (em->sessions, p[0]);
-      hash_unset (em->session_index_by_vpp_handles, mp->handle);
-      pool_put (em->sessions, session);
-    }
-  else
+  if (!p)
     {
       clib_warning ("couldn't find session key %llx", mp->handle);
-      rv = -11;
+      return;
     }
 
+  session = pool_elt_at_index (em->sessions, p[0]);
+  hash_unset (em->session_index_by_vpp_handles, mp->handle);
+  pool_put (em->sessions, session);
+
   app_alloc_ctrl_evt_to_vpp (session->vpp_evt_q, app_evt,
                             SESSION_CTRL_EVT_DISCONNECTED_REPLY);
   rmp = (session_disconnected_reply_msg_t *) app_evt->evt->data;
@@ -903,8 +897,7 @@ session_disconnected_handler (session_disconnected_msg_t * mp)
   rmp->context = mp->context;
   app_send_ctrl_evt_to_vpp (session->vpp_evt_q, app_evt);
 
-  if (session)
-    session_print_stats (em, session);
+  session_print_stats (em, session);
 }
 
 static void