From 8196090687e92e4c7a1a49ec9a8266833795d7f5 Mon Sep 17 00:00:00 2001 From: Peter Mikus Date: Mon, 24 Apr 2017 10:56:32 +0200 Subject: Fix: Report generation - Add IPsec plots - Fix plots rendering Change-Id: Ie8f5d2fa6724268ac05ed4f6ea53bb7c593f676e Signed-off-by: Peter Mikus --- .../packet_latency_graphs/index.rst | 1 + .../packet_latency_graphs/ipsec.rst | 77 ++++++++++++ .../packet_latency_graphs/ipv4.rst | 4 +- .../packet_latency_graphs/ipv4_tunnels.rst | 4 +- .../packet_latency_graphs/ipv6.rst | 4 +- .../packet_latency_graphs/ipv6_tunnels.rst | 4 +- .../packet_latency_graphs/l2.rst | 4 +- .../packet_latency_graphs/vm_vhost.rst | 4 +- .../packet_throughput_graphs/index.rst | 1 + .../packet_throughput_graphs/ipsec.rst | 139 +++++++++++++++++++++ .../packet_throughput_graphs/ipv4.rst | 8 +- .../packet_throughput_graphs/ipv4_tunnels.rst | 8 +- .../packet_throughput_graphs/ipv6.rst | 8 +- .../packet_throughput_graphs/ipv6_tunnels.rst | 8 +- .../packet_throughput_graphs/l2.rst | 8 +- .../packet_throughput_graphs/vm_vhost.rst | 10 +- resources/tools/report_gen/run_plot.py | 12 +- resources/tools/report_gen/run_report.sh | 30 ++--- 18 files changed, 275 insertions(+), 59 deletions(-) create mode 100644 docs/report/vpp_performance_tests/packet_latency_graphs/ipsec.rst create mode 100644 docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec.rst diff --git a/docs/report/vpp_performance_tests/packet_latency_graphs/index.rst b/docs/report/vpp_performance_tests/packet_latency_graphs/index.rst index 8c3e941d41..f333f230f7 100644 --- a/docs/report/vpp_performance_tests/packet_latency_graphs/index.rst +++ b/docs/report/vpp_performance_tests/packet_latency_graphs/index.rst @@ -9,3 +9,4 @@ Packet Latency Graphs ipv4_tunnels ipv6_tunnels vm_vhost + ipsec 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 index 0000000000..46aaa2a413 --- /dev/null +++ b/docs/report/vpp_performance_tests/packet_latency_graphs/ipsec.rst @@ -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 + `_ , + 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 + + + +*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 + + + +*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 + diff --git a/docs/report/vpp_performance_tests/packet_latency_graphs/ipv4.rst b/docs/report/vpp_performance_tests/packet_latency_graphs/ipv4.rst index dffd2a2f78..21d38e2afe 100644 --- a/docs/report/vpp_performance_tests/packet_latency_graphs/ipv4.rst +++ b/docs/report/vpp_performance_tests/packet_latency_graphs/ipv4.rst @@ -26,7 +26,7 @@ physical core (1c)** - is presented in the figure below. .. raw:: html - + *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 - + *Figure 2. VPP 2threads 2cores - packet latency for Phy-to-Phy IPv4 Routed-Forwarding.* diff --git a/docs/report/vpp_performance_tests/packet_latency_graphs/ipv4_tunnels.rst b/docs/report/vpp_performance_tests/packet_latency_graphs/ipv4_tunnels.rst index decef07375..9abcbd8bbf 100644 --- a/docs/report/vpp_performance_tests/packet_latency_graphs/ipv4_tunnels.rst +++ b/docs/report/vpp_performance_tests/packet_latency_graphs/ipv4_tunnels.rst @@ -26,7 +26,7 @@ physical core (1c)** - is presented in the figure below. .. raw:: html - + *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 - + *Figure 2. VPP 2threads 2cores - packet latency for Phy-to-Phy IPv4 Overlay Tunnels.* diff --git a/docs/report/vpp_performance_tests/packet_latency_graphs/ipv6.rst b/docs/report/vpp_performance_tests/packet_latency_graphs/ipv6.rst index dd06399861..adcb514af0 100644 --- a/docs/report/vpp_performance_tests/packet_latency_graphs/ipv6.rst +++ b/docs/report/vpp_performance_tests/packet_latency_graphs/ipv6.rst @@ -26,7 +26,7 @@ physical core (1c)** - is presented in the figure below. .. raw:: html - + *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 - + *Figure 2. VPP 2threads 2cores - packet latency for Phy-to-Phy IPv6 Routed-Forwarding.* diff --git a/docs/report/vpp_performance_tests/packet_latency_graphs/ipv6_tunnels.rst b/docs/report/vpp_performance_tests/packet_latency_graphs/ipv6_tunnels.rst index 261f2dfbd4..8861009728 100644 --- a/docs/report/vpp_performance_tests/packet_latency_graphs/ipv6_tunnels.rst +++ b/docs/report/vpp_performance_tests/packet_latency_graphs/ipv6_tunnels.rst @@ -26,7 +26,7 @@ physical core (1c)** - is presented in the figure below. .. raw:: html - + *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 - + *Figure 2. VPP 2threads 2cores - packet latency for Phy-to-Phy IPv6 Overlay Tunnels.* diff --git a/docs/report/vpp_performance_tests/packet_latency_graphs/l2.rst b/docs/report/vpp_performance_tests/packet_latency_graphs/l2.rst index 98b5a8deec..7eba1062f2 100644 --- a/docs/report/vpp_performance_tests/packet_latency_graphs/l2.rst +++ b/docs/report/vpp_performance_tests/packet_latency_graphs/l2.rst @@ -26,7 +26,7 @@ physical core (1c)** - is presented in the figure below. .. raw:: html - + *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 - + *Figure 2. VPP 2threads 2cores - packet latency for Phy-to-Phy L2 Ethernet Switching.* diff --git a/docs/report/vpp_performance_tests/packet_latency_graphs/vm_vhost.rst b/docs/report/vpp_performance_tests/packet_latency_graphs/vm_vhost.rst index 0afd357609..22190adb09 100644 --- a/docs/report/vpp_performance_tests/packet_latency_graphs/vm_vhost.rst +++ b/docs/report/vpp_performance_tests/packet_latency_graphs/vm_vhost.rst @@ -26,7 +26,7 @@ physical core (1c)** - is presented in the figure below. .. raw:: html - + *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 - + *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/index.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/index.rst index bf2a87fab7..4abdf8eeb9 100644 --- a/docs/report/vpp_performance_tests/packet_throughput_graphs/index.rst +++ b/docs/report/vpp_performance_tests/packet_throughput_graphs/index.rst @@ -9,3 +9,4 @@ Packet Throughput Graphs ipv4_tunnels ipv6_tunnels vm_vhost + ipsec 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 index 0000000000..6f56cae134 --- /dev/null +++ b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipsec.rst @@ -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 + `_ , + 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 + + + +*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 + + + +*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 + + + +*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 + + + +*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 + diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv4.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv4.rst index c5cce0d274..eab9b061bc 100644 --- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv4.rst +++ b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv4.rst @@ -29,7 +29,7 @@ one physical core (1c)** - is presented in the figure below. .. raw:: html - + *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 - + *Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy IPv4 Routed-Forwarding.* @@ -86,7 +86,7 @@ packet loss ratio. .. raw:: html - + *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 - + *Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-Phy IPv4 Routed-Forwarding.* diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv4_tunnels.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv4_tunnels.rst index 374505e0db..1b300ca34a 100644 --- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv4_tunnels.rst +++ b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv4_tunnels.rst @@ -29,7 +29,7 @@ one physical core (1c)** - is presented in the figure below. .. raw:: html - + *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 - + *Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy IPv4 Overlay Tunnels.* @@ -78,7 +78,7 @@ packet loss ratio. .. raw:: html - + *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 - + *Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-Phy IPv4 Overlay Tunnels.* diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv6.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv6.rst index 09f19a876b..a84423aa9c 100644 --- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv6.rst +++ b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv6.rst @@ -29,7 +29,7 @@ one physical core (1c)** - is presented in the figure below. .. raw:: html - + *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 - + *Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy IPv6 Routed-Forwarding.* @@ -85,7 +85,7 @@ packet loss ratio. .. raw:: html - + *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 - + *Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-Phy IPv6 Routed-Forwarding.* diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv6_tunnels.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv6_tunnels.rst index 34a7df7e70..8619ce661b 100644 --- a/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv6_tunnels.rst +++ b/docs/report/vpp_performance_tests/packet_throughput_graphs/ipv6_tunnels.rst @@ -29,7 +29,7 @@ one physical core (1c)** - is presented in the figure below. .. raw:: html - + *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 - + *Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy IPv6 Overlay Tunnels.* @@ -75,7 +75,7 @@ packet loss ratio. .. raw:: html - + *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 - + *Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-Phy IPv6 Overlay Tunnels.* diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2.rst index 429696bcae..3e1d645389 100644 --- a/docs/report/vpp_performance_tests/packet_throughput_graphs/l2.rst +++ b/docs/report/vpp_performance_tests/packet_throughput_graphs/l2.rst @@ -29,7 +29,7 @@ one physical core (1c)** - is presented in the figure below. .. raw:: html - + *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 - + *Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy L2 Ethernet Switching.* @@ -89,7 +89,7 @@ loss ratio. .. raw:: html - + *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 - + *Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-Phy L2 Ethernet Switching.* diff --git a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost.rst b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost.rst index 9772912d9c..7f20c7a91e 100644 --- a/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost.rst +++ b/docs/report/vpp_performance_tests/packet_throughput_graphs/vm_vhost.rst @@ -29,7 +29,7 @@ physical core (1c)** - is presented in the figure below. .. raw:: html - + *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 - + *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 - + PDR Throughput ~~~~~~~~~~~~~~ @@ -94,7 +94,7 @@ packet loss ratio. .. raw:: html - + *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 - + *Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-VM-to-Phy VM vhost-user.* diff --git a/resources/tools/report_gen/run_plot.py b/resources/tools/report_gen/run_plot.py index 476813883f..98fc2baecc 100644 --- a/resources/tools/report_gen/run_plot.py +++ b/resources/tools/report_gen/run_plot.py @@ -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) diff --git a/resources/tools/report_gen/run_report.sh b/resources/tools/report_gen/run_report.sh index 60af021d8d..0025c7a447 100755 --- a/resources/tools/report_gen/run_report.sh +++ b/resources/tools/report_gen/run_report.sh @@ -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) +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=12 +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 \ -- cgit 1.2.3-korg