Fix: Report generation 69/6369/3
authorPeter Mikus <pmikus@cisco.com>
Mon, 24 Apr 2017 08:56:32 +0000 (10:56 +0200)
committerPeter Mikus <pmikus@cisco.com>
Mon, 24 Apr 2017 09:00:16 +0000 (09:00 +0000)
- Add IPsec plots
- Fix plots rendering

Change-Id: Ie8f5d2fa6724268ac05ed4f6ea53bb7c593f676e
Signed-off-by: Peter Mikus <pmikus@cisco.com>
18 files changed:
docs/report/vpp_performance_tests/packet_latency_graphs/index.rst
docs/report/vpp_performance_tests/packet_latency_graphs/ipsec.rst [new file with mode: 0644]
docs/report/vpp_performance_tests/packet_latency_graphs/ipv4.rst
docs/report/vpp_performance_tests/packet_latency_graphs/ipv4_tunnels.rst
docs/report/vpp_performance_tests/packet_latency_graphs/ipv6.rst
docs/report/vpp_performance_tests/packet_latency_graphs/ipv6_tunnels.rst
docs/report/vpp_performance_tests/packet_latency_graphs/l2.rst
docs/report/vpp_performance_tests/packet_latency_graphs/vm_vhost.rst
docs/report/vpp_performance_tests/packet_throughput_graphs/index.rst
docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec.rst [new file with mode: 0644]
docs/report/vpp_performance_tests/packet_throughput_graphs/ipv4.rst
docs/report/vpp_performance_tests/packet_throughput_graphs/ipv4_tunnels.rst
docs/report/vpp_performance_tests/packet_throughput_graphs/ipv6.rst
docs/report/vpp_performance_tests/packet_throughput_graphs/ipv6_tunnels.rst
docs/report/vpp_performance_tests/packet_throughput_graphs/l2.rst
docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost.rst
resources/tools/report_gen/run_plot.py
resources/tools/report_gen/run_report.sh

