150ca8535SJan Gelety# Copyright (c) 2020 Cisco and/or its affiliates.
25b444791SVratko Polak# Licensed under the Apache License, Version 2.0 (the "License");
35b444791SVratko Polak# you may not use this file except in compliance with the License.
45b444791SVratko Polak# You may obtain a copy of the License at:
55b444791SVratko Polak#
65b444791SVratko Polak#     http://www.apache.org/licenses/LICENSE-2.0
75b444791SVratko Polak#
85b444791SVratko Polak# Unless required by applicable law or agreed to in writing, software
95b444791SVratko Polak# distributed under the License is distributed on an "AS IS" BASIS,
105b444791SVratko Polak# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
115b444791SVratko Polak# See the License for the specific language governing permissions and
125b444791SVratko Polak# limitations under the License.
135b444791SVratko Polak
145b444791SVratko Polak*** Settings ***
151577123aSPeter Mikus| Resource | resources/libraries/robot/shared/default.robot
16d68951acSJan Gelety|
175b444791SVratko Polak| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR
185b444791SVratko Polak| ... | NIC_Intel-X710 | L2XCFWD | ENCAP | VXLAN | L2OVRLAY | IP4UNRLAY
19ac89ba8aSPeter Mikus| ... | DRV_VFIO_PCI
206daa2d79SPeter Mikus| ... | RXQ_SIZE_0 | TXQ_SIZE_0
21e916ab4dSVratko Polak| ... | ethip4vxlan-l2xcbase
22d68951acSJan Gelety|
2314a71b74SPeter Mikus| Suite Setup | Setup suite topology interfaces | performance
246871d4e7SPeter Mikus| Suite Teardown | Tear down suite | performance
2550ca8535SJan Gelety| Test Setup | Setup test | performance | performance
266871d4e7SPeter Mikus| Test Teardown | Tear down test | performance
27d68951acSJan Gelety|
285b444791SVratko Polak| Test Template | Local Template
29d68951acSJan Gelety|
305b444791SVratko Polak| Documentation | *RFC2544: Pkt throughput L2XC with VXLANoIPv4 test cases*
31d68951acSJan Gelety|
325b444791SVratko Polak| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology
335b444791SVratko Polak| ... | with single links between nodes.
345b444791SVratko Polak| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross-connect on TG-DUTn.
355b444791SVratko Polak| ... | Eth-IPv4-VXLAN-Eth-IPv4 is applied on link between DUT1 and DUT2.
365b444791SVratko Polak| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-
375b444791SVratko Polak| ... | connect. VXLAN tunnels are configured between L2XCs on DUT1 and DUT2.
385e6145a4SVratko Polak| ... | DUT1 and DUT2 tested with ${nic_name}.\
395e6145a4SVratko Polak| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\
405e6145a4SVratko Polak| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\
415e6145a4SVratko Polak| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\
425e6145a4SVratko Polak| ... | of packets transmitted. NDR and PDR are discovered for different\
435e6145a4SVratko Polak| ... | Ethernet L2 frame sizes using MLRsearch library.\
445b444791SVratko Polak| ... | Test packets are generated by TG on links to DUTs. TG traffic profile
455b444791SVratko Polak| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per
465b444791SVratko Polak| ... | flow-group) with all packets containing Ethernet header, IPv4 header
475b444791SVratko Polak| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC
485b444791SVratko Polak| ... | addresses of the TG node interfaces.
495b444791SVratko Polak| ... | *[Ref] Applicable standard specifications:* RFC2544, RFC7348.
505b444791SVratko Polak
515b444791SVratko Polak*** Variables ***
521577123aSPeter Mikus| @{plugins_to_enable}= | dpdk_plugin.so
53ac89ba8aSPeter Mikus| ${crypto_type}= | ${None}
545e6145a4SVratko Polak| ${nic_name}= | Intel-X710
55fcc77752SPeter Mikus| ${nic_driver}= | vfio-pci
566daa2d79SPeter Mikus| ${nic_rxq_size}= | 0
576daa2d79SPeter Mikus| ${nic_txq_size}= | 0
5814a71b74SPeter Mikus| ${nic_pfs}= | 2
5914a71b74SPeter Mikus| ${nic_vfs}= | 0
60ac89ba8aSPeter Mikus| ${osi_layer}= | L2
615b444791SVratko Polak| ${overhead}= | ${50}
625b444791SVratko Polak# Traffic profile:
635b444791SVratko Polak| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254
645b444791SVratko Polak
655b444791SVratko Polak*** Keywords ***
665b444791SVratko Polak| Local Template
675b444791SVratko Polak| | [Documentation]
685b444791SVratko Polak| | ... | [Cfg] DUT runs L2XC forwarding config.
695b444791SVratko Polak| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads.
705b444791SVratko Polak| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\
71d68951acSJan Gelety| |
725b444791SVratko Polak| | ... | *Arguments:*
735e6145a4SVratko Polak| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1).
745b444791SVratko Polak| | ... | Type: integer, string
755b444791SVratko Polak| | ... | - phy_cores - Number of physical cores. Type: integer
765b444791SVratko Polak| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
77d68951acSJan Gelety| |
785e6145a4SVratko Polak| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
79d68951acSJan Gelety| |
805e6145a4SVratko Polak| | Set Test Variable | \${frame_size}
81d68951acSJan Gelety| |
82ac89ba8aSPeter Mikus| | Given Set Max Rate And Jumbo
83ac89ba8aSPeter Mikus| | And Add worker threads to all DUTs | ${phy_cores} | ${rxq}
84ac89ba8aSPeter Mikus| | And Pre-initialize layer driver | ${nic_driver}
855b444791SVratko Polak| | And Apply startup configuration on all VPP DUTs
86fcc77752SPeter Mikus| | When Initialize layer driver | ${nic_driver}
87ac89ba8aSPeter Mikus| | And Initialize layer interface
88fcc77752SPeter Mikus| | And Initialize L2 xconnect with VXLANoIPv4 in 3-node circular topology
895b444791SVratko Polak| | Then Find NDR and PDR intervals using optimized search
905b444791SVratko Polak
915b444791SVratko Polak*** Test Cases ***
925b444791SVratko Polak| tc01-64B-1c-ethip4vxlan-l2xcbase-ndrpdr
935b444791SVratko Polak| | [Tags] | 64B | 1C
945e6145a4SVratko Polak| | frame_size=${64} | phy_cores=${1}
955b444791SVratko Polak
965b444791SVratko Polak| tc02-64B-2c-ethip4vxlan-l2xcbase-ndrpdr
975b444791SVratko Polak| | [Tags] | 64B | 2C
985e6145a4SVratko Polak| | frame_size=${64} | phy_cores=${2}
995b444791SVratko Polak
1005b444791SVratko Polak| tc03-64B-4c-ethip4vxlan-l2xcbase-ndrpdr
1015b444791SVratko Polak| | [Tags] | 64B | 4C
1025e6145a4SVratko Polak| | frame_size=${64} | phy_cores=${4}
1035b444791SVratko Polak
1045b444791SVratko Polak| tc04-1518B-1c-ethip4vxlan-l2xcbase-ndrpdr
1055b444791SVratko Polak| | [Tags] | 1518B | 1C
1065e6145a4SVratko Polak| | frame_size=${1518} | phy_cores=${1}
1075b444791SVratko Polak
1085b444791SVratko Polak| tc05-1518B-2c-ethip4vxlan-l2xcbase-ndrpdr
1095b444791SVratko Polak| | [Tags] | 1518B | 2C
1105e6145a4SVratko Polak| | frame_size=${1518} | phy_cores=${2}
1115b444791SVratko Polak
1125b444791SVratko Polak| tc06-1518B-4c-ethip4vxlan-l2xcbase-ndrpdr
1135b444791SVratko Polak| | [Tags] | 1518B | 4C
1145e6145a4SVratko Polak| | frame_size=${1518} | phy_cores=${4}
1155b444791SVratko Polak
1165b444791SVratko Polak| tc07-9000B-1c-ethip4vxlan-l2xcbase-ndrpdr
1175b444791SVratko Polak| | [Tags] | 9000B | 1C
1185e6145a4SVratko Polak| | frame_size=${9000} | phy_cores=${1}
1195b444791SVratko Polak
1205b444791SVratko Polak| tc08-9000B-2c-ethip4vxlan-l2xcbase-ndrpdr
1215b444791SVratko Polak| | [Tags] | 9000B | 2C
1225e6145a4SVratko Polak| | frame_size=${9000} | phy_cores=${2}
1235b444791SVratko Polak
1245b444791SVratko Polak| tc09-9000B-4c-ethip4vxlan-l2xcbase-ndrpdr
1255b444791SVratko Polak| | [Tags] | 9000B | 4C
1265e6145a4SVratko Polak| | frame_size=${9000} | phy_cores=${4}
1275b444791SVratko Polak
1285b444791SVratko Polak| tc10-IMIX-1c-ethip4vxlan-l2xcbase-ndrpdr
1295b444791SVratko Polak| | [Tags] | IMIX | 1C
1305e6145a4SVratko Polak| | frame_size=IMIX_v4_1 | phy_cores=${1}
1315b444791SVratko Polak
1325b444791SVratko Polak| tc11-IMIX-2c-ethip4vxlan-l2xcbase-ndrpdr
1335b444791SVratko Polak| | [Tags] | IMIX | 2C
1345e6145a4SVratko Polak| | frame_size=IMIX_v4_1 | phy_cores=${2}
1355b444791SVratko Polak
1365b444791SVratko Polak| tc12-IMIX-4c-ethip4vxlan-l2xcbase-ndrpdr
1375b444791SVratko Polak| | [Tags] | IMIX | 4C
1385e6145a4SVratko Polak| | frame_size=IMIX_v4_1 | phy_cores=${4}
139