CSIT-1104: Trending: Speed-up plots generation 36/12736/7
authorTibor Frank <tifrank@cisco.com>
Fri, 25 May 2018 07:13:15 +0000 (09:13 +0200)
committerTibor Frank <tifrank@cisco.com>
Fri, 25 May 2018 11:56:35 +0000 (13:56 +0200)
Change-Id: Ia3916523d4fc9e05ec864af2a858a03dea46c73c
Signed-off-by: Tibor Frank <tifrank@cisco.com>
15 files changed:
docs/cpta/trending/container_memif.rst
docs/cpta/trending/ip4.rst
docs/cpta/trending/ip4_tunnels.rst
docs/cpta/trending/ip6.rst
docs/cpta/trending/ipsec.rst
docs/cpta/trending/l2.rst
docs/cpta/trending/vm_vhost_ip4.rst
docs/cpta/trending/vm_vhost_l2.rst
resources/tools/presentation/generator_CPTA.py
resources/tools/presentation/generator_files.py
resources/tools/presentation/generator_plots.py
resources/tools/presentation/generator_tables.py
resources/tools/presentation/input_data_parser.py
resources/tools/presentation/specification_CPTA.yaml
resources/tools/presentation/utils.py

index 2052688..097349d 100644 (file)
@@ -17,7 +17,7 @@ x520-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-1t1c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-1t1c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -34,7 +34,7 @@ x520-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-2t2c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-2t2c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -51,7 +51,7 @@ x520-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-4t4c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-4t4c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -71,7 +71,7 @@ x710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-1t1c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-1t1c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -88,7 +88,7 @@ x710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-2t2c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-2t2c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -105,7 +105,7 @@ x710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-4t4c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-4t4c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -125,7 +125,7 @@ xl710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-1t1c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-1t1c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -142,7 +142,7 @@ xl710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-2t2c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-2t2c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -159,7 +159,7 @@ xl710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-4t4c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-l2-4t4c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -179,7 +179,7 @@ x520-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-1t1c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-1t1c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -196,7 +196,7 @@ x520-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-2t2c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-2t2c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -213,7 +213,7 @@ x520-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-4t4c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-4t4c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -233,7 +233,7 @@ x710-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-1t1c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-1t1c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -250,7 +250,7 @@ x710-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-2t2c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-2t2c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -267,7 +267,7 @@ x710-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-4t4c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-4t4c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -287,7 +287,7 @@ xl710-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-1t1c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-1t1c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -304,7 +304,7 @@ xl710-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-2t2c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-2t2c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -321,6 +321,6 @@ xl710-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-4t4c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-container-memif-imix-l2-4t4c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
index 82aff5f..61d4841 100644 (file)
@@ -17,7 +17,7 @@ x520-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-1t1c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-1t1c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -34,7 +34,7 @@ x520-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-2t2c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-2t2c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -51,7 +51,7 @@ x520-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-4t4c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-4t4c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -71,7 +71,7 @@ x520-64b-features
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-1t1c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-1t1c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -88,7 +88,7 @@ x520-64b-features
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-2t2c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-2t2c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -105,7 +105,7 @@ x520-64b-features
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-4t4c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-4t4c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -125,7 +125,7 @@ x710-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-1t1c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-1t1c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -142,7 +142,7 @@ x710-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-2t2c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-2t2c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -159,7 +159,7 @@ x710-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-4t4c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-4t4c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -179,7 +179,7 @@ x710-64b-features
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-1t1c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-1t1c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -196,7 +196,7 @@ x710-64b-features
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-2t2c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-2t2c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -213,7 +213,7 @@ x710-64b-features
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-4t4c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-feature-4t4c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -233,7 +233,7 @@ xl710-64b-base-scale-features
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-1t1c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-1t1c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -250,7 +250,7 @@ xl710-64b-base-scale-features
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-2t2c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-2t2c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -267,6 +267,6 @@ xl710-64b-base-scale-features
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-4t4c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-4t4c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
index 5430c97..7464992 100644 (file)
@@ -17,7 +17,7 @@ x520-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-1t1c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-1t1c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -34,7 +34,7 @@ x520-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-2t2c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-2t2c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -51,7 +51,7 @@ x520-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-4t4c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-4t4c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -71,7 +71,7 @@ x710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-1t1c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-1t1c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -88,7 +88,7 @@ x710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-2t2c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-2t2c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -105,6 +105,6 @@ x710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-4t4c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip4-tunnels-4t4c-x710.html"></iframe>
     <p><br><br></p>
     </center>
index cc1abc7..9122c1e 100644 (file)
@@ -17,7 +17,7 @@ x520-78b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-1t1c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-1t1c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -34,7 +34,7 @@ x520-78b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-2t2c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-2t2c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -51,7 +51,7 @@ x520-78b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-4t4c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-4t4c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -71,7 +71,7 @@ x710-78b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-1t1c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-1t1c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -88,7 +88,7 @@ x710-78b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-2t2c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-2t2c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -105,7 +105,7 @@ x710-78b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-4t4c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-4t4c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -125,7 +125,7 @@ xl710-78b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-1t1c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-1t1c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -142,7 +142,7 @@ xl710-78b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-2t2c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-2t2c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -159,6 +159,6 @@ xl710-78b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-4t4c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ip6-4t4c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
index 5a4d421..6b54d3e 100644 (file)
@@ -17,7 +17,7 @@ xl710-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-1t1c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-1t1c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -34,7 +34,7 @@ xl710-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-2t2c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-2t2c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -51,6 +51,6 @@ xl710-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-4t4c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-ipsec-4t4c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
index 5b08da2..0578153 100644 (file)
@@ -17,7 +17,7 @@ x520-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-1t1c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-1t1c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -34,7 +34,7 @@ x520-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-2t2c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-2t2c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -51,7 +51,7 @@ x520-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-4t4c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-4t4c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -71,7 +71,7 @@ x520-64b-features
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-feature-1t1c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-feature-1t1c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -88,7 +88,7 @@ x520-64b-features
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-feature-2t2c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-feature-2t2c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -105,7 +105,7 @@ x520-64b-features
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-feature-4t4c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-feature-4t4c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -125,7 +125,7 @@ x710-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-1t1c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-1t1c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -142,7 +142,7 @@ x710-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-2t2c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-2t2c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -159,7 +159,7 @@ x710-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-4t4c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-4t4c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -179,7 +179,7 @@ x710-64b-features
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-feature-1t1c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-feature-1t1c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -196,7 +196,7 @@ x710-64b-features
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-feature-2t2c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-feature-2t2c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -213,7 +213,7 @@ x710-64b-features
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-feature-4t4c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-feature-4t4c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -233,7 +233,7 @@ xl710-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-1t1c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-1t1c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -250,7 +250,7 @@ xl710-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-2t2c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-2t2c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -267,6 +267,6 @@ xl710-64b-base-scale
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-4t4c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-l2-4t4c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
index 16f2746..f13d655 100644 (file)
@@ -17,7 +17,7 @@ x520-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-ethip4-1t1c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-ethip4-1t1c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -34,7 +34,7 @@ x520-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-ethip4-2t2c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-ethip4-2t2c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -51,7 +51,7 @@ x520-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-ethip4-4t4c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-ethip4-4t4c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -71,7 +71,7 @@ x710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-ethip4-1t1c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-ethip4-1t1c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -88,7 +88,7 @@ x710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-ethip4-2t2c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-ethip4-2t2c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -105,7 +105,7 @@ x710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-ethip4-4t4c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-ethip4-4t4c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -125,7 +125,7 @@ x520-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-ethip4-1t1c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-ethip4-1t1c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -142,7 +142,7 @@ x520-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-ethip4-2t2c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-ethip4-2t2c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -159,7 +159,7 @@ x520-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-ethip4-4t4c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-ethip4-4t4c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -179,7 +179,7 @@ x710-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-ethip4-1t1c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-ethip4-1t1c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -196,7 +196,7 @@ x710-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-ethip4-2t2c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-ethip4-2t2c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -213,6 +213,6 @@ x710-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-ethip4-4t4c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-ethip4-4t4c-x710.html"></iframe>
     <p><br><br></p>
     </center>
