b108235cc37f4ec6d1c25d9598d1358df5b33bca
[csit.git] / docs / report / csit_framework_documentation / csit_test_naming.rst
1 CSIT Test Naming
2 ================
3
4 Background
5 ----------
6
7 CSIT |release| follows a common structured naming convention for all
8 performance and system functional tests, introduced in CSIT |release-1|.
9
10 The naming should be intuitive for majority of the tests. Complete
11 description of CSIT test naming convention is provided on
12 `CSIT test naming wiki page <https://wiki.fd.io/view/CSIT/csit-test-naming>`_.
13 Below few illustrative examples of the naming usage for test suites across CSIT
14 performance, functional and Honeycomb management test areas.
15
16 Naming Convention
17 -----------------
18
19 The CSIT approach is to use tree naming convention and to encode following
20 testing information into test suite and test case names:
21
22 #. packet network port configuration
23
24    * port type, physical or virtual;
25    * number of ports;
26    * NIC model, if applicable;
27    * port-NIC locality, if applicable;
28
29 #. packet encapsulations;
30
31 #. VPP packet processing
32
33    * packet forwarding mode;
34    * packet processing function(s);
35
36 #. packet forwarding path
37
38    * if present, network functions (processes, containers, VMs) and their
39      topology within the computer;
40
41 #. main measured variable, type of test.
42
43 Proposed convention is to encode ports and NICs on the left (underlay),
44 followed by outer-most frame header, then other stacked headers up to the
45 header processed by vSwitch-VPP, then VPP forwarding function, then encap on
46 vhost interface, number of vhost interfaces, number of VMs. If chained VMs
47 present, they get added on the right. Test topology is expected to be
48 symmetric, in other words packets enter and leave SUT through ports specified
49 on the left of the test name. Here some examples to illustrate the convention
50 followed by the complete legend, and tables mapping the new test filenames to
51 old ones.
52
53 Naming Examples
54 ---------------
55
56 CSIT test suite naming examples (filename.robot) for common tested VPP
57 topologies:
58
59 1. **Physical port to physical port - a.k.a. NIC-to-NIC, Phy-to-Phy, P2P**
60
61    * *PortNICConfig-WireEncapsulation-PacketForwardingFunction-
62      PacketProcessingFunction1-...-PacketProcessingFunctionN-TestType*
63    * *10ge2p1x520-dot1q-l2bdbasemaclrn-ndrdisc.robot* => 2 ports of 10GE on Intel
64      x520 NIC, dot1q tagged Ethernet, L2 bridge-domain baseline switching with
65      MAC learning, NDR throughput discovery.
66    * *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrchk.robot* => 2 ports of 10GE on
67      Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain baseline switching
68      with MAC learning, NDR throughput discovery.
69    * *10ge2p1x520-ethip4-ip4base-ndrdisc.robot* => 2 ports of 10GE on Intel x520
70      NIC, IPv4 baseline routed forwarding, NDR throughput discovery.
71    * *10ge2p1x520-ethip6-ip6scale200k-ndrdisc.robot* => 2 ports of 10GE on Intel
72      x520 NIC, IPv6 scaled up routed forwarding, NDR throughput discovery.
73    * *10ge2p1x520-ethip4-ip4base-iacldstbase-ndrdisc.robot* => 2 ports of 10GE on
74      Intel x520 NIC, IPv4 baseline routed forwarding, ingress Access Control
75      Lists baseline matching on destination, NDR throughput discovery.
76    * *40ge2p1vic1385-ethip4-ip4base-ndrdisc.robot* => 2 ports of 40GE on Cisco
77      vic1385 NIC, IPv4 baseline routed forwarding, NDR throughput discovery.
78    * *eth2p-ethip4-ip4base-func.robot* => 2 ports of Ethernet, IPv4 baseline
79      routed forwarding, functional tests.
80
81 2. **Physical port to VM (or VM chain) to physical port - a.k.a. NIC2VM2NIC,
82    P2V2P, NIC2VMchain2NIC, P2V2V2P**
83
84    * *PortNICConfig-WireEncapsulation-PacketForwardingFunction-
85      PacketProcessingFunction1-...-PacketProcessingFunctionN-VirtEncapsulation-
86      VirtPortConfig-VMconfig-TestType*
87    * *10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot* => 2 ports
88      of 10GE on Intel x520 NIC, dot1q tagged Ethernet, L2 bridge-domain switching
89      to/from two vhost interfaces and one VM, NDR throughput discovery.
90    * *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot* => 2
91      ports of 10GE on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain
92      switching to/from two vhost interfaces and one VM, NDR throughput discovery.
93    * *10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-4vhost-2vm-ndrdisc.robot* => 2
94      ports of 10GE on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain
95      switching to/from four vhost interfaces and two VMs, NDR throughput
96      discovery.
97    * *eth2p-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-func.robot* => 2 ports of
98      Ethernet, IPv4 VXLAN Ethernet, L2 bridge-domain switching to/from two vhost
99      interfaces and one VM, functional tests.
100
101 3. **API CRUD tests - Create (Write), Read (Retrieve), Update (Modify), Delete
102    (Destroy) operations for configuration and operational data**
103
104    * *ManagementTestKeyword-ManagementOperation-ManagedFunction1-...-
105      ManagedFunctionN-ManagementAPI1-ManagementAPIN-TestType*
106    * *mgmt-cfg-lisp-apivat-func* => configuration of LISP with VAT API calls,
107      functional tests.
108    * *mgmt-cfg-l2bd-apihc-apivat-func* => configuration of L2 Bridge-Domain with
109      Honeycomb API and VAT API calls, functional tests.
110    * *mgmt-oper-int-apihcnc-func* => reading status and operational data of
111      interface with Honeycomb NetConf API calls, functional tests.
112    * *mgmt-cfg-int-tap-apihcnc-func* => configuration of tap interfaces with
113      Honeycomb NetConf API calls, functional tests.
114    * *mgmt-notif-int-subint-apihcnc-func* => notifications of interface and
115      sub-interface events with Honeycomb NetConf Notifications, functional tests.
116
117 For complete description of CSIT test naming convention please refer to `CSIT
118 test naming wiki page <https://wiki.fd.io/view/CSIT/csit-test-naming>`_.

©2016 FD.io a Linux Foundation Collaborative Project. All Rights Reserved.
Linux Foundation is a registered trademark of The Linux Foundation. Linux is a registered trademark of Linus Torvalds.
Please see our privacy policy and terms of use.