From c2ce046f71f7de1f247be68513e3d4e10c8c2a04 Mon Sep 17 00:00:00 2001 From: Maciek Konstantynowicz Date: Tue, 14 Aug 2018 17:30:45 +0100 Subject: 1807 report: updated virtual topologies for all functional tests. Change-Id: I3053c7a9733ca7c03df993698472ad8d031dba96 Signed-off-by: Maciek Konstantynowicz --- docs/report/vpp_functional_tests/overview.rst | 211 ++-- .../vpp_functional_tests/virtual-2n-nic2nic.svg | 315 ++++++ .../vpp_functional_tests/virtual-3n-nic2nic.svg | 452 ++++++++ .../vpp_functional_tests/virtual-3n-vm-vhost.svg | 1110 ++++++++++++++++++++ 4 files changed, 1989 insertions(+), 99 deletions(-) create mode 100644 docs/report/vpp_functional_tests/virtual-2n-nic2nic.svg create mode 100644 docs/report/vpp_functional_tests/virtual-3n-nic2nic.svg create mode 100644 docs/report/vpp_functional_tests/virtual-3n-vm-vhost.svg (limited to 'docs/report/vpp_functional_tests') diff --git a/docs/report/vpp_functional_tests/overview.rst b/docs/report/vpp_functional_tests/overview.rst index 035696dc77..8ce516cf3d 100644 --- a/docs/report/vpp_functional_tests/overview.rst +++ b/docs/report/vpp_functional_tests/overview.rst @@ -4,39 +4,23 @@ Overview Virtual Topologies ------------------ -CSIT VPP functional tests are executed on virtualized topologies created using -:abbr:`VIRL (Virtual Internet Routing Lab)` simulation platform contributed by -Cisco. VIRL runs on physical baremetal servers hosted by LF FD.io project. -Based on the packet path thru server SUTs, two distinct logical topology types -are used for VPP DUT data plane testing: +CSIT VPP functional tests are executed in VM-based virtual topologies +created on demand using :abbr:`VIRL (Virtual Internet Routing Lab)` +simulation platform contributed by Cisco. VIRL runs on physical +baremetal servers hosted by LF FD.io project. -#. NIC-to-NIC switching topologies. -#. VM service switching topologies. +Based on the packet path thru SUT VMs, two distinct logical topology +types are used for VPP DUT data plane testing: -NIC-to-NIC Switching -~~~~~~~~~~~~~~~~~~~~ +#. vNIC-to-vNIC switching topologies. +#. Nested-VM service switching topologies. -The simplest logical topology for software data plane application like -VPP is NIC-to-NIC switching. Tested topologies for 2-Node and 3-Node -testbeds are shown in figures below. - -.. only:: latex - - .. raw:: latex - - \begin{figure}[H] - \centering - \graphicspath{{../_tmp/src/vpp_performance_tests/}} - \includegraphics[width=0.90\textwidth]{logical-2n-nic2nic} - \label{fig:logical-2n-nic2nic} - \end{figure} - -.. only:: html - - .. figure:: ../vpp_performance_tests/logical-2n-nic2nic.svg - :alt: logical-2n-nic2nic - :align: center +vNIC-to-vNIC Switching +~~~~~~~~~~~~~~~~~~~~~~ +The simplest virtual topology for software data plane application like +VPP is vNIC-to-vNIC switching. Tested virtual topologies for 2-Node and +3-Node testbeds are shown in figures below. .. only:: latex @@ -44,38 +28,17 @@ testbeds are shown in figures below. \begin{figure}[H] \centering - \graphicspath{{../_tmp/src/vpp_performance_tests/}} - \includegraphics[width=0.90\textwidth]{logical-3n-nic2nic} - \label{fig:logical-3n-nic2nic} + \graphicspath{{../_tmp/src/vpp_functional_tests/}} + \includegraphics[width=0.90\textwidth]{virtual-2n-nic2nic} + \label{fig:virtual-2n-nic2nic} \end{figure} .. only:: html - .. figure:: ../vpp_performance_tests/logical-3n-nic2nic.svg - :alt: logical-3n-nic2nic + .. figure:: ../vpp_functional_tests/virtual-2n-nic2nic.svg + :alt: virtual-2n-nic2nic :align: center -SUT1 and SUT2 are two VMs (Ubuntu or Centos, depending on the test suite), TG -is a Traffic Generator (TG, another Ubuntu VM). SUTs run VPP SW application in -Linux user-mode as a Device Under Test (DUT) within the VM. TG runs Scapy SW -application as a packet Traffic Generator. Logical connectivity between SUTs -and to TG is provided using virtual NICs using VMs' virtio driver. - -Virtual testbeds are created on-demand whenever a verification job is started -(e.g. triggered by the gerrit patch submission) and destroyed upon completion -of all functional tests. Each node is a Virtual Machine and each connection -that is drawn on the diagram is available for use in any test case. During the -test execution, all nodes are reachable thru the Management network connected -to every node via dedicated virtual NICs and virtual links (not shown above -for clarity). - -VM Service Switching -~~~~~~~~~~~~~~~~~~~~ - -VM service switching topology test cases require VPP DUT to communicate -with Virtual Machines (VMs) over vhost-user virtual interfaces. A nested VM is -created on SUT1 and/or SUT2 for the duration of these particular test cases -only. DUT (VPP) test topology with VM is shown in the figure below. .. only:: latex @@ -83,17 +46,40 @@ only. DUT (VPP) test topology with VM is shown in the figure below. \begin{figure}[H] \centering - \graphicspath{{../_tmp/src/vpp_performance_tests/}} - \includegraphics[width=0.90\textwidth]{logical-2n-vm-vhost} - \label{fig:logical-2n-vm-vhost} + \graphicspath{{../_tmp/src/vpp_functional_tests/}} + \includegraphics[width=0.90\textwidth]{virtual-3n-nic2nic} + \label{fig:virtual-3n-nic2nic} \end{figure} .. only:: html - .. figure:: ../vpp_performance_tests/logical-2n-vm-vhost.svg - :alt: logical-2n-vm-vhost + .. figure:: ../vpp_functional_tests/virtual-3n-nic2nic.svg + :alt: virtual-3n-nic2nic :align: center +SUT1 and SUT2 are two VMs (running Ubuntu or Centos, depending on the test +suite), TG is a Traffic Generator (running Ubuntu VM). SUTs run VPP +SW application in Linux user-mode as a Device Under Test (DUT) within +the VM. TG runs Scapy SW application as a packet Traffic Generator. +Network connectivity between SUTs and to TG is provided using virtual +NICs and VMs' virtio drivers. + +Virtual testbeds are created on-demand whenever a verification job is +started (e.g. triggered by the gerrit patch submission) and destroyed +upon completion of all functional tests. Each node is a Virtual Machine +and each connection that is drawn on the diagram is available for use in +any test case. During the test execution, all nodes are reachable thru +the Management network connected to every node via dedicated virtual +NICs and virtual links (not shown above for clarity). + +Nested-VM Service Switching +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Nested-VM (Virtual Machine) service switching topology test cases +require VPP DUT to communicate with nested-VM(s) over vhost-user virtual +interfaces. Nested-VM(s) is(are) created on SUT1 and/or SUT2 for the +duration of these particular test cases only. Virtual test topology with +nested-VM(s) is shown in the figure below. .. only:: latex @@ -101,56 +87,83 @@ only. DUT (VPP) test topology with VM is shown in the figure below. \begin{figure}[H] \centering - \graphicspath{{../_tmp/src/vpp_performance_tests/}} - \includegraphics[width=0.90\textwidth]{logical-3n-vm-vhost} - \label{fig:logical-3n-vm-vhost} + \graphicspath{{../_tmp/src/vpp_functional_tests/}} + \includegraphics[width=0.90\textwidth]{virtual-3n-vm-vhost} + \label{fig:virtual-3n-vm-vhost} \end{figure} .. only:: html - .. figure:: ../vpp_performance_tests/logical-3n-vm-vhost.svg - :alt: logical-3n-vm-vhost + .. figure:: ../vpp_functional_tests/virtual-3n-vm-vhost.svg + :alt: virtual-3n-vm-vhost :align: center Functional Tests Coverage ------------------------- -Following VPP functional test areas are covered in the |csit-release| with -results listed in this report: - -- **DHCP - Client and Proxy** - Dynamic Host Control Protocol Client and Proxy - for IPv4, IPv6. -- **GRE Overlay Tunnels** - Generic Routing Encapsulation for IPv4. -- **L2BD Ethernet Switching** - L2 Bridge-Domain switched-forwarding for - untagged Ethernet, dot1q and dot1ad tagged. -- **L2XC Ethernet Switching** - L2 Cross-Connect switched-forwarding for - untagged Ethernet, dot1q and dot1ad tagged. -- **LISP Overlay Tunnels** - Locator/ID Separation Protocol overlay tunnels and - locator/id mapping control. -- **Softwire Tunnels** - IPv4-in-IPv6 softwire tunnels. -- **Cop Address Security** - address white-list and black-list filtering for - IPv4, IPv6. -- **IPSec - Tunnels and Transport** - IPSec tunnel and transport modes. -- **IPv6 Routed-Forwarding** - IPv6 routed-forwarding, NS/ND, RA, ICMPv6. -- **uRPF Source Security** - unicast Reverse Path Forwarding security. -- **Tap Interface** - baseline Linux tap interface tests. -- **Telemetry - IPFIX and SPAN** - IPFIX netflow statistics and SPAN port - mirroring. -- **VRF Routed-Forwarding** - multi-context IPVPN routed-forwarding for IPv4, - IPv6. -- **iACL Security** - ingress Access Control List security for IPv4, IPv6, MAC. -- **IPv4 Routed-Forwarding** - IPv4 routed-forwarding, RPF, ARP, Proxy ARP, - ICMPv4. -- **QoS Policer Metering** - ingress packet rate measuring and marking for IPv4, - IPv6. -- **VLAN Tag Translation** - L2 VLAN tag translation 2to2, 2to1, 1to2, 1to1. -- **VXLAN Overlay Tunnels** - VXLAN tunneling for L2-over-IP, for IPv4, IPv6. +|csit-release| includes following VPP functionality tested in virtual VM +environment: + ++-----------------------+----------------------------------------------+ +| Functionality | Description | ++=======================+==============================================+ +| ACL | Ingress Access Control List security for L2 | +| | Bridge-Domain MAC switching, IPv4 routing, | +| | IPv6 routing. | ++-----------------------+----------------------------------------------+ +| COP | COP address white-list and black-list | +| | filtering for IPv4 and IPv6 routing. | ++-----------------------+----------------------------------------------+ +| DHCP | Dynamic Host Control Protocol Client and | +| | Proxy for IPv4 and IPv6 routing. | ++-----------------------+----------------------------------------------+ +| GRE | Generic Routing Encapsulation Overlay | +| | Tunnels for IPv4. | ++-----------------------+----------------------------------------------+ +| IPSec | IPSec tunnel and transport modes. | ++-----------------------+----------------------------------------------+ +| IPv4 | IPv4 routing, RPF, ARP, Proxy ARP, ICMPv4. | ++-----------------------+----------------------------------------------+ +| IPv6 | IPv6 routing, NS/ND, RA, ICMPv6. | ++-----------------------+----------------------------------------------+ +| L2BD | L2 Bridge-Domain switching for untagged | +| | Ethernet, dot1q and dot1ad tagged. | ++-----------------------+----------------------------------------------+ +| L2XC | L2 Cross-Connect switching for untagged | +| | Ethernet, dot1q and dot1ad tagged. | ++-----------------------+----------------------------------------------+ +| LISP | Locator/ID Separation Protocol overlay | +| | tunnels and locator/id mapping control. | ++-----------------------+----------------------------------------------+ +| QoS Policer Metering | Ingress packet rate metering and marking for | +| | IPv4, IPv6. | ++-----------------------+----------------------------------------------+ +| Softwire Tunnels | IPv4-in-IPv6 softwire tunnels. | ++-----------------------+----------------------------------------------+ +| Tap Interface | Baseline Linux tap interface tests. | ++-----------------------+----------------------------------------------+ +| IPFIX and SPAN | Telemetry IPFIX netflow statistics and SPAN | +| | port mirroring. | ++-----------------------+----------------------------------------------+ +| uRPF Source Security | Unicast Reverse Path Forwarding security for | +| | IPv4 and IPv6 routing. | ++-----------------------+----------------------------------------------+ +| VLAN Tag Translation | L2 VLAN tag translation 2to2, 2to1, 1to2, | +| | 1to1. | ++-----------------------+----------------------------------------------+ +| VRF Routing | Multi-context VRF IPVPN routing for IPv4 and | +| | IPv6. | ++-----------------------+----------------------------------------------+ +| VXLAN | VXLAN overlay tunneling for L2-over-IPv4 and | +| | -over-IPv6. | ++-----------------------+----------------------------------------------+ Functional Tests Naming ----------------------- -|csit-release| follows a common structured naming convention for all performance -and system functional tests, introduced in CSIT-17.01. +|csit-release| follows a common structured naming convention for all +performance and system functional tests, introduced in CSIT-17.01. -The naming should be intuitive for majority of the tests. Complete description -of CSIT test naming convention is provided on :ref:`csit_test_naming`. +The naming should be intuitive for majority of the tests. Complete +description of CSIT test naming convention is provided on +:ref:`csit_test_naming`. diff --git a/docs/report/vpp_functional_tests/virtual-2n-nic2nic.svg b/docs/report/vpp_functional_tests/virtual-2n-nic2nic.svg new file mode 100644 index 0000000000..3bc5d0d410 --- /dev/null +++ b/docs/report/vpp_functional_tests/virtual-2n-nic2nic.svg @@ -0,0 +1,315 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SUT VM + + + + + + + + + + + + + + DUT + + + + + + + + TG VM + + + + + + + + vNIC + + + + + + + + + + + + + + + + + + + + + + + + + + + LinuxKernel + + + + + + + + + + + + + + Linux-Guest + + + + + + + + User-Space + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Virtual 2-Node Topology: vNIC-to-vNIC Switching + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ForwardingContext + + + + + + + + \ No newline at end of file diff --git a/docs/report/vpp_functional_tests/virtual-3n-nic2nic.svg b/docs/report/vpp_functional_tests/virtual-3n-nic2nic.svg new file mode 100644 index 0000000000..14942eae92 --- /dev/null +++ b/docs/report/vpp_functional_tests/virtual-3n-nic2nic.svg @@ -0,0 +1,452 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SUT1 VM + + + + + + + + + + + + + + DUT1 + + + + + + + + TG VM + + + + + + + + vNIC + + + + + + + + + + + + + + + + + + + + + + + + + + + LinuxKernel + + + + + + + + + + + + + + Linux-Guest + + + + + + + + User-Space + + + + + + + + + + + + + + + SUT2 VM + + + + + + + + + + + + + + DUT2 + + + + + + + + vNIC + + + + + + + + + + + + + + + + + + + + + + + + + + + LinuxKernel + + + + + + + + + + + + + + Linux-Guest + + + + + + + + User-Space + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Virtual 3-Node Topology: vNIC-to-vNIC Switching + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ForwardingContext + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ForwardingContext + + + + + + + + \ No newline at end of file diff --git a/docs/report/vpp_functional_tests/virtual-3n-vm-vhost.svg b/docs/report/vpp_functional_tests/virtual-3n-vm-vhost.svg new file mode 100644 index 0000000000..93c1c6e954 --- /dev/null +++ b/docs/report/vpp_functional_tests/virtual-3n-vm-vhost.svg @@ -0,0 +1,1110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Virtual 3-Node Topology: nested-VM Service Switching + + + + + + + + SUT1 VM + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + nested-VM[n] + + + + + + + + + + + + + + + + nested-VM[1] + + + + + + + + + + + + + + + + nested-VM[2] + + + + + + + + DUT1 + + + + + + + + TG VM + + + + + + + + + + + + + LinuxKernel + + + + + + + + Linux-Guest + + + + + + + + User-Space + + + + + + + + VNF[1] + + + + + + + + + + + + + + VNF[2] + + + + + + + + VNF[n] + + + + + + + + vNIC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FwdCxt[0] + + + + + + + + + + FwdCxt[1] + + + + + + + + + + FwdCxt[2] + + + + + + + + + + FwdCxt[n] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SUT2 VM + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + nested-VM[n] + + + + + + + + + + + + + + + + nested-VM[1] + + + + + + + + + + + + + + + + nested-VM[2] + + + + + + + + DUT2 + + + + + + + + + + + + + LinuxKernel + + + + + + + + Linux-Guest + + + + + + + + User-Space + + + + + + + + VNF[1] + + + + + + + + + + + + + + VNF[2] + + + + + + + + VNF[n] + + + + + + + + vNIC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + FwdCxt[0] + + + + + + + + + + FwdCxt[1] + + + + + + + + + + FwdCxt[2] + + + + + + + + + + FwdCxt[n] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- cgit 1.2.3-korg