CSIT 1801 report update
[csit.git] / docs / report / vpp_functional_tests / test_environment.rst
index 8add531..5b29b2d 100644 (file)
@@ -2,34 +2,48 @@ Test Environment
 ================\r
 \r
 CSIT functional tests are currently executed in FD.IO VIRL testbed. The physical\r
-VIRL testbed infrastructure consists of three identical VIRL hosts:\r
+VIRL testbed infrastructure consists of three VIRL hosts:\r
 \r
 - All hosts are Cisco UCS C240-M4 (2x Intel(R) Xeon(R) CPU E5-2699 v3 @2.30GHz,\r
   18c, 512GB RAM)\r
-- Hosts run Ubuntu 14.04.3\r
-- VIRL software versions:\r
 \r
-  - STD server version 0.10.24.7\r
-  - UWM server version 0.10.24.7\r
+- tb4-virl1:\r
+\r
+  - Status: Production\r
+  - OS: Ubuntu 16.04.2\r
+  - STD server version 0.10.32.16\r
+  - UWM server version 0.10.32.16\r
+\r
+- tb4-virl2:\r
+\r
+  - Status: Production\r
+  - OS: Ubuntu 16.04.2\r
+  - STD server version 0.10.32.16\r
+  - UWM server version 0.10.32.16\r
+\r
+- tb4-virl3:\r
+\r
+  - Status: Testing\r
+  - OS: Ubuntu 16.04.2\r
+  - STD server version 0.10.32.19\r
+  - UWM server version 0.10.32.19\r
 \r
 Whenever a patch is submitted to gerrit for review, parallel VIRL simulations\r
 are started to reduce the time of execution of all functional tests. The number\r
 of parallel VIRL simulations is equal to number of test groups defined by\r
-TEST_GROUPS variable in csit/bootstrap.sh file. The VIRL host to run VIRL\r
-simulation is selected randomly per VIRL simulation.\r
+TEST_GROUPS variable in :file:`csit/bootstrap.sh` file. The VIRL host to run\r
+VIRL simulation is selected based on least load algorithm per VIRL simulation.\r
 \r
 Every VIRL simulation uses the same three-node - Traffic Generator (TG node) and\r
 two Systems Under Test (SUT1 and SUT2) - "double-ring" topology. The appropriate\r
 pre-built VPP packages built by Jenkins for the patch under review are then\r
-installed on the two SUTs, along with their /etc/vpp/startup.conf file, in all\r
-VIRL simulations.\r
+installed on the two SUTs, along with their :file:`/etc/vpp/startup.conf` file,\r
+in all VIRL simulations.\r
 \r
 SUT Configuration - VIRL Guest VM\r
 ---------------------------------\r
 \r
-Configuration of the SUT VMs is defined in file\r
-\r
-   /csit/resources/tools/virl/topologies/double-ring-nested.xenial.virl\r
+Configurations of the SUT VMs is defined in `VIRL topologies directory`_\r
 \r
 - List of SUT VM interfaces:::\r
 \r
@@ -50,48 +64,43 @@ SUT Configuration - VIRL Guest OS Linux
 In CSIT terminology, the VM operating system for both SUTs that |vpp-release| has\r
 been tested with, is the following:\r
 \r
-**#. |virl-image-ubuntu|**\r
-\r
-This image implies Ubuntu 16.04.1 LTS, current as of yyyy-mm-dd (that is,\r
-package versions are those that would have been installed by a "apt-get update",\r
-"apt-get upgrade" on that day), produced by CSIT disk image build scripts.\r
-\r
-The exact list of installed packages and their versions (including the Linux\r
-kernel package version) are included in CSIT source repository:\r
-\r
-  resources/tools/disk-image-builder/ubuntu/lists/|virl-image-ubuntu|\r
+#. **Ubuntu VIRL image**\r
 \r
-A replica of this VM image can be built by running the "build.sh" script in CSIT\r
-repository resources/tools/disk-image-builder/ubuntu.\r
+   This image implies Ubuntu 16.04.1 LTS, current as of yyyy-mm-dd (that is,\r
+   package versions are those that would have been installed by a\r
+   :command:`apt-get update`, :command:`apt-get upgrade` on that day), produced\r
+   by CSIT disk image build scripts.\r
 \r
-**#. |virl-image-centos|**\r
+   The exact list of installed packages and their versions (including the Linux\r
+   kernel package version) are included in `VIRL images lists`_.\r
 \r
-The Centos7.3 image is ready to be used but no tests running on it now.\r
-Corresponding Jenkins jobs are under preparation.\r
+   A replica of this VM image can be built by running the :command:`build.sh`\r
+   script in CSIT repository.\r
 \r
