CSIT/csit-perf-tc-naming-change

From fd.io
< CSIT
Revision as of 17:25, 6 January 2017 by Mackonstan (Talk | contribs)

Jump to: navigation, search

CSIT Performance TCs Naming

Background

Now that the number and type of CSIT test cases (TCs) grew significantly, existing naming notation does not work anymore. Firstly, the existing practice does not always follow any strict naming convention. Secondly current TC names do not always clearly capture packet encapsulations, the actual type or content of the tests. Thirdly HW configurations in terms of NICs, ports and their locality are not captured in the name. Bottom line, to address these points within the CSIT project, we agreed to define a new more complete and stricter TC naming convention, and to apply this to all existing and new test cases.

This wiki page captures this change.

CSIT Tests - Naming

Overview

The approach is to use tree naming convention and to encode following testing information into test names:

  1. packet network port configuration
    • physical port type;
    • NIC model;
    • port-NIC locality;
  2. packet encapsulations
  3. VPP packet processing
    • packet forwarding mode
    • packet processing function(s)
  4. packet forwarding path
    • if present, network functions (processes, containers, VMs) and their topology within the computer;
  5. main measured variable, type of test;

Proposed convention is to encode physical ports and NIC on the left (underlay), followed by outer most frame header, then other stacked headers up to the header processed by vSwitch-VPP, then VPP forwarding function, then encap on vhost interface, number of vhost interfaces, number of VMs. If chained VMs present, they get added on the right. Test topology is expected to be symmetric, in other words packets enter and leave SUT through ports specified on the left of the test name. Here some examples to illustrate the convention followed by the complete legend, and tables mapping the new test filenames to old ones.

Convention

CSIT test naming convention for common tested VNF topologies:

  1. Physical port to physical port - a.k.a. NIC-to-NIC, Phy-to-Phy, P2P
    • PortNICConfig-WireEncapsulation-PacketForwardingFunction-PacketProcessingFunction1-...-PacketProcessingFunctionN-TestType
    • 10ge2p1x520-dot1q-l2bdbasemaclrn-ndrdisc.robot => 2 ports of 10GE on Intel x520 NIC, dot1q tagged Ethernet, L2 bridge-domain baseline switching with MAC learning, NDR throughput discovery.
    • 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-ndrchk.robot => 2 ports of 10GE on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain baseline switching with MAC learning, NDR throughput discovery.
    • 10ge2p1x520-ethip4-ip4base-ndrdisc.robot => 2 ports of 10GE on Intel x520 NIC, IPv4 baseline routed forwarding, NDR throughput discovery.
    • 10ge2p1x520-ethip6-ip6scale200k-ndrdisc.robot => 2 ports of 10GE on Intel x520 NIC, IPv6 scaled up routed forwarding, NDR throughput discovery.
    • 10ge2p1x520-ethip4-ip4base-iacldstbase-ndrdisc.robot => 2 ports of 10GE on Intel x520 NIC, IPv4 baseline routed forwarding, ingress Access Control Lists baseline matching on destination, NDR throughput discovery.
    • 40ge2p1vic1385-ethip4-ip4base-ndrdisc.robot => 2 ports of 40GE on Cisco vic1385 NIC, IPv4 baseline routed forwarding, NDR throughput discovery.
    • virtio2p-ethip4-ip4base-func.robot => 2 ports of Virtio, IPv4 baseline routed forwarding, functional tests.
  2. Physical port to VM (or VM chain) to physical port - a.k.a. NIC2VM2NIC, P2V2P, NIC2VMchain2NIC, P2V2V2P
    • PortNICConfig-WireEncapsulation-PacketForwardingFunction-PacketProcessingFunction1-...-PacketProcessingFunctionN-VirtEncapsulation-VirtPortConfig-VMconfig-TestType
    • 10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot => 2 ports of 10GE on Intel x520 NIC, dot1q tagged Ethernet, L2 bridge-domain switching to/from two vhost interfaces and one VM, NDR throughput discovery.
    • 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot => 2 ports of 10GE on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain switching to/from two vhost interfaces and one VM, NDR throughput discovery.
    • 10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-4vhost-2vm-ndrdisc.robot => 2 ports of 10GE on Intel x520 NIC, IPv4 VXLAN Ethernet, L2 bridge-domain switching to/from four vhost interfaces and two VMs, NDR throughput discovery.
    • virtio2p-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-func.robot => 2 ports of Virtio, IPv4 VXLAN Ethernet, L2 bridge-domain switching to/from two vhost interfaces and one VM, functional tests.