index a55574f..4926928 100644 (file)
@@ -17,7 +17,7 @@ x520-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-1t1c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-1t1c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -34,7 +34,7 @@ x520-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-2t2c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-2t2c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -51,7 +51,7 @@ x520-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-4t4c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-4t4c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -71,7 +71,7 @@ x710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-1t1c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-1t1c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -88,7 +88,7 @@ x710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-2t2c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-2t2c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -105,7 +105,7 @@ x710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-4t4c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-4t4c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -125,7 +125,7 @@ xl710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-1t1c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-1t1c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -142,7 +142,7 @@ xl710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-2t2c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-2t2c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -159,7 +159,7 @@ xl710-64b-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-4t4c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-eth-4t4c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -179,7 +179,7 @@ x520-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-1t1c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-1t1c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -196,7 +196,7 @@ x520-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-2t2c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-2t2c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -213,7 +213,7 @@ x520-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-4t4c-x520-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-4t4c-x520.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -233,7 +233,7 @@ x710-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-1t1c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-1t1c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -250,7 +250,7 @@ x710-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-2t2c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-2t2c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -267,7 +267,7 @@ x710-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-4t4c-x710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-4t4c-x710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -287,7 +287,7 @@ xl710-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-1t1c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-1t1c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -304,7 +304,7 @@ xl710-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-2t2c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-2t2c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
 
@@ -321,6 +321,6 @@ xl710-imix-base
 .. raw:: html
 
     </b>
-    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-4t4c-xl710-1.html"></iframe>
+    <iframe width="1100" height="800" frameborder="0" scrolling="no" src="../_static/vpp/cpta-vm-vhost-imix-eth-4t4c-xl710.html"></iframe>
     <p><br><br></p>
     </center>
index 883e39f..73d55af 100644 (file)
@@ -14,6 +14,8 @@
 """Generation of Continuous Performance Trending and Analysis.
 """
 
+import multiprocessing
+import os
 import logging
 import csv
 import prettytable
@@ -24,9 +26,9 @@ import numpy as np
 import pandas as pd
 
 from collections import OrderedDict
-from datetime import datetime, timedelta
+from datetime import datetime
 
-from utils import split_outliers, archive_input_data, execute_command
+from utils import split_outliers, archive_input_data, execute_command, Worker
 
 
 # Command to build the html format of the report
@@ -85,66 +87,6 @@ def generate_cpta(spec, data):
     return ret_code
 
 
-def _select_data(in_data, period, fill_missing=False, use_first=False):
-    """Select the data from the full data set. The selection is done by picking
-    the samples depending on the period: period = 1: All, period = 2: every
-    second sample, period = 3: every third sample ...
-
-    :param in_data: Full set of data.
-    :param period: Sampling period.
-    :param fill_missing: If the chosen sample is missing in the full set, its
-    nearest neighbour is used.
-    :param use_first: Use the first sample even though it is not chosen.
-    :type in_data: OrderedDict
-    :type period: int
-    :type fill_missing: bool
-    :type use_first: bool
-    :returns: Reduced data.
-    :rtype: OrderedDict
-    """
-
-    first_idx = min(in_data.keys())
-    last_idx = max(in_data.keys())
-
-    idx = last_idx
-    data_dict = dict()
-    if use_first:
-        data_dict[first_idx] = in_data[first_idx]
-    while idx >= first_idx:
-        data = in_data.get(idx, None)
-        if data is None:
-            if fill_missing:
-                threshold = int(round(idx - period / 2)) + 1 - period % 2
-                idx_low = first_idx if threshold < first_idx else threshold
-                threshold = int(round(idx + period / 2))
-                idx_high = last_idx if threshold > last_idx else threshold
-
-                flag_l = True
-                flag_h = True
-                idx_lst = list()
-                inc = 1
-                while flag_l or flag_h:
-                    if idx + inc > idx_high:
-                        flag_h = False
-                    else:
-                        idx_lst.append(idx + inc)
-                    if idx - inc < idx_low:
-                        flag_l = False
-                    else:
-                        idx_lst.append(idx - inc)
-                    inc += 1
-
-                for i in idx_lst:
-                    if i in in_data.keys():
-                        data_dict[i] = in_data[i]
-                        break
-        else:
-            data_dict[idx] = data
-        idx -= period
-
-    return OrderedDict(sorted(data_dict.items(), key=lambda t: t[0]))
-
-
 def _evaluate_results(trimmed_data, window=10):
     """Evaluates if the sample value is regress, normal or progress compared to
     previous data within the window.
@@ -200,8 +142,7 @@ def _evaluate_results(trimmed_data, window=10):
     return results
 
 
-def _generate_trending_traces(in_data, build_info, period, moving_win_size=10,
-                              fill_missing=True, use_first=False,
+def _generate_trending_traces(in_data, build_info, moving_win_size=10,
                               show_trend_line=True, name="", color=""):
     """Generate the trending traces:
      - samples,
