CSIT-1492: Add new NF density tests to report 65/19165/51
authorTibor Frank <tifrank@cisco.com>
Thu, 25 Apr 2019 10:58:43 +0000 (12:58 +0200)
committerTibor Frank <tifrank@cisco.com>
Mon, 6 May 2019 11:21:47 +0000 (11:21 +0000)
Change-Id: Ifdfac80f7fd25124cb08a467329d6c8c525ffc06
Signed-off-by: Tibor Frank <tifrank@cisco.com>
docs/report/vpp_performance_tests/nf_service_density/cnf_service_chains.rst
docs/report/vpp_performance_tests/nf_service_density/cnf_service_pipelines.rst
docs/report/vpp_performance_tests/nf_service_density/vnf_service_chains.rst
resources/tools/presentation/generator_plots.py
resources/tools/presentation/specification.yaml

index 32c46a0..caf2822 100644 (file)
@@ -112,13 +112,35 @@ Additional information about graph data:
 
     \clearpage
 
+64b-8t4c-eth-l2bd
+-----------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-8t4c-base-csc-mrr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-64b-8t4c-base-csc-mrr}
+            \label{fig:l2bd-2n-skx-x710-64b-8t4c-base-csc-mrr}
+    \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
 imix-2t1c-eth-l2bd
 ------------------
 
 .. raw:: html
 
     <center>
-    <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-csc-mrr.html"></iframe>
+    <iframe id="ifrm04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-csc-mrr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -140,7 +162,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-csc-mrr.html"></iframe>
+    <iframe id="ifrm05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-csc-mrr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -156,6 +178,28 @@ imix-4t2c-eth-l2bd
 
     \clearpage
 
+imix-8t4c-eth-l2bd
+------------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-8t4c-base-csc-mrr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-imix-8t4c-base-csc-mrr}
+            \label{fig:l2bd-2n-skx-x710-imix-8t4c-base-csc-mrr}
+    \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
 2n-skx-x710-ndr
 ~~~~~~~~~~~~~~~
 
@@ -165,7 +209,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-2t1c-base-csc-ndr.html"></iframe>
+    <iframe id="ifrm07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-2t1c-base-csc-ndr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -187,7 +231,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-4t2c-base-csc-ndr.html"></iframe>
+    <iframe id="ifrm08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-4t2c-base-csc-ndr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -203,13 +247,35 @@ imix-4t2c-eth-l2bd
 
     \clearpage
 
+64b-8t4c-eth-l2bd
+-----------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-8t4c-base-csc-ndr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-64b-8t4c-base-csc-ndr}
+            \label{fig:l2bd-2n-skx-x710-64b-8t4c-base-csc-ndr}
+    \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
 imix-2t1c-eth-l2bd
 ------------------
 
 .. raw:: html
 
     <center>
-    <iframe id="ifrm07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-csc-ndr.html"></iframe>
+    <iframe id="ifrm10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-csc-ndr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -231,7 +297,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-csc-ndr.html"></iframe>
+    <iframe id="ifrm11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-csc-ndr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -247,6 +313,28 @@ imix-4t2c-eth-l2bd
 
     \clearpage
 
+imix-8t4c-eth-l2bd
+------------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-8t4c-base-csc-ndr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-imix-8t4c-base-csc-ndr}
+            \label{fig:l2bd-2n-skx-x710-imix-8t4c-base-csc-ndr}
+    \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
 2n-skx-x710-pdr
 ~~~~~~~~~~~~~~~
 
@@ -256,7 +344,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-2t1c-base-csc-pdr.html"></iframe>
+    <iframe id="ifrm13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-2t1c-base-csc-pdr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -278,7 +366,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-4t2c-base-csc-pdr.html"></iframe>
+    <iframe id="ifrm14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-4t2c-base-csc-pdr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -294,13 +382,35 @@ imix-4t2c-eth-l2bd
 
     \clearpage
 
+64b-8t4c-eth-l2bd
+-----------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-8t4c-base-csc-pdr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-64b-8t4c-base-csc-pdr}
+            \label{fig:l2bd-2n-skx-x710-64b-8t4c-base-csc-pdr}
+    \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
 imix-2t1c-eth-l2bd
 ------------------
 
 .. raw:: html
 
     <center>
-    <iframe id="ifrm11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-csc-pdr.html"></iframe>
+    <iframe id="ifrm16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-csc-pdr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -322,7 +432,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-csc-pdr.html"></iframe>
+    <iframe id="ifrm17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-csc-pdr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -333,3 +443,25 @@ imix-4t2c-eth-l2bd
             \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-imix-4t2c-base-csc-pdr}
             \label{fig:l2bd-2n-skx-x710-imix-4t2c-base-csc-pdr}
     \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
+imix-8t4c-eth-l2bd
+------------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm18" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-8t4c-base-csc-pdr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-imix-8t4c-base-csc-pdr}
+            \label{fig:l2bd-2n-skx-x710-imix-8t4c-base-csc-pdr}
+    \end{figure}
index 45d79f4..55a9e1c 100644 (file)
@@ -112,13 +112,35 @@ Additional information about graph data:
 
     \clearpage
 
+64b-8t4c-eth-l2bd
+-----------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-8t4c-base-csp-mrr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-64b-8t4c-base-csp-mrr}
+            \label{fig:l2bd-2n-skx-x710-64b-8t4c-base-csp-mrr}
+    \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
 imix-2t1c-eth-l2bd
 ------------------
 
 .. raw:: html
 
     <center>
-    <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-csp-mrr.html"></iframe>
+    <iframe id="ifrm04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-csp-mrr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -140,7 +162,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-csp-mrr.html"></iframe>
+    <iframe id="ifrm05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-csp-mrr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -156,6 +178,28 @@ imix-4t2c-eth-l2bd
 
     \clearpage
 
+imix-8t4c-eth-l2bd
+------------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-8t4c-base-csp-mrr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-imix-8t4c-base-csp-mrr}
+            \label{fig:l2bd-2n-skx-x710-imix-8t4c-base-csp-mrr}
+    \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
 2n-skx-x710-ndr
 ~~~~~~~~~~~~~~~
 
@@ -165,7 +209,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-2t1c-base-csp-ndr.html"></iframe>
+    <iframe id="ifrm07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-2t1c-base-csp-ndr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -187,7 +231,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-4t2c-base-csp-ndr.html"></iframe>
+    <iframe id="ifrm08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-4t2c-base-csp-ndr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -203,13 +247,35 @@ imix-4t2c-eth-l2bd
 
     \clearpage
 
+64b-8t4c-eth-l2bd
+-----------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-8t4c-base-csp-ndr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-64b-8t4c-base-csp-ndr}
+            \label{fig:l2bd-2n-skx-x710-64b-8t4c-base-csp-ndr}
+    \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
 imix-2t1c-eth-l2bd
 ------------------
 
 .. raw:: html
 
     <center>
-    <iframe id="ifrm07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-csp-ndr.html"></iframe>
+    <iframe id="ifrm10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-csp-ndr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -231,7 +297,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-csp-ndr.html"></iframe>
+    <iframe id="ifrm11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-csp-ndr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -247,6 +313,28 @@ imix-4t2c-eth-l2bd
 
     \clearpage
 