Legend

  1. PortNICConfig - packet network port configuration: physical port type, NIC model, port-NIC locality
    1. <n>ge | virtio - port type
      • <n>ge - Gigabit Ethernet, n=10|40|100|200|400.
      • virtio - virtio.
    2. <n>p - number of physical Ethernet ports, ports distributed evenly across tested NICs, n=1,2,...
    3. <n><nic_model> - number of NICs and NIC model, n=1,2,...
  2. WireEncapsulation
    1. eth | dot1q | dot1ad - Ethernet header
      • eth - untagged Ethernet on the physical wire.
      • dot1q - single VLAN tag on physical wire.
      • dot1ad - double VLAN tag on physical wire.
    2. ip4 | ip6 | ip6e - outer IP header
      • ip4 - IPv4 header.
      • ip6 - IPv6 header.
      • ip6e - IPv6 extended header.
    3. ipsectrt | ipsectnl - IPSec crypto
      • ipsectrt - IPSec transport mode.
      • ipsectnl - IPSec tunnel mode.
    4. vxlan | lisp | gre | gpe - tunnel header
      • vxlan - VXLAN tunnel header.
      • lisp - LISP tunnel header.
      • gre - GRE tunnel header.
      • gpe - GPE tunnel header.
  3. PacketForwardingFunction
    1. l2bd - VPP L2 bridge-domain
      1. base | scale
        • base - baseline test with one L2 MAC flow received per interface.
        • scale<n> - scale test with many L2 MAC flows received per interface, <n> - number of 48-bit MAC address entries present in L2 MAC lookup table.
      2. maclrn | macstc
        • maclrn - learning L2 MAC addresses or MAC flows.
        • macstc - static L2 MAC addresses or MAC flows, programmed before the test.
    2. l2xc - VPP L2 point-to-point crossconnect
      1. base | scale
        • base - baseline test with one L2 cross-connect configured.
        • scale<n> - scale test with <n> L2 cross-connects configured.
    3. ip4 - VPP IPv4 routed forwarding
      1. base | scale
        • base - baseline test with one IPv4 flow received per interface.
        • scale<n> - scale tests with many IPv4 flows received per interface, <n> - number of /32 IPv4 address entries present in IPv4 lookup table.
    4. ip6 - VPP IPv6 routed forwarding
      1. base | scale
        • base - baseline test with one IPv6 flow received per interface.
        • scale<n> - scale tests with many IPv6 flows received per interface, <n> - number of /128 IPv6 address entries present in IPv6 lookup table.
  4. PacketProcessingFunction
    1. l2shg - L2 Split Horizon Group.
    2. iacldstbase - ingress Access Control Lists baseline matching on destination.
    3. ipolicemarkbase - ingress policer and marker baseline.
    4. copwhtlistbase - ingress IP Cop security whitelist filter entries, /24 for IPv4, /64 for IPv6.
    5. copblklistbase - ingress IP Cop security blacklist filter entries, /24 for IPv4, /64 for IPv6
    6. rpf - IP Reverse Path Forwarding check.
    7. ip4dhcpclient - IPv4 DHCP client.
    8. ip4dhcpcproxy - IPv4 DHCP proxy.
  5. VirtEncapsulation
    1. eth | dot1q | dot1ad
      • eth - untagged Ethernet on virtual interface.
      • dot1q - single VLAN tag on virtual interface.
      • dot1ad - double VLAN tag on virtual interface.
  6. VirtPortConfig
    1. <n>vhost - vhost virtual interface, n=1,2, ...
  7. VMconfig
    1. <n>vm - Virtual Machines, n=1,2, ...
  8. TestType
    1. ndrdisc | ndrchk | pdrdisc | pdrchk | func
      • ndrdisc - NDR throughput discovery using RFC2544 binary search.
      • ndrchk - NDR throughput check against a reference NDR throughput.
      • pdrdisc - PDR throughput discovery using RFC2544 binary search.
      • pdrchk - PDR throughput check against a reference NDR throughput.
      • func - functional tests.

CSIT Performance Tests

Performance tests executed in FD.io CSIT CPL (Continuous Performance Lab) physical testbeds. Naming change code in FD.io CSIT project by patch #3856.

Throughput NDR Discovery

Sorted alphabetically by new name.

