80c91313879fb19b94b2e6f2ff6817b48c243fba
[csit.git] / docs / report / vpp_functional_tests / overview.rst
1 Overview
2 ========
3
4 Virtual Topologies
5 ------------------
6
7 CSIT VPP functional tests are executed on virtualized topologies created using
8 :abbr:`VIRL (Virtual Internet Routing Lab)` simulation platform contributed by
9 Cisco. VIRL runs on physical baremetal servers hosted by LF FD.io project.
10 Based on the packet path thru server SUTs, two distinct logical topology types
11 are used for VPP DUT data plane testing:
12
13 #. NIC-to-NIC switching topologies.
14 #. VM service switching topologies.
15
16 NIC-to-NIC Switching
17 ~~~~~~~~~~~~~~~~~~~~
18
19 The simplest logical topology for software data plane application like
20 VPP is NIC-to-NIC switching. Tested topologies for 2-Node and 3-Node
21 testbeds are shown in figures below.
22
23 .. only:: latex
24
25     .. raw:: latex
26
27         \begin{figure}[H]
28         \centering
29             \includesvg[width=0.90\textwidth]{../_tmp/src/vpp_performance_tests/logical-2n-nic2nic}
30             \label{fig:logical-2n-nic2nic}
31         \end{figure}
32
33 .. only:: html
34
35     .. figure:: ../vpp_performance_tests/logical-2n-nic2nic.svg
36         :alt: logical-2n-nic2nic
37         :align: center
38
39
40 .. only:: latex
41
42     .. raw:: latex
43
44         \begin{figure}[H]
45         \centering
46             \includesvg[width=0.90\textwidth]{../_tmp/src/vpp_performance_tests/logical-3n-nic2nic}
47             \label{fig:logical-3n-nic2nic}
48         \end{figure}
49
50 .. only:: html
51
52     .. figure:: ../vpp_performance_tests/logical-3n-nic2nic.svg
53         :alt: logical-3n-nic2nic
54         :align: center
55
56 SUT1 and SUT2 are two VMs (Ubuntu or Centos, depending on the test suite), TG
57 is a Traffic Generator (TG, another Ubuntu VM). SUTs run VPP SW application in
58 Linux user-mode as a Device Under Test (DUT) within the VM. TG runs Scapy SW
59 application as a packet Traffic Generator. Logical connectivity between SUTs
60 and to TG is provided using virtual NICs using VMs' virtio driver.
61
62 Virtual testbeds are created on-demand whenever a verification job is started
63 (e.g. triggered by the gerrit patch submission) and destroyed upon completion
64 of all functional tests. Each node is a Virtual Machine and each connection
65 that is drawn on the diagram is available for use in any test case. During the
66 test execution, all nodes are reachable thru the Management network connected
67 to every node via dedicated virtual NICs and virtual links (not shown above
68 for clarity).
69
70 VM Service Switching
71 ~~~~~~~~~~~~~~~~~~~~
72
73 VM service switching topology test cases require VPP DUT to communicate
74 with Virtual Machines (VMs) over vhost-user virtual interfaces. A nested VM is
75 created on SUT1 and/or SUT2 for the duration of these particular test cases
76 only. DUT (VPP) test topology with VM is shown in the figure below.
77
78 .. only:: latex
79
80     .. raw:: latex
81
82         \begin{figure}[H]
83         \centering
84             \includesvg[width=0.90\textwidth]{../_tmp/src/vpp_performance_tests/logical-2n-vm-vhost}
85             \label{fig:logical-2n-vm-vhost}
86         \end{figure}
87
88 .. only:: html
89
90     .. figure:: ../vpp_performance_tests/logical-2n-vm-vhost.svg
91         :alt: logical-2n-vm-vhost
92         :align: center
93
94
95 .. only:: latex
96
97     .. raw:: latex
98
99         \begin{figure}[H]
100         \centering
101             \includesvg[width=0.90\textwidth]{../_tmp/src/vpp_performance_tests/logical-3n-vm-vhost}
102             \label{fig:logical-3n-vm-vhost}
103         \end{figure}
104
105 .. only:: html
106
107     .. figure:: ../vpp_performance_tests/logical-3n-vm-vhost.svg
108         :alt: logical-3n-vm-vhost
109         :align: center
110
111 Functional Tests Coverage
112 -------------------------
113
114 Following VPP functional test areas are covered in the |csit-release| with
115 results listed in this report:
116
117 - **DHCP - Client and Proxy** - Dynamic Host Control Protocol Client and Proxy
118   for IPv4, IPv6.
119 - **GRE Overlay Tunnels** - Generic Routing Encapsulation for IPv4.
120 - **L2BD Ethernet Switching** - L2 Bridge-Domain switched-forwarding for
121   untagged Ethernet, dot1q and dot1ad tagged.
122 - **L2XC Ethernet Switching** - L2 Cross-Connect switched-forwarding for
123   untagged Ethernet, dot1q and dot1ad tagged.
124 - **LISP Overlay Tunnels** - Locator/ID Separation Protocol overlay tunnels and
125   locator/id mapping control.
126 - **Softwire Tunnels** - IPv4-in-IPv6 softwire tunnels.
127 - **Cop Address Security** - address white-list and black-list filtering for
128   IPv4, IPv6.
129 - **IPSec - Tunnels and Transport** - IPSec tunnel and transport modes.
130 - **IPv6 Routed-Forwarding** - IPv6 routed-forwarding, NS/ND, RA, ICMPv6.
131 - **uRPF Source Security** - unicast Reverse Path Forwarding security.
132 - **Tap Interface** - baseline Linux tap interface tests.
133 - **Telemetry - IPFIX and SPAN** - IPFIX netflow statistics and SPAN port
134   mirroring.
135 - **VRF Routed-Forwarding** - multi-context IPVPN routed-forwarding for IPv4,
136   IPv6.
137 - **iACL Security** - ingress Access Control List security for IPv4, IPv6, MAC.
138 - **IPv4 Routed-Forwarding** - IPv4 routed-forwarding, RPF, ARP, Proxy ARP,
139   ICMPv4.
140 - **QoS Policer Metering** - ingress packet rate measuring and marking for IPv4,
141   IPv6.
142 - **VLAN Tag Translation** - L2 VLAN tag translation 2to2, 2to1, 1to2, 1to1.
143 - **VXLAN Overlay Tunnels** - VXLAN tunneling for L2-over-IP, for IPv4, IPv6.
144
145 Functional Tests Naming
146 -----------------------
147
148 |csit-release| follows a common structured naming convention for all performance
149 and system functional tests, introduced in CSIT-17.01.
150
151 The naming should be intuitive for majority of the tests. Complete description
152 of CSIT test naming convention is provided on :ref:`csit_test_naming`.