+imix-8t4c-eth-l2bd
+------------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-8t4c-base-csp-ndr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-imix-8t4c-base-csp-ndr}
+            \label{fig:l2bd-2n-skx-x710-imix-8t4c-base-csp-ndr}
+    \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
 2n-skx-x710-pdr
 ~~~~~~~~~~~~~~~
 
@@ -256,7 +344,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-2t1c-base-csp-pdr.html"></iframe>
+    <iframe id="ifrm13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-2t1c-base-csp-pdr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -278,7 +366,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-4t2c-base-csp-pdr.html"></iframe>
+    <iframe id="ifrm14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-4t2c-base-csp-pdr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -294,13 +382,35 @@ imix-4t2c-eth-l2bd
 
     \clearpage
 
+64b-8t4c-eth-l2bd
+-----------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-8t4c-base-csp-pdr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-64b-8t4c-base-csp-pdr}
+            \label{fig:l2bd-2n-skx-x710-64b-8t4c-base-csp-pdr}
+    \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
 imix-2t1c-eth-l2bd
 ------------------
 
 .. raw:: html
 
     <center>
-    <iframe id="ifrm11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-csp-pdr.html"></iframe>
+    <iframe id="ifrm16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-csp-pdr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -322,7 +432,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-csp-pdr.html"></iframe>
+    <iframe id="ifrm17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-csp-pdr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -333,3 +443,25 @@ imix-4t2c-eth-l2bd
             \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-imix-4t2c-base-csp-pdr}
             \label{fig:l2bd-2n-skx-x710-imix-4t2c-base-csp-pdr}
     \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
+imix-8t4c-eth-l2bd
+------------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm18" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-8t4c-base-csp-pdr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-imix-8t4c-base-csp-pdr}
+            \label{fig:l2bd-2n-skx-x710-imix-8t4c-base-csp-pdr}
+    \end{figure}
index 9dba258..8648c0c 100644 (file)
@@ -112,13 +112,35 @@ Additional information about graph data:
 
     \clearpage
 
+64b-8t4c-eth-l2bd
+-----------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-8t4c-base-vsc-mrr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-64b-8t4c-base-vsc-mrr}
+            \label{fig:l2bd-2n-skx-x710-64b-8t4c-base-vsc-mrr}
+    \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
 imix-2t1c-eth-l2bd
 ------------------
 
 .. raw:: html
 
     <center>
-    <iframe id="ifrm03" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-vsc-mrr.html"></iframe>
+    <iframe id="ifrm04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-vsc-mrr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -140,7 +162,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm04" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-vsc-mrr.html"></iframe>
+    <iframe id="ifrm05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-vsc-mrr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -156,6 +178,28 @@ imix-4t2c-eth-l2bd
 
     \clearpage
 
+imix-8t4c-eth-l2bd
+------------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-8t4c-base-vsc-mrr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-imix-8t4c-base-vsc-mrr}
+            \label{fig:l2bd-2n-skx-x710-imix-8t4c-base-vsc-mrr}
+    \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
 2n-skx-x710-ndr
 ~~~~~~~~~~~~~~~
 
@@ -165,7 +209,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm05" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-2t1c-base-vsc-ndr.html"></iframe>
+    <iframe id="ifrm07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-2t1c-base-vsc-ndr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -187,7 +231,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm06" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-4t2c-base-vsc-ndr.html"></iframe>
+    <iframe id="ifrm08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-4t2c-base-vsc-ndr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -203,13 +247,35 @@ imix-4t2c-eth-l2bd
 
     \clearpage
 
+64b-8t4c-eth-l2bd
+-----------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-8t4c-base-vsc-ndr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-64b-8t4c-base-vsc-ndr}
+            \label{fig:l2bd-2n-skx-x710-64b-8t4c-base-vsc-ndr}
+    \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
 imix-2t1c-eth-l2bd
 ------------------
 
 .. raw:: html
 
     <center>
-    <iframe id="ifrm07" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-vsc-ndr.html"></iframe>
+    <iframe id="ifrm10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-vsc-ndr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -231,7 +297,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm08" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-vsc-ndr.html"></iframe>
+    <iframe id="ifrm11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-vsc-ndr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -247,6 +313,28 @@ imix-4t2c-eth-l2bd
 
     \clearpage
 
+imix-8t4c-eth-l2bd
+------------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-8t4c-base-vsc-ndr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-imix-8t4c-base-vsc-ndr}
+            \label{fig:l2bd-2n-skx-x710-imix-8t4c-base-vsc-ndr}
+    \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
 2n-skx-x710-pdr
 ~~~~~~~~~~~~~~~
 
@@ -256,7 +344,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm09" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-2t1c-base-vsc-pdr.html"></iframe>
+    <iframe id="ifrm13" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-2t1c-base-vsc-pdr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -278,7 +366,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm10" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-4t2c-base-vsc-pdr.html"></iframe>
+    <iframe id="ifrm14" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-4t2c-base-vsc-pdr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -294,13 +382,35 @@ imix-4t2c-eth-l2bd
 
     \clearpage
 
+64b-8t4c-eth-l2bd
+-----------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm15" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-64b-8t4c-base-vsc-pdr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-64b-8t4c-base-vsc-pdr}
+            \label{fig:l2bd-2n-skx-x710-64b-8t4c-base-vsc-pdr}
+    \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
 imix-2t1c-eth-l2bd
 ------------------
 
 .. raw:: html
 
     <center>
-    <iframe id="ifrm11" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-vsc-pdr.html"></iframe>
+    <iframe id="ifrm16" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-2t1c-base-vsc-pdr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -322,7 +432,7 @@ imix-4t2c-eth-l2bd
 .. raw:: html
 
     <center>
-    <iframe id="ifrm12" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-vsc-pdr.html"></iframe>
+    <iframe id="ifrm17" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-4t2c-base-vsc-pdr.html"></iframe>
     </center>
 
 .. raw:: latex
@@ -333,3 +443,25 @@ imix-4t2c-eth-l2bd
             \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-imix-4t2c-base-vsc-pdr}
             \label{fig:l2bd-2n-skx-x710-imix-4t2c-base-vsc-pdr}
     \end{figure}
+
+.. raw:: latex
+
+    \clearpage
+
+imix-8t4c-eth-l2bd
+------------------
+
+.. raw:: html
+
+    <center>
+    <iframe id="ifrm18" onload="setIframeHeight(this.id)" width="700" frameborder="0" scrolling="no" src="../../_static/vpp/l2bd-2n-skx-x710-imix-8t4c-base-vsc-pdr.html"></iframe>
+    </center>
+
+.. raw:: latex
+
+    \begin{figure}[H]
+        \centering
+            \graphicspath{{../_build/_static/vpp/}}
+            \includegraphics[clip, trim=0cm 0cm 5cm 0cm, width=0.70\textwidth]{l2bd-2n-skx-x710-imix-8t4c-base-vsc-pdr}
+            \label{fig:l2bd-2n-skx-x710-imix-8t4c-base-vsc-pdr}
+    \end{figure}
index d77ac7b..113e435 100644 (file)
@@ -1352,3 +1352,423 @@ def plot_service_density_heatmap(plot, input_data):
         logging.error("   Finished with error: {}".
                       format(str(err).replace("\n", " ")))
         return