@@ -210,20 +151,13 @@ def _generate_trending_traces(in_data, build_info, period, moving_win_size=10,
 
     :param in_data: Full data set.
     :param build_info: Information about the builds.
-    :param period: Sampling period.
     :param moving_win_size: Window size.
-    :param fill_missing: If the chosen sample is missing in the full set, its
-        nearest neighbour is used.
-    :param use_first: Use the first sample even though it is not chosen.
     :param show_trend_line: Show moving median (trending plot).
     :param name: Name of the plot
     :param color: Name of the color for the plot.
     :type in_data: OrderedDict
     :type build_info: dict
-    :type period: int
     :type moving_win_size: int
-    :type fill_missing: bool
-    :type use_first: bool
     :type show_trend_line: bool
     :type name: str
     :type color: str
@@ -231,11 +165,6 @@ def _generate_trending_traces(in_data, build_info, period, moving_win_size=10,
     :rtype: tuple(traces, result)
     """
 
-    if period > 1:
-        in_data = _select_data(in_data, period,
-                               fill_missing=fill_missing,
-                               use_first=use_first)
-
     data_x = list(in_data.keys())
     data_y = list(in_data.values())
 
@@ -353,26 +282,6 @@ def _generate_trending_traces(in_data, build_info, period, moving_win_size=10,
     return traces, results[-1]
 
 
-def _generate_chart(traces, layout, file_name):
-    """Generates the whole chart using pre-generated traces.
-
-    :param traces: Traces for the chart.
-    :param layout: Layout of the chart.
-    :param file_name: File name for the generated chart.
-    :type traces: list
-    :type layout: dict
-    :type file_name: str
-    """
-
-    # Create plot
-    logging.info("    Writing the file '{0}' ...".format(file_name))
-    plpl = plgo.Figure(data=traces, layout=layout)
-    try:
-        ploff.plot(plpl, show_link=False, auto_open=False, filename=file_name)
-    except plerr.PlotlyEmptyDataError:
-        logging.warning(" No data for the plot. Skipped.")
-
-
 def _generate_all_charts(spec, input_data):
     """Generate all charts specified in the specification file.
 
@@ -382,6 +291,95 @@ def _generate_all_charts(spec, input_data):
     :type input_data: InputData
     """
 
+    def _generate_chart(_, data_q, graph):
+        """Generates the chart.
+        """
+
+        logs = list()
+
+        logging.info("  Generating the chart '{0}' ...".
+                     format(graph.get("title", "")))
+        logs.append(("INFO", "  Generating the chart '{0}' ...".
+                     format(graph.get("title", ""))))
+
+        job_name = spec.cpta["data"].keys()[0]
+
+        csv_tbl = list()
+        res = list()
+
+        # Transform the data
+        logs.append(("INFO", "    Creating the data set for the {0} '{1}'.".
+                     format(graph.get("type", ""), graph.get("title", ""))))
+        data = input_data.filter_data(graph, continue_on_error=True)
+        if data is None:
+            logging.error("No data.")
+            return
+
+        chart_data = dict()
+        for job in data:
+            for index, bld in job.items():
+                for test_name, test in bld.items():
+                    if chart_data.get(test_name, None) is None:
+                        chart_data[test_name] = OrderedDict()
+                    try:
+                        chart_data[test_name][int(index)] = \
+                            test["result"]["throughput"]
+                    except (KeyError, TypeError):
+                        pass
+
+        # Add items to the csv table:
+        for tst_name, tst_data in chart_data.items():
+            tst_lst = list()
+            for bld in builds_lst:
+                itm = tst_data.get(int(bld), '')
+                tst_lst.append(str(itm))
+            csv_tbl.append("{0},".format(tst_name) + ",".join(tst_lst) + '\n')
+        # Generate traces:
+        traces = list()
+        win_size = 14
+        index = 0
+        for test_name, test_data in chart_data.items():
+            if not test_data:
+                logs.append(("WARNING", "No data for the test '{0}'".
+                             format(test_name)))
+                continue
+            test_name = test_name.split('.')[-1]
+            trace, rslt = _generate_trending_traces(
+                test_data,
+                build_info=build_info,
+                moving_win_size=win_size,
+                name='-'.join(test_name.split('-')[3:-1]),
+                color=COLORS[index])
+            traces.extend(trace)
+            res.append(rslt)
+            index += 1
+
+        if traces:
+            # Generate the chart:
+            graph["layout"]["xaxis"]["title"] = \
+                graph["layout"]["xaxis"]["title"].format(job=job_name)
+            name_file = "{0}-{1}{2}".format(spec.cpta["output-file"],
+                                            graph["output-file-name"],
+                                            spec.cpta["output-file-type"])
+
+            logs.append(("INFO", "    Writing the file '{0}' ...".
+                         format(name_file)))
+            plpl = plgo.Figure(data=traces, layout=graph["layout"])
+            try:
+                ploff.plot(plpl, show_link=False, auto_open=False,
+                           filename=name_file)
+            except plerr.PlotlyEmptyDataError:
+                logs.append(("WARNING", "No data for the plot. Skipped."))
+
+        logging.info("  Done.")
+
+        data_out = {
+            "csv_table": csv_tbl,
+            "results": res,
+            "logs": logs
+        }
+        data_q.put(data_out)
+
     job_name = spec.cpta["data"].keys()[0]
 
     builds_lst = list()
@@ -401,6 +399,28 @@ def _generate_all_charts(spec, input_data):
         except KeyError:
             build_info[build] = ("", "")
 
+    work_queue = multiprocessing.JoinableQueue()
+    manager = multiprocessing.Manager()
+    data_queue = manager.Queue()
+    cpus = multiprocessing.cpu_count()
+
+    workers = list()
+    for cpu in range(cpus):
+        worker = Worker(work_queue,
+                        data_queue,
+                        _generate_chart)
+        worker.daemon = True
+        worker.start()
+        workers.append(worker)
+        os.system("taskset -p -c {0} {1} > /dev/null 2>&1".
+                  format(cpu, worker.pid))
+
+    for chart in spec.cpta["plots"]:
+        work_queue.put((chart, ))
+    work_queue.join()
+
+    results = list()
+
     # Create the header:
     csv_table = list()
     header = "Build Number:," + ",".join(builds_lst) + '\n'
@@ -412,74 +432,30 @@ def _generate_all_charts(spec, input_data):
     header = "VPP Version:," + ",".join(vpp_versions) + '\n'
     csv_table.append(header)
 
-    results = list()
-    for chart in spec.cpta["plots"]:
-        logging.info("  Generating the chart '{0}' ...".
-                     format(chart.get("title", "")))
-
-        # Transform the data
-        data = input_data.filter_data(chart, continue_on_error=True)
-        if data is None:
-            logging.error("No data.")
-            return
-
-        chart_data = dict()
-        for job in data:
-            for idx, build in job.items():
-                for test_name, test in build.items():
-                    if chart_data.get(test_name, None) is None:
-                        chart_data[test_name] = OrderedDict()
-                    try:
-                        chart_data[test_name][int(idx)] = \
-                            test["result"]["throughput"]
-                    except (KeyError, TypeError):
-                        pass
-
-        # Add items to the csv table:
-        for tst_name, tst_data in chart_data.items():
-            tst_lst = list()
-            for build in builds_lst:
-                item = tst_data.get(int(build), '')
-                tst_lst.append(str(item))
-            csv_table.append("{0},".format(tst_name) + ",".join(tst_lst) + '\n')
-
-        for period in chart["periods"]:
-            # Generate traces:
-            traces = list()
-            win_size = 14
-            idx = 0
-            for test_name, test_data in chart_data.items():
-                if not test_data:
-                    logging.warning("No data for the test '{0}'".
-                                    format(test_name))
-                    continue
-                test_name = test_name.split('.')[-1]
-                trace, result = _generate_trending_traces(
-                    test_data,
-                    build_info=build_info,
-                    period=period,
-                    moving_win_size=win_size,
-                    fill_missing=True,
-                    use_first=False,
-                    name='-'.join(test_name.split('-')[3:-1]),
-                    color=COLORS[idx])
-                traces.extend(trace)
-                results.append(result)
-                idx += 1
-
-            if traces:
-                # Generate the chart:
-                chart["layout"]["xaxis"]["title"] = \
-                    chart["layout"]["xaxis"]["title"].format(job=job_name)
-                _generate_chart(traces,
-                                chart["layout"],
-                                file_name="{0}-{1}-{2}{3}".format(
-                                    spec.cpta["output-file"],
-                                    chart["output-file-name"],
-                                    period,
-                                    spec.cpta["output-file-type"]))
-
-        logging.info("  Done.")
+    while not data_queue.empty():
+        result = data_queue.get()
+
+        results.extend(result["results"])
+        csv_table.extend(result["csv_table"])
+
+        for item in result["logs"]:
+            if item[0] == "INFO":
+                logging.info(item[1])
+            elif item[0] == "ERROR":
+                logging.error(item[1])
+            elif item[0] == "DEBUG":
+                logging.debug(item[1])
+            elif item[0] == "CRITICAL":
+                logging.critical(item[1])
+            elif item[0] == "WARNING":
+                logging.warning(item[1])
+
+    del data_queue
+
+    # Terminate all workers
+    for worker in workers:
+        worker.terminate()
+        worker.join()
 
     # Write the tables:
     file_name = spec.cpta["output-file"] + "-trending"
index 1cd1b6d..e717815 100644 (file)
@@ -141,9 +141,13 @@ def file_merged_test_results(file_spec, input_data):
 
     logging.info("    Writing file '{0}'".format(file_name))
 
+    logging.info("    Creating the data set for the {0} '{1}'.".
+                 format(file_spec.get("type", ""), file_spec.get("title", "")))
     tests = input_data.filter_data(file_spec)
     tests = input_data.merge_data(tests)
 
+    logging.info("    Creating the data set for the {0} '{1}'.".
+                 format(file_spec.get("type", ""), file_spec.get("title", "")))
     suites = input_data.filter_data(file_spec, data_set="suites")
     suites = input_data.merge_data(suites)
     suites.sort_index(inplace=True)
index b7fd420..6faf4c3 100644 (file)
@@ -59,6 +59,8 @@ def plot_performance_box(plot, input_data):
                  format(plot.get("title", "")))
 
     # Transform the data
+    logging.info("    Creating the data set for the {0} '{1}'.".
+                 format(plot.get("type", ""), plot.get("title", "")))
     data = input_data.filter_data(plot)
     if data is None:
         logging.error("No data.")
@@ -129,6 +131,8 @@ def plot_latency_box(plot, input_data):
                  format(plot.get("title", "")))
 
     # Transform the data
+    logging.info("    Creating the data set for the {0} '{1}'.".
+                 format(plot.get("type", ""), plot.get("title", "")))
     data = input_data.filter_data(plot)
     if data is None:
         logging.error("No data.")
@@ -236,6 +240,8 @@ def plot_throughput_speedup_analysis(plot, input_data):
                  format(plot.get("title", "")))
 
     # Transform the data
+    logging.info("    Creating the data set for the {0} '{1}'.".
+                 format(plot.get("type", ""), plot.get("title", "")))
     data = input_data.filter_data(plot)
     if data is None:
         logging.error("No data.")
@@ -335,6 +341,8 @@ def plot_http_server_performance_box(plot, input_data):
                  format(plot.get("title", "")))
 
     # Transform the data
+    logging.info("    Creating the data set for the {0} '{1}'.".
+                 format(plot.get("type", ""), plot.get("title", "")))
     data = input_data.filter_data(plot)
     if data is None:
         logging.error("No data.")
index b2e60be..5246952 100644 (file)
@@ -62,6 +62,8 @@ def table_details(table, input_data):
                  format(table.get("title", "")))
 
     # Transform the data
+    logging.info("    Creating the data set for the {0} '{1}'.".
+                 format(table.get("type", ""), table.get("title", "")))
     data = input_data.filter_data(table)
 
     # Prepare the header of the tables
@@ -128,10 +130,14 @@ def table_merged_details(table, input_data):
                  format(table.get("title", "")))
 
     # Transform the data
+    logging.info("    Creating the data set for the {0} '{1}'.".
+                 format(table.get("type", ""), table.get("title", "")))
     data = input_data.filter_data(table)
     data = input_data.merge_data(data)
     data.sort_index(inplace=True)
 
+    logging.info("    Creating the data set for the {0} '{1}'.".
+                 format(table.get("type", ""), table.get("title", "")))
     suites = input_data.filter_data(table, data_set="suites")
     suites = input_data.merge_data(suites)
 
@@ -225,6 +231,8 @@ def table_performance_improvements(table, input_data):
         return None
 
     # Transform the data
+    logging.info("    Creating the data set for the {0} '{1}'.".
+                 format(table.get("type", ""), table.get("title", "")))
     data = input_data.filter_data(table)
 
     # Prepare the header of the tables
@@ -356,6 +364,8 @@ def table_performance_comparison(table, input_data):
                  format(table.get("title", "")))
 
     # Transform the data
+    logging.info("    Creating the data set for the {0} '{1}'.".
+                 format(table.get("type", ""), table.get("title", "")))
     data = input_data.filter_data(table, continue_on_error=True)
 
     # Prepare the header of the tables
@@ -594,6 +604,8 @@ def table_performance_comparison_mrr(table, input_data):
                  format(table.get("title", "")))
 
     # Transform the data
+    logging.info("    Creating the data set for the {0} '{1}'.".
+                 format(table.get("type", ""), table.get("title", "")))
     data = input_data.filter_data(table, continue_on_error=True)
 
     # Prepare the header of the tables
@@ -726,6 +738,8 @@ def table_performance_trending_dashboard(table, input_data):
                  format(table.get("title", "")))
 
     # Transform the data
+    logging.info("    Creating the data set for the {0} '{1}'.".
+                 format(table.get("type", ""), table.get("title", "")))
     data = input_data.filter_data(table, continue_on_error=True)
 
     # Prepare the header of the tables
index 9428b2c..beec34c 100644 (file)
@@ -31,6 +31,7 @@ from string import replace
 from os import remove
 
 from input_data_files import download_and_unzip_data_file
+from utils import Worker
 
 
 class ExecutionChecker(ResultVisitor):
@@ -863,12 +864,10 @@ class InputData(object):
         logging.info("Downloading and parsing input files ...")
 
         work_queue = multiprocessing.JoinableQueue()
-
         manager = multiprocessing.Manager()
-
         data_queue = manager.Queue()
-
         cpus = multiprocessing.cpu_count()
+
         workers = list()
         for cpu in range(cpus):
             worker = Worker(work_queue,
@@ -1008,9 +1007,6 @@ class InputData(object):
         :rtype pandas.Series
         """
 
-        logging.info("    Creating the data set for the {0} '{1}'.".
-                     format(element.get("type", ""), element.get("title", "")))
-
         try:
             if element["filter"] in ("all", "template"):
                 cond = "True"
@@ -1095,44 +1091,3 @@ class InputData(object):
                     merged_data[ID] = item_data
 
         return merged_data
-
-
-class Worker(multiprocessing.Process):
-    """Worker class used to download and process input files in separate
-    parallel processes.
-    """
-
-    def __init__(self, work_queue, data_queue, func):
-        """Initialization.
-
-        :param work_queue: Queue with items to process.
-        :param data_queue: Shared memory between processes. Queue which keeps
-            the result data. This data is then read by the main process and used
-            in further processing.
-        :param func: Function which is executed by the worker.
-        :type work_queue: multiprocessing.JoinableQueue
-        :type data_queue: multiprocessing.Manager().Queue()
-        :type func: Callable object
-        """
-        super(Worker, self).__init__()
-        self._work_queue = work_queue
-        self._data_queue = data_queue
-        self._func = func
-
-    def run(self):
-        """Method representing the process's activity.
-        """
-
-        while True:
-            try:
-                self.process(self._work_queue.get())
-            finally:
-                self._work_queue.task_done()
-
-    def process(self, item_to_process):
-        """Method executed by the runner.
-
-        :param item_to_process: Data to be processed by the function.
-        :type item_to_process: tuple
-        """
-        self._func(self.pid, self._data_queue, *item_to_process)
index 535096b..5200a44 100644 (file)
 
 # L2 - x520
 
-    - title: "VPP 1T1C L2 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C L2 64B Packet Throughput - Trending"
       output-file-name: "l2-1t1c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '1T1C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C L2 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C L2 64B Packet Throughput - Trending"
       output-file-name: "l2-2t2c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '2T2C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C L2 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C L2 64B Packet Throughput - Trending"
       output-file-name: "l2-4t4c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '4T4C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 1T1C L2 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C L2 64B Packet Throughput - Trending"
       output-file-name: "l2-feature-1t1c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and 'FEATURE' and '1T1C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C L2 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C L2 64B Packet Throughput - Trending"
       output-file-name: "l2-feature-2t2c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and 'FEATURE' and '2T2C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C L2 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C L2 64B Packet Throughput - Trending"
       output-file-name: "l2-feature-4t4c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and 'FEATURE' and '4T4C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # L2 - xl710
 
-    - title: "VPP 1T1C L2 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C L2 64B Packet Throughput - Trending"
       output-file-name: "l2-1t1c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '1T1C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C L2 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C L2 64B Packet Throughput - Trending"
       output-file-name: "l2-2t2c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '2T2C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C L2 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C L2 64B Packet Throughput - Trending"
       output-file-name: "l2-4t4c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '4T4C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # L2 - x710
 
-    - title: "VPP 1T1C L2 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C L2 64B Packet Throughput - Trending"
       output-file-name: "l2-1t1c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '1T1C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C L2 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C L2 64B Packet Throughput - Trending"
       output-file-name: "l2-2t2c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '2T2C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C L2 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C L2 64B Packet Throughput - Trending"
       output-file-name: "l2-4t4c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '4T4C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 1T1C L2 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C L2 64B Packet Throughput - Trending"
       output-file-name: "l2-feature-1t1c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '64B' and 'FEATURE' and '1T1C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C L2 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C L2 64B Packet Throughput - Trending"
       output-file-name: "l2-feature-2t2c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '64B' and 'FEATURE' and '2T2C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C L2 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C L2 64B Packet Throughput - Trending"
       output-file-name: "l2-feature-4t4c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '64B' and 'FEATURE' and '4T4C' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST' and not 'MEMIF'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # IPv4 - x520
 
-    - title: "VPP 1T1C IPv4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C IPv4 64B Packet Throughput - Trending"
       output-file-name: "ip4-1t1c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '1T1C' and 'IP4FWD' and not 'FEATURE' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C IPv4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C IPv4 64B Packet Throughput - Trending"
       output-file-name: "ip4-2t2c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '2T2C' and 'IP4FWD' and not 'FEATURE' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C IPv4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C IPv4 64B Packet Throughput - Trending"
       output-file-name: "ip4-4t4c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '4T4C' and 'IP4FWD' and not 'FEATURE' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 1T1C IPv4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C IPv4 64B Packet Throughput - Trending"
       output-file-name: "ip4-feature-1t1c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and 'FEATURE' and '1T1C' and 'IP4FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C IPv4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C IPv4 64B Packet Throughput - Trending"
       output-file-name: "ip4-feature-2t2c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and 'FEATURE' and '2T2C' and 'IP4FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C IPv4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C IPv4 64B Packet Throughput - Trending"
       output-file-name: "ip4-feature-4t4c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and 'FEATURE' and '4T4C' and 'IP4FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # IPv4 - xl710
 
-    - title: "VPP 1T1C IPv4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C IPv4 64B Packet Throughput - Trending"
       output-file-name: "ip4-1t1c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'MRR' and '64B' and ('BASE' or 'SCALE' or 'FEATURE') and '1T1C' and 'IP4FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C IPv4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C IPv4 64B Packet Throughput - Trending"
       output-file-name: "ip4-2t2c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'MRR' and '64B' and ('BASE' or 'SCALE' or 'FEATURE') and '2T2C' and 'IP4FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C IPv4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C IPv4 64B Packet Throughput - Trending"
       output-file-name: "ip4-4t4c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'MRR' and '64B' and ('BASE' or 'SCALE' or 'FEATURE') and '4T4C' and 'IP4FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # IPv4 - x710
 
-    - title: "VPP 1T1C IPv4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C IPv4 64B Packet Throughput - Trending"
       output-file-name: "ip4-1t1c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '1T1C' and 'IP4FWD' and not 'FEATURE' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C IPv4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C IPv4 64B Packet Throughput - Trending"
       output-file-name: "ip4-2t2c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '2T2C' and 'IP4FWD' and not 'FEATURE' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C IPv4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C IPv4 64B Packet Throughput - Trending"
       output-file-name: "ip4-4t4c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '64B' and ('BASE' or 'SCALE') and '4T4C' and 'IP4FWD' and not 'FEATURE' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 1T1C IPv4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C IPv4 64B Packet Throughput - Trending"
       output-file-name: "ip4-feature-1t1c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '64B' and 'FEATURE' and '1T1C' and 'IP4FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C IPv4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C IPv4 64B Packet Throughput - Trending"
       output-file-name: "ip4-feature-2t2c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '64B' and 'FEATURE' and '2T2C' and 'IP4FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C IPv4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C IPv4 64B Packet Throughput - Trending"
       output-file-name: "ip4-feature-4t4c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '64B' and 'FEATURE' and '4T4C' and 'IP4FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # IPv4 Tunnels - x520
 
-    - title: "VPP 1T1C IPv4 Tunnels 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C IPv4 Tunnels 64B Packet Throughput - Trending"
       output-file-name: "ip4-tunnels-1t1c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and '64B' and 'ENCAP' and 'MRR' and '1T1C' and ('VXLAN' or 'VXLANGPE' or 'LISP' or 'LISPGPE' or 'GRE') and not 'VHOST' and not 'IPSECHW'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C IPv4 Tunnels 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C IPv4 Tunnels 64B Packet Throughput - Trending"
       output-file-name: "ip4-tunnels-2t2c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and '64B' and 'ENCAP' and 'MRR' and '2T2C' and ('VXLAN' or 'VXLANGPE' or 'LISP' or 'LISPGPE' or 'GRE') and not 'VHOST' and not 'IPSECHW'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C IPv4 Tunnels 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C IPv4 Tunnels 64B Packet Throughput - Trending"
       output-file-name: "ip4-tunnels-4t4c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and '64B' and 'ENCAP' and 'MRR' and '4T4C' and ('VXLAN' or 'VXLANGPE' or 'LISP' or 'LISPGPE' or 'GRE') and not 'VHOST' and not 'IPSECHW'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # IPv4 Tunnels - x710
 
-    - title: "VPP 1T1C IPv4 Tunnels 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C IPv4 Tunnels 64B Packet Throughput - Trending"
       output-file-name: "ip4-tunnels-1t1c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and '64B' and 'ENCAP' and 'MRR' and '1T1C' and ('VXLAN' or 'VXLANGPE' or 'LISP' or 'LISPGPE' or 'GRE') and not 'VHOST' and not 'IPSECHW'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C IPv4 Tunnels 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C IPv4 Tunnels 64B Packet Throughput - Trending"
       output-file-name: "ip4-tunnels-2t2c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and '64B' and 'ENCAP' and 'MRR' and '2T2C' and ('VXLAN' or 'VXLANGPE' or 'LISP' or 'LISPGPE' or 'GRE') and not 'VHOST' and not 'IPSECHW'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C IPv4 Tunnels 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C IPv4 Tunnels 64B Packet Throughput - Trending"
       output-file-name: "ip4-tunnels-4t4c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and '64B' and 'ENCAP' and 'MRR' and '4T4C' and ('VXLAN' or 'VXLANGPE' or 'LISP' or 'LISPGPE' or 'GRE') and not 'VHOST' and not 'IPSECHW'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # IPv6 - x520
 
-    - title: "VPP 1T1C IPv6 78B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C IPv6 78B Packet Throughput - Trending"
       output-file-name: "ip6-1t1c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '78B' and ('BASE' or 'SCALE' or 'FEATURE') and '1T1C' and 'IP6FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C IPv6 78B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C IPv6 78B Packet Throughput - Trending"
       output-file-name: "ip6-2t2c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '78B' and ('BASE' or 'SCALE' or 'FEATURE') and '2T2C' and 'IP6FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C IPv6 78B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C IPv6 78B Packet Throughput - Trending"
       output-file-name: "ip6-4t4c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '78B' and ('BASE' or 'SCALE' or 'FEATURE') and '4T4C' and 'IP6FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # IPv6 - xl710
 
-    - title: "VPP 1T1C IPv6 78B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C IPv6 78B Packet Throughput - Trending"
       output-file-name: "ip6-1t1c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'MRR' and '78B' and ('BASE' or 'SCALE' or 'FEATURE') and '1T1C' and 'IP6FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C IPv6 78B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C IPv6 78B Packet Throughput - Trending"
       output-file-name: "ip6-2t2c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'MRR' and '78B' and ('BASE' or 'SCALE' or 'FEATURE') and '2T2C' and 'IP6FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C IPv6 78B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C IPv6 78B Packet Throughput - Trending"
       output-file-name: "ip6-4t4c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'MRR' and '78B' and ('BASE' or 'SCALE' or 'FEATURE') and '4T4C' and 'IP6FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # IPv6 - x710
 
-    - title: "VPP 1T1C IPv6 78B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C IPv6 78B Packet Throughput - Trending"
       output-file-name: "ip6-1t1c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '78B' and ('BASE' or 'SCALE' or 'FEATURE') and '1T1C' and 'IP6FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C IPv6 78B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C IPv6 78B Packet Throughput - Trending"
       output-file-name: "ip6-2t2c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '78B' and ('BASE' or 'SCALE' or 'FEATURE') and '2T2C' and 'IP6FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C IPv6 78B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C IPv6 78B Packet Throughput - Trending"
       output-file-name: "ip6-4t4c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '78B' and ('BASE' or 'SCALE' or 'FEATURE') and '4T4C' and 'IP6FWD' and not 'IPSEC' and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # Container memif - x520, 64B
 
-    - title: "VPP 1T1C L2 Container memif 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C L2 Container memif 64B Packet Throughput - Trending"
       output-file-name: "container-memif-l2-1t1c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and 'BASE' and '1T1C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C L2 Container memif 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C L2 Container memif 64B Packet Throughput - Trending"
       output-file-name: "container-memif-l2-2t2c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and 'BASE' and '2T2C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C L2 Container memif 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C L2 Container memif 64B Packet Throughput - Trending"
       output-file-name: "container-memif-l2-4t4c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and '64B' and 'BASE' and '4T4C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # Container memif - x520, IMIX
 
-    - title: "VPP 1T1C L2 Container memif IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C L2 Container memif IMIX Packet Throughput - Trending"
       output-file-name: "container-memif-imix-l2-1t1c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and 'IMIX' and 'BASE' and '1T1C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C L2 Container memif IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C L2 Container memif IMIX Packet Throughput - Trending"
       output-file-name: "container-memif-imix-l2-2t2c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and 'IMIX' and 'BASE' and '2T2C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C L2 Container memif IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C L2 Container memif IMIX Packet Throughput - Trending"
       output-file-name: "container-memif-imix-l2-4t4c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'MRR' and 'IMIX' and 'BASE' and '4T4C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # Container memif - xl710, 64B
 
-    - title: "VPP 1T1C L2 Container memif 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C L2 Container memif 64B Packet Throughput - Trending"
       output-file-name: "container-memif-l2-1t1c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'MRR' and '64B' and 'BASE' and '1T1C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C L2 Container memif 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C L2 Container memif 64B Packet Throughput - Trending"
       output-file-name: "container-memif-l2-2t2c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'MRR' and '64B' and 'BASE' and '2T2C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C L2 Container memif 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C L2 Container memif 64B Packet Throughput - Trending"
       output-file-name: "container-memif-l2-4t4c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'MRR' and '64B' and 'BASE' and '4T4C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # Container memif - xl710, IMIX
 
-    - title: "VPP 1T1C L2 Container memif IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C L2 Container memif IMIX Packet Throughput - Trending"
       output-file-name: "container-memif-imix-l2-1t1c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'MRR' and 'IMIX' and 'BASE' and '1T1C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C L2 Container memif IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C L2 Container memif IMIX Packet Throughput - Trending"
       output-file-name: "container-memif-imix-l2-2t2c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'MRR' and 'IMIX' and 'BASE' and '2T2C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C L2 Container memif IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C L2 Container memif IMIX Packet Throughput - Trending"
       output-file-name: "container-memif-imix-l2-4t4c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'MRR' and 'IMIX' and 'BASE' and '4T4C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # Container memif - x710, 64B
 
-    - title: "VPP 1T1C L2 Container memif 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C L2 Container memif 64B Packet Throughput - Trending"
       output-file-name: "container-memif-l2-1t1c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '64B' and 'BASE' and '1T1C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C L2 Container memif 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C L2 Container memif 64B Packet Throughput - Trending"
       output-file-name: "container-memif-l2-2t2c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '64B' and 'BASE' and '2T2C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C L2 Container memif 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C L2 Container memif 64B Packet Throughput - Trending"
       output-file-name: "container-memif-l2-4t4c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and '64B' and 'BASE' and '4T4C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # Container memif - x520, IMIX
 
-    - title: "VPP 1T1C L2 Container memif IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C L2 Container memif IMIX Packet Throughput - Trending"
       output-file-name: "container-memif-imix-l2-1t1c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and 'IMIX' and 'BASE' and '1T1C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C L2 Container memif IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C L2 Container memif IMIX Packet Throughput - Trending"
       output-file-name: "container-memif-imix-l2-2t2c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and 'IMIX' and 'BASE' and '2T2C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C L2 Container memif IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C L2 Container memif IMIX Packet Throughput - Trending"
       output-file-name: "container-memif-imix-l2-4t4c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'MRR' and 'IMIX' and 'BASE' and '4T4C' and 'MEMIF' and ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # VM vhost - x520, ethip4, 64B
 
-    - title: "VPP 1T1C VM vhost ethip4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C VM vhost ethip4 64B Packet Throughput - Trending"
       output-file-name: "vm-vhost-ethip4-1t1c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and '64B' and 'MRR' and '1T1C' and 'VHOST' and not ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD')"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C VM vhost ethip4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C VM vhost ethip4 64B Packet Throughput - Trending"
       output-file-name: "vm-vhost-ethip4-2t2c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and '64B' and 'MRR' and '2T2C' and 'VHOST' and not ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD')"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C VM vhost ethip4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C VM vhost ethip4 64B Packet Throughput - Trending"
       output-file-name: "vm-vhost-ethip4-4t4c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and '64B' and 'MRR' and '4T4C' and 'VHOST' and not ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD')"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # VM vhost - x520, ethip4, IMIX
 
-    - title: "VPP 1T1C VM vhost ethip4 IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C VM vhost ethip4 IMIX Packet Throughput - Trending"
       output-file-name: "vm-vhost-imix-ethip4-1t1c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'IMIX' and 'MRR' and '1T1C' and 'VHOST' and not ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD')"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C VM vhost ethip4 IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C VM vhost ethip4 IMIX Packet Throughput - Trending"
       output-file-name: "vm-vhost-imix-ethip4-2t2c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'IMIX' and 'MRR' and '2T2C' and 'VHOST' and not ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD')"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C VM vhost ethip4 IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C VM vhost ethip4 IMIX Packet Throughput - Trending"
       output-file-name: "vm-vhost-imix-ethip4-4t4c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'IMIX' and 'MRR' and '4T4C' and 'VHOST' and not ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD')"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # VM vhost - x520, eth, 64B
 
-    - title: "VPP 1T1C VM vhost eth 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C VM vhost eth 64B Packet Throughput - Trending"
       output-file-name: "vm-vhost-eth-1t1c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and '64B' and 'MRR' and '1T1C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
 
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C VM vhost eth 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C VM vhost eth 64B Packet Throughput - Trending"
       output-file-name: "vm-vhost-eth-2t2c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and '64B' and 'MRR' and '2T2C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C VM vhost eth 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C VM vhost eth 64B Packet Throughput - Trending"
       output-file-name: "vm-vhost-eth-4t4c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and '64B' and 'MRR' and '4T4C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # VM vhost - x520, eth, IMIX
 
-    - title: "VPP 1T1C VM vhost eth IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C VM vhost eth IMIX Packet Throughput - Trending"
       output-file-name: "vm-vhost-imix-eth-1t1c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'IMIX' and 'MRR' and '1T1C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
 
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C VM vhost eth IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C VM vhost eth IMIX Packet Throughput - Trending"
       output-file-name: "vm-vhost-imix-eth-2t2c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'IMIX' and 'MRR' and '2T2C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C VM vhost eth IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C VM vhost eth IMIX Packet Throughput - Trending"
       output-file-name: "vm-vhost-imix-eth-4t4c-x520"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X520-DA2' and 'IMIX' and 'MRR' and '4T4C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # VM vhost - xl710, eth, 64B
 
-    - title: "VPP 1T1C VM vhost eth 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C VM vhost eth 64B Packet Throughput - Trending"
       output-file-name: "vm-vhost-eth-1t1c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and '64B' and 'MRR' and '1T1C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
 
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C VM vhost eth 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C VM vhost eth 64B Packet Throughput - Trending"
       output-file-name: "vm-vhost-eth-2t2c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and '64B' and 'MRR' and '2T2C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C VM vhost eth 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C VM vhost eth 64B Packet Throughput - Trending"
       output-file-name: "vm-vhost-eth-4t4c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and '64B' and 'MRR' and '4T4C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # VM vhost - xl710, eth, IMIX
 
-    - title: "VPP 1T1C VM vhost eth IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C VM vhost eth IMIX Packet Throughput - Trending"
       output-file-name: "vm-vhost-imix-eth-1t1c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'IMIX' and 'MRR' and '1T1C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
 
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C VM vhost eth IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C VM vhost eth IMIX Packet Throughput - Trending"
       output-file-name: "vm-vhost-imix-eth-2t2c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'IMIX' and 'MRR' and '2T2C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C VM vhost eth IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C VM vhost eth IMIX Packet Throughput - Trending"
       output-file-name: "vm-vhost-imix-eth-4t4c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and 'IMIX' and 'MRR' and '4T4C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # VM vhost - x710, ethip4, 64B
 
-    - title: "VPP 1T1C VM vhost ethip4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C VM vhost ethip4 64B Packet Throughput - Trending"
       output-file-name: "vm-vhost-ethip4-1t1c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and '64B' and 'MRR' and '1T1C' and 'VHOST' and not ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD')"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C VM vhost ethip4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C VM vhost ethip4 64B Packet Throughput - Trending"
       output-file-name: "vm-vhost-ethip4-2t2c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and '64B' and 'MRR' and '2T2C' and 'VHOST' and not ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD')"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C VM vhost ethip4 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C VM vhost ethip4 64B Packet Throughput - Trending"
       output-file-name: "vm-vhost-ethip4-4t4c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and '64B' and 'MRR' and '4T4C' and 'VHOST' and not ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD')"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # VM vhost - x710, ethip4, IMIX
 
-    - title: "VPP 1T1C VM vhost ethip4 IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C VM vhost ethip4 IMIX Packet Throughput - Trending"
       output-file-name: "vm-vhost-imix-ethip4-1t1c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'IMIX' and 'MRR' and '1T1C' and 'VHOST' and not ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD')"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C VM vhost ethip4 IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C VM vhost ethip4 IMIX Packet Throughput - Trending"
       output-file-name: "vm-vhost-imix-ethip4-2t2c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'IMIX' and 'MRR' and '2T2C' and 'VHOST' and not ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD')"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C VM vhost ethip4 IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C VM vhost ethip4 IMIX Packet Throughput - Trending"
       output-file-name: "vm-vhost-imix-ethip4-4t4c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'IMIX' and 'MRR' and '4T4C' and 'VHOST' and not ('L2BDMACSTAT' or 'L2BDMACLRN' or 'L2XCFWD')"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # VM vhost - x710, eth, 64B
 
-    - title: "VPP 1T1C VM vhost eth 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C VM vhost eth 64B Packet Throughput - Trending"
       output-file-name: "vm-vhost-eth-1t1c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and '64B' and 'MRR' and '1T1C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
 
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C VM vhost eth 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C VM vhost eth 64B Packet Throughput - Trending"
       output-file-name: "vm-vhost-eth-2t2c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and '64B' and 'MRR' and '2T2C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C VM vhost eth 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C VM vhost eth 64B Packet Throughput - Trending"
       output-file-name: "vm-vhost-eth-4t4c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and '64B' and 'MRR' and '4T4C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # VM vhost - x710, eth, IMIX
 
-    - title: "VPP 1T1C VM vhost eth IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C VM vhost eth IMIX Packet Throughput - Trending"
       output-file-name: "vm-vhost-imix-eth-1t1c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'IMIX' and 'MRR' and '1T1C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
 
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C VM vhost eth IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C VM vhost eth IMIX Packet Throughput - Trending"
       output-file-name: "vm-vhost-imix-eth-2t2c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'IMIX' and 'MRR' and '2T2C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C VM vhost eth IMIX Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C VM vhost eth IMIX Packet Throughput - Trending"
       output-file-name: "vm-vhost-imix-eth-4t4c-x710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-X710' and 'IMIX' and 'MRR' and '4T4C' and 'VHOST' and not 'VXLAN' and not 'IP4FWD'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
 # IPSec
 
-    - title: "VPP 1T1C IPSec 64B Packet Throughput - {period} Trending"
+    - title: "VPP 1T1C IPSec 64B Packet Throughput - Trending"
       output-file-name: "ipsec-1t1c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and '64B' and 'IP4FWD' and 'MRR' and '1T1C' and 'IPSECHW' and ('IPSECTRAN' or 'IPSECTUN') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 2T2C IPSec 64B Packet Throughput - {period} Trending"
+    - title: "VPP 2T2C IPSec 64B Packet Throughput - Trending"
       output-file-name: "ipsec-2t2c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and '64B' and 'IP4FWD' and 'MRR' and '2T2C' and 'IPSECHW' and ('IPSECTRAN' or 'IPSECTUN') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
 
-    - title: "VPP 4T4C IPSec 64B Packet Throughput - {period} Trending"
+    - title: "VPP 4T4C IPSec 64B Packet Throughput - Trending"
       output-file-name: "ipsec-4t4c-xl710"
       data: "plot-performance-trending"
       filter: "'NIC_Intel-XL710' and '64B' and 'IP4FWD' and 'MRR' and '4T4C' and 'IPSECHW' and ('IPSECTRAN' or 'IPSECTUN') and not 'VHOST'"
       parameters:
       - "result"
-      periods:
-      - 1
-      # - 14
-      # - 60
       layout: "plot-cpta"
index ab86baf..f32019d 100644 (file)
@@ -14,6 +14,7 @@
 """General purpose utilities.
 """
 
+import multiprocessing
 import subprocess
 import numpy as np
 import pandas as pd
@@ -271,3 +272,43 @@ def archive_input_data(spec):
                                 str(err))
 
     logging.info("    Done.")
+
+
+class Worker(multiprocessing.Process):
+    """Worker class used to process tasks in separate parallel processes.
+    """
+
+    def __init__(self, work_queue, data_queue, func):
+        """Initialization.
+
+        :param work_queue: Queue with items to process.
+        :param data_queue: Shared memory between processes. Queue which keeps
+            the result data. This data is then read by the main process and used
+            in further processing.
+        :param func: Function which is executed by the worker.
+        :type work_queue: multiprocessing.JoinableQueue
+        :type data_queue: multiprocessing.Manager().Queue()
+        :type func: Callable object
+        """
+        super(Worker, self).__init__()
+        self._work_queue = work_queue
+        self._data_queue = data_queue
+        self._func = func
+
+    def run(self):
+        """Method representing the process's activity.
+        """
+
+        while True:
+            try:
+                self.process(self._work_queue.get())
+            finally:
+                self._work_queue.task_done()
+
+    def process(self, item_to_process):
+        """Method executed by the runner.
+
+        :param item_to_process: Data to be processed by the function.
+        :type item_to_process: tuple
+        """
+        self._func(self.pid, self._data_queue, *item_to_process)