aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Wallace <dwallacelf@gmail.com>2021-06-28 17:36:30 -0400
committerTibor Frank <tifrank@cisco.com>2021-07-13 04:48:31 +0000
commitc77930b44bd1a35786a4b843bb75a9cbc8741b4b (patch)
treebd174d3c84e569c85e057aa7d9be3d7b91780bfc
parente77fa027ad2a541e53d92743d8477d3aecf944e2 (diff)
Hoststack report content
- Methodology section - Align dynamic content structure with methodology section Signed-off-by: Dave Wallace <dwallacelf@gmail.com> Change-Id: I852c0f8147947dd8418de5fc2fdbd16a1c1e2057
-rw-r--r--docs/report/introduction/methodology_hoststack_testing/index.rst2
-rw-r--r--docs/report/introduction/methodology_hoststack_testing/methodology_tcp_with_iperf3.rst2
-rw-r--r--docs/report/introduction/methodology_hoststack_testing/methodology_udp_with_iperf3.rst42
-rw-r--r--docs/report/introduction/methodology_hoststack_testing/methodology_vsap_ab_with_nginx.rst37
-rw-r--r--docs/report/vpp_performance_tests/hoststack_testing/index.rst3
-rw-r--r--docs/report/vpp_performance_tests/hoststack_testing/iperf3/tcp/index.rst (renamed from docs/report/vpp_performance_tests/hoststack_testing/iperf3/index.rst)21
-rw-r--r--docs/report/vpp_performance_tests/hoststack_testing/iperf3/udp/index.rst54
7 files changed, 138 insertions, 23 deletions
diff --git a/docs/report/introduction/methodology_hoststack_testing/index.rst b/docs/report/introduction/methodology_hoststack_testing/index.rst
index 5feb9cccd2..7750097417 100644
--- a/docs/report/introduction/methodology_hoststack_testing/index.rst
+++ b/docs/report/introduction/methodology_hoststack_testing/index.rst
@@ -4,4 +4,6 @@ Hoststack Testing
.. toctree::
methodology_tcp_with_iperf3
+ methodology_udp_with_iperf3
methodology_quic_with_vppecho
+ methodology_vsap_ab_with_nginx
diff --git a/docs/report/introduction/methodology_hoststack_testing/methodology_tcp_with_iperf3.rst b/docs/report/introduction/methodology_hoststack_testing/methodology_tcp_with_iperf3.rst
index ce22e34a04..e3fb85d551 100644
--- a/docs/report/introduction/methodology_hoststack_testing/methodology_tcp_with_iperf3.rst
+++ b/docs/report/introduction/methodology_hoststack_testing/methodology_tcp_with_iperf3.rst
@@ -39,7 +39,7 @@ with the VPP Host Stack configured to utilize the Cubic TCP
congestion algorithm.
Note: iperf3 is single threaded, so it is expected that the 10 stream
-test does not show any performance improvement due to
+test shows little or no performance improvement due to
multi-thread/multi-core execution.
There are also variations of these test cases which use the VPP Network
diff --git a/docs/report/introduction/methodology_hoststack_testing/methodology_udp_with_iperf3.rst b/docs/report/introduction/methodology_hoststack_testing/methodology_udp_with_iperf3.rst
new file mode 100644
index 0000000000..b0525f989f
--- /dev/null
+++ b/docs/report/introduction/methodology_hoststack_testing/methodology_udp_with_iperf3.rst
@@ -0,0 +1,42 @@
+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.
diff --git a/docs/report/introduction/methodology_hoststack_testing/methodology_vsap_ab_with_nginx.rst b/docs/report/introduction/methodology_hoststack_testing/methodology_vsap_ab_with_nginx.rst
new file mode 100644
index 0000000000..6acfff1778
--- /dev/null
+++ b/docs/report/introduction/methodology_hoststack_testing/methodology_vsap_ab_with_nginx.rst
@@ -0,0 +1,37 @@
+VSAP ab with nginx
+^^^^^^^^^^^^^^^^^^
+
+`VSAP (VPP Stack Acceleration Project) <https://wiki.fd.io/view/VSAP>`_
+aims to establish an industry user space application ecosystem based on
+the VPP hoststack. As a pre-requisite to adapting open source applications
+using VPP Communications Library to accelerate performance, the VSAP team
+has introduced baseline tests utilizing the LD_PRELOAD mechanism to capture
+baseline performance data.
+
+`AB (Apache HTTP server benchmarking tool) <https://httpd.apache.org/docs/2.4/programs/ab.html>`_
+is used for measuring the maximum connections-per-second and requests-per-second.
+
+`NGINX <https://www.nginx.com/>`_ is a popular open source HTTP server
+application. Because NGINX utilizes the POSIX socket interface APIs, the test
+configuration uses the LD_PRELOAD mechanism to connect NGINX to the VPP
+Hoststack using the VPP Communications Library (VCL) LD_PRELOAD library
+(libvcl_ldpreload.so).
+
+In the future, a version of NGINX which has been modified to
+directly use the VCL application APIs will 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:
+
+::
+
+ TG Network DUT
+ [ AB ]=============[ VPP -> nginx ]
+
+where,
+
+1. nginx attaches to VPP and listens on TCP port 80
+2. ab runs CPS and RPS tests with packets flowing from the Test Generator node,
+ across 100G NICs, through VPP hoststack to NGINX.
+3. At the end of the tests, the results are reported by AB.
diff --git a/docs/report/vpp_performance_tests/hoststack_testing/index.rst b/docs/report/vpp_performance_tests/hoststack_testing/index.rst
index 1b0289531d..3691fb65c3 100644
--- a/docs/report/vpp_performance_tests/hoststack_testing/index.rst
+++ b/docs/report/vpp_performance_tests/hoststack_testing/index.rst
@@ -3,6 +3,7 @@ Hoststack Testing
.. toctree::
- iperf3/index
+ iperf3/tcp/index
+ iperf3/udp/index
quic/index
vsap/index
diff --git a/docs/report/vpp_performance_tests/hoststack_testing/iperf3/index.rst b/docs/report/vpp_performance_tests/hoststack_testing/iperf3/tcp/index.rst
index 9d1a1bddec..865a5f5ef8 100644
--- a/docs/report/vpp_performance_tests/hoststack_testing/iperf3/index.rst
+++ b/docs/report/vpp_performance_tests/hoststack_testing/iperf3/tcp/index.rst
@@ -1,4 +1,3 @@
-
.. raw:: latex
\clearpage
@@ -53,23 +52,3 @@ TCP/IP with iperf3
\includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-1460b-2t1c-eth-ip4tcp-ldpreload-iperf3-bps}
\label{fig:3n-skx-xxv710-1460b-2t1c-eth-ip4tcp-ldpreload-iperf3-bps}
\end{figure}
-
-.. raw:: latex
-
- \clearpage
-
-1460b-2t1c-xxv710-ip4udp-base-scale
------------------------------------
-
-.. raw:: html
-
- <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/3n-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3-bps.html"></iframe>
-
-.. raw:: latex
-
- \begin{figure}[H]
- \centering
- \graphicspath{{../_build/_static/vpp/}}
- \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3-bps}
- \label{fig:3n-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3-bps}
- \end{figure}
diff --git a/docs/report/vpp_performance_tests/hoststack_testing/iperf3/udp/index.rst b/docs/report/vpp_performance_tests/hoststack_testing/iperf3/udp/index.rst
new file mode 100644
index 0000000000..605791d18f
--- /dev/null
+++ b/docs/report/vpp_performance_tests/hoststack_testing/iperf3/udp/index.rst
@@ -0,0 +1,54 @@
+.. raw:: latex
+
+ \clearpage
+
+.. raw:: html
+
+ <script type="text/javascript">
+
+ function getDocHeight(doc) {
+ doc = doc || document;
+ var body = doc.body, html = doc.documentElement;
+ var height = Math.max( body.scrollHeight, body.offsetHeight,
+ html.clientHeight, html.scrollHeight, html.offsetHeight );
+ return height;
+ }
+
+ function setIframeHeight(id) {
+ var ifrm = document.getElementById(id);
+ var doc = ifrm.contentDocument? ifrm.contentDocument:
+ ifrm.contentWindow.document;
+ ifrm.style.visibility = 'hidden';
+ ifrm.style.height = "10px"; // reset to minimal height ...
+ // IE opt. for bing/msn needs a bit added or scrollbar appears
+ ifrm.style.height = getDocHeight( doc ) + 4 + "px";
+ ifrm.style.visibility = 'visible';
+ }
+
+ </script>
+
+UDP/IP with iperf3
+~~~~~~~~~~~~~~~~~~
+
+.. todo::
+ Add introduction
+
+.. raw:: latex
+
+ \clearpage
+
+1460b-2t1c-xxv710-ip4udp-base-scale
+-----------------------------------
+
+.. raw:: html
+
+ <iframe id="ifrm02" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../../_static/vpp/3n-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3-bps.html"></iframe>
+
+.. raw:: latex
+
+ \begin{figure}[H]
+ \centering
+ \graphicspath{{../_build/_static/vpp/}}
+ \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{3n-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3-bps}
+ \label{fig:3n-skx-xxv710-1460b-2t1c-eth-ip4udp-ldpreload-iperf3-bps}
+ \end{figure}