Report: Placeholder for LD preload tests
[csit.git] / docs / report / introduction / methodology_quic_with_vppecho.rst
1 Hoststack Throughput Testing over QUIC/UDP/IP with vpp_echo
2 -----------------------------------------------------------
3
4 `vpp_echo performance testing tool <https://wiki.fd.io/view/VPP/HostStack#External_Echo_Server.2FClient_.28vpp_echo.29>`_
5 is a bespoke performance test application which utilizes the 'native
6 HostStack APIs' to verify performance and correct handling of
7 connection/stream events with uni-directional and bi-directional
8 streams of data.
9
10 Because iperf3 does not support the QUIC transport protocol, vpp_echo
11 is used for measuring the maximum attainable bandwidth of the VPP Host
12 Stack connection utilzing the QUIC transport protocol across two
13 instances of VPP running on separate DUT nodes.  The QUIC transport
14 protocol supports multiple streams per connection and test cases
15 utilize different combinations of QUIC connections and number of
16 streams per connection.
17
18 The test configuration is as follows:
19
20         DUT1               Network                DUT2
21 [ vpp_echo-client -> VPP1 ]=======[ VPP2 -> vpp_echo-server]
22                       N-streams/connection
23
24 where,
25
26  1. vpp_echo server attaches to VPP2 and LISTENs on VPP2:TCP port 1234.
27  2. vpp_echo client creates one or more connections to VPP1 and opens
28     one or more stream per connection to VPP2:TCP port 1234.
29  3. vpp_echo client transmits a uni-directional stream as fast as the
30     VPP Host Stack allows to the vpp_echo server for the test duration.
31  4. At the end of the test the vpp_echo client emits the goodput
32     measurements for all streams and the sum of all streams.
33
34  Test cases include
35  1. 1 QUIC Connection with 1 Stream
36  2. 1 QUIC connection with 10 Streams
37  3. 10 QUIC connetions with 1 Stream
38  4. 10 QUIC connections with 10 Streams
39
40  with stream sizes to provide reasonable test durations. The VPP Host
41  Stack QUIC transport is configured to utilize the picotls encryption
42  library.  In the future, tests utilizing addtional encryption
43  algorithms will be added.