aboutsummaryrefslogtreecommitdiffstats
path: root/docs/report/honeycomb_functional_tests/overview.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/report/honeycomb_functional_tests/overview.rst')
-rw-r--r--docs/report/honeycomb_functional_tests/overview.rst394
1 files changed, 223 insertions, 171 deletions
diff --git a/docs/report/honeycomb_functional_tests/overview.rst b/docs/report/honeycomb_functional_tests/overview.rst
index 3ff8a6e2e9..b57d2b4094 100644
--- a/docs/report/honeycomb_functional_tests/overview.rst
+++ b/docs/report/honeycomb_functional_tests/overview.rst
@@ -1,15 +1,16 @@
Overview
========
-Tested Virtual Topologies
--------------------------
+Virtual Topologies
+------------------
+
+CSIT HoneyComb 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.
-CSIT Honeycomb 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. All tests are executed in two node logical test topology - Traffic
-Generator (TG) node and Systems Under Test (SUT1) node connected in a loop.
-Logical test topology is shown in the figure below.
+All tests are executed in two-node virtual test topology shown in the
+figure below.
.. only:: latex
@@ -17,153 +18,226 @@ Logical test topology is shown in the figure below.
\begin{figure}[H]
\centering
- \graphicspath{{../_tmp/src/vpp_performance_tests/}}
- \includegraphics[width=0.90\textwidth]{logical-2n-nic2nic}
- \label{fig:logical-2n-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:: logical-2n-nic2nic.svg
- :alt: logical-2n-nic2nic
+ .. figure:: ../vpp_functional_tests/virtual-2n-nic2nic.svg
+ :alt: virtual-2n-nic2nic
:align: center
-SUT1 is a VM (Ubuntu or Centos, depending on the test suite), TG is a Traffic
-Generator (TG, another Ubuntu VM). SUTs run Honeycomb and VPP SW applications
-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).
+SUT (System Under Test) is a VM running Ubuntu Linux (or Centos,
+depending on the test suite), TG (Traffic Generator) is another VM
+running Ubuntu Linux. SUT VMs run HoneyComb management agent and VPP in
+Linux user-mode as a combined DUT (Device Under Test). TG runs Scapy
+application as a packet Traffic Generator. Virtual connectivity between
+SUT and TG is provided using virtual NICs using VMs' virtio drivers.
Functional Tests Coverage
-------------------------
-The following Honeycomb functional test areas are included in the |csit-release|
-with results listed in this report:
-
-- **Basic interface management** - CRUD for interface state,
- - ipv4/ipv6 address, ipv4 neighbor, MTU value.
- - Test case count: 14
-- **L2BD** - CRUD for L2 Bridge-Domain, interface assignment.
- - Create up to two bridge domains with all implemented functions turned on.
- - (flooding, unknown-unicast flooding, forwarding, learning, arp-termination)
- - Assign up to two physical interfaces to a single bridge domain.
- - Remove interface assignments, remove bridge domains.
- - Test case count: 5
-- **L2FIB** - CRD for L2-FIB entries.
- - Create 4 FIB entries
- - (one of each for filter/forward, static/dynamic combinations).
- - Remove FIB entries.
- - Test case count: 7
-- **VxLAN** - CRD for VxLAN tunnels.
- - Create VxLAN interface.
- - Disable VxLAN interface.
- - Re-create a disabled VxLAN interface.
- - Test case count: 6
-- **VxLAN-GPE** - CRD for VxLAN GPE tunnels.
- - Create VxLAN GPE interface.
- - Disable VxLAN interface.
- - Re-create a disabled VxLAN interface.
- - Test case count: 7
-- **Vhost-user** - CRUD for Vhost-user interfaces.
- - Create, modify and delete Vhost-user interface, as client and server.
- - Test case count: 8
-- **TAP** - CRUD for Tap interface management.
- - Create, modify and delete TAP interface.
- - Test case count: 3
-- **VLAN** - CRUD for VLAN sub-interface management.
- - Create VLAN sub-interface over a physical interface.
- - Toggle interface state separately for super-interface and sub-interface.
- - Configure IP address and bridge domain assignment on sub-interface.
- - Configure VLAN tag rewrite on sub-interface.
- - Test case count: 24
-- **ACL** - CRD for low-level classifiers: table and session management,
- - interface assignment.
- - Configure up to 2 classify tables.
- - Configure up to 2 classify sessions on one table.
- - Assign classify session to a physical interface.
- - Remove tables, sessions, interface assignments.
- - Test case count: 9
-- **PBB** - CRD for provider backbone bridge sub-interface.
- - Configure, modify and remove a PBB sub-interface over a physical interface.
- - Test case count: 8
-- **NSH_SFC** - CRD for NSH maps and entries, using NSH_SFC plugin.
- - Configure up to 2 NSH entries.
- - Configure up to 2 NSH maps.
- - Modify and delete NSH maps and entries.
- - Test case count: 8
-- **LISP** - CRD for Lisp: mapping, locator set, adjacency, map resolver.
- - Toggle Lisp feature status.
- - Configure and delete Lisp mapping as local and remote.
- - Configure and delete Lisp adjacency mapping
- - Configure and delete Lisp map resolver, proxy ITR.
- - Test case count: 18
-- **LISP GPE** - CRUD for LISP GPE mappings.
- - Toggle Lisp GPE feature status.
- - Configure Lisp GPE mappings.
- - Traffic test verifying encapsulation.
- - Test case count: 12
-- **NAT** - CRD for NAT entries, interface assignment.
- - Configure and delete up to two NAT entries.
- - Assign NAT entries to a physical interface.
- - Test case count: 6
-- **Port mirroring** - CRD for SPAN port mirroring, interface assignment.
- - Configure SPAN port mirroring on a physical interface, mirroring
- - up to 2 interfaces.
- - Remove SPAN configuration from interfaces.
- - Test case count: 14
-- **ACL-PLUGIN** - CRD for high-level classifier
- - MAC + IP address classification.
- - IPv4, IPv6 address classification.
- - TCP, UDP, ICMP, ICMPv6 protocol/next-header classification.
- - port number classification.
- - ICMP, ICMPv6 code and type classification.
- - Test case count: 15
-- **ProxyARP** - CRD for proxyARP feature.
- - Configure proxyARP.
- - Assign to interface.
- - Test case count: 3
-- **ProxyND6** - CRD for Neighbor Discovery Proxy.
- - Configure ProxyND6 feature on interface.
- - Test case count: 4
-- **DHCP Relay** - CRD for DHCP relay feature.
- - Configure DHCP Relays.
- - IPv4 and IPv6 variants.
- - Test case count: 4
-- **SLAAC** - CRD for Stateless Address AutoConfiguration.
- - Configure SLAAC feature on interfaces.
- - Test case count: 7
-- **Routing** - CRD for routing.
- - Configure single-hop route.
- - Configure multi-hop routes.
- - Configure blackhole route.
- - IPv4 and IPv6 variants.
- - Test case count: 6
-- **Policer** - CRD for traffic policing feature.
- - Configure Policing rules.
- - Assign to interface.
- - Test case count: 6
-- **Border Gateway Protocol** - CRUD and functional tests for BGP.
- - Configure peers and routes
- - Check interactions with another BGP peer.
- - Test case count: 13
-- **Honeycomb Infractructure** - configuration persistence,
- - Netconf notifications for interface events,
- - Netconf negative tests aimed at specific issues
- - Netconf/Restconf northbound over IPv6
- - Test case count: 12
+|csit-release| includes following HoneyComb functionality tested in
+virtual VM environment:
+
++-----------------------+----------------------------------------------+
+| Functionality | Description |
++=======================+==============================================+
+| ACL | CRD for low-level classifiers: table and |
+| | session management, interface assignment. |
+| | |
+| | - Configure up to 2 classify tables. |
+| | - Configure up to 2 classify sessions on one |
+| | table. |
+| | - Assign classify session to a physical |
+| | interface. |
+| | - Remove tables, sessions, interface |
+| | assignments. |
+| | - Test case count: 9. |
++-----------------------+----------------------------------------------+
+| ACL-PLUGIN | CRD for high-level classifier. |
+| | |
+| | - MAC + IP address classification. |
+| | - IPv4, IPv6 address classification. |
+| | - TCP, UDP, ICMP, ICMPv6 protocol and |
+| | next-header classification. |
+| | - port number classification. |
+| | - ICMP, ICMPv6 code and type classification. |
+| | - Test case count: 15. |
++-----------------------+----------------------------------------------+
+| Basic interface | CRUD for interface state. |
+| management | |
+| | - ipv4/ipv6 address, ipv4 neighbor, MTU |
+| | value. |
+| | - Test case count: 14. |
++-----------------------+----------------------------------------------+
+| Border Gateway | CRUD and functional tests for BGP. |
+| Protocol | |
+| | - Configure peers and routes |
+| | - Check interactions with another BGP peer. |
+| | - Test case count: 13. |
++-----------------------+----------------------------------------------+
+| DHCP Relay | CRD for DHCP relay feature. |
+| | |
+| | - Configure DHCP Relays. |
+| | - IPv4 and IPv6 variants. |
+| | - Test case count: 4. |
++-----------------------+----------------------------------------------+
+| Honeycomb | Configuration persistence. |
+| Infractructure | |
+| | - Netconf notifications for interface |
+| | events. |
+| | - Netconf negative tests aimed at specific |
+| | issues. |
+| | - Netconf/Restconf northbound over IPv6. |
+| | - Test case count: 12. |
++-----------------------+----------------------------------------------+
+| L2BD | CRUD for L2 Bridge-Domain, interface |
+| | assignment. |
+| | |
+| | - Create up to two bridge domains with all |
+| | implemented functions turned on: |
+| | flooding, unknown-unicast flooding, |
+| | forwarding, learning, arp-termination. |
+| | - Assign up to two physical interfaces to a |
+| | single bridge domain. |
+| | - Remove interface assignments, remove |
+| | bridge domains. |
+| | - Test case count: 5. |
++-----------------------+----------------------------------------------+
+| L2FIB | CRD for L2-FIB entries. |
+| | |
+| | - Create 4 FIB entries: |
+| | one of each for filter/forward, |
+| | static/dynamic combinations. |
+| | - Remove FIB entries. |
+| | - Test case count: 7. |
++-----------------------+----------------------------------------------+
+| LISP | CRD for Lisp: mapping, locator set, |
+| | adjacency, mapresolver. |
+| | |
+| | - Toggle Lisp feature status. |
+| | - Configure and delete Lisp mapping as local |
+| | and remote. |
+| | - Configure and delete Lisp adjacency |
+| | mapping. |
+| | - Configure and delete Lisp map resolver, |
+| | proxy ITR. |
+| | - Test case count: 18. |
++-----------------------+----------------------------------------------+
+| LISP GPE | CRUD for LISP GPE mappings. |
+| | |
+| | - Toggle Lisp GPE feature status. |
+| | - Configure Lisp GPE mappings. |
+| | - Traffic test verifying encapsulation. |
+| | - Test case count: 12. |
++-----------------------+----------------------------------------------+
+| NAT | CRD for NAT entries, interface assignment. |
+| | |
+| | - Configure and delete up to two NAT |
+| | entries. |
+| | - Assign NAT entries to a physical |
+| | interface. |
+| | - Test case count: 6. |
++-----------------------+----------------------------------------------+
+| NSH_SFC | CRD for NSH maps and entries, using NSH_SFC |
+| | plugin. |
+| | |
+| | - Configure up to 2 NSH entries. |
+| | - Configure up to 2 NSH maps. |
+| | - Modify and delete NSH maps and entries. |
+| | - Test case count: 8. |
++-----------------------+----------------------------------------------+
+| PBB | CRD for provider backbone bridge |
+| | sub-interface. |
+| | |
+| | - Configure, modify and remove a PBB |
+| | sub-interface over a physical interface. |
+| | - Test case count: 8. |
++-----------------------+----------------------------------------------+
+| Policer | CRD for traffic policing feature. |
+| | |
+| | - Configure Policing rules. |
+| | - Assign to interface. |
+| | - Test case count: 6. |
++-----------------------+----------------------------------------------+
+| Port mirroring | CRD for SPAN port mirroring, interface |
+| | assignment. |
+| | |
+| | - Configure SPAN port mirroring on a |
+| | physical interface, mirroring. |
+| | - up to 2 interfaces. |
+| | - Remove SPAN configuration from interfaces. |
+| | - Test case count: 14. |
++-----------------------+----------------------------------------------+
+| ProxyARP | CRD for proxyARP feature. |
+| | |
+| | - Configure proxyARP. |
+| | - Assign to interface. |
+| | - Test case count: 3. |
++-----------------------+----------------------------------------------+
+| ProxyND6 | CRD for Neighbor Discovery Proxy. |
+| | |
+| | - Configure ProxyND6 feature on interface. |
+| | - Test case count: 4. |
++-----------------------+----------------------------------------------+
+| Routing | CRD for routing. |
+| | |
+| | - Configure single-hop route. |
+| | - Configure multi-hop routes. |
+| | - Configure blackhole route. |
+| | - IPv4 and IPv6 variants. |
+| | - Test case count: 6. |
++-----------------------+----------------------------------------------+
+| SLAAC | CRD for Stateless Address AutoConfiguration. |
+| | |
+| | - Configure SLAAC feature on interfaces. |
+| | - Test case count: 7. |
++-----------------------+----------------------------------------------+
+| Vhost-user | CRUD for Vhost-user interfaces. |
+| | |
+| | - Create, modify and delete Vhost-user |
+| | interface, as client and server. |
+| | - Test case count: 8. |
++-----------------------+----------------------------------------------+
+| VLAN | CRUD for VLAN sub-interface management. |
+| | |
+| | - Create VLAN sub-interface over a physical |
+| | interface. |
+| | - Toggle interface state separately for |
+| | super-interface and sub-interface. |
+| | - Configure IP address and bridge domain |
+| | assignment on sub-interface. |
+| | - Configure VLAN tag rewrite on |
+| | sub-interface. |
+| | - Test case count: 24. |
++-----------------------+----------------------------------------------+
+| VxLAN | CRD for VxLAN tunnels. |
+| | |
+| | - Create VxLAN interface. |
+| | - Disable VxLAN interface. |
+| | - Re-create a disabled VxLAN interface. |
+| | - Test case count: 6. |
++-----------------------+----------------------------------------------+
+| VxLAN-GPE | CRD for VxLAN GPE tunnels. |
+| | |
+| | - Create VxLAN GPE interface. |
+| | - Disable VxLAN interface. |
+| | - Re-create a disabled VxLAN interface. |
+| | - Test case count: 7. |
++-----------------------+----------------------------------------------+
+| TAP | CRUD for Tap interface management. |
+| | |
+| | - Create, modify and delete TAP interface. |
+| | - Test case count: 3. |
++-----------------------+----------------------------------------------+
Total 219 Honeycomb functional tests in the |csit-release|.
-Operational data in Honeycomb should mirror configuration data at all times.
-Because of this, test cases follow this general pattern:
+Operational data in Honeycomb should mirror configuration data at all
+times. Because of this, test cases follow this general pattern:
#. read operational data of the feature using restconf.
#. read status of the feature using VPP API dump.
@@ -172,37 +246,15 @@ Because of this, test cases follow this general pattern:
#. verify changes using VPP API dump, OR
#. send a packet to VPP node and observe behaviour to verify configuration.
-Test cases involving network interfaces utilize the first two interfaces on
-the DUT node.
+Test cases involving network interfaces utilize the first two interfaces
+on the DUT node.
Functional Tests Naming
-----------------------
-CSIT-17.01 introduced a common structured naming convention for all
-performance and functional tests. This change was driven by substantially
-growing number and type of CSIT test cases. Firstly, the original practice did
-not always follow any strict naming convention. Secondly test names did not
-always clearly capture tested packet encapsulations, and the actual type or
-content of the tests. Thirdly HW configurations in terms of NICs, ports and
-their locality were not captured either. These were but few reasons that drove
-the decision to change and define a new more complete and stricter test naming
-convention, and to apply this to all existing and new test cases.
-
-The new naming should be intuitive for majority of the tests. The complete
-description of CSIT test naming convention is provided on `CSIT test naming
-page <https://wiki.fd.io/view/CSIT/csit-test-naming>`_.
-
-Here few illustrative examples of the new naming usage for functional test
-suites:
-
-#. **Physical port to physical port - a.k.a. NIC-to-NIC, Phy-to-Phy, P2P**
-
- - *eth2p-ethip4-ip4base-func.robot* => 2 ports of Ethernet, IPv4 baseline
- routed forwarding, functional tests.
-
-#. **Physical port to VM (or VM chain) to physical port - a.k.a. NIC2VM2NIC,
- P2V2P, NIC2VMchain2NIC, P2V2V2P**
+|csit-release| follows a common structured naming convention for all
+performance and system functional tests, introduced in CSIT-17.01.
- - *eth2p-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-func.robot* => 2 ports of
- Ethernet, IPv4 VXLAN Ethernet, L2 bridge-domain switching to/from two vhost
- interfaces and one VM, functional tests.
+The naming should be intuitive for majority of the tests. Complete
+description of CSIT test naming convention is provided on
+:ref:`csit_test_naming`.