Difference between revisions of "VPP/HostStack/VclEchoClientServer"

From fd.io
< VPP‎ | HostStack
Jump to: navigation, search
(Created page with "Out of date tutorial here")
 
Line 1: Line 1:
 +
The VCL echo server/client test applications, vcl_test_server and vcl_test_client, are bespoke performance test applications which supports all of VPP's HostStack transport layer protocols:
 +
* tcp
 +
* udp
 +
* quic
 +
* tls
 +
 +
They utilize VPPComsLibrary (VCL), as opposed to 'raw session layer' (see here), APIs to verify performance and correct handling of connection/stream events with uni-directional and bi-directional streams of data.
 +
 +
They can be found in the build tree at
 +
 +
<code>$ ./build-root/build-vpp[_debug]-native/vpp/bin/vcl_test_[server/client]</code>
 +
 +
and as of VPP 20.01 they are included in the main vpp debian package (e.g. vpp_20.01-release-amd64.deb)
 +
 +
Start vpp1 and attach the server application:
 +
 +
<code>$ ./build-root/build-vpp_debug-native/vpp/bin/vpp_test_server -p tcp 1234
 +
 +
Then start vpp2 and attach the client:
 +
 +
<code>$ ./build-root/build-vpp_debug-native/vpp/bin/vpp_test_client client -U -p tcp <vpp1_ip> 1234 </code>
 +
 +
The current command line options for vcl_test_server are:
 +
 +
<code>
 +
  vcl_test_server [OPTIONS] <port>
 +
  OPTIONS
 +
  -h              Print this message and exit.
 +
  -6              Use IPv6
 +
  -w <num>        Number of workers
 +
  -p <PROTO>      Use <PROTO> transport layer
 +
  -D              Use UDP transport layer
 +
  -L              Use TLS transport layer
 +
</code>
 +
 +
The current command line options for vcl_test_client are:
 +
 +
<code>
 +
  vcl_test_client [OPTIONS] <ipaddr> <port>
 +
  OPTIONS
 +
  -h              Print this message and exit.
 +
  -6              Use IPv6
 +
  -c              Print test config before test.
 +
  -w <dir>        Write test results to <dir>.
 +
  -X              Exit after running test.
 +
  -p <proto>      Use <proto> transport layer
 +
  -D              Use UDP transport layer
 +
  -L              Use TLS transport layer
 +
  -E              Run Echo test.
 +
  -N <num-writes>  Test Cfg: number of writes.
 +
  -R <rxbuf-size>  Test Cfg: rx buffer size.
 +
  -T <txbuf-size>  Test Cfg: tx buffer size.
 +
  -U              Run Uni-directional test.
 +
  -B              Run Bi-directional test.
 +
  -V              Verbose mode.
 +
  -I <N>          Use N sessions.
 +
  -s <N>          Use N sessions.
 +
  -q <n>          QUIC : use N Ssessions on top of n Qsessions
 +
</code>
 +
 +
=== Out of data ===
 
Out of date tutorial [[VPP/VPPCommunicationsLibrary | here]]
 
Out of date tutorial [[VPP/VPPCommunicationsLibrary | here]]

Revision as of 16:09, 4 November 2020

The VCL echo server/client test applications, vcl_test_server and vcl_test_client, are bespoke performance test applications which supports all of VPP's HostStack transport layer protocols:

  • tcp
  • udp
  • quic
  • tls

They utilize VPPComsLibrary (VCL), as opposed to 'raw session layer' (see here), APIs to verify performance and correct handling of connection/stream events with uni-directional and bi-directional streams of data.

They can be found in the build tree at

$ ./build-root/build-vpp[_debug]-native/vpp/bin/vcl_test_[server/client]

and as of VPP 20.01 they are included in the main vpp debian package (e.g. vpp_20.01-release-amd64.deb)

Start vpp1 and attach the server application:

$ ./build-root/build-vpp_debug-native/vpp/bin/vpp_test_server -p tcp 1234

Then start vpp2 and attach the client:

<code>$ ./build-root/build-vpp_debug-native/vpp/bin/vpp_test_client client -U -p tcp <vpp1_ip> 1234 

The current command line options for vcl_test_server are:

 vcl_test_server [OPTIONS] <port>
 OPTIONS
 -h               Print this message and exit.
 -6               Use IPv6
 -w <num>         Number of workers
 -p <PROTO>       Use <PROTO> transport layer
 -D               Use UDP transport layer
 -L               Use TLS transport layer

The current command line options for vcl_test_client are:

 vcl_test_client [OPTIONS] <ipaddr> <port>
 OPTIONS
 -h               Print this message and exit.
 -6               Use IPv6
 -c               Print test config before test.
 -w <dir>         Write test results to <dir>.
 -X               Exit after running test.
 -p <proto>       Use <proto> transport layer
 -D               Use UDP transport layer
 -L               Use TLS transport layer
 -E               Run Echo test.
 -N <num-writes>  Test Cfg: number of writes.
 -R <rxbuf-size>  Test Cfg: rx buffer size.
 -T <txbuf-size>  Test Cfg: tx buffer size.
 -U               Run Uni-directional test.
 -B               Run Bi-directional test.
 -V               Verbose mode.
 -I <N>           Use N sessions.
 -s <N>           Use N sessions.
 -q <n>           QUIC : use N Ssessions on top of n Qsessions

Out of data

Out of date tutorial here