VPP/HostStack/VclEchoClientServer
The VCL echo server/client test applications, vcl_test_server and vcl_test_client, are bespoke performance test applications which support all of VPP's HostStack transport layer protocols, i.e., tcp, udp, quic and 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. The apps 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:
$ VCL_CONFIG=/path/to/vcl.conf ./build-root/build-vpp_debug-native/vpp/bin/vpp_test_server -p tcp 1234
Then start vpp2 and attach the client:
$ VCL_CONFIG=/path/to/vcl.conf ./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 date
Out of date tutorial here