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