report 18.07: draft v0.9 editorial nit-picking.
[csit.git] / docs / report / introduction / test_scenarios_overview.rst
1 Test Scenarios Overview
2 =======================
3
4 FD.io |csit-release| report includes multiple test scenarios of VPP
5 centric applications, topologies and use cases. In addition it also
6 covers baseline tests of DPDK sample applications. Tests are executed in
7 physical (performance tests) and virtual environments (functional
8 tests).
9
10 Following list provides a brief overview of test scenarios covered in
11 this report:
12
13 #. **VPP Performance**: VPP performance tests are executed in physical
14    FD.io testbeds, focusing on VPP network data plane performance in
15    NIC-to-NIC switching topologies. Tested across Intel Xeon Haswell
16    and Skylake servers, range of NICs (10GE, 25GE, 40GE) and multi-
17    thread/multi-core configurations. VPP application runs in bare-metal
18    host user-mode handling NICs. TRex is used as a traffic generator.
19
20 #. **VPP Vhostuser Performance with KVM VMs**: VPP VM service switching
21    performance tests using vhostuser virtual interface for
22    interconnecting multiple Testpmd-in-VM instances. VPP vswitch
23    instance runs in bare-metal user-mode handling NICs and connecting
24    over vhost-user interfaces to VM instances each running DPDK
25    Testpmd with virtio virtual interfaces. Similarly to VPP
26    Performance, tests are run across a range of configurations. TRex
27    is used as a traffic generator.
28
29 #. **VPP Memif Performance with LXC and Docker Containers**: VPP
30    Container service switching performance tests using memif virtual
31    interface for interconnecting multiple VPP-in-container instances.
32    VPP vswitch instance runs in bare-metal user-mode handling NICs and
33    connecting over memif (Slave side) interfaces to more instances of
34    VPP running in LXC or in Docker Containers, both with memif
35    interfaces (Master side). Similarly to VPP Performance, tests are
36    run across a range of configurations. TRex is used as a traffic
37    generator.
38
39 #. **K8s Container/Pod Topologies Performance**: VPP container
40    performance tests using memif for interconnecting VPP-in-
41    Container/Pod instances orchestrated by K8s integrated with `Ligato
42    <https://github.com/ligato>`_ for container networking. TRex is
43    used as a traffic generator.
44
45 #. **DPDK Performance**: VPP uses DPDK to drive the NICs and physical
46    interfaces. DPDK performance tests are used as a baseline to
47    profile performance of the DPDK sub-system. Two DPDK applications
48    are tested: Testpmd and L3fwd. DPDK tests are executed in the same
49    testing environment as VPP tests. DPDK Testpmd and L3fwd
50    applications run in host user-mode. TRex is used as a traffic
51    generator.
52
53 #. **VPP Functional**: VPP functional tests are executed in virtual
54    FD.io testbeds, focusing on VPP packet processing functionality,
55    including both network data plane and in-line control plane. Tests
56    cover vNIC-to-vNIC vNIC-to-nestedVM-to-vNIC forwarding topologies.
57    Scapy is used as a traffic generator.
58
59 #. **Honeycomb Functional**: Honeycomb functional tests are executed in
60    virtual FD.io testbeds, focusing on Honeycomb management and
61    programming functionality of VPP. Tests cover a range of CRUD
62    operations executed against VPP.
63
64 #. **NSH_SFC Functional**: NSH_SFC functional tests are executed in
65    virtual FD.io testbeds focusing on VPP nsh-plugin data plane
66    functionality. Scapy is used as a traffic generator.
67
68 #. **DMM Functional**: DMM functional tests are executed in virtual
69    FD.io testbeds demonstrating a single server (DUT1) and single
70    client (DUT2) scenario using DMM framework and Linux kernel TCP/IP
71    stack.
72
73 All CSIT test results listed in this report are sourced and auto-
74 generated from :abbr:`RF (Robot Framework)` :file:`output.xml` files
75 resulting from :abbr:`LF (Linux Foundation)` FD.io Jenkins jobs executed
76 against |vpp-release| release artifacts. References are provided to the
77 original FD.io Jenkins job results. Additional references are provided
78 to the :abbr:`RF (Robot Framework)` result files that got archived in
79 FD.io Nexus online storage system.
80
81 FD.io CSIT system is developed using two main coding platforms: :abbr:`RF (Robot
82 Framework)` and Python2.7. |csit-release| source code for the executed test
83 suites is available in CSIT branch |release| in the directory
84 :file:`./tests/<name_of_the_test_suite>`. A local copy of CSIT source code
85 can be obtained by cloning CSIT git repository - :command:`git clone
86 https://gerrit.fd.io/r/csit`.