+
+
+def plot_service_density_heatmap_compare(plot, input_data):
+    """Generate the plot(s) with algorithm: plot_service_density_heatmap_compare
+    specified in the specification file.
+
+    :param plot: Plot to generate.
+    :param input_data: Data to process.
+    :type plot: pandas.Series
+    :type input_data: InputData
+    """
+
+    REGEX_CN = re.compile(r'^(\d*)R(\d*)C$')
+    REGEX_TEST_NAME = re.compile(r'^.*-(\d+ch|\d+pl)-'
+                                 r'(\d+vh|\d+mif)-'
+                                 r'(\d+vm|\d+dcr).*$')
+    REGEX_THREADS = re.compile(r'^(\d+)(VM|DCR)(\d+)T$')
+
+    txt_chains = list()
+    txt_nodes = list()
+    vals = dict()
+
+    # 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, continue_on_error=True)
+    if data is None or data.empty:
+        logging.error("No data.")
+        return
+
+    for job in data:
+        for build in job:
+            for test in build:
+                for tag in test['tags']:
+                    groups = re.search(REGEX_CN, tag)
+                    if groups:
+                        c = str(groups.group(1))
+                        n = str(groups.group(2))
+                        break
+                else:
+                    continue
+                groups = re.search(REGEX_TEST_NAME, test["name"])
+                if groups and len(groups.groups()) == 3:
+                    hover_name = "{chain}-{vhost}-{vm}".format(
+                        chain=str(groups.group(1)),
+                        vhost=str(groups.group(2)),
+                        vm=str(groups.group(3)))
+                else:
+                    hover_name = ""
+                if vals.get(c, None) is None:
+                    vals[c] = dict()
+                if vals[c].get(n, None) is None:
+                    vals[c][n] = dict(name=hover_name,
+                                      vals_r=list(),
+                                      vals_c=list(),
+                                      nr_r=None,
+                                      nr_c=None,
+                                      mean_r=None,
+                                      mean_c=None,
+                                      stdev_r=None,
+                                      stdev_c=None)
+                try:
+                    if plot["include-tests"] == "MRR":
+                        result = test["result"]["receive-rate"].avg
+                    elif plot["include-tests"] == "PDR":
+                        result = test["throughput"]["PDR"]["LOWER"]
+                    elif plot["include-tests"] == "NDR":
+                        result = test["throughput"]["NDR"]["LOWER"]
+                    else:
+                        result = None
+                except TypeError:
+                    result = None
+
+                if result:
+                    for tag in test['tags']:
+                        groups = re.search(REGEX_THREADS, tag)
+                        if groups and len(groups.groups()) == 3:
+                            if str(groups.group(3)) == \
+                                    plot["reference"]["include"]:
+                                vals[c][n]["vals_c"].append(result)
+                            elif str(groups.group(3)) == \
+                                    plot["compare"]["include"]:
+                                vals[c][n]["vals_r"].append(result)
+                            break
+    if not vals:
+        logging.error("No data.")
+        return
+
+    for key_c in vals.keys():
+        txt_chains.append(key_c)
+        for key_n in vals[key_c].keys():
+            txt_nodes.append(key_n)
+            if vals[key_c][key_n]["vals_r"]:
+                vals[key_c][key_n]["nr_r"] = len(vals[key_c][key_n]["vals_r"])
+                vals[key_c][key_n]["mean_r"] = \
+                    round(mean(vals[key_c][key_n]["vals_r"]) / 1000000, 1)
+                vals[key_c][key_n]["stdev_r"] = \
+                    round(stdev(vals[key_c][key_n]["vals_r"]) / 1000000, 1)
+            if vals[key_c][key_n]["vals_c"]:
+                vals[key_c][key_n]["nr_c"] = len(vals[key_c][key_n]["vals_c"])
+                vals[key_c][key_n]["mean_c"] = \
+                    round(mean(vals[key_c][key_n]["vals_c"]) / 1000000, 1)
+                vals[key_c][key_n]["stdev_c"] = \
+                    round(stdev(vals[key_c][key_n]["vals_c"]) / 1000000, 1)
+
+    txt_nodes = list(set(txt_nodes))
+
+    txt_chains = sorted(txt_chains, key=lambda chain: int(chain))
+    txt_nodes = sorted(txt_nodes, key=lambda node: int(node))
+
+    chains = [i + 1 for i in range(len(txt_chains))]
+    nodes = [i + 1 for i in range(len(txt_nodes))]
+
+    data_r = [list() for _ in range(len(chains))]
+    data_c = [list() for _ in range(len(chains))]
+    diff = [list() for _ in range(len(chains))]
+    for c in chains:
+        for n in nodes:
+            try:
+                val_r = vals[txt_chains[c - 1]][txt_nodes[n - 1]]["mean_r"]
+            except (KeyError, IndexError):
+                val_r = None
+            data_r[c - 1].append(val_r)
+            try:
+                val_c = vals[txt_chains[c - 1]][txt_nodes[n - 1]]["mean_c"]
+            except (KeyError, IndexError):
+                val_c = None
+            data_c[c - 1].append(val_c)
+
+            if val_c is not None and val_r:
+                diff[c - 1].append(round((val_c - val_r) * 100 / val_r, 1))
+            else:
+                diff[c - 1].append(None)
+
+    # Colorscales:
+    my_green = [[0.0, 'rgb(235, 249, 242)'],
+                [1.0, 'rgb(45, 134, 89)']]
+
+    my_blue = [[0.0, 'rgb(236, 242, 248)'],
+               [1.0, 'rgb(57, 115, 172)']]
+
+    my_grey = [[0.0, 'rgb(230, 230, 230)'],
+               [1.0, 'rgb(102, 102, 102)']]
+
+    hovertext = list()
+
+    annotations = list()
+    annotations_r = list()
+    annotations_c = list()
+    annotations_diff = list()
+
+    text = ("Test: {name}"
+            "<br>{title_r}: {text_r}"
+            "<br>{title_c}: {text_c}{text_diff}")
+    text_r = "Thput: {val_r}; StDev: {stdev_r}; Runs: {nr_r}"
+    text_c = "Thput: {val_c}; StDev: {stdev_c}; Runs: {nr_c}"
+    text_diff = "<br>Relative Difference {title_c} vs. {title_r}: {diff}%"
+
+    for c in range(len(txt_chains)):
+        hover_line = list()
+        for n in range(len(txt_nodes)):
+            if data_r[c][n] is not None:
+                data_point = dict(
+                    x=n+1,
+                    y=c+1,
+                    xref="x",
+                    yref="y",
+                    xanchor="center",
+                    yanchor="middle",
+                    text=str(data_r[c][n]) if data_r[c][n] is not None else "",
+                    font=dict(
+                        size=14,
+                    ),
+                    align="center",
+                    showarrow=False
+                )
+                annotations_r.append(deepcopy(data_point))
+                data_point["text"] = str(data_c[c][n]) \
+                    if data_c[c][n] is not None else ""
+                annotations_c.append(deepcopy(data_point))
+                data_point["text"] = str(diff[c][n]) \
+                    if diff[c][n] is not None else ""
+                annotations_diff.append(deepcopy(data_point))
+
+                hover_line.append(text.format(
+                    name=vals[txt_chains[c]][txt_nodes[n]]["name"],
+                    title_r=plot["reference"]["name"],
+                    text_r=text_r.format(
+                        val_r=data_r[c][n],
+                        stdev_r=vals[txt_chains[c]][txt_nodes[n]]["stdev_r"],
+                        nr_r=vals[txt_chains[c]][txt_nodes[n]]["nr_r"]
+                    ) if data_r[c][n] is not None else "Test Failed",
+                    title_c=plot["compare"]["name"],
+                    text_c=text_c.format(
+                        val_c=data_c[c][n],
+                        stdev_c = vals[txt_chains[c]][txt_nodes[n]]["stdev_c"],
+                        nr_c=vals[txt_chains[c]][txt_nodes[n]]["nr_c"]
+                    ) if data_c[c][n] is not None else "Test Failed",
+                    text_diff=text_diff.format(
+                        diff=diff[c][n]
+                    ) if diff[c][n] is not None else ""
+                ))
+
+        hovertext.append(hover_line)
+
+    traces = [
+        plgo.Heatmap(x=nodes,
+                     y=chains,
+                     z=data_r,
+                     visible=True,
+                     colorbar=dict(
+                         title=plot.get("z-axis", ""),
+                         titleside="right",
+                         titlefont=dict(
+                            size=16
+                         ),
+                         tickfont=dict(
+                             size=16,
+                         ),
+                         tickformat=".1f",
+                         yanchor="bottom",
+                         y=-0.02,
+                         len=0.925,
+                     ),
+                     showscale=True,
+                     colorscale=my_green,
+                     reversescale=False,
+                     text=hovertext,
+                     hoverinfo="text"),
+        plgo.Heatmap(x=nodes,
+                     y=chains,
+                     z=data_c,
+                     visible=False,
+                     colorbar=dict(
+                         title=plot.get("z-axis", ""),
+                         titleside="right",
+                         titlefont=dict(
+                             size=16
+                         ),
+                         tickfont=dict(
+                             size=16,
+                         ),
+                         tickformat=".1f",
+                         yanchor="bottom",
+                         y=-0.02,
+                         len=0.925,
+                     ),
+                     showscale=True,
+                     colorscale=my_blue,
+                     reversescale=False,
+                     text=hovertext,
+                     hoverinfo="text"),
+        plgo.Heatmap(x=nodes,
+                     y=chains,
+                     z=diff,
+                     name="Diff",
+                     visible=False,
+                     colorbar=dict(
+                         title="Relative difference [%]",
+                         titleside="right",
+                         titlefont=dict(
+                             size=16
+                         ),
+                         tickfont=dict(
+                             size=16,
+                         ),
+                         tickformat=".1f",
+                         yanchor="bottom",
+                         y=-0.02,
+                         len=0.925,
+                     ),
+                     showscale=True,
+                     colorscale=my_grey,
+                     reversescale=False,
+                     text=hovertext,
+                     hoverinfo="text")
+    ]
+
+    for idx, item in enumerate(txt_nodes):
+        # X-axis, numbers:
+        annotations.append(dict(
+            x=idx+1,
+            y=0.05,
+            xref="x",
+            yref="y",
+            xanchor="center",
+            yanchor="top",
+            text=item,
+            font=dict(
+                size=16,
+            ),
+            align="center",
+            showarrow=False
+        ))
+    for idx, item in enumerate(txt_chains):
+        # Y-axis, numbers:
+        annotations.append(dict(
+            x=0.35,
+            y=idx+1,
+            xref="x",
+            yref="y",
+            xanchor="right",
+            yanchor="middle",
+            text=item,
+            font=dict(
+                size=16,
+            ),
+            align="center",
+            showarrow=False
+        ))
+    # X-axis, title:
+    annotations.append(dict(
+        x=0.55,
+        y=-0.15,
+        xref="paper",
+        yref="y",
+        xanchor="center",
+        yanchor="bottom",
+        text=plot.get("x-axis", ""),
+        font=dict(
+            size=16,
+        ),
+        align="center",
+        showarrow=False
+    ))
+    # Y-axis, title:
+    annotations.append(dict(
+        x=-0.1,
+        y=0.5,
+        xref="x",
+        yref="paper",
+        xanchor="center",
+        yanchor="middle",
+        text=plot.get("y-axis", ""),
+        font=dict(
+            size=16,
+        ),
+        align="center",
+        textangle=270,
+        showarrow=False
+    ))
+    updatemenus = list([
+        dict(
+            active=0,
+            x=1.0,
+            y=0.0,
+            xanchor='right',
+            yanchor='bottom',
+            direction='up',
+            buttons=list([
+                dict(
+                    label=plot["reference"]["name"],
+                    method="update",
+                    args=[
+                        {
+                            "visible": [True, False, False]
+                        },
+                        {
+                            "colorscale": [my_green, ],
+                            "reversescale": False,
+                            "annotations": annotations + annotations_r,
+                        },
+                    ]
+                ),
+                dict(
+                    label=plot["compare"]["name"],
+                    method="update",
+                    args=[
+                        {
+                            "visible": [False, True, False]
+                        },
+                        {
+                            "colorscale": [my_blue, ],
+                            "reversescale": False,
+                            "annotations": annotations + annotations_c,
+                        },
+                    ]
+                ),
+                dict(
+                    label="Diff",
+                    method="update",
+                    args=[
+                        {
+                            "visible": [False, False, True]
+                        },
+                        {
+                            "colorscale": [my_grey, ],
+                            "reversescale": False,
+                            "annotations": annotations + annotations_diff,
+                        },
+                    ]
+                ),
+            ])
+        )
+    ])
+
+    try:
+        layout = deepcopy(plot["layout"])
+    except KeyError as err:
+        logging.error("Finished with error: No layout defined")
+        logging.error(repr(err))
+        return
+
+    layout["annotations"] = annotations + annotations_r
+    layout['updatemenus'] = updatemenus
+
+    try:
+        # Create plot
+        plpl = plgo.Figure(data=traces, layout=layout)
+
+        # Export Plot
+        logging.info("    Writing file '{0}{1}'.".
+                     format(plot["output-file"], plot["output-file-type"]))
+        ploff.plot(plpl, show_link=False, auto_open=False,
+                   filename='{0}{1}'.format(plot["output-file"],
+                                            plot["output-file-type"]))
+    except PlotlyError as err:
+        logging.error("   Finished with error: {}".
+                      format(str(err).replace("\n", " ")))
+        return
index 7d99544..e9c148f 100644 (file)
       csit-vpp-perf-verify-1901-2n-skx:
         - 45  # SOAK sel
 
