Report 1804: Centos func tests
[csit.git] / docs / report / vpp_functional_tests / test_environment.rst
index bd57558..175e518 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 based on least load algorithm 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,45 @@ 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
-**#. Ubuntu VIRL image**\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
+#. **Ubuntu VIRL image**\r
 \r
-  resources/tools/disk-image-builder/ubuntu/lists/|virl-image-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
-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
+   The exact list of installed packages and their versions (including the Linux\r
+   kernel package version) are included in `VIRL ubuntu images lists`_.\r
 \r
-**#. CentOS VIRL image**\r
+   A replica of this VM image can be built by running the :command:`build.sh`\r
+   script in CSIT repository.\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
+#. **CentOS VIRL image**\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
+   This image implies Centos 7.4-1711, current as of yyyy-mm-dd (that is,\r
+   package versions are those that would have been installed by a\r
+   :command:`yum update`, :command:`yum upgrade` on that day), produced\r
+   by CSIT disk image build scripts.\r
 \r
-  resources/tools/disk-image-builder/ubuntu/lists/|virl-image-centos|\r
+   The exact list of installed packages and their versions (including the Linux\r
+   kernel package version) are included in `VIRL centos images lists`_.\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
+   A replica of this VM image can be built by running the :command:`build.sh`\r
+   script in CSIT repository.\r
 \r
-**#. Nested VM image**\r
+#. **Nested VM image**\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
+   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
-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
-\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 +113,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
@@ -225,7 +234,7 @@ Example of DUT nodes configuration:::
 \r
 |vpp-release|\r
 \r
-**VPP Installed Packages**\r
+**VPP Installed Packages - Ubuntu**\r
 ::\r
 \r
     $ dpkg -l vpp\*\r
@@ -233,30 +242,147 @@ Example of DUT nodes configuration:::
     | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend\r
     |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)\r
     ||/ Name           Version       Architecture Description\r