diff --git a/docs/report/vpp_performance_tests/packet_latency_graphs/ipsec.rst b/docs/report/vpp_performance_tests/packet_latency_graphs/ipsec.rst
new file mode 100644 (file)
index 0000000..46aaa2a
--- /dev/null
@@ -0,0 +1,77 @@
+Crypto in hardware: IP4FWD, IP6FWD
+==================================
+
+This section provides a summary of VPP Phy-to-Phy IPSEC HW
+performance illustrating packet latency measured at 50% of discovered NDR
+throughput rate. Latency is reported for VPP running in multiple
+configurations of VPP worker thread(s), a.k.a. VPP data plane thread (s), and
+their physical CPU core(s) placement.
+
+*Title of each graph* is a regex (regular expression) matching all plotted
+latency test cases, *X-axis labels* are indeces of csit-vpp-perf-1704 jobs
+that created result output files used as data sources for the graph,
+*Y-axis labels* are measured packet Latency [uSec] values, and the *graph
+legend* identifes the plotted test suites.
+
+.. note::
+
+    Data sources for reported test results: i) FD.io test executor jobs
+    `csit-vpp-perf-1704-all
+    <https://jenkins.fd.io/view/csit/job/csit-vpp-perf-1704-all/>`_ ,
+    ii) archived FD.io jobs test result `output files
+    <../../_static/archive/>`_.
+
+VPP packet latency - running in configuration of **one worker thread (1t) on one
+physical core (1c)** - is presented in the figure below.
+
+.. raw:: html
+
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ipsechw-ndrdisc-lat50.html"></iframe>
+
+*Figure 1. VPP 1thread 1core - packet latency for Phy-to-Phy IPSEC HW.*
+
+CSIT test cases used to generate results presented above can be found in CSIT
+git repository by filtering with specified regex as follows:
+
+.. code-block:: bash
+
+    $ csit/tests/perf
+    $ grep -E "64B-1t1c-.*ipsec*" *
+
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-interfaces-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-interfaces-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-interfaces-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-interfaces-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-tunnels-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-tunnels-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-tunnels-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-tunnels-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrdisc
+
+VPP packet latency - running in configuration of **two worker threads (2t) on two
+physical cores (2c)** - is presented in the figure below.
+
+.. raw:: html
+
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ipsechw-ndrdisc-lat50.html"></iframe>
+
+*Figure 2. VPP 2threads 2cores - packet latency for Phy-to-Phy IPSEC HW.*
+
+CSIT test cases used to generate results presented above can be found in CSIT
+git repository by filtering with specified regex as follows:
+
+.. code-block:: bash
+
+    $ csit/tests/perf
+    $ grep -E "64B-2t2c-.*ipsec*" *
+
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc13-64B-2t2c-ethip4ipsecscale1ip4-ip4base-interfaces-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc15-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-interfaces-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc13-64B-2t2c-ethip4ipsecscale1ip4-ip4base-interfaces-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc15-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-interfaces-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc13-64B-2t2c-ethip4ipsecscale1ip4-ip4base-tunnels-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc15-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-tunnels-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc13-64B-2t2c-ethip4ipsecscale1ip4-ip4base-tunnels-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc15-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-tunnels-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot:| tc07-64B-2t2c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrdisc
+
index dffd2a2..21d38e2 100644 (file)
@@ -26,7 +26,7 @@ physical core (1c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ethip4-ip4-ndrdisc-lat50.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ethip4-ip4-ndrdisc-lat50.html"></iframe>
 
 *Figure 1. VPP 1thread 1core - packet latency for Phy-to-Phy IPv4 Routed-Forwarding.*
 
@@ -52,7 +52,7 @@ physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ethip4-ip4-ndrdisc-lat50.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ethip4-ip4-ndrdisc-lat50.html"></iframe>
 
 *Figure 2. VPP 2threads 2cores - packet latency for Phy-to-Phy IPv4 Routed-Forwarding.*
 
index decef07..9abcbd8 100644 (file)
@@ -26,7 +26,7 @@ physical core (1c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ethip4-ndrdisc-lat50.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ethip4-ndrdisc-lat50.html"></iframe>
 
 *Figure 1. VPP 1thread 1core - packet latency for Phy-to-Phy IPv4 Overlay Tunnels.*
 
@@ -48,7 +48,7 @@ physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ethip4-ndrdisc-lat50.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ethip4-ndrdisc-lat50.html"></iframe>
 
 *Figure 2. VPP 2threads 2cores - packet latency for Phy-to-Phy IPv4 Overlay Tunnels.*
 
index dd06399..adcb514 100644 (file)
@@ -26,7 +26,7 @@ physical core (1c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/78B-1t1c-ethip6-ip6-ndrdisc-lat50.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/78B-1t1c-ethip6-ip6-ndrdisc-lat50.html"></iframe>
 
 *Figure 1. VPP 1thread 1core - packet latency for Phy-to-Phy IPv6 Routed-Forwarding.*
 
@@ -51,7 +51,7 @@ physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/78B-2t2c-ethip6-ip6-ndrdisc-lat50.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/78B-2t2c-ethip6-ip6-ndrdisc-lat50.html"></iframe>
 
 *Figure 2. VPP 2threads 2cores - packet latency for Phy-to-Phy IPv6 Routed-Forwarding.*
 
index 261f2df..8861009 100644 (file)
@@ -26,7 +26,7 @@ physical core (1c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/78B-1t1c-ethip6-ndrdisc-lat50.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/78B-1t1c-ethip6-ndrdisc-lat50.html"></iframe>
 
 *Figure 1. VPP 1thread 1core - packet latency for Phy-to-Phy IPv6 Overlay Tunnels.*
 
@@ -46,7 +46,7 @@ physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/78B-2t2c-ethip6-ndrdisc-lat50.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/78B-2t2c-ethip6-ndrdisc-lat50.html"></iframe>
 
 *Figure 2. VPP 2threads 2cores - packet latency for Phy-to-Phy IPv6 Overlay Tunnels.*
 
index 98b5a8d..7eba106 100644 (file)
@@ -26,7 +26,7 @@ physical core (1c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-l2-ndrdisc-lat50.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-l2-ndrdisc-lat50.html"></iframe>
 
 *Figure 1. VPP 1thread 1core - packet latency for Phy-to-Phy L2 Ethernet Switching.*
 
@@ -53,7 +53,7 @@ physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-l2-ndrdisc-lat50.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-l2-ndrdisc-lat50.html"></iframe>
 
 *Figure 2. VPP 2threads 2cores - packet latency for Phy-to-Phy L2 Ethernet Switching.*
 
index 0afd357..22190ad 100644 (file)
@@ -26,7 +26,7 @@ physical core (1c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-vhost-ndrdisc-lat50.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-vhost-ndrdisc-lat50.html"></iframe>
 
 *Figure 1. VPP 1thread 1core - packet latency for Phy-to-VM-to-Phy VM vhost-user.*
 
@@ -52,7 +52,7 @@ physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-vhost-ndrdisc-lat50.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-vhost-ndrdisc-lat50.html"></iframe>
 
 *Figure 2. VPP 2threads 2cores - packet latency for Phy-to-VM-to-Phy VM vhost-user.*
 
diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec.rst
new file mode 100644 (file)
index 0000000..6f56cae
--- /dev/null
@@ -0,0 +1,139 @@
+Crypto in hardware: IP4FWD, IP6FWD
+==================================
+
+Following sections provide a summary of VPP Phy-to-Phy IPSEC HW
+performance illustrating NDR throughput (zero packet loss) and PDR throughput
+(<0.5% packet loss). Performance is reported for VPP running in multiple
+configurations of VPP worker thread(s), a.k.a. VPP data plane thread (s), and
+their physical CPU core(s) placement.
+
+*Title of each graph* is a regex (regular expression) matching all plotted
+throughput test cases, *X-axis labels* are indeces of csit-vpp-perf-1704 jobs
+that created result output files used as data sources for the graph,
+*Y-axis labels* are measured Packets Per Second [pps] values, and the *graph
+legend* identifes the plotted test suites.
+
+.. note::
+
+    Data sources for reported test results: i) FD.io test executor jobs
+    `csit-vpp-perf-1704-all
+    <https://jenkins.fd.io/view/csit/job/csit-vpp-perf-1704-all/>`_ ,
+    ii) archived FD.io jobs test result `output files
+    <../../_static/archive/>`_.
+
+NDR Throughput
+~~~~~~~~~~~~~~
+
+VPP NDR Throughput - running in configuration of **one worker thread (1t) on
+one physical core (1c)** - is presented in the figure below.
+
+.. raw:: html
+
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ipsechw-ndrdisc.html"></iframe>
+
+*Figure 1. VPP 1thread 1core - NDR Throughput for Phy-to-Phy IPSEC HW.*
+
+CSIT test cases used to generate results presented above can be found in CSIT
+git repository by filtering with specified regex as follows:
+
+.. code-block:: bash
+
+    $ csit/tests/perf
+    $ grep -E "64B-1t1c-.*ipsec*" *
+
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-interfaces-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-interfaces-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-interfaces-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-interfaces-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-tunnels-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-tunnels-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-tunnels-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-tunnels-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrdisc
+
+VPP NDR Throughput - running in configuration of **two worker threads (2t) on
+two physical cores (2c)** - is presented in the figure below.
+
+.. raw:: html
+
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ipsechw-ndrdisc.html"></iframe>
+
+*Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy IPSEC HW.*
+
+CSIT test cases used to generate results presented above can be found in CSIT
+git repository by filtering with specified regex as follows:
+
+.. code-block:: bash
+
+    $ csit/tests/perf
+    $ grep -E "64B-2t2c-.*ipsec*" *
+
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc13-64B-2t2c-ethip4ipsecscale1ip4-ip4base-interfaces-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc15-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-interfaces-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc13-64B-2t2c-ethip4ipsecscale1ip4-ip4base-interfaces-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc15-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-interfaces-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc13-64B-2t2c-ethip4ipsecscale1ip4-ip4base-tunnels-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc15-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-tunnels-aes-gcm-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc13-64B-2t2c-ethip4ipsecscale1ip4-ip4base-tunnels-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc15-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-tunnels-cbc-sha1-ndrdisc
+    40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot:| tc07-64B-2t2c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrdisc
+
+PDR Throughput
+~~~~~~~~~~~~~~
+
+VPP PDR Throughput - running in configuration of **one worker thread (1t) on one
+physical core (1c)** - is presented in the figure below. PDR at below 0.5%
+packet loss ratio.
+
+.. raw:: html
+
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ipsechw-pdrdisc.html"></iframe>
+
+*Figure 3. VPP 1thread 1core - PDR Throughput for Phy-to-Phy IPSEC HW.*
+
+CSIT test cases used to generate results presented above can be found in CSIT
+git repository by filtering with specified regex as follows:
+
+.. code-block:: bash
+
+    $ csit/tests/perf
+    $ grep -E "64B-1t1c-.*ipsec*" *
+
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-interfaces-aes-gcm-pdrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-interfaces-aes-gcm-pdrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-interfaces-cbc-sha1-pdrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-interfaces-cbc-sha1-pdrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-tunnels-aes-gcm-pdrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-tunnels-aes-gcm-pdrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-tunnels-cbc-sha1-pdrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-tunnels-cbc-sha1-pdrdisc
+    40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-pdrdisc
+
+
+VPP PDR Throughput - running in configuration of **two worker threads (2t) on
+two physical cores (2c)** - is presented in the figure below.
+
+.. raw:: html
+
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ipsechw-pdrdisc.html"></iframe>
+
+*Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-Phy IPSEC HW.*
+
+CSIT test cases used to generate results presented above can be found in CSIT
+git repository by filtering with specified regex as follows:
+
+.. code-block:: bash
+
+    $ csit/tests/perf
+    $ grep -E "64B-1t1c-.*ipsec*" *
+
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4ipsecscale1ip4-ip4base-interfaces-aes-gcm-pdrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc04-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-interfaces-aes-gcm-pdrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4ipsecscale1ip4-ip4base-interfaces-cbc-sha1-pdrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc04-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-interfaces-cbc-sha1-pdrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4ipsecscale1ip4-ip4base-tunnels-aes-gcm-pdrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc04-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-tunnels-aes-gcm-pdrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4ipsecscale1ip4-ip4base-tunnels-cbc-sha1-pdrdisc
+    40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc04-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-tunnels-cbc-sha1-pdrdisc
+    40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-pdrdisc
+
index c5cce0d..eab9b06 100644 (file)
@@ -29,7 +29,7 @@ one physical core (1c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ethip4-ip4-ndrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ethip4-ip4-ndrdisc.html"></iframe>
 
 *Figure 1. VPP 1thread 1core - NDR Throughput for Phy-to-Phy IPv4 Routed-Forwarding.*
 
@@ -55,7 +55,7 @@ two physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ethip4-ip4-ndrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ethip4-ip4-ndrdisc.html"></iframe>
 
 *Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy IPv4
 Routed-Forwarding.*
@@ -86,7 +86,7 @@ packet loss ratio.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ethip4-ip4-pdrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ethip4-ip4-pdrdisc.html"></iframe>
 
 *Figure 3. VPP 1thread 1core - PDR Throughput for Phy-to-Phy IPv4
 Routed-Forwarding.*
@@ -112,7 +112,7 @@ two physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ethip4-ip4-pdrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ethip4-ip4-pdrdisc.html"></iframe>
 
 *Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-Phy IPv4
 Routed-Forwarding.*
index 374505e..1b300ca 100644 (file)
@@ -29,7 +29,7 @@ one physical core (1c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ethip4-ndrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ethip4-ndrdisc.html"></iframe>
 
 *Figure 1. VPP 1thread 1core - NDR Throughput for Phy-to-Phy IPv4 Overlay
 Tunnels.*
@@ -52,7 +52,7 @@ two physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ethip4-ndrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ethip4-ndrdisc.html"></iframe>
 
 *Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy IPv4 Overlay Tunnels.*
 
@@ -78,7 +78,7 @@ packet loss ratio.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ethip4-pdrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ethip4-pdrdisc.html"></iframe>
 
 *Figure 3. VPP 1thread 1core - PDR Throughput for Phy-to-Phy IPv4 Overlay
 Tunnels.*
@@ -101,7 +101,7 @@ two physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ethip4-pdrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ethip4-pdrdisc.html"></iframe>
 
 *Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-Phy IPv4 Overlay Tunnels.*
 
index 09f19a8..a84423a 100644 (file)
@@ -29,7 +29,7 @@ one physical core (1c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/78B-1t1c-ethip6-ip6-ndrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/78B-1t1c-ethip6-ip6-ndrdisc.html"></iframe>
 
 *Figure 1. VPP 1thread 1core - NDR Throughput for Phy-to-Phy IPv6
 Routed-Forwarding.*
@@ -55,7 +55,7 @@ two physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/78B-2t2c-ethip6-ip6-ndrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/78B-2t2c-ethip6-ip6-ndrdisc.html"></iframe>
 
 *Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy IPv6
 Routed-Forwarding.*
@@ -85,7 +85,7 @@ packet loss ratio.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/78B-1t1c-ethip6-ip6-pdrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/78B-1t1c-ethip6-ip6-pdrdisc.html"></iframe>
 
 *Figure 3. VPP 1thread 1core - PDR Throughput for Phy-to-Phy IPv6
 Routed-Forwarding.*
@@ -110,7 +110,7 @@ two physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/78B-2t2c-ethip6-ip6-pdrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/78B-2t2c-ethip6-ip6-pdrdisc.html"></iframe>
 
 *Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-Phy IPv6
 Routed-Forwarding.*
index 34a7df7..8619ce6 100644 (file)
@@ -29,7 +29,7 @@ one physical core (1c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/78B-1t1c-ethip6-ndrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/78B-1t1c-ethip6-ndrdisc.html"></iframe>
 
 *Figure 1. VPP 1thread 1core - NDR Throughput for Phy-to-Phy IPv6 Overlay
 Tunnels.*
@@ -50,7 +50,7 @@ two physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/78B-2t2c-ethip6-ndrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/78B-2t2c-ethip6-ndrdisc.html"></iframe>
 
 *Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy IPv6 Overlay
 Tunnels.*
@@ -75,7 +75,7 @@ packet loss ratio.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/78B-1t1c-ethip6-pdrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/78B-1t1c-ethip6-pdrdisc.html"></iframe>
 
 *Figure 3. VPP 1thread 1core - PDR Throughput for Phy-to-Phy IPv6 Overlay
 Tunnels.*
@@ -96,7 +96,7 @@ two physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/78B-2t2c-ethip6-pdrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/78B-2t2c-ethip6-pdrdisc.html"></iframe>
 
 *Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-Phy IPv6 Overlay
 Tunnels.*
index 429696b..3e1d645 100644 (file)
@@ -29,7 +29,7 @@ one physical core (1c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-l2-ndrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-l2-ndrdisc.html"></iframe>
 
 *Figure 1. VPP 1thread 1core - NDR Throughput for Phy-to-Phy L2 Ethernet
 Switching.*
@@ -57,7 +57,7 @@ physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-l2-ndrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-l2-ndrdisc.html"></iframe>
 
 *Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy L2 Ethernet
 Switching.*
@@ -89,7 +89,7 @@ loss ratio.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-l2-pdrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-l2-pdrdisc.html"></iframe>
 
 *Figure 3. VPP 1thread 1core - PDR Throughput for Phy-to-Phy L2 Ethernet
 Switching.*
@@ -115,7 +115,7 @@ two physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-l2-pdrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-l2-pdrdisc.html"></iframe>
 
 *Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-Phy L2 Ethernet
 Switching.*
index 9772912..7f20c7a 100644 (file)
@@ -29,7 +29,7 @@ physical core (1c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-vhost-ndrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-vhost-ndrdisc.html"></iframe>
 
 *Figure 1. VPP 1thread 1core - NDR Throughput for Phy-to-VM-to-Phy VM
 vhost-user.*
@@ -56,7 +56,7 @@ two physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-vhost-ndrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-vhost-ndrdisc.html"></iframe>
 
 *Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-VM-to-Phy VM
 vhost-user.*
@@ -83,7 +83,7 @@ four physical cores (4c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-4t4c-vhost-ndrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-4t4c-vhost-ndrdisc.html"></iframe>
 
 PDR Throughput
 ~~~~~~~~~~~~~~
@@ -94,7 +94,7 @@ packet loss ratio.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-vhost-pdrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-vhost-pdrdisc.html"></iframe>
 
 *Figure 3. VPP 1thread 1core - PDR Throughput for Phy-to-VM-to-Phy VM
 vhost-user.*
@@ -121,7 +121,7 @@ two physical cores (2c)** - is presented in the figure below.
 
 .. raw:: html
 
-    <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-vhost-pdrdisc.html"></iframe>
+    <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-vhost-pdrdisc.html"></iframe>
 
 *Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-VM-to-Phy VM
 vhost-user.*
index 4768138..98fc2ba 100644 (file)
@@ -195,7 +195,7 @@ def main():
             else:
                 if args.plot == 'box':
                     traces.append(plgo.Box(
-                        x=[str(i+1)+'. TC'] * len(ydata[suite][1::2]),
+                        x=[str(i+1)+'.'] * len(ydata[suite][1::2]),
                         y=ydata[suite][1::2],
                         name=str(i+1)+'. '+suite.lower().replace('-ndrdisc',''),
                         hoverinfo='x+y',
@@ -249,19 +249,17 @@ def main():
             boxgroupgap=0.5,
             autosize=False,
             margin=dict(
-                autoexpand=False,
-                b=200,
+                t=50,
+                b=20,
                 l=50,
-                r=50,
+                r=20,
             ),
             showlegend=True,
             legend=dict(
                 orientation='h',
-                y=-1,
-                yanchor='bottom',
             ),
             width=700,
-            height=700,
+            height=1000,
         )
         # Create plot
         plpl = plgo.Figure(data=traces, layout=layout)
index 0c05962..7274a82 100755 (executable)
@@ -51,7 +51,7 @@ mkdir -p ${STATIC_DIR_ARCH}
 
 JEN_FILE_PERF='output_perf_data.xml'
 JEN_JOB='csit-vpp-perf-1704-all'
-JEN_BUILD=(1)
+JEN_BUILD=(3)
 
 for i in "${JEN_BUILD[@]}"; do
     curl -fs ${JEN_URL}/${JEN_JOB}/${i}/artifact/${JEN_FILE_PERF} \
@@ -115,7 +115,7 @@ rm -f ${DTR_PERF_SOURCE_DIR}/*.json
 ### DPDK PERFORMANCE SOURCE DATA
 
 JEN_JOB='csit-dpdk-perf-1704-all'
-JEN_BUILD=(1 2)
+JEN_BUILD=(1 2 3)
 
 for i in "${JEN_BUILD[@]}"; do
     curl -fs ${JEN_URL}/${JEN_JOB}/${i}/artifact/${JEN_FILE_PERF} \
@@ -141,7 +141,7 @@ rm -f ${DTR_TESTPMD_SOURCE_DIR}/*.json
 ### FUNCTIONAL SOURCE DATA
 
 JEN_JOB='csit-vpp-functional-1704-ubuntu1604-virl'
-JEN_BUILD=22
+JEN_BUILD=33
 
 curl -fs ${JEN_URL}/${JEN_JOB}/${JEN_BUILD}/artifact/\*zip\*/archive.zip \
     -o ${STATIC_DIR_ARCH}/${JEN_JOB}-${JEN_BUILD}.zip
@@ -325,20 +325,20 @@ python run_plot.py --input ${STATIC_DIR_VPP} \
 python run_plot.py --input ${STATIC_DIR_VPP} \
     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ip4-ndrdisc \
     --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
-    --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP4FWD") and not(contains(@tags,"VHOST"))]'
+    --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
 python run_plot.py --input ${STATIC_DIR_VPP} \
     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ip4-ndrdisc \
     --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
-    --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD") and not(contains(@tags,"VHOST"))]'
+    --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
 
 python run_plot.py --input ${STATIC_DIR_VPP} \
     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ip6-ndrdisc \
     --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
-    --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP6FWD") and not(contains(@tags,"VHOST"))]'
+    --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
 python run_plot.py --input ${STATIC_DIR_VPP} \
     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ip6-ndrdisc \
     --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
-    --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP6FWD") and not(contains(@tags,"VHOST"))]'
+    --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
 
 python run_plot.py --input ${STATIC_DIR_VPP} \
     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ndrdisc \
@@ -388,20 +388,20 @@ python run_plot.py --input ${STATIC_DIR_VPP} \
 python run_plot.py --input ${STATIC_DIR_VPP} \
     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ip4-pdrdisc \
     --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*pdrdisc" \
-    --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"1T1C") and contains(@tags,"IP4FWD") and not(contains(@tags,"VHOST"))]'
+    --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"1T1C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
 python run_plot.py --input ${STATIC_DIR_VPP} \
     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ip4-pdrdisc \
     --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*pdrdisc" \
-    --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and contains(@tags,"IP4FWD") and not(contains(@tags,"VHOST"))]'
+    --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
 
 python run_plot.py --input ${STATIC_DIR_VPP} \
     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ip6-pdrdisc \
     --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*pdrdisc" \
-    --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"1T1C") and contains(@tags,"IP6FWD") and not(contains(@tags,"VHOST"))]'
+    --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"1T1C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
 python run_plot.py --input ${STATIC_DIR_VPP} \
     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ip6-pdrdisc \
     --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*pdrdisc" \
-    --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and contains(@tags,"IP6FWD") and not(contains(@tags,"VHOST"))]'
+    --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"PDRDISC") and not(contains(@tags,"NDRDISC")) and contains(@tags,"2T2C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]'
 
 python run_plot.py --input ${STATIC_DIR_VPP} \
     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-pdrdisc \
@@ -471,20 +471,20 @@ python run_plot.py --input ${STATIC_DIR_VPP} \
 python run_plot.py --input ${STATIC_DIR_VPP} \
     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ip4-ndrdisc-lat50 \
     --title "64B-1t1c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
-    --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP4FWD") and not(contains(@tags,"VHOST"))]' --latency lat_50
+    --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]' --latency lat_50
 python run_plot.py --input ${STATIC_DIR_VPP} \
     --output ${STATIC_DIR_VPP}/64B-2t2c-ethip4-ip4-ndrdisc-lat50 \
     --title "64B-2t2c-ethip4-ip4[a-z0-9]+-[a-z-]*ndrdisc" \
-    --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD") and not(contains(@tags,"VHOST"))]' --latency lat_50
+    --xpath '//*[@framesize="64B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP4FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]' --latency lat_50
 
 python run_plot.py --input ${STATIC_DIR_VPP} \
     --output ${STATIC_DIR_VPP}/78B-1t1c-ethip6-ip6-ndrdisc-lat50 \
     --title "78B-1t1c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
-    --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP6FWD") and not(contains(@tags,"VHOST"))]' --latency lat_50
+    --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"1T1C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]' --latency lat_50
 python run_plot.py --input ${STATIC_DIR_VPP} \
     --output ${STATIC_DIR_VPP}/78B-2t2c-ethip6-ip6-ndrdisc-lat50 \
     --title "78B-2t2c-ethip6-ip6[a-z0-9]+-[a-z-]*ndrdisc" \
-    --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP6FWD") and not(contains(@tags,"VHOST"))]' --latency lat_50
+    --xpath '//*[@framesize="78B" and (contains(@tags,"BASE") or contains(@tags,"SCALE") or contains(@tags,"FEATURE")) and contains(@tags,"NDRDISC") and contains(@tags,"2T2C") and contains(@tags,"IP6FWD") and not(contains(@tags,"IPSEC")) and not(contains(@tags,"VHOST"))]' --latency lat_50
 
 python run_plot.py --input ${STATIC_DIR_VPP} \
     --output ${STATIC_DIR_VPP}/64B-1t1c-ethip4-ndrdisc-lat50 \