-    plot-vpp-nfv-2n-skx:
+    plot-vpp-nfv-2n-skx-ndrpdr-64b:
       # TODO: Add 1904 data
       csit-vpp-perf-verify-1904-2n-skx:
-        - 9   # NFV NDRPDR
+        - 9   # NFV NDRPDR - replace
 
-    plot-vpp-nfv-2n-skx-mrr:
+    plot-vpp-nfv-2n-skx-ndrpdr-imix:
       # TODO: Add 1904 data
       csit-vpp-perf-verify-1904-2n-skx:
-        - 40  # NFV MRR
-        - 41  # NFV MRR
-        - 42  # NFV MRR
+        - 9   # NFV NDRPDR - replace
+
+    plot-vpp-nfv-2n-skx-mrr-64b:
+      csit-vpp-perf-verify-1904-2n-skx:
+        - 40  # NFV MRR 64b
+        - 41  # NFV MRR 64b
+        - 42  # NFV MRR 64b
+        - 47  # NFV MRR 64b
+        - 48  # NFV MRR 64b
+
+    plot-vpp-nfv-2n-skx-mrr-imix:
+      # TODO: Add 1904 data
+      csit-vpp-perf-verify-1904-2n-skx:
+        - 49  # NFV MRR IMIX
+        - 50  # NFV MRR IMIX
+        - 51  # NFV MRR IMIX
+        - 54  # NFV MRR IMIX
 
     plot-dpdk-throughput-latency-2n-skx:
       csit-dpdk-perf-verify-1904-2n-skx:
       - 40  # NDRPDR sel
       - 42  # NDRPDR sel
       - 43  # NDRPDR sel
