CSIT-618 CSIT rls1707 Report - Update I
[csit.git] / docs / report / vpp_performance_tests / overview.rst
index 96a9377..a28d857 100644 (file)
@@ -104,7 +104,8 @@ sensitivity to Linux kernel scheduler settings and behaviour, this estimation
 may not always yield good enough accuracy.
 
 For detailed LF FD.io test bed specification and physical topology please refer
-to `LF FDio CSIT testbed wiki page <https://wiki.fd.io/view/CSIT/CSIT_LF_testbed>`_.
+to `LF FDio CSIT testbed wiki page
+<https://wiki.fd.io/view/CSIT/CSIT_LF_testbed>`_.
 
 Performance Tests Coverage
 --------------------------
@@ -194,7 +195,7 @@ Performance Tests Naming
 ------------------------
 
 CSIT |release| follows a common structured naming convention for all
-performance and system functional tests, introduced in CSIT rls1701.
+performance and system functional tests, introduced in CSIT |release-1|.
 
 The naming should be intuitive for majority of the tests. Complete
 description of CSIT test naming convention is provided on `CSIT test naming wiki
@@ -205,43 +206,38 @@ suites:
 
 #. **Physical port to physical port - a.k.a. NIC-to-NIC, Phy-to-Phy, P2P**
 
-    - *PortNICConfig-WireEncapsulation-PacketForwardingFunction-
-      PacketProcessingFunction1-...-PacketProcessingFunctionN-TestType*
-    - *10ge2p1x520-dot1q-l2bdbasemaclrn-ndrdisc.robot* => 2 ports of 10GE on
-      Intel x520 NIC, dot1q tagged Ethernet, L2 bridge-domain baseline switching
-      with MAC learning, NDR throughput discovery.
-    - *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrchk.robot* => 2 ports of 10GE
-      on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain baseline
-      switching with MAC learning, NDR throughput discovery.
-    - *10ge2p1x520-ethip4-ip4base-ndrdisc.robot* => 2 ports of 10GE on Intel
-      x520 NIC, IPv4 baseline routed forwarding, NDR throughput discovery.
-    - *10ge2p1x520-ethip6-ip6scale200k-ndrdisc.robot* => 2 ports of 10GE on
-      Intel x520 NIC, IPv6 scaled up routed forwarding, NDR throughput
-      discovery.
+   - *PortNICConfig-WireEncapsulation-PacketForwardingFunction-
+     PacketProcessingFunction1-...-PacketProcessingFunctionN-TestType*
+   - *10ge2p1x520-dot1q-l2bdbasemaclrn-ndrdisc.robot* => 2 ports of 10GE on
+     Intel x520 NIC, dot1q tagged Ethernet, L2 bridge-domain baseline switching
+     with MAC learning, NDR throughput discovery.
+   - *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrchk.robot* => 2 ports of 10GE
+     on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain baseline
+     switching with MAC learning, NDR throughput discovery.
+   - *10ge2p1x520-ethip4-ip4base-ndrdisc.robot* => 2 ports of 10GE on Intel
+     x520 NIC, IPv4 baseline routed forwarding, NDR throughput discovery.
+   - *10ge2p1x520-ethip6-ip6scale200k-ndrdisc.robot* => 2 ports of 10GE on
+     Intel x520 NIC, IPv6 scaled up routed forwarding, NDR throughput
+     discovery.
 
 #. **Physical port to VM (or VM chain) to physical port - a.k.a. NIC2VM2NIC,
    P2V2P, NIC2VMchain2NIC, P2V2V2P**
 
-    - *PortNICConfig-WireEncapsulation-PacketForwardingFunction-
-      PacketProcessingFunction1-...-PacketProcessingFunctionN-VirtEncapsulation-
-      VirtPortConfig-VMconfig-TestType*
-    - *10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot* => 2 ports
-      of 10GE on Intel x520 NIC, dot1q tagged Ethernet, L2 bridge-domain
-      switching to/from two vhost interfaces and one VM, NDR throughput
-      discovery.
-    - *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot* => 2
-      ports of 10GE on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain
-      switching to/from two vhost interfaces and one VM, NDR throughput
-      discovery.
-    - *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-4vhost-2vm-ndrdisc.robot* => 2
-      ports of 10GE on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain
-      switching to/from four vhost interfaces and two VMs, NDR throughput
-      discovery.
-
-Methodology: TRex Traffic Generator Usage
------------------------------------------
-
-TODO Description to be added.
+   - *PortNICConfig-WireEncapsulation-PacketForwardingFunction-
+     PacketProcessingFunction1-...-PacketProcessingFunctionN-VirtEncapsulation-
+     VirtPortConfig-VMconfig-TestType*
+   - *10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot* => 2 ports
+     of 10GE on Intel x520 NIC, dot1q tagged Ethernet, L2 bridge-domain
+     switching to/from two vhost interfaces and one VM, NDR throughput
+     discovery.
+   - *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot* => 2
+     ports of 10GE on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain
+     switching to/from two vhost interfaces and one VM, NDR throughput
+     discovery.
+   - *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-4vhost-2vm-ndrdisc.robot* => 2
+     ports of 10GE on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain
+     switching to/from four vhost interfaces and two VMs, NDR throughput
+     discovery.
 
 Methodology: Multi-Thread and Multi-Core
 ----------------------------------------
@@ -318,8 +314,8 @@ Methodology: KVM VM vhost
 -------------------------
 
 CSIT |release| introduced environment configuration changes to KVM Qemu vhost-
-user tests in order to more representatively measure VPP-17.04 performance in
-configurations with vhost-user interfaces and VMs.
+user tests in order to more representatively measure |vpp-release| performance
+in configurations with vhost-user interfaces and VMs.
 
 Current setup of CSIT FD.io performance lab is using tuned settings for more
 optimal performance of KVM Qemu:
@@ -338,5 +334,58 @@ guest dealing with data plan.
 Methodology: IPSec with Intel QAT HW cards
 ------------------------------------------
 
-TODO Description to be added.
-Intel QAT 8950 50G (Walnut Hill)
\ No newline at end of file
+VPP IPSec performance tests are using DPDK cryptodev device driver in
+combination with HW cryptodev devices - Intel QAT 8950 50G - present in
+LF FD.io physical testbeds. DPDK cryptodev can be used for all IPSec
+data plane functions supported by VPP.
+
+Currently CSIT |release| implements following IPSec test cases:
+
+- AES-GCM, CBC-SHA1 ciphers, in combination with IPv4 routed-forwarding
+  with Intel xl710 NIC.
+- CBC-SHA1 ciphers, in combination with LISP-GPE overlay tunneling for
+  IPv4-over-IPv4 with Intel xl710 NIC.
+
+Methodology: TRex Traffic Generator Usage
+-----------------------------------------
+
+The `TRex traffic generator <https://wiki.fd.io/view/TRex>`_ is used for all
+CSIT performance tests. TRex stateless mode is used to measure NDR and PDR
+throughputs using binary search (NDR and PDR discovery tests) and for quick
+checks of DUT performance against the reference NDRs (NDR check tests) for
+specific configuration.
+
+TRex is installed and run on the TG compute node. The typical procedure is:
+
+- If the TRex is not already installed on TG, it is installed in the
+  suite setup phase - see `TRex intallation`_.
+- TRex configuration is set in its configuration file
+  ::
+
+  /etc/trex_cfg.yaml
+
+- TRex is started in the background mode
+  ::
+
+  $ sh -c 'cd /opt/trex-core-2.25/scripts/ && sudo nohup ./t-rex-64 -i -c 7 --iom 0 > /dev/null 2>&1 &' > /dev/null
+
+- There are traffic streams dynamically prepared for each test. The traffic
+  is sent and the statistics obtained using trex_stl_lib.api.STLClient.
+
+**Measuring packet loss**
+
+- Create an instance of STLClient
+- Connect to the client
+- Add all streams
+- Clear statistics
+- Send the traffic for defined time
+- Get the statistics
+
+If there is a warm-up phase required, the traffic is sent also before test and
+the statistics are ignored.
+
+**Measuring latency**
+
+If measurement of latency is requested, two more packet streams are created (one
+for each direction) with TRex flow_stats parameter set to STLFlowLatencyStats. In
+that case, returned statistics will also include min/avg/max latency values.