diff options
author | 2023-03-15 15:15:48 +0000 | |
---|---|---|
committer | 2023-03-15 15:15:48 +0000 | |
commit | 22999c2df14eb455080ff0a09bf93dc795a4049f (patch) | |
tree | 21ed91e3b3461b64801e693aa797e3a30293783b /docs/content/methodology/hoststack_testing/udpip_with_iperf3.md | |
parent | 2986c774cd6520cab7e7e380e1511d521e8afe04 (diff) |
feat(docs): Add Methodology
Signed-off-by: pmikus <peter.mikus@protonmail.ch>
Change-Id: I5b2e4c14cc258d821b630d2e54b23a8468820764
Diffstat (limited to 'docs/content/methodology/hoststack_testing/udpip_with_iperf3.md')
-rw-r--r-- | docs/content/methodology/hoststack_testing/udpip_with_iperf3.md | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/docs/content/methodology/hoststack_testing/udpip_with_iperf3.md b/docs/content/methodology/hoststack_testing/udpip_with_iperf3.md new file mode 100644 index 0000000000..9ff3bc42f1 --- /dev/null +++ b/docs/content/methodology/hoststack_testing/udpip_with_iperf3.md @@ -0,0 +1,45 @@ +--- +bookToc: false +title: "UDP/IP with iperf3" +weight: 3 +--- + +# UDP/IP with iperf3 + +[iperf3 goodput measurement tool](https://github.com/esnet/iperf) +is used for measuring the maximum attainable goodput of the VPP Host +Stack connection across two instances of VPP running on separate DUT +nodes. iperf3 is a popular open source tool for active measurements +of the maximum achievable goodput on IP networks. + +Because iperf3 utilizes the POSIX socket interface APIs, the current +test configuration utilizes the LD_PRELOAD mechanism in the linux +kernel to connect iperf3 to the VPP Host Stack using the VPP +Communications Library (VCL) LD_PRELOAD library (libvcl_ldpreload.so). + +In the future, a forked version of iperf3 which has been modified to +directly use the VCL application APIs may be added to determine the +difference in performance of 'VCL Native' applications versus utilizing +LD_PRELOAD which inherently has more overhead and other limitations. + +The test configuration is as follows: + + DUT1 Network DUT2 + [ iperf3-client -> VPP1 ]=======[ VPP2 -> iperf3-server] + +where, + +1. iperf3 server attaches to VPP2 and LISTENs on VPP2:UDP port 5201. +2. iperf3 client attaches to VPP1 and transmits one or more streams + of packets to VPP2:UDP port 5201. +3. iperf3 client transmits a uni-directional stream as fast as the + VPP Host Stack allows to the iperf3 server for the test duration. +4. At the end of the test the iperf3 client emits the goodput + measurements for all streams and the sum of all streams. + +Test cases include 1 and 10 Streams with a 20 second test duration +with the VPP Host Stack using the UDP transport layer.. + +Note: iperf3 is single threaded, so it is expected that the 10 stream +test shows little or no performance improvement due to +multi-thread/multi-core execution. |