-      - 24  # NFV MRR
-      - 26  # NFV MRR
-      - 27  # NFV MRR
-      - 35  # NFV MRR
-      - 37  # NFV MRR
-      - 28  # NFV NDRPDR
-      - 29  # NFV NDRPDR
-      - 32  # NFV NDRPDR
-      - 39  # NFV NDRPDR
-      - 46  # NFV NDRPDR
       - 45  # SOAK
     # TODO: Add 1904 data
     csit-vpp-perf-verify-1904-2n-skx:
     layout: "plot-soak-throughput"
 
 ################################################################################
-# Plots - NF Density - VSC
-
+# Plots - NF Density - VSC - MRR 64b
 - type: "plot"
-  title: "Packet Throughput: 64B-1c-eth-l2bd-{a}vhost-{b}chain-{c}vm-l3fwdip4-mrr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-2t1c-base-vsc-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
-           'VM' and
+           'VHOST' and
            'CHAIN' and
+           'NF_VPPIP4' and
            '64B' and
            '2T1C' and
            'MRR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
   parameters:
   - "result"
   - "name"
   y-axis: "Y = Number of Service Chains"
   z-axis: "64B Packet Throughput (mean MRR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}vhost-{Y}chain-{XY}vm-l3fwdip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: 64B-2c-eth-l2bd-{a}vhost-{b}chain-{c}vm-l3fwdip4-mrr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-4t2c-base-vsc-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
-           'VM' and
+           'VHOST' and
            'CHAIN' and
+           'NF_VPPIP4' and
            '64B' and
            '4T2C' and
            'MRR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
+  parameters:
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = VNFs per Service Chain"
+  y-axis: "Y = Number of Service Chains"
+  z-axis: "64B Packet Throughput (mean MRR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
+    layout: "plot-service-density"
+
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-8t4c-base-vsc-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-64b"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'VHOST' and
+           'CHAIN' and
+           'NF_VPPIP4' and
+           '64B' and
+           '8T4C' and
+           'MRR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
   parameters:
   - "result"
   - "name"
   y-axis: "Y = Number of Service Chains"
   z-axis: "64B Packet Throughput (mean MRR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}vhost-{Y}chain-{XY}vm-l3fwdip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
     layout: "plot-service-density"
 
+# Plots - NF Density - VSC - MRR IMIX
 - type: "plot"
-  title: "Packet Throughput: IMIX-1c-eth-l2bd-{a}vhost-{b}chain-{c}vm-l3fwdip4-mrr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
-  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-2t1c-base-vsc-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-imix-base-vsc-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
-           'VM' and
+           'VHOST' and
            'CHAIN' and
+           'NF_VPPIP4' and
            'IMIX' and
            '2T1C' and
            'MRR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
   parameters:
   - "result"
   - "name"
   y-axis: "Y = Number of Service Chains"
   z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}vhost-{Y}chain-{XY}vm-l3fwdip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: IMIX-2c-eth-l2bd-{a}vhost-{b}chain-{c}vm-l3fwdip4-mrr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-4t2c-base-vsc-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
-           'VM' and
+           'VHOST' and
            'CHAIN' and
+           'NF_VPPIP4' and
            'IMIX' and
            '4T2C' and
            'MRR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
   parameters:
   - "result"
   - "name"
   y-axis: "Y = Number of Service Chains"
   z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}vhost-{Y}chain-{XY}vm-l3fwdip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: 64B-1c-eth-l2bd-{a}vhost-{b}chain-{c}vm-l3fwdip4-ndr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-8t4c-base-vsc-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-imix"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'VHOST' and
+           'CHAIN' and
+           'NF_VPPIP4' and
+           'IMIX' and
+           '8T4C' and
+           'MRR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
+  parameters:
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = VNFs per Service Chain"
+  y-axis: "Y = Number of Service Chains"
+  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-mrr"
+    layout: "plot-service-density"
+
+# Plots - NF Density - VSC - NDR 64b
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-2t1c-base-vsc-ndr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
-           'VM' and
+           'VHOST' and
            'CHAIN' and
+           'NF_VPPIP4' and
            '64B' and
            '2T1C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "NDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "64B Packet Throughput (mean NDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}vhost-{Y}chain-{XY}vm-l3fwdip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: 64B-2c-eth-l2bd-{a}vhost-{b}chain-{c}vm-l3fwdip4-ndr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-4t2c-base-vsc-ndr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
-           'VM' and
+           'VHOST' and
            'CHAIN' and
+           'NF_VPPIP4' and
            '64B' and
            '4T2C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "NDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "64B Packet Throughput (mean NDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}vhost-{Y}chain-{XY}vm-l3fwdip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: IMIX-1c-eth-l2bd-{a}vhost-{b}chain-{c}vm-l3fwdip4-ndr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-8t4c-base-vsc-ndr"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'VHOST' and
+           'CHAIN' and
+           'NF_VPPIP4' and
+           '64B' and
+           '8T4C' and
+           'NDRPDR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
+  parameters:
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = VNFs per Service Chain"
+  y-axis: "Y = Number of Service Chains"
+  z-axis: "64B Packet Throughput (mean NDR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
+    layout: "plot-service-density"
+
+# Plots - NF Density - VSC - NDR IMIX
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-2t1c-base-vsc-ndr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
-           'VM' and
+           'VHOST' and
            'CHAIN' and
