X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Ftcp%2Fbuiltin_client.c;h=b48422c0b30f130b56631a0cb65385bc65dbfdf7;hb=59b2565cd91a67ced650739f36129650830211ac;hp=938e07ba50558bd34b297ac2ae85f04ad3005735;hpb=52851e6aa9304054fd1059c8dd284abf8e532bf2;p=vpp.git diff --git a/src/vnet/tcp/builtin_client.c b/src/vnet/tcp/builtin_client.c index 938e07ba505..b48422c0b30 100644 --- a/src/vnet/tcp/builtin_client.c +++ b/src/vnet/tcp/builtin_client.c @@ -21,7 +21,6 @@ #include #include -#include #include #define TCP_BUILTIN_CLIENT_DBG (0) @@ -509,6 +508,11 @@ clients_connect (vlib_main_t * vm, u8 * uri, u32 n_clients) /* Crude pacing for call setups */ if ((i % 4) == 0) vlib_process_suspend (vm, 10e-6); + ASSERT (i + 1 >= tm->ready_connections); + while (i + 1 - tm->ready_connections > 1000) + { + vlib_process_suspend (vm, 100e-6); + } } } @@ -563,12 +567,14 @@ test_tcp_clients_command_fn (vlib_main_t * vm, else if (unformat (input, "private-segment-count %d", &tm->private_segment_count)) ; - else if (unformat (input, "private-segment-size %dm", &tmp)) - tm->private_segment_size = tmp << 20; - else if (unformat (input, "private-segment-size %dg", &tmp)) - tm->private_segment_size = tmp << 30; - else if (unformat (input, "private-segment-size %d", &tmp)) - tm->private_segment_size = tmp; + else if (unformat (input, "private-segment-size %U", + unformat_memory_size, &tmp)) + { + if (tmp >= 0x100000000ULL) + return clib_error_return + (0, "private segment size %lld (%llu) too large", tmp, tmp); + tm->private_segment_size = tmp; + } else if (unformat (input, "preallocate-fifos")) tm->prealloc_fifos = 1; else if (unformat (input, "preallocate-sessions")) @@ -713,6 +719,20 @@ cleanup: pool_free (tm->sessions); + /* Detach the application, so we can use different fifo sizes next time */ + if (tm->test_client_attached) + { + vnet_app_detach_args_t _da, *da = &_da; + int rv; + + da->app_index = tm->app_index; + + rv = vnet_application_detach (da); + if (rv) + vlib_cli_output (vm, "WARNING: app detach failed..."); + tm->test_client_attached = 0; + tm->app_index = ~0; + } return 0; } @@ -720,8 +740,11 @@ cleanup: VLIB_CLI_COMMAND (test_clients_command, static) = { .path = "test tcp clients", - .short_help = "test tcp clients [nclients %d]" - "[iterations %d] [bytes %d] [uri tcp://6.0.1.1/1234]", + .short_help = "test tcp clients [nclients %d] [[m|g]bytes ] " + "[test-timeout