-    +++-==============-=============-============-=============================================\r
-    ii  vpp            17.07-release amd64        Vector Packet Processing--executables\r
-    ii  vpp-dbg        17.07-release amd64        Vector Packet Processing--debug symbols\r
-    ii  vpp-dev        17.07-release amd64        Vector Packet Processing--development support\r
-    ii  vpp-dpdk-dev   17.07-release amd64        Vector Packet Processing--development support\r
-    ii  vpp-dpdk-dkms  17.07-release amd64        DPDK 2.1 igb_uio_driver\r
-    ii  vpp-lib        17.07-release amd64        Vector Packet Processing--runtime libraries\r
-    ii  vpp-plugins    17.07-release amd64        Vector Packet Processing--runtime plugins\r
+    +++-==============-=============-============-=================================================\r
+    ii  vpp            18.04-release amd64        Vector Packet Processing--executables\r
+    ii  vpp-dbg        18.04-release amd64        Vector Packet Processing--debug symbols\r
+    ii  vpp-dev        18.04-release amd64        Vector Packet Processing--development support\r
+    ii  vpp-dpdk-dkms  18.02-vpp1    amd64        DPDK Development Package for VPP - Kernel Modules\r
+    ii  vpp-lib        18.04-release amd64        Vector Packet Processing--runtime libraries\r
+    ii  vpp-plugins    18.04-release amd64        Vector Packet Processing--runtime plugins\r
+\r
+**VPP Installed Packages - Centos**\r
+::\r
+\r
+    $ rpm -qai vpp*\r
+    Name        : vpp\r
+    Version     : 18.04\r
+    Release     : release\r
+    Architecture: x86_64\r
+    Install Date: Fri 04 May 2018 02:47:36 AM EDT\r
+    Group       : Unspecified\r
+    Size        : 2311324\r
+    License     : ASL 2.0\r
+    Signature   : (none)\r
+    Source RPM  : vpp-18.04-release.src.rpm\r
+    Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT\r
+    Build Host  : c29a51c12e88\r
+    Relocations : (not relocatable)\r
+    Summary     : Vector Packet Processing\r
+    Description :\r
+    This package provides VPP executables: vpp, vpp_api_test, vpp_json_test\r
+    vpp - the vector packet engine\r
+    vpp_api_test - vector packet engine API test tool\r
+    vpp_json_test - vector packet engine JSON test tool\r
+    Name        : vpp-lib\r
+    Version     : 18.04\r
+    Release     : release\r
+    Architecture: x86_64\r
+    Install Date: Fri 04 May 2018 02:47:36 AM EDT\r
+    Group       : System Environment/Libraries\r
+    Size        : 24949034\r
+    License     : ASL 2.0\r
+    Signature   : (none)\r
+    Source RPM  : vpp-18.04-release.src.rpm\r
+    Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT\r
+    Build Host  : c29a51c12e88\r
+    Relocations : (not relocatable)\r
+    Summary     : VPP libraries\r
+    Description :\r
+    This package contains the VPP shared libraries, including:\r
+    vppinfra - foundation library supporting vectors, hashes, bitmaps, pools, and string formatting.\r
+    svm - vm library\r
+    vlib - vector processing library\r
+    vlib-api - binary API library\r
+    vnet -  network stack library\r
+    Name        : vpp-selinux-policy\r
+    Version     : 18.04\r
+    Release     : release\r
+    Architecture: x86_64\r
+    Install Date: Fri 04 May 2018 02:47:35 AM EDT\r
+    Group       : System Environment/Base\r
+    Size        : 86170\r
+    License     : ASL 2.0\r
+    Signature   : (none)\r
+    Source RPM  : vpp-18.04-release.src.rpm\r
+    Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT\r
+    Build Host  : c29a51c12e88\r
+    Relocations : (not relocatable)\r
+    Summary     : VPP Security-Enhanced Linux (SELinux) policy\r
+    Description :\r
+    This package contains a tailored VPP SELinux policy\r
+    Name        : vpp-devel\r
+    Version     : 18.04\r
+    Release     : release\r
+    Architecture: x86_64\r
+    Install Date: Fri 04 May 2018 02:47:38 AM EDT\r
+    Group       : Development/Libraries\r
+    Size        : 10632218\r
+    License     : ASL 2.0\r
+    Signature   : (none)\r
+    Source RPM  : vpp-18.04-release.src.rpm\r
+    Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT\r
+    Build Host  : c29a51c12e88\r
+    Relocations : (not relocatable)\r
+    Summary     : VPP header files, static libraries\r
+    Description :\r
+    This package contains the header files for VPP.\r
+    Install this package if you want to write a\r
+    program for compilation and linking with vpp lib.\r
+    vlib\r
+    vlibmemory\r
+    vnet - devices, classify, dhcp, ethernet flow, gre, ip, etc.\r
+    vpp-api\r
+    vppinfra\r
+    Name        : vpp-plugins\r
+    Version     : 18.04\r
+    Release     : release\r
+    Architecture: x86_64\r
+    Install Date: Fri 04 May 2018 02:47:37 AM EDT\r
+    Group       : System Environment/Libraries\r
+    Size        : 44145968\r
+    License     : ASL 2.0\r
+    Signature   : (none)\r
+    Source RPM  : vpp-18.04-release.src.rpm\r
+    Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT\r
+    Build Host  : c29a51c12e88\r
+    Relocations : (not relocatable)\r
+    Summary     : Vector Packet Processing--runtime plugins\r
+    Description :\r
+    This package contains VPP plugins\r
 \r
 **VPP Startup Configuration**\r
 \r