+           'NF_VPPIP4' and
            'IMIX' and
            '2T1C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "NDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}vhost-{Y}chain-{XY}vm-l3fwdip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: IMIX-2c-eth-l2bd-{a}vhost-{b}chain-{c}vm-l3fwdip4-ndr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-4t2c-base-vsc-ndr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
-           'VM' and
+           'VHOST' and
            'CHAIN' and
+           'NF_VPPIP4' and
            'IMIX' and
            '4T2C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = VNFs per Service Chain"
+  y-axis: "Y = Number of Service Chains"
+  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
+    layout: "plot-service-density"
+
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-8t4c-base-vsc-ndr"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'VHOST' and
+           'CHAIN' and
+           'NF_VPPIP4' and
+           'IMIX' and
+           '8T4C' and
+           'NDRPDR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
+  parameters:
+  - "result"
   - "name"
   - "tags"
   include-tests: "NDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}vhost-{Y}chain-{XY}vm-l3fwdip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-ndr"
     layout: "plot-service-density"
 
+# Plots - NF Density - VSC - PDR 64b
 - type: "plot"
-  title: "Packet Throughput: 64B-1c-eth-l2bd-{a}vhost-{b}chain-{c}vm-l3fwdip4-pdr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-2t1c-base-vsc-pdr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
-           'VM' and
+           'VHOST' and
            'CHAIN' and
+           'NF_VPPIP4' and
            '64B' and
            '2T1C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "PDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "64B Packet Throughput (mean PDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}vhost-{Y}chain-{XY}vm-l3fwdip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: 64B-2c-eth-l2bd-{a}vhost-{b}chain-{c}vm-l3fwdip4-pdr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-4t2c-base-vsc-pdr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
-           'VM' and
+           'VHOST' and
            'CHAIN' and
+           'NF_VPPIP4' and
            '64B' and
            '4T2C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = VNFs per Service Chain"
+  y-axis: "Y = Number of Service Chains"
+  z-axis: "64B Packet Throughput (mean PDR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
+    layout: "plot-service-density"
+
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-8t4c-base-vsc-pdr"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'VHOST' and
+           'CHAIN' and
+           'NF_VPPIP4' and
+           '64B' and
+           '8T4C' and
+           'NDRPDR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
+  parameters:
+  - "result"
   - "name"
   - "tags"
   include-tests: "PDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "64B Packet Throughput (mean PDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}vhost-{Y}chain-{XY}vm-l3fwdip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
     layout: "plot-service-density"
 
+# Plots - NF Density - VSC - PDR IMIX
 - type: "plot"
-  title: "Packet Throughput: IMIX-1c-eth-l2bd-{a}vhost-{b}chain-{c}vm-l3fwdip4-pdr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-2t1c-base-vsc-pdr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
-           'VM' and
+           'VHOST' and
            'CHAIN' and
+           'NF_VPPIP4' and
            'IMIX' and
            '2T1C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "PDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}vhost-{Y}chain-{XY}vm-l3fwdip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: IMIX-2c-eth-l2bd-{a}vhost-{b}chain-{c}vm-l3fwdip4-pdr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-4t2c-base-vsc-pdr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
-           'VM' and
+           'VHOST' and
            'CHAIN' and
+           'NF_VPPIP4' and
            'IMIX' and
            '4T2C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "PDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}vhost-{Y}chain-{XY}vm-l3fwdip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
     layout: "plot-service-density"
 
-################################################################################
-# Plots - NF Density - CSC
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-8t4c-base-vsc-pdr"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'VHOST' and
+           'CHAIN' and
+           'NF_VPPIP4' and
+           'IMIX' and
+           '8T4C' and
+           'NDRPDR'"
+  reference:
+    include: "2"
+    name: "VNF-1c"
+  compare:
+    include: "1"
+    name: "VNF-0.5c"
+  parameters:
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = VNFs per Service Chain"
+  y-axis: "Y = Number of Service Chains"
+  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}vh-{XY}vm-vppip4-pdr"
+    layout: "plot-service-density"
 
+################################################################################
+# Plots - NF Density - CSC - MRR 64b
 - type: "plot"
-  title: "Packet Throughput: 64B-1c-eth-l2bd-{a}memif-{b}chain-{c}drc-vppip4-mrr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-2t1c-base-csc-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'CHAIN' and
+           'NF_VPPIP4' and
            '64B' and
            '2T1C' and
            'MRR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
   - "result"
   - "name"
   y-axis: "Y = Number of Service Chains"
   z-axis: "64B Packet Throughput (mean MRR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}memif-{Y}chain-{XY}drc-vppip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: 64B-2c-eth-l2bd-{a}memif-{b}chain-{c}drc-vppip4-mrr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-4t2c-base-csc-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'CHAIN' and
+           'NF_VPPIP4' and
            '64B' and
            '4T2C' and
            'MRR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
   - "result"
   - "name"
   y-axis: "Y = Number of Service Chains"
   z-axis: "64B Packet Throughput (mean MRR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}memif-{Y}chain-{XY}drc-vppip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: IMIX-1c-eth-l2bd-{a}memif-{b}chain-{c}drc-vppip4-mrr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-8t4c-base-csc-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-64b"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'DOCKER' and
+           'CHAIN' and
+           'NF_VPPIP4' and
+           '64B' and
+           '8T4C' and
+           'MRR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
+  parameters:
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = CNFs per Service Chain"
+  y-axis: "Y = Number of Service Chains"
+  z-axis: "64B Packet Throughput (mean MRR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
+    layout: "plot-service-density"
+
+# Plots - NF Density - CSC - MRR IMIX
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-2t1c-base-csc-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'CHAIN' and
+           'NF_VPPIP4' and
            'IMIX' and
            '2T1C' and
            'MRR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
   - "result"
   - "name"
   y-axis: "Y = Number of Service Chains"
   z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}memif-{Y}chain-{XY}drc-vppip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: IMIX-2c-eth-l2bd-{a}memif-{b}chain-{c}drc-vppip4-mrr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-4t2c-base-csc-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'CHAIN' and
+           'NF_VPPIP4' and
            'IMIX' and
            '4T2C' and
            'MRR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
   - "result"
   - "name"
   y-axis: "Y = Number of Service Chains"
   z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}memif-{Y}chain-{XY}drc-vppip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: 64B-1c-eth-l2bd-{a}memif-{b}chain-{c}drc-vppip4-ndr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-8t4c-base-csc-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-imix"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'DOCKER' and
+           'CHAIN' and
+           'NF_VPPIP4' and
+           'IMIX' and
+           '8T4C' and
+           'MRR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
+  parameters:
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = CNFs per Service Chain"
+  y-axis: "Y = Number of Service Chains"
+  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-mrr"
+    layout: "plot-service-density"
+
+# Plots - NF Density - CSC - NDR 64b
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-2t1c-base-csc-ndr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'CHAIN' and
+           'NF_VPPIP4' and
            '64B' and
            '2T1C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "NDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "64B Packet Throughput (mean NDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}memif-{Y}chain-{XY}drc-vppip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: 64B-2c-eth-l2bd-{a}memif-{b}chain-{c}drc-vppip4-ndr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-4t2c-base-csc-ndr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'CHAIN' and