-The exact list of installed packages and their versions (including the Linux\r
-kernel package version) are included in CSIT source repository:\r
+#. **CentOS VIRL image**\r
 \r
-  resources/tools/disk-image-builder/ubuntu/lists/|virl-image-centos|\r
+   The Centos7.3 image is ready to be used but no tests running on it now.\r
+   Corresponding Jenkins jobs are under preparation.\r
 \r
-A replica of this VM image can be built by running the "build.sh" script in CSIT\r
-repository resources/tools/disk-image-builder/centos.\r
+   The exact list of installed packages and their versions (including the Linux\r
+   kernel package version) are included in `VIRL images lists`_.\r
 \r
-**#. Nested VM image**\r
+   A replica of this VM image can be built by running the :command:`build.sh`\r
+   script in CSIT repository.\r
 \r
-In addition to the "main" VM image, tests which require VPP to communicate to a\r
-VM over a vhost-user interface, utilize a "nested" VM image.\r
+#. **Nested VM image**\r
 \r
-This "nested" VM is dynamically created and destroyed as part of a test case,\r
-and therefore the "nested" VM image is optimized to be small, lightweight and\r
-have a short boot time. The "nested" VM image is not built around any\r
-established Linux distribution, but is based on BuildRoot\r
-(https://buildroot.org/), a tool for building embedded Linux systems. Just as\r
-for the "main" image, scripts to produce an identical replica of the "nested"\r
-image are included in CSIT GIT repository, and the image can be rebuilt using\r
-the "build.sh" script at:\r
+   In addition to the "main" VM image, tests which require VPP to communicate to\r
+   a VM over a vhost-user interface, utilize a "nested" VM image.\r
 \r
-   resources/tools/disk-image-builder/ubuntu/lists/nested\r
+   This "nested" VM is dynamically created and destroyed as part of a test case,\r
+   and therefore the "nested" VM image is optimized to be small, lightweight and\r
+   have a short boot time. The "nested" VM image is not built around any\r
+   established Linux distribution, but is based on `BuildRoot\r
+   <https://buildroot.org/>`_, a tool for building embedded Linux systems. Just\r
+   as for the "main" image, scripts to produce an identical replica of the\r
+   "nested" image are included in CSIT GIT repository, and the image can be\r
+   rebuilt using the "build.sh" script at `VIRL nested`_.\r
 \r
 DUT Configuration - VPP\r
 -----------------------\r
@@ -102,9 +111,7 @@ Under Test (DUT) node.
 **DUT port configuration**\r
 \r
 Port configuration of DUTs is defined in topology file that is generated per\r
-VIRL simulation based on the definition stored in file\r
-\r
-   /csit/resources/tools/virl/topologies/double-ring-nested.xenial.yaml\r
+VIRL simulation based on the definition stored in `VIRL topologies directory`_.\r
 \r
 Example of DUT nodes configuration:::\r
 \r
@@ -146,7 +153,7 @@ Example of DUT nodes configuration:::
           EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD\r
           BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN\r
           -----END RSA PRIVATE KEY-----\r
-          \r
+\r
         interfaces:\r
           port1:\r
             mac_address: "fa:16:3e:9b:89:52"\r
@@ -202,7 +209,7 @@ Example of DUT nodes configuration:::
           EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD\r
           BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN\r
           -----END RSA PRIVATE KEY-----\r
-          \r
+\r
         interfaces:\r
           port1:\r
             mac_address: "fa:16:3e:ad:6c:7d"\r
@@ -245,6 +252,7 @@ Example of DUT nodes configuration:::
 **VPP Startup Configuration**\r
 \r
 VPP startup configuration is common for all test cases.\r
+\r
 ::\r
 \r
     $ cat /etc/vpp/startup.conf\r
@@ -253,95 +261,95 @@ VPP startup configuration is common for all test cases.
       log /tmp/vpp.log\r
       full-coredump\r
     }\r
-    \r
+\r
     api-trace {\r
       on\r
     }\r
-    \r
+\r
     api-segment {\r
       gid vpp\r
     }\r
