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
10 Brief overview of test scenarios covered in this report:
12 #. **VPP Performance**: VPP performance tests are executed in physical
13 FD.io testbeds, focusing on VPP network data plane performance in
14 NIC-to-NIC switching topologies. Tested across Intel Xeon Haswell
15 and Skylake servers, ARM, Denverton, range of NICs (10GE, 25GE, 40GE) and
16 multi-thread/multi-core configurations. VPP application runs in bare-metal
17 host user-mode handling NICs. TRex is used as a traffic generator.
19 #. **VPP Vhostuser Performance with KVM VMs**: VPP VM service switching
20 performance tests using vhostuser virtual interface for
21 interconnecting multiple NF-in-VM instances. VPP vswitch
22 instance runs in bare-metal user-mode handling NICs and connecting
23 over vhost-user interfaces to VM instances each running VPP with virtio
24 virtual interfaces. Similarly to VPP Performance, tests are run across a
25 range of configurations. TRex is used as a traffic generator.
27 #. **VPP Memif Performance with LXC and Docker Containers**: VPP
28 Container service switching performance tests using memif virtual
29 interface for interconnecting multiple VPP-in-container instances.
30 VPP vswitch instance runs in bare-metal user-mode handling NICs and
31 connecting over memif (Slave side) interfaces to more instances of
32 VPP running in LXC or in Docker Containers, both with memif
33 interfaces (Master side). Similarly to VPP Performance, tests are
34 run across a range of configurations. TRex is used as a traffic
37 #. **DPDK Performance**: VPP uses DPDK to drive the NICs and physical
38 interfaces. DPDK performance tests are used as a baseline to
39 profile performance of the DPDK sub-system. Two DPDK applications
40 are tested: Testpmd and L3fwd. DPDK tests are executed in the same
41 testing environment as VPP tests. DPDK Testpmd and L3fwd
42 applications run in host user-mode. TRex is used as a traffic
45 #. **VPP Functional**: VPP functional tests are executed in virtual
46 FD.io testbeds, focusing on VPP packet processing functionality,
47 including both network data plane and in-line control plane. Tests
48 cover vNIC-to-vNIC vNIC-to-nestedVM-to-vNIC forwarding topologies.
49 Scapy is used as a traffic generator.
52 #. **Honeycomb Functional**: Honeycomb functional tests are executed in
53 virtual FD.io testbeds, focusing on Honeycomb management and
54 programming functionality of VPP. Tests cover a range of CRUD
55 operations executed against VPP.
56 #. **DMM Functional**: DMM functional tests are executed in virtual
57 FD.io testbeds demonstrating a single server (DUT1) and single
58 client (DUT2) scenario using DMM framework and Linux kernel TCP/IP
60 #. **K8s Container/Pod Topologies Performance**: VPP container
61 performance tests using memif for interconnecting VPP-in-
62 Container/Pod instances orchestrated by K8s integrated with `Ligato
63 <https://github.com/ligato>`_ for container networking. TRex is
64 used as a traffic generator.
65 #. **NSH_SFC Functional**: NSH_SFC functional tests are executed in
66 virtual FD.io testbeds focusing on VPP nsh-plugin data plane
67 functionality. Scapy is used as a traffic generator.
69 All CSIT test data included in this report is auto-
70 generated from :abbr:`RF (Robot Framework)` :file:`output.xml` files
71 produced by :abbr:`LF (Linux Foundation)` FD.io Jenkins jobs executed
72 against |vpp-release| artifacts. References are provided to the
73 original FD.io Jenkins job results and all archived source files.
75 FD.io CSIT system is developed using two main coding platforms: :abbr:`RF (Robot
76 Framework)` and Python2.7. |csit-release| source code for the executed test
77 suites is available in CSIT branch |release| in the directory
78 :file:`./tests/<name_of_the_test_suite>`. A local copy of CSIT source code
79 can be obtained by cloning CSIT git repository - :command:`git clone
80 https://gerrit.fd.io/r/csit`.