+           'NF_VPPIP4' and
            '64B' and
            '4T2C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "NDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "64B Packet Throughput (mean NDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}memif-{Y}chain-{XY}drc-vppip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: IMIX-1c-eth-l2bd-{a}memif-{b}chain-{c}drc-vppip4-ndr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-8t4c-base-csc-ndr"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'DOCKER' and
+           'CHAIN' and
+           'NF_VPPIP4' and
+           '64B' and
+           '8T4C' and
+           'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
+  parameters:
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = CNFs per Service Chain"
+  y-axis: "Y = Number of Service Chains"
+  z-axis: "64B Packet Throughput (mean NDR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
+    layout: "plot-service-density"
+
+# Plots - NF Density - CSC - NDR IMIX
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-2t1c-base-csc-ndr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'CHAIN' and
+           'NF_VPPIP4' and
            'IMIX' and
            '2T1C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "NDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}memif-{Y}chain-{XY}drc-vppip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: IMIX-2c-eth-l2bd-{a}memif-{b}chain-{c}drc-vppip4-ndr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-4t2c-base-csc-ndr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'CHAIN' and
+           'NF_VPPIP4' and
            'IMIX' and
            '4T2C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = CNFs per Service Chain"
+  y-axis: "Y = Number of Service Chains"
+  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
+    layout: "plot-service-density"
+
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-8t4c-base-csc-ndr"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'DOCKER' and
+           'CHAIN' and
+           'NF_VPPIP4' and
+           'IMIX' and
+           '8T4C' and
+           'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
+  parameters:
+  - "result"
   - "name"
   - "tags"
   include-tests: "NDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}memif-{Y}chain-{XY}drc-vppip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-ndr"
     layout: "plot-service-density"
 
+# Plots - NF Density - CSC - PDR 64b
 - type: "plot"
-  title: "Packet Throughput: 64B-1c-eth-l2bd-{a}memif-{b}chain-{c}drc-vppip4-pdr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-2t1c-base-csc-pdr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'CHAIN' and
+           'NF_VPPIP4' and
            '64B' and
            '2T1C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "PDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "64B Packet Throughput (mean PDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}memif-{Y}chain-{XY}drc-vppip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: 64B-2c-eth-l2bd-{a}memif-{b}chain-{c}drc-vppip4-pdr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-4t2c-base-csc-pdr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'CHAIN' and
+           'NF_VPPIP4' and
            '64B' and
            '4T2C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "PDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "64B Packet Throughput (mean PDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}memif-{Y}chain-{XY}drc-vppip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: IMIX-1c-eth-l2bd-{a}memif-{b}chain-{c}drc-vppip4-pdr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-8t4c-base-csc-pdr"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'DOCKER' and
+           'CHAIN' and
+           'NF_VPPIP4' and
+           '64B' and
+           '8T4C' and
+           'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
+  parameters:
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = CNFs per Service Chain"
+  y-axis: "Y = Number of Service Chains"
+  z-axis: "64B Packet Throughput (mean PDR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
+    layout: "plot-service-density"
+
+# Plots - NF Density - CSC - PDR IMIX
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-2t1c-base-csc-pdr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'CHAIN' and
+           'NF_VPPIP4' and
            'IMIX' and
            '2T1C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "PDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}memif-{Y}chain-{XY}drc-vppip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: IMIX-2c-eth-l2bd-{a}memif-{b}chain-{c}drc-vppip4-pdr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-4t2c-base-csc-pdr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'CHAIN' and
+           'NF_VPPIP4' and
            'IMIX' and
            '4T2C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "PDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Chains"
   z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2XY}memif-{Y}chain-{XY}drc-vppip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
     layout: "plot-service-density"
 
-################################################################################
-# Plots - NF Density - CSP
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-8t4c-base-csc-pdr"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'DOCKER' and
+           'CHAIN' and
+           'NF_VPPIP4' and
+           'IMIX' and
+           '8T4C' and
+           'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
+  parameters:
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = CNFs per Service Chain"
+  y-axis: "Y = Number of Service Chains"
+  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}ch-{2XY}mif-{XY}dcr-vppip4-pdr"
+    layout: "plot-service-density"
 
+################################################################################
+# Plots - NF Density - CSP - MRR 64b
 - type: "plot"
-  title: "Packet Throughput: 64B-1c-eth-l2bd-{a}memif-{b}pipe-{c}drc-vppip4-mrr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-2t1c-base-csp-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'PIPELINE' and
+           'NF_VPPIP4' and
            '64B' and
            '2T1C' and
            'MRR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
   - "result"
   - "name"
   y-axis: "Y = Number of Service Pipelines"
   z-axis: "64B Packet Throughput (mean MRR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2Y}memif-{Y}pipe-{XY}drc-vppip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: 64B-2c-eth-l2bd-{a}memif-{b}pipe-{c}drc-vppip4-mrr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-4t2c-base-csp-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'PIPELINE' and
+           'NF_VPPIP4' and
            '64B' and
            '4T2C' and
            'MRR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
+  parameters:
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = CNFs per Service Pipeline"
+  y-axis: "Y = Number of Service Pipelines"
+  z-axis: "64B Packet Throughput (mean MRR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
+    layout: "plot-service-density"
+
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-8t4c-base-csp-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-64b"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'DOCKER' and
+           'PIPELINE' and
+           'NF_VPPIP4' and
+           '64B' and
+           '8T4C' and
+           'MRR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
   - "result"
   - "name"
   y-axis: "Y = Number of Service Pipelines"
   z-axis: "64B Packet Throughput (mean MRR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2Y}memif-{Y}pipe-{XY}drc-vppip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
     layout: "plot-service-density"
 
+# Plots - NF Density - CSP - MRR IMIX
 - type: "plot"
-  title: "Packet Throughput: IMIX-1c-eth-l2bd-{a}memif-{b}pipe-{c}drc-vppip4-mrr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-2t1c-base-csp-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'PIPELINE' and
+           'NF_VPPIP4' and
            'IMIX' and
            '2T1C' and
            'MRR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
   - "result"
   - "name"
   y-axis: "Y = Number of Service Pipelines"
   z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2Y}memif-{Y}pipe-{XY}drc-vppip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: IMIX-2c-eth-l2bd-{a}memif-{b}pipe-{c}drc-vppip4-mrr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-4t2c-base-csp-mrr"
-  data: "plot-vpp-nfv-2n-skx-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'PIPELINE' and
+           'NF_VPPIP4' and
            'IMIX' and
            '4T2C' and
            'MRR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
+  parameters:
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "MRR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = CNFs per Service Pipeline"
+  y-axis: "Y = Number of Service Pipelines"
+  z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
+    layout: "plot-service-density"
+
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-8t4c-base-csp-mrr"
+  data: "plot-vpp-nfv-2n-skx-mrr-imix"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'DOCKER' and
+           'PIPELINE' and
+           'NF_VPPIP4' and
+           'IMIX' and
+           '8T4C' and
+           'MRR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
   - "result"
   - "name"
   y-axis: "Y = Number of Service Pipelines"
   z-axis: "IMIX Packet Throughput (mean MRR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2Y}memif-{Y}pipe-{XY}drc-vppip4-mrr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-mrr"
     layout: "plot-service-density"
 