-    \r
+\r
     cpu {\r
         ## In the VPP there is one main thread and optionally the user can create worker(s)\r
         ## The main thread and worker thread(s) can be pinned to CPU core(s) manually or automatically\r
-    \r
+\r
         ## Manual pinning of thread(s) to CPU core(s)\r
-    \r
+\r
         ## Set logical CPU core where main thread runs\r
         # main-core 1\r
-    \r
+\r
         ## Set logical CPU core(s) where worker threads are running\r
         # corelist-workers 2-3,18-19\r
-    \r
+\r
         ## Automatic pinning of thread(s) to CPU core(s)\r
-    \r
+\r
         ## Sets number of CPU core(s) to be skipped (1 ... N-1)\r
         ## Skipped CPU core(s) are not used for pinning main thread and working thread(s).\r
         ## The main thread is automatically pinned to the first available CPU core and worker(s)\r
         ## are pinned to next free CPU core(s) after core assigned to main thread\r
         # skip-cores 4\r
-    \r
+\r
         ## Specify a number of workers to be created\r
         ## Workers are pinned to N consecutive CPU cores while skipping "skip-cores" CPU core(s)\r
         ## and main thread's CPU core\r
         # workers 2\r
-    \r
+\r
         ## Set scheduling policy and priority of main and worker threads\r
-    \r
+\r
         ## Scheduling policy options are: other (SCHED_OTHER), batch (SCHED_BATCH)\r
         ## idle (SCHED_IDLE), fifo (SCHED_FIFO), rr (SCHED_RR)\r
         # scheduler-policy fifo\r
-    \r
+\r
         ## Scheduling priority is used only for "real-time policies (fifo and rr),\r
         ## and has to be in the range of priorities supported for a particular policy\r
         # scheduler-priority 50\r
     }\r
-    \r
+\r
     dpdk {\r
         ## Change default settings for all intefaces\r
         # dev default {\r
             ## Number of receive queues, enables RSS\r
             ## Default is 1\r
             # num-rx-queues 3\r
-    \r
+\r
             ## Number of transmit queues, Default is equal\r
             ## to number of worker threads or 1 if no workers treads\r
             # num-tx-queues 3\r
-    \r
+\r
             ## Number of descriptors in transmit and receive rings\r
             ## increasing or reducing number can impact performance\r
             ## Default is 1024 for both rx and tx\r
             # num-rx-desc 512\r
             # num-tx-desc 512\r
-    \r
+\r
             ## VLAN strip offload mode for interface\r
             ## Default is off\r
             # vlan-strip-offload on\r
         # }\r
-    \r
+\r
         ## Whitelist specific interface by specifying PCI address\r
         # dev 0000:02:00.0\r
-    \r
+\r
         ## Whitelist specific interface by specifying PCI address and in\r
         ## addition specify custom parameters for this interface\r
         # dev 0000:02:00.1 {\r
         #      num-rx-queues 2\r
         # }\r
-    \r
+\r
         ## Change UIO driver used by VPP, Options are: uio_pci_generic, vfio-pci\r
         ## and igb_uio (default)\r
         # uio-driver uio_pci_generic\r
-    \r
+\r
         ## Disable mutli-segment buffers, improves performance but\r
         ## disables Jumbo MTU support\r
         # no-multi-seg\r
-    \r
+\r
         ## Increase number of buffers allocated, needed only in scenarios with\r
         ## large number of interfaces and worker threads. Value is per CPU socket.\r
         ## Default is 32768\r
         # num-mbufs 128000\r
-    \r
+\r
         ## Change hugepages allocation per-socket, needed only if there is need for\r
         ## larger number of mbufs. Default is 256M on each detected CPU socket\r
         # socket-mem 2048,2048\r
@@ -357,10 +365,10 @@ Traffic scripts of test cases are executed on this VM.
 \r
 **TG VM configuration**\r
 \r
-Configuration of the TG VMs is defined in file\r
+Configuration of the TG VMs is defined in `VIRL topologies directory`_.\r
 \r
    /csit/resources/tools/virl/topologies/double-ring-nested.xenial.virl\r
-   \r
+\r
 - List of TG VM interfaces:::\r
 \r
     <interface id="0" name="eth1"/>\r
@@ -373,9 +381,7 @@ Configuration of the TG VMs is defined in file
 **TG node port configuration**\r
 \r
 Port configuration of TG is defined in topology file that is generated per VIRL\r
-simulation based on the definition stored in file\r
-\r
-   /csit/resources/tools/virl/topologies/double-ring-nested.xenial.yaml\r
+simulation based on the definition stored in `VIRL topologies directory`_.\r
 \r
 Example of TG node configuration:::\r
 \r
@@ -412,7 +418,7 @@ Example of TG node configuration:::
           EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD\r
           BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN\r
           -----END RSA PRIVATE KEY-----\r
-          \r
+\r
         interfaces:\r
           port3:\r
             mac_address: "fa:16:3e:b9:e1:27"\r