-VPP startup configuration is common for all test cases.\r
+VPP startup configuration is common for all test cases except test cases related\r
+to SW Crypto device.\r
+\r
+**Default**\r
 \r
 ::\r
 \r
     $ cat /etc/vpp/startup.conf\r
     unix {\r
       nodaemon\r
-      log /tmp/vpp.log\r
+      log /var/log/vpp/vpp.log\r
       full-coredump\r
+      cli-listen /run/vpp/cli.sock\r
+      gid vpp\r
     }\r
 \r
     api-trace {\r
+    ## This stanza controls binary API tracing. Unless there is a very strong reason,\r
+    ## please leave this feature enabled.\r
       on\r
+    ## Additional parameters:\r
+    ##\r
+    ## To set the number of binary API trace records in the circular buffer, configure nitems\r
+    ##\r
+    ## nitems <nnn>\r
+    ##\r
+    ## To save the api message table decode tables, configure a filename. Results in /tmp/<filename>\r
+    ## Very handy for understanding api message changes between versions, identifying missing\r
+    ## plugins, and so forth.\r
+    ##\r
+    ## save-api-table <filename>\r
     }\r
 \r
     api-segment {\r
@@ -299,7 +425,7 @@ VPP startup configuration is common for all test cases.
         # scheduler-priority 50\r
     }\r
 \r
-    dpdk {\r
+    dpdk {\r
         ## Change default settings for all intefaces\r
         # dev default {\r
             ## Number of receive queues, enables RSS\r
@@ -330,9 +456,19 @@ VPP startup configuration is common for all test cases.
         #      num-rx-queues 2\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
+        ## Specify bonded interface and its slaves via PCI addresses\r
+        ##\r
+        ## Bonded interface in XOR load balance mode (mode 2) with L3 and L4 headers\r
+        # vdev eth_bond0,mode=2,slave=0000:02:00.0,slave=0000:03:00.0,xmit_policy=l34\r
+        # vdev eth_bond1,mode=2,slave=0000:02:00.1,slave=0000:03:00.1,xmit_policy=l34\r
+        ##\r
+        ## Bonded interface in Active-Back up mode (mode 1)\r
+        # vdev eth_bond0,mode=1,slave=0000:02:00.0,slave=0000:03:00.0\r
+        # vdev eth_bond1,mode=1,slave=0000:02:00.1,slave=0000:03:00.1\r
+\r
+        ## Change UIO driver used by VPP, Options are: igb_uio, vfio-pci,\r
+        ## uio_pci_generic or auto (default)\r
+        # uio-driver vfio-pci\r
 \r
         ## Disable mutli-segment buffers, improves performance but\r
         ## disables Jumbo MTU support\r
@@ -340,12 +476,57 @@ VPP startup configuration is common for all test cases.
 \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
+        ## Default is 16384\r
         # num-mbufs 128000\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
+\r
+        ## Disables UDP / TCP TX checksum offload. Typically needed for use\r
+        ## faster vector PMDs (together with no-multi-seg)\r
+        # no-tx-checksum-offload\r
+    # }\r
+\r
+\r
+    # plugins {\r
+        ## Adjusting the plugin path depending on where the VPP plugins are\r
+        #      path /home/bms/vpp/build-root/install-vpp-native/vpp/lib64/vpp_plugins\r
+\r
+        ## Disable all plugins by default and then selectively enable specific plugins\r
+        # plugin default { disable }\r
+        # plugin dpdk_plugin.so { enable }\r
+        # plugin acl_plugin.so { enable }\r
+\r
+        ## Enable all plugins by default and then selectively disable specific plugins\r
+        # plugin dpdk_plugin.so { disable }\r
+        # plugin acl_plugin.so { disable }\r
+    # }\r
+\r
+        ## Alternate syntax to choose plugin path\r
+        # plugin_path /home/bms/vpp/build-root/install-vpp-native/vpp/lib64/vpp_plugins\r
+\r
+**SW Crypto Device**\r
+\r
+::\r
+\r
+    $ cat /etc/vpp/startup.conf\r
+    unix\r
+    {\r
+      cli-listen /run/vpp/cli.sock\r
+      gid vpp\r
+      nodaemon\r
+      full-coredump\r
+      log /tmp/vpp.log\r
+    }\r
+    api-segment\r
+    {\r
+      gid vpp\r
+    }\r
+    dpdk\r
+    {\r
+      vdev cryptodev_aesni_gcm_pmd,socket_id=0\r
+      vdev cryptodev_aesni_mb_pmd,socket_id=0\r
     }\r
 \r
 TG Configuration\r
@@ -358,7 +539,7 @@ 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
@@ -374,9 +555,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