+# Plots - NF Density - CSP - NDR 64b
 - type: "plot"
-  title: "Packet Throughput: 64B-1c-eth-l2bd-{a}memif-{b}pipe-{c}drc-vppip4-ndr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-2t1c-base-csp-ndr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'PIPELINE' and
+           'NF_VPPIP4' and
            '64B' and
            '2T1C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "NDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Pipelines"
   z-axis: "64B Packet Throughput (mean NDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2Y}memif-{Y}pipe-{XY}drc-vppip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: 64B-2c-eth-l2bd-{a}memif-{b}pipe-{c}drc-vppip4-ndr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-4t2c-base-csp-ndr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'PIPELINE' and
+           'NF_VPPIP4' and
            '64B' and
            '4T2C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "NDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Pipelines"
   z-axis: "64B Packet Throughput (mean NDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2Y}memif-{Y}pipe-{XY}drc-vppip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: IMIX-1c-eth-l2bd-{a}memif-{b}pipe-{c}drc-vppip4-ndr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-8t4c-base-csp-ndr"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'DOCKER' and
+           'PIPELINE' and
+           'NF_VPPIP4' and
+           '64B' and
+           '8T4C' and
+           'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
+  parameters:
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = CNFs per Service Pipeline"
+  y-axis: "Y = Number of Service Pipelines"
+  z-axis: "64B Packet Throughput (mean NDR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
+    layout: "plot-service-density"
+
+# Plots - NF Density - CSP - NDR IMIX
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-2t1c-base-csp-ndr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'PIPELINE' and
+           'NF_VPPIP4' and
            'IMIX' and
            '2T1C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "NDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Pipelines"
   z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2Y}memif-{Y}pipe-{XY}drc-vppip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: IMIX-2c-eth-l2bd-{a}memif-{b}pipe-{c}drc-vppip4-ndr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-4t2c-base-csp-ndr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'PIPELINE' and
+           'NF_VPPIP4' and
            'IMIX' and
            '4T2C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "NDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Pipelines"
   z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2Y}memif-{Y}pipe-{XY}drc-vppip4-ndr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: 64B-1c-eth-l2bd-{a}memif-{b}pipe-{c}drc-vppip4-pdr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-8t4c-base-csp-ndr"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'DOCKER' and
+           'PIPELINE' and
+           'NF_VPPIP4' and
+           'IMIX' and
+           '8T4C' and
+           'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
+  parameters:
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "NDR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = CNFs per Service Pipeline"
+  y-axis: "Y = Number of Service Pipelines"
+  z-axis: "IMIX Packet Throughput (mean NDR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-ndr"
+    layout: "plot-service-density"
+
+# Plots - NF Density - CSP - PDR 64b
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-2t1c-base-csp-pdr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'PIPELINE' and
+           'NF_VPPIP4' and
            '64B' and
            '2T1C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "PDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Pipelines"
   z-axis: "64B Packet Throughput (mean PDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2Y}memif-{Y}pipe-{XY}drc-vppip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: 64B-2c-eth-l2bd-{a}memif-{b}pipe-{c}drc-vppip4-pdr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-4t2c-base-csp-pdr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'PIPELINE' and
+           'NF_VPPIP4' and
            '64B' and
            '4T2C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = CNFs per Service Pipeline"
+  y-axis: "Y = Number of Service Pipelines"
+  z-axis: "64B Packet Throughput (mean PDR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
+    layout: "plot-service-density"
+
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-64b-8t4c-base-csp-pdr"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-64b"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'DOCKER' and
+           'PIPELINE' and
+           'NF_VPPIP4' and
+           '64B' and
+           '8T4C' and
+           'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
+  parameters:
+  - "result"
   - "name"
   - "tags"
   include-tests: "PDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Pipelines"
   z-axis: "64B Packet Throughput (mean PDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2Y}memif-{Y}pipe-{XY}drc-vppip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
     layout: "plot-service-density"
 
+# Plots - NF Density - CSP - PDR IMIX
 - type: "plot"
-  title: "Packet Throughput: IMIX-1c-eth-l2bd-{a}memif-{b}pipe-{c}drc-vppip4-pdr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-2t1c-base-csp-pdr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'PIPELINE' and
+           'NF_VPPIP4' and
            'IMIX' and
            '2T1C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
   - "name"
   - "tags"
   include-tests: "PDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Pipelines"
   z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2Y}memif-{Y}pipe-{XY}drc-vppip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
     layout: "plot-service-density"
 
 - type: "plot"
-  title: "Packet Throughput: IMIX-2c-eth-l2bd-{a}memif-{b}pipe-{c}drc-vppip4-pdr"
-  algorithm: "plot_service_density_heatmap"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
   output-file-type: ".html"
   output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-4t2c-base-csp-pdr"
-  data: "plot-vpp-nfv-2n-skx"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
   filter: "'NIC_Intel-X710' and
            'NF_DENSITY' and
            'DOCKER' and
            'PIPELINE' and
+           'NF_VPPIP4' and
            'IMIX' and
            '4T2C' and
            'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
   parameters:
-  - "throughput"
+  - "result"
+  - "name"
+  - "tags"
+  include-tests: "PDR" # "PDR" | "NDR" | "MRR"
+  x-axis: "X = CNFs per Service Pipeline"
+  y-axis: "Y = Number of Service Pipelines"
+  z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
+  layout:
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
+    layout: "plot-service-density"
+
+- type: "plot"
+  title: "Packet Throughput: eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
+  algorithm: "plot_service_density_heatmap_compare"
+  output-file-type: ".html"
+  output-file: "{DIR[STATIC,VPP]}/l2bd-2n-skx-x710-imix-8t4c-base-csp-pdr"
+  data: "plot-vpp-nfv-2n-skx-ndrpdr-imix"
+  filter: "'NIC_Intel-X710' and
+           'NF_DENSITY' and
+           'DOCKER' and
+           'PIPELINE' and
+           'NF_VPPIP4' and
+           'IMIX' and
+           '8T4C' and
+           'NDRPDR'"
+  reference:
+    include: "2"
+    name: "CNF-1c"
+  compare:
+    include: "1"
+    name: "CNF-0.5c"
+  parameters:
+  - "result"
   - "name"
   - "tags"
   include-tests: "PDR" # "PDR" | "NDR" | "MRR"
   y-axis: "Y = Number of Service Pipelines"
   z-axis: "IMIX Packet Throughput (mean PDR) [Mpps]"
   layout:
-    title: "<b>Throughput:</b> eth-l2bd-{2Y}memif-{Y}pipe-{XY}drc-vppip4-pdr"
+    title: "<b>Throughput:</b> eth-l2bd-{Y}pl-{2Y}mif-{XY}dcr-vppip4-pdr"
     layout: "plot-service-density"
 
 ################################################################################