# New Test Filename Old Test Filename
1 10ge2p1x520-dot1ad-l2xcbase-ndrdisc.robot Long_Xconnect_Dot1ad_Intel-X520-DA2.robot
2 10ge2p1x520-dot1q-l2xcbase-ndrdisc.robot Long_Xconnect_Dot1q_Intel-X520-DA2.robot
3 10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhost-1vm-ndrdisc.robot Long_Bridge_Domain_Vhost_Intel-X520-DA2.robot
4 10ge2p1x520-eth-l2bdbasemaclrn-ndrdisc.robot Bridge_Domain_Intel-X520-DA2.robot
5 10ge2p1x520-eth-l2xcbase-eth-2vhost-1vm-ndrdisc.robot Long_Xconnect_Vhost_Intel-X520-DA2.robot
6 10ge2p1x520-eth-l2xcbase-ndrdisc.robot Long_Xconnect_Intel-X520-DA2.robot
7 10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrdisc.robot Long_IPv4_Cop_Intel-X520-DA2.robot
8 10ge2p1x520-ethip4-ip4base-eth-2vhost-1vm-ndrdisc.robot Long_IPv4_Vhost_Intel-X520-DA2.robot
9 10ge2p1x520-ethip4-ip4base-iacldstbase-ndrdisc.robot Long_IPv4_iAcl_Intel-X520-DA2.robot
10 10ge2p1x520-ethip4-ip4base-ndrdisc.robot Long_IPv4_Intel-X520-DA2.robot
11 10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrdisc.robot Long_IPv4_Policer_Intel-X520-DA2.robot
12 10ge2p1x520-ethip4-ip4scale200k-ndrdisc.robot Long_IPv4_Fib_200k_Intel-X520-DA2.robot
13 10ge2p1x520-ethip4-ip4scale20k-ndrdisc.robot Long_IPv4_Fib_20k_Intel-X520-DA2.robot
14 10ge2p1x520-ethip4-ip4scale2m-ndrdisc.robot Long_IPv4_Fib_2M_Intel-X520-DA2.robot
15 10ge2p1x520-ethip4lispip4-ip4base-ndrdisc.robot Long_Lisp_Intel-X520-DA2.robot
16 10ge2p1x520-ethip4lispip6-ip4base-ndrdisc.robot Long_Lisp_Intel-X520-DA2.robot
17 10ge2p1x520-ethip4vxlan-l2xcbase-ndrdisc.robot Long_Xconnect_Vxlan_Ipv4_Intel-X520-DA2.robot
18 10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrdisc.robot Long_IPv6_Cop_Intel-X520-DA2.robot
19 10ge2p1x520-ethip6-ip6base-iacldstbase-ndrdisc.robot Long_IPv6_iAcl_Intel-X520-DA2.robot
20 10ge2p1x520-ethip6-ip6base-ndrdisc.robot Long_IPv6_Intel-X520-DA2.robot
21 10ge2p1x520-ethip6-ip6scale200k-ndrdisc.robot Long_IPv6_Fib_200k_Intel-X520-DA2.robot
22 10ge2p1x520-ethip6-ip6scale20k-ndrdisc.robot Long_IPv6_Fib_20k_Intel-X520-DA2.robot
23 10ge2p1x520-ethip6-ip6scale2m-ndrdisc.robot Long_IPv6_Fib_2M_Intel-X520-DA2.robot
24 10ge2p1x520-ethip6lispip4-ip6base-ndrdisc.robot Long_Lisp_Intel-X520-DA2.robot
25 10ge2p1x520-ethip6lispip6-ip6base-ndrdisc.robot Long_Lisp_Intel-X520-DA2.robot
26 10ge2p1x710-eth-l2bdbasemaclrn-ndrdisc.robot Bridge_Domain_Intel-X710-DA2.robot
27 40ge2p1xl710-eth-l2bdbasemaclrn-ndrdisc.robot Bridge_Domain_Intel-XL710.robot
28 40ge2p1xl710-eth-l2xcbase-ndrdisc.robot Long_Xconnect_Intel-XL710.robot
29 40ge2p1xl710-ethip4-ip4base-ndrdisc.robot Long_IPv4_Intel-XL710.robot
30 40ge2p1xl710-ethip6-ip6base-ndrdisc.robot Long_IPv6_Intel-XL710.robot

Throughput NDR Check

