--- /dev/null
+VM vhost Connections\r
+====================\r
+\r
+Following sections provide a summary of VPP Phy-to-VM-to-Phy VM vhost-user\r
+performance illustrating NDR throughput (zero packet loss) and PDR throughput\r
+(<0.5% packet loss). Performance is reported for VPP running in multiple\r
+configurations of VPP worker thread(s), a.k.a. VPP data plane thread (s), and\r
+their physical CPU core(s) placement.\r
+\r
+Title of each graph is a regex (regular expression) matching all plotted\r
+test case throughput measurements.\r
+\r
+.. note::\r
+\r
+ Data sources for reported test results: i) FD.io test executor jobs\r
+ `csit-vpp-perf-1701-all\r
+ <https://jenkins.fd.io/view/csit/job/csit-vpp-perf-1701-all/>`_ and\r
+ `csit-vpp-perf-1701-long\r
+ <https://jenkins.fd.io/view/csit/job/csit-vpp-perf-1701-long/>`_\r
+ , ii) archived FD.io jobs test result output files\r
+ `csit-vpp-perf-1701-all#job-number <https://nexus.fd.io/link>`_.\r
+\r
+NDR Throughput\r
+~~~~~~~~~~~~~~\r
+\r
+VPP NDR Throughput - running in configuration of **one worker thread (1t) on one\r
+physical core (1c)** - is presented in the figure below.\r
+\r
+.. raw:: html\r
+\r
+ <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-vhost-ndrdisc.html"></iframe>\r
+\r
+*Figure 1. VPP 1thread 1core - NDR Throughput for Phy-to-VM-to-Phy VM\r
+vhost-user.*\r
+\r
+CSIT test cases used to generate results presented above can be found in CSIT\r
+git repository by filtering with specified regex as follows:\r
+\r
+.. code-block:: bash\r
+\r
+ $ csit/tests/perf\r
+ $ grep -E "64B-1t1c-.*vhost.*-ndrdisc" *\r
+\r
+ 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
+ 40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc01-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
+\r
+VPP NDR Throughput - running in configuration of **two worker threads (2t) on\r
+two physical cores (2c)** - is presented in the figure below.\r
+\r
+.. raw:: html\r
+\r
+ <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-vhost-ndrdisc.html"></iframe>\r
+\r
+*Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-VM-to-Phy VM\r
+vhost-user.*\r
+\r
+CSIT test cases used to generate results presented above can be found in CSIT\r
+git repository by filtering with specified regex as follows:\r
+\r
+.. code-block:: bash\r
+\r
+ $ csit/tests/perf\r
+ $ grep -E "64B-2t2c-.*vhost.*-ndrdisc" *\r
+\r
+ 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
+ 40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc07-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
+\r
+VPP NDR Throughput - running in configuration of **four worker threads (4t) on\r
+four physical cores (4c)** - is presented in the figure below.\r
+\r
+.. raw:: html\r
+\r
+ <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-4t4c-vhost-ndrdisc.html"></iframe>\r
+\r
+*Figure 3. VPP 4threads 4cores - NDR Throughput for Phy-to-VM-to-Phy VM\r
+vhost-user.*\r
+\r
+CSIT test cases used to generate results presented above can be found in CSIT\r
+git repository by filtering with specified regex as follows:\r
+\r
+.. code-block:: bash\r
+\r
+ $ csit/tests/perf\r
+ $ grep -E "64B-4t4c-.*vhost.*-ndrdisc" *\r
+\r
+ 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-ethip4-ip4base-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-ndrdisc\r
+ 10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
+ 40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc13-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc\r
+\r
+PDR Throughput\r
+~~~~~~~~~~~~~~\r
+\r
+VPP PDR Throughput - running in configuration of **one worker thread (1t) on one\r
+physical core (1c)** - is presented in the figure below. PDR at below 0.5%\r
+packet loss ratio.\r
+\r
+.. raw:: html\r
+\r
+ <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-vhost-pdrdisc.html"></iframe>\r
+\r
+*Figure 4. VPP 1thread 1core - PDR Throughput for Phy-to-VM-to-Phy VM\r
+vhost-user.*\r
+\r
+CSIT test cases used to generate results presented above can be found in CSIT\r
+git repository by filtering with specified regex as follows:\r
+\r
+.. code-block:: bash\r
+\r
+ $ csit/tests/perf\r
+ $ grep -E "64B-1t1c-.*vhost.*-pdrdisc" *\r
+\r
+ 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
+ 40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc02-64B-1t1c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
+\r
+VPP PDR Throughput - running in configuration of **two worker threads (2t) on\r
+two physical cores (2c)** - is presented in the figure below.\r
+\r
+.. raw:: html\r
+\r
+ <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-vhost-pdrdisc.html"></iframe>\r
+\r
+*Figure 5. VPP 2thread 2core - PDR Throughput for Phy-to-VM-to-Phy VM\r
+vhost-user.*\r
+\r
+CSIT test cases used to generate results presented above can be found in CSIT\r
+git repository by filtering with specified regex as follows:\r
+\r
+.. code-block:: bash\r
+\r
+ $ csit/tests/perf\r
+ $ grep -E "64B-2t2c-.*vhost.*-pdrdisc" *\r
+\r
+ 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
+ 40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc08-64B-2t2c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
+\r
+VPP PDR Throughput - running in configuration of **four worker threads (4t) on\r
+four physical cores (4c)** - is presented in the figure below.\r
+\r
+.. raw:: html\r
+\r
+ <iframe width="700" height="700" frameborder="0" scrolling="no" src="../../_static/vpp/64B-4t4c-vhost-pdrdisc.html"></iframe>\r
+\r
+*Figure 6. VPP 4thread 4core - PDR Throughput for Phy-to-VM-to-Phy VM\r
+vhost-user.*\r
+\r
+CSIT test cases used to generate results presented above can be found in CSIT\r
+git repository by filtering with specified regex as follows:\r
+\r
+.. code-block:: bash\r
+\r
+ $ csit/tests/perf\r
+ $ grep -E "64B-4t4c-.*vhost.*-pdrdisc" *\r
+\r
+ 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x520-dot1q-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-ethip4-ip4base-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-eth-l2xcbase-eth-2vhost-1vm-pdrdisc\r
+ 10ge2p1x710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
+ 40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot:| tc14-64B-4t4c-eth-l2bdbasemaclrn-eth-2vhost-1vm-pdrdisc\r
+\r