# New Test Filename Old Test Filename
1 10ge2p1x520-dot1ad-l2xcbase-ndrchk.robot Short_Xconnect_Dot1ad_Intel-X520-DA2.robot
2 10ge2p1x520-dot1q-l2xcbase-ndrchk.robot Short_Xconnect_Dot1q_Intel-X520-DA2.robot
3 10ge2p1x520-eth-l2bdbasemaclrn-ndrchk.robot Short_Bridge_Domain_Intel-X520-DA2.robot
4 10ge2p1x520-eth-l2xcbase-ndrchk.robot Short_Xconnect_Intel-X520-DA2.robot
5 10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot Short_IPv4_Cop_Intel-X520-DA2.robot
6 10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot Short_IPv4_iAcl_Intel-X520-DA2.robot
7 10ge2p1x520-ethip4-ip4base-ndrchk.robot Short_IPv4_Intel-X520-DA2.robot
8 10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot Short_IPv4_Policer_Intel-X520-DA2.robot
9 10ge2p1x520-ethip4-ip4scale200k-ndrchk.robot Short_IPv4_Fib_200k_Intel-X520-DA2.robot
10 10ge2p1x520-ethip4-ip4scale20k-ndrchk.robot Short_IPv4_Fib_20k_Intel-X520-DA2.robot
11 10ge2p1x520-ethip4-ip4scale2m-ndrchk.robot Short_IPv4_Fib_2M_Intel-X520-DA2.robot
12 10ge2p1x520-ethip4lispip4-ip4base-ndrchk.robot Short_Lisp_Intel-X520-DA2.robot
13 10ge2p1x520-ethip4lispip6-ip4base-ndrchk.robot Short_Lisp_Intel-X520-DA2.robot
14 10ge2p1x520-ethip4vxlan-l2xcbase-ndrchk.robot Short_Xconnect_Vxlan_Ipv4_Intel-X520-DA2.robot
15 10ge2p1x520-ethip6-ip6base-copwhtlistbase-ndrchk.robot Short_IPv6_Cop_Intel-X520-DA2.robot
16 10ge2p1x520-ethip6-ip6base-iacldstbase-ndrchk.robot Short_IPv6_iAcl_Intel-X520-DA2.robot
17 10ge2p1x520-ethip6-ip6base-ndrchk.robot Short_IPv6_Intel-X520-DA2.robot
18 10ge2p1x520-ethip6-ip6scale200k-ndrchk.robot Short_IPv6_Fib_200k_Intel-X520-DA2.robot
19 10ge2p1x520-ethip6-ip6scale20k-ndrchk.robot Short_IPv6_Fib_20k_Intel-X520-DA2.robot
20 10ge2p1x520-ethip6-ip6scale2m-ndrchk.robot Short_IPv6_Fib_2M_Intel-X520-DA2.robot
21 10ge2p1x520-ethip6lispip4-ip6base-ndrchk.robot Short_Lisp_Intel-X520-DA2.robot
22 10ge2p1x520-ethip6lispip6-ip6base-ndrchk.robot Short_Lisp_Intel-X520-DA2.robot

Trending Graphs Tagging

In order to group performance TC results into performance trending graphs, CSIT is using RF tags. CSIT RF tags are described in `/docs/tag_documentation.rst'. RF tag changes related to performance TC naming change are captured as part of patch #3856.

CSIT Functional Tests

Functional tests executed in FD.io CSIT VIRL testbeds. Naming change coded in FD.io CSIT project by [<gerrit link to be added> patch #<gerrit patch id to be added>].

Sorted alphabetically by new name.

# New Test Filename Old Test Filename
1 virtio2p-eth-l2bdbasemaclrn-func.robot bridge_domain_untagged.robot
2 virtio2p-eth-l2bdbasemacstc-func.robot bridge_domain_untagged.robot
3 virtio2p-eth-l2bdbasemaclrn-l2shg-func.robot bridge_domain_untagged.robot
4 virtio2p-eth-l2bdbasemaclrn-eth-2vhost-1vm-func.robot bridge_domain_untagged.robot
5 virtio2p-eth-l2bdbasemacstc-eth-2vhost-1vm-func.robot bridge_domain_untagged.robot
6 virtio2p-ethip4-ip4base-copwhlistbase-func.robot cop_whitelist_blacklist.robot
7 virtio2p-ethip4-ip4base-copblklistbase-func.robot cop_whitelist_blacklist.robot
8 virtio2p-ethip6-ip6base-copwhlistbase-func.robot cop_whitelist_blacklist_IPv6.robot
9 virtio2p-ethip6-ip6base-copblklistbase-func.robot cop_whitelist_blacklist_IPv6.robot
10 virtio2p-ethip4-ip4base-ip4dhcpclient-func.robot dhcp_client.robot
11 virtio2p-ethip4-ip4base-ip4dhcpproxy-func.robot dhcp_proxy.robot
12 virtio2p-ethip4ipsectpt-ip4base-func.robot ipsec_transport_mode_ipv4.robot
13 virtio2p-ethip4ipsectnl-ip4base-func.robot ipsec_tunnel_mode_ipv4.robot
15 virtio2p-ethip6ipsectpt-ip6base-func.robot ipsec_transport_mode_ipv6.robot
16 virtio2p-ethip6psectnl-ip6base-func.robot ipsec_tunnel_mode_ipv6.robot
17 virtio2p-ethip4ipsectptgpe-ip4base-func.robot ipsec_ipv4_lispgpe_ipv4.robot
18 virtio2p-ethip6ipsectptgpe-ip4base-func.robot ipsec_ipv4_lispgpe_ipv6.robot
19 virtio2p-ethip4ipsectptgpe-ip6base-func.robot ipsec_ipv6_lispgpe_ipv4.robot
20 virtio2p-ethip6ipsectptgpe-ip6base-func.robot ipsec_ipv6_lispgpe_ipv6.robot
n to be completed to be completed