diff options
171 files changed, 13511 insertions, 7331 deletions
diff --git a/resources/libraries/python/autogen/DefaultTestcase.py b/resources/libraries/python/autogen/DefaultTestcase.py index 3c11cb073e..0aaf40d7ca 100644 --- a/resources/libraries/python/autogen/DefaultTestcase.py +++ b/resources/libraries/python/autogen/DefaultTestcase.py @@ -26,6 +26,7 @@ class DefaultTestcase(Testcase): Example: ethip6srhip6-ip6base-srv6enc2sids-nodecaps-ndrpdr :type suite_id: str """ + self.suite_id = suite_id template_string = r''' | ${tc_num}-${frame_str}-${cores_str}c-''' + suite_id + r''' | | [Tags] | ${frame_str} | ${cores_str}C diff --git a/resources/libraries/python/autogen/Regenerator.py b/resources/libraries/python/autogen/Regenerator.py index 4ed123ae7c..e7e0370325 100644 --- a/resources/libraries/python/autogen/Regenerator.py +++ b/resources/libraries/python/autogen/Regenerator.py @@ -59,24 +59,26 @@ class Regenerator(object): protocol_to_min_framesize = { "ip4": 64, "ip6": 78, - "vxlan+ip4": 114 + "vxlan+ip4": 114 # What is the real minimum for latency stream? } - def get_suite_id(filename): + def get_iface_and_suite_id(filename): dash_split = filename.split("-", 1) if len(dash_split[0]) <= 4: # It was something like "2n1l", we need one more split. dash_split = dash_split[1].split("-", 1) - return dash_split[1].split(".", 1)[0] + return dash_split[0], dash_split[1].split(".", 1)[0] - def add_testcase(file_out, num, **kwargs): - file_out.write(testcase.generate(num=num, **kwargs)) + def add_testcase(testcase, iface, file_out, num, **kwargs): + # TODO: Is there a better way to disable some combinations? + if kwargs["framesize"] != 9000 or "vic1227" not in iface: + file_out.write(testcase.generate(num=num, **kwargs)) return num + 1 - def add_testcases(file_out, tc_kwargs_list): + def add_testcases(testcase, iface, file_out, tc_kwargs_list): num = 1 for tc_kwargs in tc_kwargs_list: - num = add_testcase(file_out, num, **tc_kwargs) + num = add_testcase(testcase, iface, file_out, num, **tc_kwargs) print "Regenerator starts at {cwd}".format(cwd=getcwd()) min_framesize = protocol_to_min_framesize[protocol] @@ -95,15 +97,14 @@ class Regenerator(object): {"framesize": "IMIX_v4_1", "phy_cores": 4} ] for filename in glob(pattern): + print "Regenerating filename:", filename with open(filename, "r") as file_in: text = file_in.read() text_prolog = "".join(text.partition("*** Test Cases ***")[:-1]) - # TODO: Make the following work for 2n suites. - suite_id = get_suite_id(filename) - print "Regenerating suite_id:", suite_id + iface, suite_id = get_iface_and_suite_id(filename) testcase = self.testcase_class(suite_id) with open(filename, "w") as file_out: file_out.write(text_prolog) - add_testcases(file_out, kwargs_list) + add_testcases(testcase, iface, file_out, kwargs_list) print "Regenerator ends." print # To make autogen check output more readable. diff --git a/resources/libraries/robot/performance/performance_setup.robot b/resources/libraries/robot/performance/performance_setup.robot index e34e842352..eef624e50c 100644 --- a/resources/libraries/robot/performance/performance_setup.robot +++ b/resources/libraries/robot/performance/performance_setup.robot @@ -874,6 +874,20 @@ | | Run Keyword And Ignore Error | | ... | Vpp Log Macip Acl Interface Assignment | ${dut1} +| Tear down mrr test with MACIP ACL +| | [Documentation] | Common test teardown for mrr performance \ +| | ... | tests with MACIP ACL feature used. +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Tear down mrr test with MACIP ACL \| +| | ... +| | Tear down performance mrr test +| | Run Keyword If Test Failed | Run Keyword And Ignore Error +| | ... | Vpp Log Macip Acl Settings | ${dut1} +| | Run Keyword And Ignore Error +| | ... | Vpp Log Macip Acl Interface Assignment | ${dut1} + | Tear down performance test with Ligato Kubernetes | | [Documentation] | Common test teardown for ndrdisc and pdrdisc performance \ | | ... | tests with Ligato Kubernetes. diff --git a/tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-mrr.robot new file mode 100644 index 0000000000..6ac6316449 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-mrr.robot @@ -0,0 +1,115 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Cisco-VIC-1227 | ETH | L2BDMACLRN | BASE +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Cisco-VIC-1227 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance mrr test +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ +| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC +| ... | Cisco-VIC-1227. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 253 flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# Link limit: +| ${s_limit} | ${10000000000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with with\ +| | ... | ${phy_cores} phy core. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | Apply startup configuration on all VPP DUTs +| | Initialize L2 bridge domain in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdr.robot new file mode 100644 index 0000000000..988ff0fa51 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdr.robot @@ -0,0 +1,121 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Cisco-VIC-1227 | ETH | L2BDMACLRN | BASE +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Cisco-VIC-1227 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ +| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC +| ... | Cisco-VIC-1227. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ +| ... | of packets transmitted. NDR and PDR are discovered for different\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 253 flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# Link limit: +| ${s_limit} | ${10000000000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with with\ +| | ... | ${phy_cores} phy core. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | Apply startup configuration on all VPP DUTs +| | Initialize L2 bridge domain in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot deleted file mode 100644 index 2f09211ecb..0000000000 --- a/tests/vpp/perf/l2/10ge2p1vic1227-eth-l2bdbasemaclrn-ndrpdrdisc.robot +++ /dev/null @@ -1,194 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Resource | resources/libraries/robot/performance/performance_setup.robot -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Cisco-VIC-1227 | ETH | L2BDMACLRN | BASE -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Cisco-VIC-1227 -| Suite Teardown | Tear down 3-node performance topology -| ... -| Test Setup | Set up performance test -| ... -| Test Teardown | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... -| Documentation | *RFC2544: Pkt throughput L2BD test cases* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ -| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC -| ... | Cisco-VIC-1227. -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ -| ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ -| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ -| ... | (flow-group per direction, 253 flows per flow-group) with all packets\ -| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ -| ... | payload. MAC addresses are matching MAC addresses of the TG node\ -| ... | interfaces. -| ... | *[Ref] Applicable standard specifications:* RFC2544. - -*** Variables *** -# Cisco-VIC-1227 bandwidth limit -| ${s_limit} | ${10000000000} -# Traffic profile: -| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 - -*** Keywords *** -| L2 Bridge Domain NDR Binary Search -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with with\ -| | ... | ${phy_cores} phy core. -| | ... | [Ver] Find NDR for ${framesize}B Byte frames using binary search\ -| | ... | start at 10GE linerate, step 50kpps. -| | [Arguments] | ${framesize} | ${phy_cores} | ${min_rate}=${50000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Add worker threads and rxqueues to all DUTs | ${phy_cores} -| | Add PCI devices to all DUTs -| | Run Keyword If | ${framesize} < ${1522} | Add no multi seg to all DUTs -| | Apply startup configuration on all VPP DUTs -| | Initialize L2 bridge domain in 3-node circular topology -| | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| L2 Bridge Domain PDR Binary Search -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with with\ -| | ... | ${phy_cores} phy core. -| | ... | [Ver] Find PDR for ${framesize}B Byte frames using binary search\ -| | ... | start at 10GE linerate, step 50kpps. -| | [Arguments] | ${framesize} | ${phy_cores} | ${min_rate}=${50000} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Add worker threads and rxqueues to all DUTs | ${phy_cores} -| | Add PCI devices to all DUTs -| | Run Keyword If | ${framesize} < ${1522} | Add no multi seg to all DUTs -| | Apply startup configuration on all VPP DUTs -| | Initialize L2 bridge domain in 3-node circular topology -| | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | [Template] | L2 Bridge Domain NDR Binary Search -| | framesize=${64} | phy_cores=${1} - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search -| | framesize=${64} | phy_cores=${1} - -| tc03-1518B-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | [Template] | L2 Bridge Domain NDR Binary Search -| | framesize=${1518} | phy_cores=${1} - -| tc04-1518B-1t1c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search -| | framesize=${1518} | phy_cores=${1} - -| tc05-9000B-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 9000B | 1C | NDRDISC -| | [Template] | L2 Bridge Domain NDR Binary Search -| | framesize=${9000} | phy_cores=${1} - -| tc06-9000B-1t1c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search -| | framesize=${9000} | phy_cores=${1} - -| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | [Template] | L2 Bridge Domain NDR Binary Search -| | framesize=${64} | phy_cores=${2} - -| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search -| | framesize=${64} | phy_cores=${2} - -| tc09-1518B-2t2c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain NDR Binary Search -| | framesize=${1518} | phy_cores=${2} - -| tc10-1518B-2t2c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search -| | framesize=${1518} | phy_cores=${2} - -| tc11-9000B-2t2c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain NDR Binary Search -| | framesize=${9000} | phy_cores=${2} - -| tc12-9000B-2t2c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search -| | framesize=${9000} | phy_cores=${2} - -| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | [Template] | L2 Bridge Domain NDR Binary Search -| | framesize=${64} | phy_cores=${4} - -| tc14-64B-4t4c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search -| | framesize=${64} | phy_cores=${4} - -| tc15-1518B-4t4c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain NDR Binary Search -| | framesize=${1518} | phy_cores=${4} - -| tc16-1518B-4t4c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search -| | framesize=${1518} | phy_cores=${4} - -| tc17-9000B-4t4c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain NDR Binary Search -| | framesize=${9000} | phy_cores=${4} - -| tc18-9000B-4t4c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search -| | framesize=${9000} | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-mrr.robot new file mode 100644 index 0000000000..5ca0bcbce0 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-mrr.robot @@ -0,0 +1,144 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/l2/tagging.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | L2XCFWD | BASE | DOT1AD +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X520-DA2 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance mrr test +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2XC with 802.1ad test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 xconnect. +| ... | 802.1ad tagging is applied on link between DUT1 and DUT2 with inner 4B +| ... | vlan tag (id=100) and outer 4B vlan tag (id=200). +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross- +| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X520 Niantic by Intel. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, 253 flows per flow-group) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${subid}= | 10 +| ${outer_vlan_id}= | 100 +| ${inner_vlan_id}= | 200 +| ${type_subif}= | two_tags +| ${tag_rewrite}= | pop-2 +| ${overhead}= | ${8} +# X520-DA2 bandwidth limit +| ${s_limit} | ${10000000000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | And Set interfaces in path in 3-node circular topology up +| | When Initialize VLAN sub-interfaces in 3-node circular topology +| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} +| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} +| | And Configure L2 tag rewrite method on interfaces +| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} +| | ... | ${tag_rewrite} +| | And Connect interfaces and VLAN sub-interfaces using L2XC +| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} +| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-dot1ad-l2xcbase-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-dot1ad-l2xcbase-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-dot1ad-l2xcbase-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-dot1ad-l2xcbase-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-dot1ad-l2xcbase-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-dot1ad-l2xcbase-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-dot1ad-l2xcbase-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-dot1ad-l2xcbase-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-dot1ad-l2xcbase-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-dot1ad-l2xcbase-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1ad-l2xcbase-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-dot1ad-l2xcbase-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-ndrpdr.robot new file mode 100644 index 0000000000..aceb1eb054 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-ndrpdr.robot @@ -0,0 +1,150 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/l2/tagging.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X520-DA2 | L2XCFWD | BASE | DOT1AD +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X520-DA2 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2XC with 802.1ad test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 xconnect. +| ... | 802.1ad tagging is applied on link between DUT1 and DUT2 with inner 4B +| ... | vlan tag (id=100) and outer 4B vlan tag (id=200). +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross- +| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X520 Niantic by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, 253 flows per flow-group) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and +| ... | static payload. MAC addresses are matching MAC addresses of the TG +| ... | node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${subid}= | 10 +| ${outer_vlan_id}= | 100 +| ${inner_vlan_id}= | 200 +| ${type_subif}= | two_tags +| ${tag_rewrite}= | pop-2 +| ${overhead}= | ${8} +# X520-DA2 bandwidth limit +| ${s_limit} | ${10000000000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC forwarding config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | And Set interfaces in path in 3-node circular topology up +| | When Initialize VLAN sub-interfaces in 3-node circular topology +| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} +| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} +| | And Configure L2 tag rewrite method on interfaces +| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} +| | ... | ${tag_rewrite} +| | And Connect interfaces and VLAN sub-interfaces using L2XC +| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} +| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-dot1ad-l2xcbase-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-dot1ad-l2xcbase-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-dot1ad-l2xcbase-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-dot1ad-l2xcbase-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-dot1ad-l2xcbase-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-dot1ad-l2xcbase-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-dot1ad-l2xcbase-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-dot1ad-l2xcbase-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-dot1ad-l2xcbase-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-dot1ad-l2xcbase-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1ad-l2xcbase-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-dot1ad-l2xcbase-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot deleted file mode 100644 index 01716c8913..0000000000 --- a/tests/vpp/perf/l2/10ge2p1x520-dot1ad-l2xcbase-ndrpdrdisc.robot +++ /dev/null @@ -1,606 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Resource | resources/libraries/robot/performance/performance_setup.robot -| Resource | resources/libraries/robot/l2/tagging.robot -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X520-DA2 | L2XCFWD | BASE | DOT1AD -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-X520-DA2 -| Suite Teardown | Tear down 3-node performance topology -| ... -| Test Setup | Set up performance test -| ... -| Test Teardown | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... -| Documentation | *RFC2544: Pkt throughput L2XC with 802.1ad test cases* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 xconnect. -| ... | 802.1ad tagging is applied on link between DUT1 and DUT2 with inner 4B -| ... | vlan tag (id=100) and outer 4B vlan tag (id=200). -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross- -| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X520 Niantic by Intel. -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage -| ... | of packets transmitted. NDR and PDR are discovered for different -| ... | Ethernet L2 frame sizes using either binary search or linear search -| ... | algorithms with configured starting rate and final step that determines -| ... | throughput measurement resolution. Test packets are generated by TG on -| ... | links to DUTs. TG traffic profile contains two L3 flow-groups -| ... | (flow-group per direction, 253 flows per flow-group) with all packets -| ... | containing Ethernet header, IPv4 header with IP protocol=61 and -| ... | static payload. MAC addresses are matching MAC addresses of the TG -| ... | node interfaces. -| ... | *[Ref] Applicable standard specifications:* RFC2544. - -*** Variables *** -| ${subid}= | 10 -| ${outer_vlan_id}= | 100 -| ${inner_vlan_id}= | 200 -| ${type_subif}= | two_tags -| ${tag_rewrite}= | pop-2 -# X520-DA2 bandwidth limit -| ${s_limit} | ${10000000000} -# Traffic profile: -| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 - -*** Test Cases *** -| tc01-64B-1t1c-dot1ad-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 64B | 1C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc02-64B-1t1c-dot1ad-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc03-1514B-1t1c-dot1ad-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1514 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 1514B | 1C | NDRDISC -| | ${framesize}= | Set Variable | ${1514} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc04-1514B-1t1c-dot1ad-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1514 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 1514B | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1514} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc05-9000B-1t1c-dot1ad-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps. -| | [Tags] | 9000B | 1C | NDRDISC -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc06-9000B-1t1c-dot1ad-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc07-64B-2t2c-dot1ad-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 64B | 2C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc08-64B-2t2c-dot1ad-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc09-1514B-2t2c-dot1ad-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1514 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 1514B | 2C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1514} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc10-1514B-2t2c-dot1ad-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1514 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 1514B | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1514} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc11-9000B-2t2c-dot1ad-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps. -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc12-9000B-2t2c-dot1ad-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc13-64B-4t4c-dot1ad-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 64B | 4C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc14-64B-4t4c-dot1ad-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc15-1514B-4t4c-dot1ad-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 1514 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 1514B | 4C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1514} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc16-1514B-4t4c-dot1ad-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 1514 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 1514B | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1514} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc17-9000B-4t4c-dot1ad-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps. -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc18-9000B-4t4c-dot1ad-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC forwarding config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 8} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | ... | ${outer_vlan_id} | ${inner_vlan_id} | ${type_subif} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} diff --git a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-mrr.robot index 4bc8427e4d..3b2d5304ab 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-mrr.robot @@ -19,12 +19,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X520-DA2 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test +| ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with 802.1q test cases* | ... @@ -48,8 +50,7 @@ *** Variables *** | ${subid}= | 10 | ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} -| ${avg_imix_framesize}= | ${357.833} +| ${overhead}= | ${4} # X520-DA2 bandwidth limit | ${s_limit} | ${10000000000} # Bridge domain IDs @@ -59,7 +60,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD config with VLAN. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -72,17 +73,12 @@ | | ... | - phy_cores - Number of physical cores. Type: integer | | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer | | ... -| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize} + ${vlan_overhead} +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domains with VLAN dot1q sub-interfaces in a 3-node circular topology | | ... | ${bd_id1} | ${bd_id2} | ${subid} | ${tag_rewrite} @@ -90,50 +86,50 @@ | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-dot1q-l2bdbasemaclrn-mrr +| tc01-64B-1c-dot1q-l2bdbasemaclrn-mrr | | [Tags] | 64B | 1C -| | phy_cores=${1} | framesize=${64} +| | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | 1518B | 1C -| | phy_cores=${1} | framesize=${1518} - -| tc03-9000B-1t1c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | 9000B | 1C -| | phy_cores=${1} | framesize=${9000} +| tc02-64B-2c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} -| tc04-IMIX-1t1c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | IMIX | 1C -| | phy_cores=${1} | framesize=IMIX_v4_1 +| tc03-64B-4c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} -| tc05-64B-2t2c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | 64B | 2C -| | phy_cores=${2} | framesize=${64} +| tc04-1518B-1c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} -| tc06-1518B-2t2c-dot1q-l2bdbasemaclrn-mrr +| tc05-1518B-2c-dot1q-l2bdbasemaclrn-mrr | | [Tags] | 1518B | 2C -| | phy_cores=${2} | framesize=${1518} +| | framesize=${1518} | phy_cores=${2} -| tc07-9000B-2t2c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | 9000B | 2C -| | phy_cores=${2} | framesize=${9000} - -| tc08-IMIX-2t2c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | IMIX | 2C -| | phy_cores=${2} | framesize=IMIX_v4_1 +| tc06-1518B-4c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} -| tc09-64B-4t4c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | 64B | 4C -| | phy_cores=${4} | framesize=${64} +| tc07-9000B-1c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc10-1518B-4t4c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | 1518B | 4C -| | phy_cores=${4} | framesize=${1518} +| tc08-9000B-2c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc11-9000B-4t4c-dot1q-l2bdbasemaclrn-mrr +| tc09-9000B-4c-dot1q-l2bdbasemaclrn-mrr | | [Tags] | 9000B | 4C -| | phy_cores=${4} | framesize=${9000} +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc12-IMIX-4t4c-dot1q-l2bdbasemaclrn-mrr +| tc12-IMIX-4c-dot1q-l2bdbasemaclrn-mrr | | [Tags] | IMIX | 4C -| | phy_cores=${4} | framesize=IMIX_v4_1 +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdr.robot new file mode 100644 index 0000000000..d539454c4f --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdr.robot @@ -0,0 +1,141 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X520-DA2 | BASE | DOT1Q | L2BDMACLRN +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X520-DA2 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases with 802.1q test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.\ +| ... | 802.1q tagging is applied on link between DUT1 and DUT2. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge\ +| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC +| ... | X520 Niantic by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 254 flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} +# X520-DA2 bandwidth limit +| ${s_limit} | ${10000000000} +# Bridge domain IDs +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD config with VLAN. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domains with VLAN dot1q sub-interfaces in a 3-node circular topology +| | ... | ${bd_id1} | ${bd_id2} | ${subid} | ${tag_rewrite} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdrdisc.robot deleted file mode 100644 index 0e6a13b44c..0000000000 --- a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2bdbasemaclrn-ndrpdrdisc.robot +++ /dev/null @@ -1,170 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Resource | resources/libraries/robot/performance/performance_setup.robot -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X520-DA2 | BASE | DOT1Q | L2BDMACLRN -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-X520-DA2 -| Suite Teardown | Tear down 3-node performance topology -| ... -| Test Setup | Set up performance test -| Test Teardown | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Packet throughput L2BD test cases with 802.1q test -| ... | cases* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.\ -| ... | 802.1q tagging is applied on link between DUT1 and DUT2. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge\ -| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC -| ... | X520 Niantic by Intel. -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ -| ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ -| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ -| ... | (flow-group per direction, 254 flows per flow-group) with all packets\ -| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ -| ... | payload. MAC addresses are matching MAC addresses of the TG node\ -| ... | interfaces. -| ... | *[Ref] Applicable standard specifications:* RFC2544. - -*** Variables *** -| ${subid}= | 10 -| ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} -| ${avg_imix_framesize}= | ${357.833} -# X520-DA2 bandwidth limit -| ${s_limit} | ${10000000000} -# Bridge domain IDs -| ${bd_id1}= | 1 -| ${bd_id2}= | 2 -# Traffic profile: -| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 - -*** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Set Variable If -| | ... | "${framesize}" == "IMIX_v4_1" | ${avg_imix_framesize} -| | ... | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize + ${vlan_overhead}} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | When Initialize L2 bridge domains with VLAN dot1q sub-interfaces in a 3-node circular topology -| | ... | ${bd_id1} | ${bd_id2} | ${subid} | ${tag_rewrite} -| | Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-dot1q-l2bdbasemaclrn-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR - -| tc02-64B-1t1c-dot1q-l2bdbasemaclrn-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR - -| tc03-1518B-1t1c-dot1q-l2bdbasemaclrn-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${1518} | search_type=NDR - -| tc04-1518B-1t1c-dot1q-l2bdbasemaclrn-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${1518} | search_type=PDR - -| tc05-IMIX-1t1c-dot1q-l2bdbasemaclrn-ndrdisc -| | [Tags] | IMIX | 1C | NDRDISC -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=NDR - -| tc06-IMIX-1t1c-dot1q-l2bdbasemaclrn-pdrdisc -| | [Tags] | IMIX | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=IMIX_v4_1 | search_type=PDR - -| tc07-64B-2t2c-dot1q-l2bdbasemaclrn-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR - -| tc08-64B-2t2c-dot1q-l2bdbasemaclrn-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR - -| tc09-1518B-2t2c-dot1q-l2bdbasemaclrn-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=NDR - -| tc10-1518B-2t2c-dot1q-l2bdbasemaclrn-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${1518} | search_type=PDR - -| tc11-IMIX-2t2c-dot1q-l2bdbasemaclrn-ndrdisc -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=NDR - -| tc12-IMIX-2t2c-dot1q-l2bdbasemaclrn-pdrdisc -| | [Tags] | IMIX | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=IMIX_v4_1 | search_type=PDR - -| tc13-64B-4t4c-dot1q-l2bdbasemaclrn-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR - -| tc14-64B-4t4c-dot1q-l2bdbasemaclrn-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR - -| tc15-1518B-4t4c-dot1q-l2bdbasemaclrn-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=NDR - -| tc16-1518B-4t4c-dot1q-l2bdbasemaclrn-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${1518} | search_type=PDR - -| tc17-IMIX-4t4c-dot1q-l2bdbasemaclrn-ndrdisc -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=NDR - -| tc18-IMIX-4t4c-dot1q-l2bdbasemaclrn-pdrdisc -| | [Tags] | IMIX | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=IMIX_v4_1 | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-mrr.robot index c1051d7a02..f76311bc74 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-mrr.robot @@ -17,16 +17,17 @@ | ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR | ... | NIC_Intel-X520-DA2 | L2XCFWD | BASE | DOT1Q +| ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X520-DA2 -| Suite Teardown | Tear down 3-node performance topology | ... +| Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC with 802.1q test cases* | ... @@ -49,13 +50,14 @@ *** Variables *** | ${subid}= | 10 | ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} # X520-DA2 bandwidth limit | ${s_limit} | ${10000000000} # Traffic profile: | ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC config with VLAN dot1q with ${phy_cores} phy | | ... | core(s). @@ -68,16 +70,12 @@ | | ... | - phy_cores - Number of physical cores. Type: integer | | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer | | ... -| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | And Set interfaces in path in 3-node circular topology up | | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology @@ -92,50 +90,50 @@ | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-dot1q-l2xcbase-mrr +| tc01-64B-1c-dot1q-l2xcbase-mrr | | [Tags] | 64B | 1C -| | phy_cores=${1} | framesize=${64} - -| tc02-1518B-1t1c-dot1q-l2xcbase-mrr -| | [Tags] | 1518B | 1C -| | phy_cores=${1} | framesize=${1518} +| | framesize=${64} | phy_cores=${1} -| tc03-9000B-1t1c-dot1q-l2xcbase-mrr -| | [Tags] | 9000B | 1C -| | phy_cores=${1} | framesize=${9000} +| tc02-64B-2c-dot1q-l2xcbase-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} -| tc04-IMIX-1t1c-dot1q-l2xcbase-mrr -| | [Tags] | IMIX | 1C -| | phy_cores=${1} | framesize=IMIX_v4_1 +| tc03-64B-4c-dot1q-l2xcbase-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} -| tc05-64B-2t2c-dot1q-l2xcbase-mrr -| | [Tags] | 64B | 2C -| | phy_cores=${2} | framesize=${64} +| tc04-1518B-1c-dot1q-l2xcbase-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} -| tc06-1518B-2t2c-dot1q-l2xcbase-mrr +| tc05-1518B-2c-dot1q-l2xcbase-mrr | | [Tags] | 1518B | 2C -| | phy_cores=${2} | framesize=${1518} +| | framesize=${1518} | phy_cores=${2} -| tc07-9000B-2t2c-dot1q-l2xcbase-mrr -| | [Tags] | 9000B | 2C -| | phy_cores=${2} | framesize=${9000} - -| tc08-IMIX-2t2c-dot1q-l2xcbase-mrr -| | [Tags] | IMIX | 2C -| | phy_cores=${2} | framesize=IMIX_v4_1 +| tc06-1518B-4c-dot1q-l2xcbase-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} -| tc09-64B-4t4c-dot1q-l2xcbase-mrr -| | [Tags] | 64B | 4C -| | phy_cores=${4} | framesize=${64} +| tc07-9000B-1c-dot1q-l2xcbase-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc10-1518B-4t4c-dot1q-l2xcbase-mrr -| | [Tags] | 1518B | 4C -| | phy_cores=${4} | framesize=${1518} +| tc08-9000B-2c-dot1q-l2xcbase-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc11-9000B-4t4c-dot1q-l2xcbase-mrr +| tc09-9000B-4c-dot1q-l2xcbase-mrr | | [Tags] | 9000B | 4C -| | phy_cores=${4} | framesize=${9000} +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-dot1q-l2xcbase-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2xcbase-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc12-IMIX-4t4c-dot1q-l2xcbase-mrr +| tc12-IMIX-4c-dot1q-l2xcbase-mrr | | [Tags] | IMIX | 4C -| | phy_cores=${4} | framesize=IMIX_v4_1 +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-ndrpdr.robot new file mode 100644 index 0000000000..929a453251 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-ndrpdr.robot @@ -0,0 +1,145 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/l2/tagging.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X520-DA2 | L2XCFWD | BASE | DOT1Q +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X520-DA2 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2XC with 802.1q test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. 802.1q\ +| ... | tagging is applied on link between DUT1 and DUT2. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-\ +| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X520 Niantic by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 253 flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} +# X520-DA2 bandwidth limit +| ${s_limit} | ${10000000000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC config with VLAN dot1q with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | And Set interfaces in path in 3-node circular topology up +| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology +| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} +| | And Configure L2 tag rewrite method on interfaces +| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} +| | ... | ${tag_rewrite} +| | And Connect interfaces and VLAN sub-interfaces using L2XC +| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} +| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-dot1q-l2xcbase-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2xcbase-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-dot1q-l2xcbase-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot deleted file mode 100644 index f8688b5f04..0000000000 --- a/tests/vpp/perf/l2/10ge2p1x520-dot1q-l2xcbase-ndrpdrdisc.robot +++ /dev/null @@ -1,584 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Resource | resources/libraries/robot/performance/performance_setup.robot -| Resource | resources/libraries/robot/l2/tagging.robot -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X520-DA2 | L2XCFWD | BASE | DOT1Q -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-X520-DA2 -| Suite Teardown | Tear down 3-node performance topology -| ... -| ... -| Test Setup | Set up performance test -| ... -| Test Teardown | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... -| Documentation | *RFC2544: Pkt throughput L2XC with 802.1q test cases* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. 802.1q -| ... | tagging is applied on link between DUT1 and DUT2. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross- -| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X520 Niantic by Intel. -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage -| ... | of packets transmitted. NDR and PDR are discovered for different -| ... | Ethernet L2 frame sizes using either binary search or linear search -| ... | algorithms with configured starting rate and final step that determines -| ... | throughput measurement resolution. Test packets are generated by TG on -| ... | links to DUTs. TG traffic profile contains two L3 flow-groups -| ... | (flow-group per direction, 253 flows per flow-group) with all packets -| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static -| ... | payload. MAC addresses are matching MAC addresses of the TG node -| ... | interfaces. -| ... | *[Ref] Applicable standard specifications:* RFC2544. - -*** Variables *** -| ${subid}= | 10 -| ${tag_rewrite}= | pop-1 -# X520-DA2 bandwidth limit -| ${s_limit} | ${10000000000} -# Traffic profile: -| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 - -*** Test Cases *** -| tc01-64B-1t1c-dot1q-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 64B | 1C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc02-64B-1t1c-dot1q-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc03-1518B-1t1c-dot1q-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 1518B | 1C | NDRDISC -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc04-1518B-1t1c-dot1q-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc05-9000B-1t1c-dot1q-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps. -| | [Tags] | 9000B | 1C | NDRDISC -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc06-9000B-1t1c-dot1q-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc07-64B-2t2c-dot1q-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 64B | 2C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc08-64B-2t2c-dot1q-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc09-1518B-2t2c-dot1q-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc10-1518B-2t2c-dot1q-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc11-9000B-2t2c-dot1q-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps. -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc12-9000B-2t2c-dot1q-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc13-64B-4t4c-dot1q-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 64B | 4C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc14-64B-4t4c-dot1q-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc15-1518B-4t4c-dot1q-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 1518 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc16-1518B-4t4c-dot1q-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 1518 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc17-9000B-4t4c-dot1q-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps. -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc18-9000B-4t4c-dot1q-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize + 4} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Set interfaces in path in 3-node circular topology up -| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology -| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} -| | And Configure L2 tag rewrite method on interfaces -| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} -| | ... | ${tag_rewrite} -| | And Connect interfaces and VLAN sub-interfaces using L2XC -| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} -| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-mrr.robot new file mode 100644 index 0000000000..aad7b01d29 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL10 | 100_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 10 +| ${flows_per_dir}= | 100 + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl10sf-100flows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl10sf-100flows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl10sf-100flows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl10sf-100flows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl10sf-100flows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl10sf-100flows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl10sf-100flows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl10sf-100flows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl10sf-100flows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl10sf-100flows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl10sf-100flows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl10sf-100flows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr.robot index c2e5ed7a5f..0a4b4b901a 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | IACL | ACL10 | 100_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u10p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-mrr.robot new file mode 100644 index 0000000000..f88fc594e4 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL10 | 100k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 10 +| ${flows_per_dir}= | 100k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl10sf-100kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl10sf-100kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl10sf-100kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl10sf-100kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl10sf-100kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl10sf-100kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl10sf-100kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl10sf-100kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl10sf-100kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl10sf-100kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl10sf-100kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl10sf-100kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr.robot index 6c67aa43fe..f40f85bc03 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | IACL | ACL10 | 100k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-100u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-mrr.robot new file mode 100644 index 0000000000..6492a786ea --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-mrr.robot @@ -0,0 +1,139 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL10 | 10k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 10 +| ${flows_per_dir}= | 10k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl10sf-10kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl10sf-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl10sf-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl10sf-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl10sf-10kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl10sf-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl10sf-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl10sf-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl10sf-10kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl10sf-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl10sf-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl10sf-10kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr.robot index 3acc49415a..1238209778 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | IACL | ACL10 | 10k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-mrr.robot new file mode 100644 index 0000000000..8dfd90a211 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL10 | 100_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 10 +| ${flows_per_dir}= | 100 + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl10sl-100flows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl10sl-100flows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl10sl-100flows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl10sl-100flows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl10sl-100flows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl10sl-100flows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl10sl-100flows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl10sl-100flows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl10sl-100flows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl10sl-100flows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl10sl-100flows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl10sl-100flows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr.robot index a8e05e00fd..072268e0c0 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | IACL | ACL10 | 100_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u10p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-mrr.robot new file mode 100644 index 0000000000..71ebad9704 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL10 | 100k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 10 +| ${flows_per_dir}= | 100k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl10sl-100kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl10sl-100kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl10sl-100kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl10sl-100kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl10sl-100kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl10sl-100kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl10sl-100kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl10sl-100kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl10sl-100kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl10sl-100kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl10sl-100kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl10sl-100kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr.robot index e2d5d64204..6275ee29e4 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | IACL | ACL10 | 100k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-100u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-mrr.robot new file mode 100644 index 0000000000..9fcece416e --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL10 | 10k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 10 +| ${flows_per_dir}= | 10k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl10sl-10kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl10sl-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl10sl-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl10sl-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl10sl-10kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl10sl-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl10sl-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl10sl-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl10sl-10kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl10sl-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl10sl-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl10sl-10kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr.robot index 7dd5489145..3522069cf4 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | IACL | ACL10 | 10k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-mrr.robot new file mode 100644 index 0000000000..0fc74a8c8f --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL1 | 100_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 1 +| ${flows_per_dir}= | 100 + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sf-100flows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sf-100flows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sf-100flows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sf-100flows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sf-100flows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sf-100flows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sf-100flows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sf-100flows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sf-100flows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sf-100flows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sf-100flows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sf-100flows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr.robot index 0dd677e6ea..e44241e0b8 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | IACL | ACL1 | 100_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u10p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-mrr.robot new file mode 100644 index 0000000000..222328ccea --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL1 | 100k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 1 +| ${flows_per_dir}= | 100k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sf-100kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sf-100kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sf-100kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sf-100kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sf-100kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sf-100kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sf-100kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sf-100kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sf-100kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sf-100kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sf-100kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sf-100kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr.robot index ba5154c54c..aab59e239b 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | IACL | ACL1 | 100k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-100u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot index 0997fcee57..4d2d002318 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot @@ -22,13 +22,14 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with ACL* | ... @@ -73,7 +74,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4udp-10u1000p-conc *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy | | ... | core(s). @@ -86,66 +87,62 @@ | | ... | - phy_cores - Number of physical cores. Type: integer | | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer | | ... -| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr | | [Tags] | 64B | 1C -| | phy_cores=${1} | framesize=${64} - -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | 1518B | 1C -| | phy_cores=${1} | framesize=${1518} +| | framesize=${64} | phy_cores=${1} -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | 9000B | 1C -| | phy_cores=${1} | framesize=${9000} +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | IMIX | 1C -| | phy_cores=${1} | framesize=IMIX_v4_1 +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} -| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | 64B | 2C -| | phy_cores=${2} | framesize=${64} +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr | | [Tags] | 1518B | 2C -| | phy_cores=${2} | framesize=${1518} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | 9000B | 2C -| | phy_cores=${2} | framesize=${9000} +| | framesize=${1518} | phy_cores=${2} -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | IMIX | 2C -| | phy_cores=${2} | framesize=IMIX_v4_1 +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} -| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | 64B | 4C -| | phy_cores=${4} | framesize=${64} +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc10-1518B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | 1518B | 4C -| | phy_cores=${4} | framesize=${1518} +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc11-9000B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr | | [Tags] | 9000B | 4C -| | phy_cores=${4} | framesize=${9000} +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr | | [Tags] | IMIX | 4C -| | phy_cores=${4} | framesize=IMIX_v4_1 +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr.robot index bd88b32f0e..cb5a159034 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | IACL | ACL1 | 10k_FLOWS | ... @@ -22,16 +22,17 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... -| Test Teardown | Tear down performance test with ACL -| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... -| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* +| Documentation | *RFC2544: Pkt throughput L2BD test cases with ACL* | ... | ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ | ... | with single links between nodes. @@ -40,13 +41,12 @@ | ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ | ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ | ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ -| ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,81 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4udp-10u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-mrr.robot new file mode 100644 index 0000000000..eb969e68b7 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL1 | 100_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 1 +| ${flows_per_dir}= | 100 + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sl-100flows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sl-100flows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sl-100flows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sl-100flows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sl-100flows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sl-100flows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sl-100flows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sl-100flows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sl-100flows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sl-100flows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sl-100flows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sl-100flows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr.robot index dc8e13512e..60f108c6c3 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | IACL | ACL1 | 100_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u10p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-mrr.robot new file mode 100644 index 0000000000..f137ea4f27 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL1 | 100k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 1 +| ${flows_per_dir}= | 100k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sl-100kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sl-100kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sl-100kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sl-100kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sl-100kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sl-100kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sl-100kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sl-100kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sl-100kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sl-100kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sl-100kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sl-100kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr.robot index e38ca5de73..6a209f6dd7 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | IACL | ACL1 | 100k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-100u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot index e749f82dc0..611845d450 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot @@ -22,13 +22,14 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with ACL* | ... @@ -73,7 +74,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4udp-10u1000p-conc *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy | | ... | core(s). @@ -86,66 +87,62 @@ | | ... | - phy_cores - Number of physical cores. Type: integer | | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer | | ... -| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr | | [Tags] | 64B | 1C -| | phy_cores=${1} | framesize=${64} - -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | 1518B | 1C -| | phy_cores=${1} | framesize=${1518} +| | framesize=${64} | phy_cores=${1} -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | 9000B | 1C -| | phy_cores=${1} | framesize=${9000} +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | IMIX | 1C -| | phy_cores=${1} | framesize=IMIX_v4_1 +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} -| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | 64B | 2C -| | phy_cores=${2} | framesize=${64} +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr | | [Tags] | 1518B | 2C -| | phy_cores=${2} | framesize=${1518} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | 9000B | 2C -| | phy_cores=${2} | framesize=${9000} +| | framesize=${1518} | phy_cores=${2} -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | IMIX | 2C -| | phy_cores=${2} | framesize=IMIX_v4_1 +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} -| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | 64B | 4C -| | phy_cores=${4} | framesize=${64} +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | 1518B | 4C -| | phy_cores=${4} | framesize=${1518} +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr | | [Tags] | 9000B | 4C -| | phy_cores=${4} | framesize=${9000} +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr | | [Tags] | IMIX | 4C -| | phy_cores=${4} | framesize=IMIX_v4_1 +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr.robot index 0a2d7014a0..1c9f5fadc1 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | IACL | ACL1 | 10k_FLOWS | ... @@ -22,16 +22,17 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... -| Test Teardown | Tear down performance test with ACL -| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... -| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* +| Documentation | *RFC2544: Pkt throughput L2BD test cases with ACL* | ... | ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ | ... | with single links between nodes. @@ -40,13 +41,12 @@ | ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ | ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ | ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ -| ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,82 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4udp-10u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-mrr.robot new file mode 100644 index 0000000000..60c5c2e362 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL50 | 100_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 50 +| ${flows_per_dir}= | 100 + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sf-100flows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sf-100flows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sf-100flows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sf-100flows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sf-100flows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sf-100flows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sf-100flows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sf-100flows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sf-100flows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sf-100flows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sf-100flows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sf-100flows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr.robot index 6208c4e8e0..aeec975c78 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | IACL | ACL50 | 100_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u10p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-mrr.robot new file mode 100644 index 0000000000..6991fec430 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL50 | 100k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 50 +| ${flows_per_dir}= | 100k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sf-100kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sf-100kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sf-100kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sf-100kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sf-100kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sf-100kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sf-100kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sf-100kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sf-100kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sf-100kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sf-100kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sf-100kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr.robot index 069a2ca6fd..66fbcf3a87 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | IACL | ACL50 | 100k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-100u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot index 3ef8bf84e6..547c22474b 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot @@ -22,13 +22,14 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with ACL* | ... @@ -73,7 +74,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4udp-10u1000p-conc *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy | | ... | core(s). @@ -86,66 +87,62 @@ | | ... | - phy_cores - Number of physical cores. Type: integer | | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer | | ... -| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr | | [Tags] | 64B | 1C -| | phy_cores=${1} | framesize=${64} - -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | 1518B | 1C -| | phy_cores=${1} | framesize=${1518} +| | framesize=${64} | phy_cores=${1} -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | 9000B | 1C -| | phy_cores=${1} | framesize=${9000} +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | IMIX | 1C -| | phy_cores=${1} | framesize=IMIX_v4_1 +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} -| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | 64B | 2C -| | phy_cores=${2} | framesize=${64} +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr | | [Tags] | 1518B | 2C -| | phy_cores=${2} | framesize=${1518} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | 9000B | 2C -| | phy_cores=${2} | framesize=${9000} +| | framesize=${1518} | phy_cores=${2} -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | IMIX | 2C -| | phy_cores=${2} | framesize=IMIX_v4_1 +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} -| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | 64B | 4C -| | phy_cores=${4} | framesize=${64} +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | 1518B | 4C -| | phy_cores=${4} | framesize=${1518} +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr | | [Tags] | 9000B | 4C -| | phy_cores=${4} | framesize=${9000} +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr | | [Tags] | IMIX | 4C -| | phy_cores=${4} | framesize=IMIX_v4_1 +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot index 9b6666249e..5a6389bc25 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | IACL | ACL50 | 10k_FLOWS | ... @@ -22,16 +22,17 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... -| Test Teardown | Tear down performance test with ACL -| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... -| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* +| Documentation | *RFC2544: Pkt throughput L2BD test cases with ACL* | ... | ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ | ... | with single links between nodes. @@ -40,13 +41,12 @@ | ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ | ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ | ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ -| ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,81 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4udp-10u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-mrr.robot new file mode 100644 index 0000000000..a699f8eaa7 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-mrr.robot @@ -0,0 +1,137 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL50 | 100_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 50 +| ${flows_per_dir}= | 100 + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u10p-conc +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sl-100flows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sl-100flows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sl-100flows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sl-100flows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sl-100flows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sl-100flows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sl-100flows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sl-100flows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sl-100flows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sl-100flows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sl-100flows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sl-100flows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr.robot index 4a6fd0de16..12d3217dae 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | IACL | ACL50 | 100_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,71 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology | | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u10p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-mrr.robot new file mode 100644 index 0000000000..98940c8ff3 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL50 | 100k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 50 +| ${flows_per_dir}= | 100k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sl-100kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sl-100kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sl-100kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sl-100kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sl-100kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sl-100kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sl-100kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sl-100kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sl-100kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sl-100kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sl-100kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sl-100kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr.robot index e1b51da2af..eb2dfdd4a0 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | IACL | ACL50 | 100k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-100u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot index f8dc475a22..5e07513865 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot @@ -22,13 +22,14 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with ACL* | ... @@ -73,7 +74,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4udp-10u1000p-conc *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy | | ... | core(s). @@ -86,66 +87,62 @@ | | ... | - phy_cores - Number of physical cores. Type: integer | | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer | | ... -| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr | | [Tags] | 64B | 1C -| | phy_cores=${1} | framesize=${64} - -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | 1518B | 1C -| | phy_cores=${1} | framesize=${1518} +| | framesize=${64} | phy_cores=${1} -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | 9000B | 1C -| | phy_cores=${1} | framesize=${9000} +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | IMIX | 1C -| | phy_cores=${1} | framesize=IMIX_v4_1 +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} -| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | 64B | 2C -| | phy_cores=${2} | framesize=${64} +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr | | [Tags] | 1518B | 2C -| | phy_cores=${2} | framesize=${1518} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | 9000B | 2C -| | phy_cores=${2} | framesize=${9000} +| | framesize=${1518} | phy_cores=${2} -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | IMIX | 2C -| | phy_cores=${2} | framesize=IMIX_v4_1 +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} -| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | 64B | 4C -| | phy_cores=${4} | framesize=${64} +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | 1518B | 4C -| | phy_cores=${4} | framesize=${1518} +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr | | [Tags] | 9000B | 4C -| | phy_cores=${4} | framesize=${9000} +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr | | [Tags] | IMIX | 4C -| | phy_cores=${4} | framesize=IMIX_v4_1 +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot index 49493be244..d56e5f7513 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | IACL | ACL50 | 10k_FLOWS | ... @@ -22,16 +22,17 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... -| Test Teardown | Tear down performance test with ACL -| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... -| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* +| Documentation | *RFC2544: Pkt throughput L2BD test cases with ACL* | ... | ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ | ... | with single links between nodes. @@ -40,13 +41,12 @@ | ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ | ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ | ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ -| ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,81 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4udp-10u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-mrr.robot new file mode 100644 index 0000000000..040fd79296 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-mrr.robot @@ -0,0 +1,139 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS +| ... | IACL | ACL10 | 100_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with MACIP ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required MACIP ACL rules are applied to input paths of both DUT1\ +| ... | interfaces. DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by\ +| ... | Intel. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ +| ... | and static payload. MAC addresses are matching MAC addresses of the TG\ +| ... | node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${no_hit_aces_number}= | 10 +| ${flows_per_dir}= | 100 + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${ip_step}= | ${1} +| ${src_mac_start}= | 01:02:03:04:05:06 +| ${src_mac_step}= | ${1000} +| ${src_mac_mask}= | 00:00:00:00:00:00 +| ${tg_stream1_mac}= | ca:fe:00:00:00:00 +| ${tg_stream2_mac}= | fa:ce:00:00:00:00 +| ${tg_mac_mask}= | ff:ff:ff:ff:ff:80 +| ${tg_stream1_subnet}= | 10.0.0.0/24 +| ${tg_stream2_subnet}= | 20.0.0.0/24 + +# traffic profile +| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100ip4src100 + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr.robot index fb23e6852b..eaa745970b 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS | ... | IACL | ACL10 | 100_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with MACIP ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -45,9 +46,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ @@ -80,54 +80,67 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100ip4src100 *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100flows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-mrr.robot new file mode 100644 index 0000000000..a72c106427 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-mrr.robot @@ -0,0 +1,139 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS +| ... | IACL | ACL10 | 100k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with MACIP ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required MACIP ACL rules are applied to input paths of both DUT1\ +| ... | interfaces. DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by\ +| ... | Intel. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ +| ... | and static payload. MAC addresses are matching MAC addresses of the TG\ +| ... | node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${no_hit_aces_number}= | 10 +| ${flows_per_dir}= | 100k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${ip_step}= | ${1} +| ${src_mac_start}= | 01:02:03:04:05:06 +| ${src_mac_step}= | ${1000} +| ${src_mac_mask}= | 00:00:00:00:00:00 +| ${tg_stream1_mac}= | ca:fe:00:00:00:00 +| ${tg_stream2_mac}= | fa:ce:00:00:00:00 +| ${tg_mac_mask}= | ff:ff:ff:fe:00:00 +| ${tg_stream1_subnet}= | 10.0.0.0/15 +| ${tg_stream2_subnet}= | 20.0.0.0/15 + +# traffic profile +| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100kip4src100k + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr.robot index 3b1dbeeddf..d73e90dc90 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS | ... | IACL | ACL10 | 100k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with MACIP ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -45,9 +46,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ @@ -80,54 +80,67 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100kip4src100k *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl10sl-100kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-mrr.robot new file mode 100644 index 0000000000..a22b982009 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-mrr.robot @@ -0,0 +1,139 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS +| ... | IACL | ACL10 | 10k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with MACIP ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required MACIP ACL rules are applied to input paths of both DUT1\ +| ... | interfaces. DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by\ +| ... | Intel. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ +| ... | and static payload. MAC addresses are matching MAC addresses of the TG\ +| ... | node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${no_hit_aces_number}= | 10 +| ${flows_per_dir}= | 10k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${ip_step}= | ${1} +| ${src_mac_start}= | 01:02:03:04:05:06 +| ${src_mac_step}= | ${1000} +| ${src_mac_mask}= | 00:00:00:00:00:00 +| ${tg_stream1_mac}= | ca:fe:00:00:00:00 +| ${tg_stream2_mac}= | fa:ce:00:00:00:00 +| ${tg_mac_mask}= | ff:ff:ff:ff:c0:00 +| ${tg_stream1_subnet}= | 10.0.0.0/18 +| ${tg_stream2_subnet}= | 20.0.0.0/18 + +# traffic profile +| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc10kip4src10k + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr.robot index ba83ccd5d0..304a88c51d 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS | ... | IACL | ACL10 | 10k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with MACIP ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -45,9 +46,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ @@ -80,54 +80,67 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-macsrc10kip4src10k *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl10sl-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr.robot new file mode 100644 index 0000000000..abc9695dc5 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr.robot @@ -0,0 +1,139 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS +| ... | IACL | ACL1 | 100_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with MACIP ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required MACIP ACL rules are applied to input paths of both DUT1\ +| ... | interfaces. DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by\ +| ... | Intel. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ +| ... | and static payload. MAC addresses are matching MAC addresses of the TG\ +| ... | node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${no_hit_aces_number}= | 1 +| ${flows_per_dir}= | 100 + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${ip_step}= | ${1} +| ${src_mac_start}= | 01:02:03:04:05:06 +| ${src_mac_step}= | ${1000} +| ${src_mac_mask}= | 00:00:00:00:00:00 +| ${tg_stream1_mac}= | ca:fe:00:00:00:00 +| ${tg_stream2_mac}= | fa:ce:00:00:00:00 +| ${tg_mac_mask}= | ff:ff:ff:ff:ff:80 +| ${tg_stream1_subnet}= | 10.0.0.0/24 +| ${tg_stream2_subnet}= | 20.0.0.0/24 + +# traffic profile +| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100ip4src100 + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr.robot index 6ba6f537b3..4e20add1ab 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS | ... | IACL | ACL1 | 100_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with MACIP ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -45,9 +46,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ @@ -80,54 +80,67 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100ip4src100 *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100flows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-mrr.robot new file mode 100644 index 0000000000..278c5e343a --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-mrr.robot @@ -0,0 +1,139 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS +| ... | IACL | ACL1 | 100k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with MACIP ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required MACIP ACL rules are applied to input paths of both DUT1\ +| ... | interfaces. DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by\ +| ... | Intel. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ +| ... | and static payload. MAC addresses are matching MAC addresses of the TG\ +| ... | node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${no_hit_aces_number}= | 1 +| ${flows_per_dir}= | 100k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${ip_step}= | ${1} +| ${src_mac_start}= | 01:02:03:04:05:06 +| ${src_mac_step}= | ${1000} +| ${src_mac_mask}= | 00:00:00:00:00:00 +| ${tg_stream1_mac}= | ca:fe:00:00:00:00 +| ${tg_stream2_mac}= | fa:ce:00:00:00:00 +| ${tg_mac_mask}= | ff:ff:ff:fe:00:00 +| ${tg_stream1_subnet}= | 10.0.0.0/15 +| ${tg_stream2_subnet}= | 20.0.0.0/15 + +# traffic profile +| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100kip4src100k + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr.robot index baa1a4ab67..6dfccb98cf 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS | ... | IACL | ACL1 | 100k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with MACIP ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -45,9 +46,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ @@ -80,54 +80,67 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100kip4src100k *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl1sl-100kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-mrr.robot new file mode 100644 index 0000000000..f06f21531e --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-mrr.robot @@ -0,0 +1,139 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS +| ... | IACL | ACL1 | 10k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with MACIP ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required MACIP ACL rules are applied to input paths of both DUT1\ +| ... | interfaces. DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by\ +| ... | Intel. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ +| ... | and static payload. MAC addresses are matching MAC addresses of the TG\ +| ... | node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${no_hit_aces_number}= | 1 +| ${flows_per_dir}= | 10k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${ip_step}= | ${1} +| ${src_mac_start}= | 01:02:03:04:05:06 +| ${src_mac_step}= | ${1000} +| ${src_mac_mask}= | 00:00:00:00:00:00 +| ${tg_stream1_mac}= | ca:fe:00:00:00:00 +| ${tg_stream2_mac}= | fa:ce:00:00:00:00 +| ${tg_mac_mask}= | ff:ff:ff:ff:c0:00 +| ${tg_stream1_subnet}= | 10.0.0.0/18 +| ${tg_stream2_subnet}= | 20.0.0.0/18 + +# traffic profile +| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc10kip4src10k + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr.robot index de03f295b1..747760bb8b 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS | ... | IACL | ACL1 | 10k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with MACIP ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -45,9 +46,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ @@ -80,54 +80,67 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-macsrc10kip4src10k *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl1sl-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-mrr.robot new file mode 100644 index 0000000000..ece0ecd428 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-mrr.robot @@ -0,0 +1,139 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS +| ... | IACL | ACL50 | 100_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with MACIP ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required MACIP ACL rules are applied to input paths of both DUT1\ +| ... | interfaces. DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by\ +| ... | Intel. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ +| ... | and static payload. MAC addresses are matching MAC addresses of the TG\ +| ... | node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${no_hit_aces_number}= | 50 +| ${flows_per_dir}= | 100 + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${ip_step}= | ${1} +| ${src_mac_start}= | 01:02:03:04:05:06 +| ${src_mac_step}= | ${1000} +| ${src_mac_mask}= | 00:00:00:00:00:00 +| ${tg_stream1_mac}= | ca:fe:00:00:00:00 +| ${tg_stream2_mac}= | fa:ce:00:00:00:00 +| ${tg_mac_mask}= | ff:ff:ff:ff:ff:80 +| ${tg_stream1_subnet}= | 10.0.0.0/24 +| ${tg_stream2_subnet}= | 20.0.0.0/24 + +# traffic profile +| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100ip4src100 + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr.robot index d3b0e185b2..8d9ad09622 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS | ... | IACL | ACL50 | 100_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with MACIP ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -45,9 +46,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ @@ -80,54 +80,67 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100ip4src100 *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100flows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-mrr.robot new file mode 100644 index 0000000000..57a16a0bca --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-mrr.robot @@ -0,0 +1,139 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS +| ... | IACL | ACL50 | 100k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with MACIP ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required MACIP ACL rules are applied to input paths of both DUT1\ +| ... | interfaces. DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by\ +| ... | Intel. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ +| ... | and static payload. MAC addresses are matching MAC addresses of the TG\ +| ... | node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${no_hit_aces_number}= | 50 +| ${flows_per_dir}= | 100k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${ip_step}= | ${1} +| ${src_mac_start}= | 01:02:03:04:05:06 +| ${src_mac_step}= | ${1000} +| ${src_mac_mask}= | 00:00:00:00:00:00 +| ${tg_stream1_mac}= | ca:fe:00:00:00:00 +| ${tg_stream2_mac}= | fa:ce:00:00:00:00 +| ${tg_mac_mask}= | ff:ff:ff:fe:00:00 +| ${tg_stream1_subnet}= | 10.0.0.0/15 +| ${tg_stream2_subnet}= | 20.0.0.0/15 + +# traffic profile +| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100kip4src100k + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr.robot index e849418e73..17b0abb5cd 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS | ... | IACL | ACL50 | 100k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with MACIP ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -45,9 +46,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ @@ -80,54 +80,67 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-macsrc100kip4src100k *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl50sl-100kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr.robot new file mode 100644 index 0000000000..a36895c297 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr.robot @@ -0,0 +1,139 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS +| ... | IACL | ACL50 | 10k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with MACIP ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required MACIP ACL rules are applied to input paths of both DUT1\ +| ... | interfaces. DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by\ +| ... | Intel. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ +| ... | and static payload. MAC addresses are matching MAC addresses of the TG\ +| ... | node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${no_hit_aces_number}= | 50 +| ${flows_per_dir}= | 10k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${ip_step}= | ${1} +| ${src_mac_start}= | 01:02:03:04:05:06 +| ${src_mac_step}= | ${1000} +| ${src_mac_mask}= | 00:00:00:00:00:00 +| ${tg_stream1_mac}= | ca:fe:00:00:00:00 +| ${tg_stream2_mac}= | fa:ce:00:00:00:00 +| ${tg_mac_mask}= | ff:ff:ff:ff:c0:00 +| ${tg_stream1_subnet}= | 10.0.0.0/18 +| ${tg_stream2_subnet}= | 20.0.0.0/18 + +# traffic profile +| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc10kip4src10k + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr.robot index 472035f68e..9bc5c86deb 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | MACIP | ACL_STATELESS | ... | IACL | ACL50 | 10k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with MACIP ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -45,9 +46,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with IP protocol=61\ @@ -80,54 +80,67 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-macsrc10kip4src10k *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with MACIP ACLs on DUT1 in 3-node circular topology -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-macip-iacl50sl-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-mrr.robot index 0143e43163..840bc92b07 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-mrr.robot @@ -19,12 +19,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X520-DA2 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test +| ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases* | ... @@ -50,7 +52,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD config with ${phy_cores} phy | | ... | core(s). @@ -65,64 +67,60 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | And Initialize L2 bridge domain in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-mrr +| tc02-64B-2c-eth-l2bdbasemaclrn-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-mrr +| tc03-64B-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-mrr +| tc04-1518B-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-mrr +| tc07-9000B-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-mrr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdr.robot new file mode 100644 index 0000000000..d1826eb0c0 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdr.robot @@ -0,0 +1,132 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | BASE | L2BDBASE +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X520-DA2 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge- +| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC +| ... | X520 Niantic by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per +| ... | flow-group) with all packets containing Ethernet header, IPv4 header +| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC +| ... | addresses of the TG node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD config with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | And Initialize L2 bridge domain in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot deleted file mode 100644 index 7c69029b8f..0000000000 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-ndrpdrdisc.robot +++ /dev/null @@ -1,158 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Resource | resources/libraries/robot/performance/performance_setup.robot -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | BASE | L2BDBASE -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-X520-DA2 -| Suite Teardown | Tear down 3-node performance topology -| ... -| Test Setup | Set up performance test -| ... -| Test Teardown | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Pkt throughput L2BD test cases* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ -| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NI -| ... | X520 Niantic by Intel. -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ -| ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ -| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ -| ... | (flow-group per direction, 253 flows per flow-group) with all packets\ -| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ -| ... | payload. MAC addresses are matching MAC addresses of the TG node\ -| ... | interfaces. -| ... | *[Ref] Applicable standard specifications:* RFC2544. - -*** Variables *** -# X520-DA2 bandwidth limit -| ${s_limit} | ${10000000000} -# Traffic profile: -| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 - -*** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Set Variable If -| | ... | "${framesize}" == "IMIX_v4_1" | ${avg_imix_framesize} | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology -| | Add PCI devices to all DUTs -| | Run Keyword If | ${get_framesize} < ${1522} | Add No Multi Seg to all DUTs -| | Apply startup configuration on all VPP DUTs -| | Initialize L2 bridge domain in 3-node circular topology -| | Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | framesize=${64} | phy_cores=${1} | search_type=NDR - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | framesize=${64} | phy_cores=${1} | search_type=PDR - -| tc03-1518B-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | framesize=${1518} | phy_cores=${1} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${1} | search_type=PDR - -| tc05-9000B-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 9000B | 1C | NDRDISC -| | framesize=${9000} | phy_cores=${1} | search_type=NDR - -| tc06-9000B-1t1c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${1} | search_type=PDR - -| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | framesize=${64} | phy_cores=${2} | search_type=NDR - -| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | framesize=${64} | phy_cores=${2} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${2} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${2} | search_type=PDR - -| tc11-9000B-2t2c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${2} | search_type=NDR - -| tc12-9000B-2t2c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${2} | search_type=PDR - -| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | framesize=${64} | phy_cores=${4} | search_type=NDR - -| tc14-64B-4t4c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | framesize=${64} | phy_cores=${4} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${4} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${4} | search_type=PDR - -| tc17-9000B-4t4c-eth-l2bdbasemaclrn-ndrdisc -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${4} | search_type=NDR - -| tc18-9000B-4t4c-eth-l2bdbasemaclrn-pdrdisc -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${4} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-mrr.robot new file mode 100644 index 0000000000..6c15083a21 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL10 | 100_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 10 +| ${flows_per_dir}= | 100 + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl10sf-100flows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl10sf-100flows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl10sf-100flows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl10sf-100flows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl10sf-100flows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl10sf-100flows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl10sf-100flows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl10sf-100flows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl10sf-100flows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl10sf-100flows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl10sf-100flows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl10sf-100flows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr.robot index 02b430d28d..3ce300969f 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | OACL | ACL10 | 100_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u10p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-mrr.robot new file mode 100644 index 0000000000..fda6874cdb --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL10 | 100k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 10 +| ${flows_per_dir}= | 100k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl10sf-100kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl10sf-100kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl10sf-100kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl10sf-100kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl10sf-100kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl10sf-100kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl10sf-100kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl10sf-100kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl10sf-100kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl10sf-100kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl10sf-100kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl10sf-100kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr.robot index 21d650ca85..d99d97a18f 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | OACL | ACL10 | 100k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-100u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-mrr.robot new file mode 100644 index 0000000000..7f937e97a2 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL10 | 10k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw Results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 10 +| ${flows_per_dir}= | 10k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl10sf-10kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl10sf-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl10sf-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl10sf-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl10sf-10kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl10sf-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl10sf-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl10sf-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl10sf-10kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl10sf-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl10sf-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl10sf-10kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr.robot index 647224f82d..d7a3a4caeb 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | OACL | ACL10 | 10k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-mrr.robot new file mode 100644 index 0000000000..8dcbfbc6d7 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL10 | 100_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 10 +| ${flows_per_dir}= | 100 + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl10sl-100flows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl10sl-100flows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl10sl-100flows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl10sl-100flows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl10sl-100flows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl10sl-100flows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl10sl-100flows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl10sl-100flows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl10sl-100flows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl10sl-100flows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl10sl-100flows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl10sl-100flows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr.robot index 0a98a2fa20..a28a17cbc3 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | OACL | ACL10 | 100_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u10p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-mrr.robot new file mode 100644 index 0000000000..5c20ed8bba --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL10 | 100k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 10 +| ${flows_per_dir}= | 100k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl10sl-100kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl10sl-100kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl10sl-100kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl10sl-100kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl10sl-100kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl10sl-100kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl10sl-100kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl10sl-100kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl10sl-100kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl10sl-100kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl10sl-100kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl10sl-100kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr.robot index 40f1bc9504..f7b18d3fd1 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | OACL | ACL10 | 100k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-100u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-mrr.robot new file mode 100644 index 0000000000..72408fb56a --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL10 | 10k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 10 +| ${flows_per_dir}= | 10k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl10sl-10kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl10sl-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl10sl-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl10sl-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl10sl-10kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl10sl-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl10sl-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl10sl-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl10sl-10kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl10sl-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl10sl-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl10sl-10kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr.robot index 1c6e9af255..8fdf0f025d 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | OACL | ACL10 | 10k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-mrr.robot new file mode 100644 index 0000000000..f10bd716f3 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL1 | 100_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 1 +| ${flows_per_dir}= | 100 + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl1sf-100flows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl1sf-100flows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl1sf-100flows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl1sf-100flows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl1sf-100flows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl1sf-100flows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl1sf-100flows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl1sf-100flows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl1sf-100flows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl1sf-100flows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl1sf-100flows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl1sf-100flows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr.robot index 6a5bb99919..6e618a28b1 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | OACL | ACL1 | 100_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u10p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-mrr.robot new file mode 100644 index 0000000000..1ebaf0d80a --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL1 | 100k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 1 +| ${flows_per_dir}= | 100k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl1sf-100kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl1sf-100kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl1sf-100kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl1sf-100kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl1sf-100kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl1sf-100kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl1sf-100kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl1sf-100kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl1sf-100kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl1sf-100kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl1sf-100kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl1sf-100kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr.robot index 0fcc9cce50..9a7852c81a 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | OACL | ACL1 | 100k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-100u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-mrr.robot new file mode 100644 index 0000000000..3c0b5f617a --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL1 | 10k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 1 +| ${flows_per_dir}= | 10k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl1sf-10kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl1sf-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl1sf-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl1sf-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl1sf-10kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl1sf-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl1sf-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl1sf-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl1sf-10kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl1sf-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl1sf-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl1sf-10kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr.robot index 6f1585b819..9fb00cd22a 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | OACL | ACL1 | 10k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-mrr.robot new file mode 100644 index 0000000000..180cf9a0a1 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL1 | 100_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 1 +| ${flows_per_dir}= | 100 + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl1sl-100flows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl1sl-100flows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl1sl-100flows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl1sl-100flows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl1sl-100flows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl1sl-100flows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl1sl-100flows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl1sl-100flows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl1sl-100flows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl1sl-100flows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl1sl-100flows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl1sl-100flows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr.robot index 84936fa7a9..37b5f9605c 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | OACL | ACL1 | 100_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u10p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-mrr.robot new file mode 100644 index 0000000000..7bde9e9670 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL1 | 100k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 1 +| ${flows_per_dir}= | 100k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl1sl-100kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl1sl-100kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl1sl-100kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl1sl-100kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl1sl-100kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl1sl-100kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl1sl-100kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl1sl-100kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl1sl-100kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl1sl-100kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl1sl-100kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl1sl-100kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr.robot index 87a305668a..bfcb8f9e3f 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | OACL | ACL1 | 100k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-100u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-mrr.robot new file mode 100644 index 0000000000..cb6ef0fd45 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL1 | 10k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 1 +| ${flows_per_dir}= | 10k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl1sl-10kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl1sl-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl1sl-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl1sl-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl1sl-10kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl1sl-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl1sl-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl1sl-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl1sl-10kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl1sl-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl1sl-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl1sl-10kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr.robot index b6d8bb4cfe..2d02917e3c 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | OACL | ACL1 | 10k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-mrr.robot new file mode 100644 index 0000000000..164847bf22 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL50 | 100_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 50 +| ${flows_per_dir}= | 100 + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl50sf-100flows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl50sf-100flows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl50sf-100flows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl50sf-100flows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl50sf-100flows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl50sf-100flows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl50sf-100flows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl50sf-100flows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl50sf-100flows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl50sf-100flows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl50sf-100flows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl50sf-100flows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr.robot index 30df7bb1b3..afd702019c 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | OACL | ACL50 | 100_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u10p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-mrr.robot new file mode 100644 index 0000000000..afb75ca6de --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL50 | 100k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 50 +| ${flows_per_dir}= | 100k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl50sf-100kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl50sf-100kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl50sf-100kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl50sf-100kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl50sf-100kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl50sf-100kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl50sf-100kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl50sf-100kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl50sf-100kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl50sf-100kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl50sf-100kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl50sf-100kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr.robot index 7ddaeda869..15a583e712 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | OACL | ACL50 | 100k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-100u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr.robot new file mode 100644 index 0000000000..44d9643a02 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL50 | 10k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 50 +| ${flows_per_dir}= | 10k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl50sf-10kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr.robot index 67b30080f6..505a90f0ba 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL | ... | OACL | ACL50 | 10k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-mrr.robot new file mode 100644 index 0000000000..459ce4d2d3 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL50 | 100_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 50 +| ${flows_per_dir}= | 100 + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl50sl-100flows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl50sl-100flows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl50sl-100flows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl50sl-100flows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl50sl-100flows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl50sl-100flows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl50sl-100flows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl50sl-100flows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl50sl-100flows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl50sl-100flows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl50sl-100flows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl50sl-100flows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr.robot index 0c014e101e..64adb58cd8 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | OACL | ACL50 | 100_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u10p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u10p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-mrr.robot new file mode 100644 index 0000000000..157e669b6f --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL50 | 100k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 50 +| ${flows_per_dir}= | 100k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl50sl-100kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl50sl-100kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl50sl-100kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl50sl-100kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl50sl-100kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl50sl-100kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl50sl-100kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl50sl-100kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl50sl-100kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl50sl-100kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl50sl-100kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl50sl-100kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr.robot index c154336be7..09ade25365 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | OACL | ACL50 | 100k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-100u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-100u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr.robot new file mode 100644 index 0000000000..d151429c3a --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL50 | 10k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X520-DA2 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down mrr test with ACL +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X520 Niantic by Intel.\ +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | output +| ${no_hit_aces_number}= | 50 +| ${flows_per_dir}= | 10k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl50sl-10kflows-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr.robot index dda30a970a..a68995a564 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -14,7 +14,7 @@ *** Settings *** | Resource | resources/libraries/robot/performance/performance_setup.robot | ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS | ... | OACL | ACL50 | 10k_FLOWS | ... @@ -22,6 +22,7 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X520-DA2 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -29,7 +30,7 @@ | Test Teardown | Tear down performance test with ACL | ... | ${min_rate}pps | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *RFC2544: Packet throughput L2BD test cases with ACL* | ... @@ -44,9 +45,8 @@ | ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ | ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ | ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ | ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ | ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ | ... | all packets containing Ethernet header, IPv4 header with UDP header and\ @@ -74,56 +74,70 @@ | ${trex_stream1_subnet}= | 10.10.10.0/24 | ${trex_stream2_subnet}= | 20.20.20.0/24 +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + *** Keywords *** -| Local template -| | [Arguments] | ${phy_core} | ${framesize} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} +| Local Template +| | [Documentation] | FIXME. +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | And Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable | trex-sl-3n-ethip4udp-10u1000p-conc -| | Set Test Variable | ${traffic_profile} -| | Then Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | phy_cores=${1} | framesize=${64} | search_type=NDR +| tc01-64B-1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | phy_cores=${1} | framesize=${64} | search_type=PDR +| tc08-9000B-2c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | phy_cores=${2} | framesize=${64} | search_type=NDR +| tc09-9000B-4c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} -| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | phy_cores=${2} | framesize=${64} | search_type=PDR +| tc10-IMIX-1c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} -| tc05-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | phy_cores=${4} | framesize=${64} | search_type=NDR +| tc11-IMIX-2c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc06-64B-4t4c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | phy_cores=${4} | framesize=${64} | search_type=PDR +| tc12-IMIX-4c-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-mrr.robot index 3cf98c0856..d1c5b67387 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-mrr.robot @@ -19,13 +19,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X520-DA2 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results for L2BD test cases* | ... @@ -55,7 +56,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-macsrc50kdst50k *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [CFG] DUT runs L2BD switching config with ${phy_cores} phy | | ... | core(s). @@ -70,64 +71,60 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdscale100kmaclrn-mrr +| tc01-64B-1c-eth-l2bdscale100kmaclrn-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdscale100kmaclrn-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdscale100kmaclrn-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdscale100kmaclrn-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdscale100kmaclrn-mrr +| tc02-64B-2c-eth-l2bdscale100kmaclrn-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdscale100kmaclrn-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdscale100kmaclrn-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdscale100kmaclrn-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdscale100kmaclrn-mrr +| tc03-64B-4c-eth-l2bdscale100kmaclrn-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdscale100kmaclrn-mrr +| tc04-1518B-1c-eth-l2bdscale100kmaclrn-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale100kmaclrn-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale100kmaclrn-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdscale100kmaclrn-mrr +| tc07-9000B-1c-eth-l2bdscale100kmaclrn-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale100kmaclrn-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale100kmaclrn-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdscale100kmaclrn-mrr +| tc10-IMIX-1c-eth-l2bdscale100kmaclrn-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale100kmaclrn-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale100kmaclrn-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdr.robot new file mode 100644 index 0000000000..cf964bc36d --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | SCALE | L2BDBASE | FIB_100K +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X520-DA2 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput for L2BD test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ +| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NI +| ... | X520 Niantic by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 50k flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses ranges are incremented as follows: +| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:00:c3:4f,\ +| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:00:c3:4f,\ +| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:00:c3:4f,\ +| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:00:c3:4f,\ +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit} | ${10000000000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-macsrc50kdst50k + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [CFG] DUT runs L2BD switching config with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdrdisc.robot deleted file mode 100644 index 4b32d6c219..0000000000 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale100kmaclrn-ndrpdrdisc.robot +++ /dev/null @@ -1,162 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Resource | resources/libraries/robot/performance/performance_setup.robot -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | SCALE | L2BDBASE | FIB_100K -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-X520-DA2 -| Suite Teardown | Tear down 3-node performance topology -| ... -| Test Setup | Set up performance test -| ... -| Test Teardown | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Pkt throughput L2BD test cases* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ -| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NI -| ... | X520 Niantic by Intel. -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ -| ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ -| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ -| ... | (flow-group per direction, 50k flows per flow-group) with all packets\ -| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ -| ... | payload. MAC addresses ranges are incremented as follows: -| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:00:c3:4f,\ -| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:00:c3:4f,\ -| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:00:c3:4f,\ -| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:00:c3:4f,\ -| ... | *[Ref] Applicable standard specifications:* RFC2544. - -*** Variables *** -# X520-DA2 bandwidth limit -| ${s_limit} | ${10000000000} -# Traffic profile: -| ${traffic_profile} | trex-sl-3n-ethip4-macsrc50kdst50k - -*** Keywords *** -| Local template -| | [Arguments] | ${framesize} | ${phy_cores} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Set Variable If -| | ... | "${framesize}" == "IMIX_v4_1" | ${avg_imix_framesize} | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | Add PCI devices to all DUTs -| | Run Keyword If | ${get_framesize} < ${1522} | Add No Multi Seg to all DUTs -| | Apply startup configuration on all VPP DUTs -| | Initialize L2 bridge domain in 3-node circular topology -| | Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdscale100kmaclrn-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | framesize=${64} | phy_cores=${1} | search_type=NDR - -| tc02-64B-1t1c-eth-l2bdscale100kmaclrn-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | framesize=${64} | phy_cores=${1} | search_type=PDR - -| tc03-1518B-1t1c-eth-l2bdscale100kmaclrn-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | framesize=${1518} | phy_cores=${1} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2bdscale100kmaclrn-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${1} | search_type=PDR - -| tc05-9000B-1t1c-eth-l2bdscale100kmaclrn-ndrdisc -| | [Tags] | 9000B | 1C | NDRDISC -| | framesize=${9000} | phy_cores=${1} | search_type=NDR - -| tc06-9000B-1t1c-eth-l2bdscale100kmaclrn-pdrdisc -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${1} | search_type=PDR - -| tc07-64B-2t2c-eth-l2bdscale100kmaclrn-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | framesize=${64} | phy_cores=${2} | search_type=NDR - -| tc08-64B-2t2c-eth-l2bdscale100kmaclrn-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | framesize=${64} | phy_cores=${2} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2bdscale100kmaclrn-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${2} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2bdscale100kmaclrn-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${2} | search_type=PDR - -| tc11-9000B-2t2c-eth-l2bdscale100kmaclrn-ndrdisc -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${2} | search_type=NDR - -| tc12-9000B-2t2c-eth-l2bdscale100kmaclrn-pdrdisc -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${2} | search_type=PDR - -| tc13-64B-4t4c-eth-l2bdscale100kmaclrn-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | framesize=${64} | phy_cores=${4} | search_type=NDR - -| tc14-64B-4t4c-eth-l2bdscale100kmaclrn-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | framesize=${64} | phy_cores=${4} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2bdscale100kmaclrn-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${4} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2bdscale100kmaclrn-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${4} | search_type=PDR - -| tc17-9000B-4t4c-eth-l2bdscale100kmaclrn-ndrdisc -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${4} | search_type=NDR - -| tc18-9000B-4t4c-eth-l2bdscale100kmaclrn-pdrdisc -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${4} | search_type=PDR - diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-mrr.robot index 5a4c98af6a..7b39a14f58 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-mrr.robot @@ -19,13 +19,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X520-DA2 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results for L2BD test cases* | ... @@ -55,7 +56,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-macsrc5kdst5k *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [CFG] DUT runs L2BD switching config with ${phy_cores} phy | | ... | core(s). @@ -70,64 +71,60 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2dbscale10kmaclrn-mrr +| tc01-64B-1c-eth-l2bdscale10kmaclrn-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2dbscale10kmaclrn-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2dbscale10kmaclrn-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2dbscale10kmaclrn-mrr -| | [Tags] | IMIX_v4_1 | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2dbscale10kmaclrn-mrr +| tc02-64B-2c-eth-l2bdscale10kmaclrn-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2dbscale10kmaclrn-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2dbscale10kmaclrn-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2dbscale10kmaclrn-mrr -| | [Tags] | IMIX_v4_1 | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2dbscale10kmaclrn-mrr +| tc03-64B-4c-eth-l2bdscale10kmaclrn-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2dbscale10kmaclrn-mrr +| tc04-1518B-1c-eth-l2bdscale10kmaclrn-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale10kmaclrn-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale10kmaclrn-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2dbscale10kmaclrn-mrr +| tc07-9000B-1c-eth-l2bdscale10kmaclrn-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale10kmaclrn-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale10kmaclrn-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2dbscale10kmaclrn-mrr -| | [Tags] | 9000B | IMIX_v4_1 +| tc10-IMIX-1c-eth-l2bdscale10kmaclrn-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale10kmaclrn-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale10kmaclrn-mrr +| | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdr.robot new file mode 100644 index 0000000000..3c6fc621cf --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | SCALE | L2BDBASE | FIB_10K +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X520-DA2 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput for L2BD test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ +| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NI +| ... | X520 Niantic by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 5k flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses ranges are incremented as follows: +| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:00:13:87,\ +| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:00:13:87,\ +| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:00:13:87,\ +| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:00:13:87,\ +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit} | ${10000000000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-macsrc5kdst5k + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [CFG] DUT runs L2BD switching config with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdrdisc.robot deleted file mode 100644 index c770b444c6..0000000000 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale10kmaclrn-ndrpdrdisc.robot +++ /dev/null @@ -1,162 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Resource | resources/libraries/robot/performance/performance_setup.robot -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | SCALE | L2BDBASE | FIB_10K -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-X520-DA2 -| Suite Teardown | Tear down 3-node performance topology -| ... -| Test Setup | Set up performance test -| ... -| Test Teardown | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Pkt throughput L2BD test cases* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ -| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NI -| ... | X520 Niantic by Intel. -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ -| ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ -| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ -| ... | (flow-group per direction, 5k flows per flow-group) with all packets\ -| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ -| ... | payload. MAC addresses ranges are incremented as follows: -| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:00:13:87,\ -| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:00:13:87,\ -| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:00:13:87,\ -| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:00:13:87,\ -| ... | *[Ref] Applicable standard specifications:* RFC2544. - -*** Variables *** -# X520-DA2 bandwidth limit -| ${s_limit} | ${10000000000} -# Traffic profile: -| ${traffic_profile} | trex-sl-3n-ethip4-macsrc5kdst5k - -*** Keywords *** -| Local template -| | [Arguments] | ${framezise} | ${phy_cores} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Set Variable If -| | ... | "${framesize}" == "IMIX_v4_1" | ${avg_imix_framesize} | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | Add PCI devices to all DUTs -| | Run Keyword If | ${get_framesize} < ${1522} | Add No Multi Seg to all DUTs -| | Apply startup configuration on all VPP DUTs -| | Initialize L2 bridge domain in 3-node circular topology -| | Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2dbscale10kmaclrn-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | framesize=${64} | phy_cores=${1} | search_type=NDR - -| tc02-64B-1t1c-eth-l2dbscale10kmaclrn-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | framesize=${64} | phy_cores=${1} | search_type=PDR - -| tc03-1518B-1t1c-eth-l2dbscale10kmaclrn-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | framesize=${1518} | phy_cores=${1} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2dbscale10kmaclrn-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${1} | search_type=PDR - -| tc05-9000B-1t1c-eth-l2dbscale10kmaclrn-ndrdisc -| | [Tags] | 9000B | 1C | NDRDISC -| | framesize=${9000} | phy_cores=${1} | search_type=NDR - -| tc06-9000B-1t1c-eth-l2dbscale10kmaclrn-pdrdisc -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${1} | search_type=PDR - -| tc07-64B-2t2c-eth-l2dbscale10kmaclrn-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | framesize=${64} | phy_cores=${2} | search_type=NDR - -| tc08-64B-2t2c-eth-l2dbscale10kmaclrn-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | framesize=${64} | phy_cores=${2} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2dbscale10kmaclrn-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${2} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2dbscale10kmaclrn-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${2} | search_type=PDR - -| tc11-9000B-2t2c-eth-l2dbscale10kmaclrn-ndrdisc -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${2} | search_type=NDR - -| tc12-9000B-2t2c-eth-l2dbscale10kmaclrn-pdrdisc -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${2} | search_type=PDR - -| tc13-64B-4t4c-eth-l2dbscale10kmaclrn-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | framesize=${64} | phy_cores=${4} | search_type=NDR - -| tc14-64B-4t4c-eth-l2dbscale10kmaclrn-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | framesize=${64} | phy_cores=${4} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2dbscale10kmaclrn-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${4} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2dbscale10kmaclrn-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${4} | search_type=PDR - -| tc17-9000B-4t4c-eth-l2dbscale10kmaclrn-ndrdisc -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${4} | search_type=NDR - -| tc18-9000B-4t4c-eth-l2dbscale10kmaclrn-pdrdisc -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${4} | search_type=PDR - diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-mrr.robot index 64934b233c..5846d5b97e 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-mrr.robot @@ -19,13 +19,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X520-DA2 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results for L2BD test cases* | ... @@ -55,7 +56,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-macsrc500kdst500k *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD config with ${phy_cores} phy | | ... | core(s). @@ -70,64 +71,60 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdscale1mmaclrn-mrr +| tc01-64B-1c-eth-l2bdscale1mmaclrn-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdscale1mmaclrn-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdscale1mmaclrn-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdscale1mmaclrn-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdscale1mmaclrn-mrr +| tc02-64B-2c-eth-l2bdscale1mmaclrn-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdscale1mmaclrn-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdscale1mmaclrn-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-9000B-2t2c-eth-l2bdscale1mmaclrn-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdscale1mmaclrn-mrr +| tc03-64B-4c-eth-l2bdscale1mmaclrn-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdscale1mmaclrn-mrr +| tc04-1518B-1c-eth-l2bdscale1mmaclrn-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale1mmaclrn-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale1mmaclrn-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdscale1mmaclrn-mrr +| tc07-9000B-1c-eth-l2bdscale1mmaclrn-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale1mmaclrn-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale1mmaclrn-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdscale1mmaclrn-mrr +| tc10-IMIX-1c-eth-l2bdscale1mmaclrn-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale1mmaclrn-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale1mmaclrn-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdr.robot new file mode 100644 index 0000000000..b5ed251ac3 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | SCALE | L2BDBASE | FIB_1M +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X520-DA2 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput for L2BD test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ +| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NI +| ... | X520 Niantic by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 500k flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses ranges are incremented as follows: +| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,\ +| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,\ +| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,\ +| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f,\ +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit} | ${10000000000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-macsrc500kdst500k + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD config with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdrdisc.robot deleted file mode 100644 index a1072f33d6..0000000000 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdscale1mmaclrn-ndrpdrdisc.robot +++ /dev/null @@ -1,162 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Resource | resources/libraries/robot/performance/performance_setup.robot -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | SCALE | L2BDBASE | FIB_1M -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-X520-DA2 -| Suite Teardown | Tear down 3-node performance topology -| ... -| Test Setup | Set up performance test -| ... -| Test Teardown | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Pkt throughput L2BD test cases* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ -| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NI -| ... | X520 Niantic by Intel. -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ -| ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ -| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ -| ... | (flow-group per direction, 500k flows per flow-group) with all packets\ -| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ -| ... | payload. MAC addresses ranges are incremented as follows: -| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,\ -| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,\ -| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,\ -| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f,\ -| ... | *[Ref] Applicable standard specifications:* RFC2544. - -*** Variables *** -# X520-DA2 bandwidth limit -| ${s_limit} | ${10000000000} -# Traffic profile: -| ${traffic_profile} | trex-sl-3n-ethip4-macsrc500kdst500k - -*** Keywords *** -| Local template -| | [Arguments] | ${framesize} | ${phy_cores} | ${search_type} -| | ... | ${min_rate}=${50000} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${get_framesize}= | Set Variable If -| | ... | "${framesize}" == "IMIX_v4_1" | ${avg_imix_framesize} | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} -| | Add PCI devices to all DUTs -| | Run Keyword If | ${get_framesize} < ${1522} | Add No Multi Seg to all DUTs -| | Apply startup configuration on all VPP DUTs -| | Initialize L2 bridge domain in 3-node circular topology -| | Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdscale1mmaclrn-ndrdisc -| | [Tags] | 64B | 1C | NDRDISC -| | framesize=${64} | phy_cores=${1} | search_type=NDR - -| tc02-64B-1t1c-eth-l2bdscale1mmaclrn-pdrdisc -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | framesize=${64} | phy_cores=${1} | search_type=PDR - -| tc03-1518B-1t1c-eth-l2bdscale1mmaclrn-ndrdisc -| | [Tags] | 1518B | 1C | NDRDISC -| | framesize=${1518} | phy_cores=${1} | search_type=NDR - -| tc04-1518B-1t1c-eth-l2bdscale1mmaclrn-pdrdisc -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${1} | search_type=PDR - -| tc05-9000B-1t1c-eth-l2bdscale1mmaclrn-ndrdisc -| | [Tags] | 9000B | 1C | NDRDISC -| | framesize=${9000} | phy_cores=${1} | search_type=NDR - -| tc06-9000B-1t1c-eth-l2bdscale1mmaclrn-pdrdisc -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${1} | search_type=PDR - -| tc07-64B-2t2c-eth-l2bdscale1mmaclrn-ndrdisc -| | [Tags] | 64B | 2C | NDRDISC -| | framesize=${64} | phy_cores=${2} | search_type=NDR - -| tc08-64B-2t2c-eth-l2bdscale1mmaclrn-pdrdisc -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | framesize=${64} | phy_cores=${2} | search_type=PDR - -| tc09-1518B-2t2c-eth-l2bdscale1mmaclrn-ndrdisc -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${2} | search_type=NDR - -| tc10-1518B-2t2c-eth-l2bdscale1mmaclrn-pdrdisc -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${2} | search_type=PDR - -| tc11-9000B-2t2c-eth-l2bdscale1mmaclrn-ndrdisc -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${2} | search_type=NDR - -| tc12-9000B-2t2c-eth-l2bdscale1mmaclrn-pdrdisc -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${2} | search_type=PDR - -| tc13-64B-4t4c-eth-l2bdscale1mmaclrn-ndrdisc -| | [Tags] | 64B | 4C | NDRDISC -| | framesize=${64} | phy_cores=${4} | search_type=NDR - -| tc14-64B-4t4c-eth-l2bdscale1mmaclrn-pdrdisc -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | framesize=${64} | phy_cores=${4} | search_type=PDR - -| tc15-1518B-4t4c-eth-l2bdscale1mmaclrn-ndrdisc -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${4} | search_type=NDR - -| tc16-1518B-4t4c-eth-l2bdscale1mmaclrn-pdrdisc -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | framesize=${1518} | phy_cores=${4} | search_type=PDR - -| tc17-9000B-4t4c-eth-l2bdscale1mmaclrn-ndrdisc -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${4} | search_type=NDR - -| tc18-9000B-4t4c-eth-l2bdscale1mmaclrn-pdrdisc -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | framesize=${9000} | phy_cores=${4} | search_type=PDR - diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-mrr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-mrr.robot index eea07a639e..39fed7636b 100644 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-mrr.robot @@ -19,12 +19,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X520-DA2 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test +| ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases* | ... @@ -49,7 +51,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC config with ${phy_cores} phy | | ... | core(s). @@ -64,64 +66,60 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | And Initialize L2 xconnect in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-mrr +| tc01-64B-1c-eth-l2xcbase-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2xcbase-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2xcbase-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2xcbase-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2xcbase-mrr +| tc02-64B-2c-eth-l2xcbase-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2xcbase-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2xcbase-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2xcbase-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2xcbase-mrr +| tc03-64B-4c-eth-l2xcbase-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2xcbase-mrr +| tc04-1518B-1c-eth-l2xcbase-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2xcbase-mrr +| tc07-9000B-1c-eth-l2xcbase-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2xcbase-mrr +| tc10-IMIX-1c-eth-l2xcbase-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-ndrpdr.robot new file mode 100644 index 0000000000..6ab681d6f1 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-ndrpdr.robot @@ -0,0 +1,131 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X520-DA2 | ETH | L2XCFWD | BASE | L2XCBASE +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X520-DA2 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2XC test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross- +| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X520 Niantic by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per +| ... | flow-group) with all packets containing Ethernet header, IPv4 header +| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC +| ... | addresses of the TG node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X520-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC config with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | And Initialize L2 xconnect in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2xcbase-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2xcbase-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2xcbase-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2xcbase-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2xcbase-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2xcbase-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot deleted file mode 100644 index 41b9c4a9fe..0000000000 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2xcbase-ndrpdrdisc.robot +++ /dev/null @@ -1,438 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Resource | resources/libraries/robot/performance/performance_setup.robot -| Library | resources.libraries.python.InterfaceUtil -| Library | resources.libraries.python.NodePath -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X520-DA2 | ETH | L2XCFWD | BASE | L2XCBASE -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-X520-DA2 -| Suite Teardown | Tear down 3-node performance topology -| ... -| Test Setup | Set up performance test -| ... -| Test Teardown | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... -| Documentation | *RFC2544: Pkt throughput L2XC test cases* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross- -| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X520 Niantic by Intel. -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage -| ... | of packets transmitted. NDR and PDR are discovered for different -| ... | Ethernet L2 frame sizes using either binary search or linear search -| ... | algorithms with configured starting rate and final step that determines -| ... | throughput measurement resolution. Test packets are generated by TG on -| ... | links to DUTs. TG traffic profile contains two L3 flow-groups -| ... | (flow-group per direction, 253 flows per flow-group) with all packets -| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static -| ... | payload. MAC addresses are matching MAC addresses of the TG node -| ... | interfaces. -| ... | *[Ref] Applicable standard specifications:* RFC2544. - -*** Variables *** -# X520-DA2 bandwidth limit -| ${s_limit} | ${10000000000} -# Traffic profile: -| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 64B | 1C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc02-64B-1t1c-eth-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc03-1518B-1t1c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 1518B | 1C | NDRDISC -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc04-1518B-1t1c-eth-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc05-9000B-1t1c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps. -| | [Tags] | 9000B | 1C | NDRDISC -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc06-9000B-1t1c-eth-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc07-64B-2t2c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 64B | 2C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc08-64B-2t2c-eth-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc09-1518B-2t2c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc10-1518B-2t2c-eth-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 1518 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc11-9000B-2t2c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps. -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc12-9000B-2t2c-eth-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find PDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc13-64B-4t4c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 64B | 4C | NDRDISC -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc14-64B-4t4c-eth-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 64 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc15-1518B-4t4c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 1518 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps. -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc16-1518B-4t4c-eth-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 1518 Byte frames -| | ... | using binary search start at 10GE linerate, step 50kpps, LT=0.5%. -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| tc17-9000B-4t4c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps. -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc18-9000B-4t4c-eth-l2xcbase-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find PDR for 9000 Byte frames -| | ... | using binary search start at 10GE linerate, step 10kpps, LT=0.5%. -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} diff --git a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-mrr.robot index 3d2a94ed9c..d034b1fd9f 100644 --- a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-mrr.robot @@ -19,12 +19,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X710 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test +| ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with 802.1q test cases* | ... @@ -48,8 +50,7 @@ *** Variables *** | ${subid}= | 10 | ${tag_rewrite}= | pop-1 -| ${vlan_overhead}= | ${4} -| ${avg_imix_framesize}= | ${357.833} +| ${overhead}= | ${4} # X710-DA2 bandwidth limit | ${s_limit}= | ${10000000000} # Bridge domain IDs @@ -59,7 +60,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD config with VLAN with ${phy_cores} phy | | ... | core(s). @@ -72,17 +73,12 @@ | | ... | - phy_cores - Number of physical cores. Type: integer | | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer | | ... -| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} -| | ... | ${get_framesize} + ${vlan_overhead} +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domains with VLAN dot1q sub-interfaces in a 3-node circular topology | | ... | ${bd_id1} | ${bd_id2} | ${subid} | ${tag_rewrite} @@ -90,50 +86,50 @@ | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-dot1q-l2bdbasemaclrn-mrr +| tc01-64B-1c-dot1q-l2bdbasemaclrn-mrr | | [Tags] | 64B | 1C -| | phy_cores=${1} | framesize=${64} +| | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | 1518B | 1C -| | phy_cores=${1} | framesize=${1518} - -| tc03-9000B-1t1c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | 9000B | 1C -| | phy_cores=${1} | framesize=${9000} +| tc02-64B-2c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} -| tc04-IMIX-1t1c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | IMIX | 1C -| | phy_cores=${1} | framesize=IMIX_v4_1 +| tc03-64B-4c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} -| tc05-64B-2t2c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | 64B | 2C -| | phy_cores=${2} | framesize=${64} +| tc04-1518B-1c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} -| tc06-1518B-2t2c-dot1q-l2bdbasemaclrn-mrr +| tc05-1518B-2c-dot1q-l2bdbasemaclrn-mrr | | [Tags] | 1518B | 2C -| | phy_cores=${2} | framesize=${1518} +| | framesize=${1518} | phy_cores=${2} -| tc07-9000B-2t2c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | 9000B | 2C -| | phy_cores=${2} | framesize=${9000} - -| tc08-IMIX-2t2c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | IMIX | 2C -| | phy_cores=${2} | framesize=IMIX_v4_1 +| tc06-1518B-4c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} -| tc09-64B-4t4c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | 64B | 4C -| | phy_cores=${4} | framesize=${64} +| tc07-9000B-1c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc10-1518B-4t4c-dot1q-l2bdbasemaclrn-mrr -| | [Tags] | 1518B | 4C -| | phy_cores=${4} | framesize=${1518} +| tc08-9000B-2c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc11-9000B-4t4c-dot1q-l2bdbasemaclrn-mrr +| tc09-9000B-4c-dot1q-l2bdbasemaclrn-mrr | | [Tags] | 9000B | 4C -| | phy_cores=${4} | framesize=${9000} +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc12-IMIX-4t4c-dot1q-l2bdbasemaclrn-mrr +| tc12-IMIX-4c-dot1q-l2bdbasemaclrn-mrr | | [Tags] | IMIX | 4C -| | phy_cores=${4} | framesize=IMIX_v4_1 +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot new file mode 100644 index 0000000000..76a552a90f --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2bdbasemaclrn-ndrpdr.robot @@ -0,0 +1,141 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X710 | BASE | DOT1Q | L2BDMACLRN +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases with 802.1q* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4.\ +| ... | 802.1q tagging is applied on link between DUT1 and DUT2. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge\ +| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC +| ... | X710 by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 254 flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} +# X710-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Bridge domain IDs +| ${bd_id1}= | 1 +| ${bd_id2}= | 2 +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD config with VLAN with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domains with VLAN dot1q sub-interfaces in a 3-node circular topology +| | ... | ${bd_id1} | ${bd_id2} | ${subid} | ${tag_rewrite} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-dot1q-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-mrr.robot index 1e596508bf..60cb307d16 100644 --- a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-mrr.robot @@ -17,15 +17,17 @@ | ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR | ... | NIC_Intel-X710 | L2XCFWD | BASE | DOT1Q +| ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X710 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC with 802.1q test cases* | ... @@ -48,13 +50,14 @@ *** Variables *** | ${subid}= | 10 | ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} # X710-DA2 bandwidth limit | ${s_limit}= | ${10000000000} # Traffic profile: | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC config with VLAN dot1q with ${phy_cores} phy | | ... | core(s). @@ -67,16 +70,12 @@ | | ... | - phy_cores - Number of physical cores. Type: integer | | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer | | ... -| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} | | And Apply startup configuration on all VPP DUTs | | And Set interfaces in path in 3-node circular topology up | | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology @@ -91,50 +90,50 @@ | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-dot1q-l2xcbase-mrr +| tc01-64B-1c-dot1q-l2xcbase-mrr | | [Tags] | 64B | 1C -| | phy_cores=${1} | framesize=${64} +| | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-dot1q-l2xcbase-mrr -| | [Tags] | 1518B | 1C -| | phy_cores=${1} | framesize=${1518} - -| tc03-9000B-1t1c-dot1q-l2xcbase-mrr -| | [Tags] | 9000B | 1C -| | phy_cores=${1} | framesize=${9000} +| tc02-64B-2c-dot1q-l2xcbase-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} -| tc04-IMIX-1t1c-dot1q-l2xcbase-mrr -| | [Tags] | IMIX | 1C -| | phy_cores=${1} | framesize=IMIX_v4_1 +| tc03-64B-4c-dot1q-l2xcbase-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} -| tc05-64B-2t2c-dot1q-l2xcbase-mrr -| | [Tags] | 64B | 2C -| | phy_cores=${2} | framesize=${64} +| tc04-1518B-1c-dot1q-l2xcbase-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} -| tc06-1518B-2t2c-dot1q-l2xcbase-mrr +| tc05-1518B-2c-dot1q-l2xcbase-mrr | | [Tags] | 1518B | 2C -| | phy_cores=${2} | framesize=${1518} +| | framesize=${1518} | phy_cores=${2} -| tc07-9000B-2t2c-dot1q-l2xcbase-mrr -| | [Tags] | 9000B | 2C -| | phy_cores=${2} | framesize=${9000} - -| tc08-IMIX-2t2c-dot1q-l2xcbase-mrr -| | [Tags] | IMIX | 2C -| | phy_cores=${2} | framesize=IMIX_v4_1 +| tc06-1518B-4c-dot1q-l2xcbase-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} -| tc09-64B-4t4c-dot1q-l2xcbase-mrr -| | [Tags] | 64B | 4C -| | phy_cores=${4} | framesize=${64} +| tc07-9000B-1c-dot1q-l2xcbase-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc10-1518B-4t4c-dot1q-l2xcbase-mrr -| | [Tags] | 1518B | 4C -| | phy_cores=${4} | framesize=${1518} +| tc08-9000B-2c-dot1q-l2xcbase-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc11-9000B-4t4c-dot1q-l2xcbase-mrr +| tc09-9000B-4c-dot1q-l2xcbase-mrr | | [Tags] | 9000B | 4C -| | phy_cores=${4} | framesize=${9000} +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-dot1q-l2xcbase-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2xcbase-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc12-IMIX-4t4c-dot1q-l2xcbase-mrr +| tc12-IMIX-4c-dot1q-l2xcbase-mrr | | [Tags] | IMIX | 4C -| | phy_cores=${4} | framesize=IMIX_v4_1 +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot new file mode 100644 index 0000000000..7503cb1451 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x710-dot1q-l2xcbase-ndrpdr.robot @@ -0,0 +1,145 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Resource | resources/libraries/robot/l2/tagging.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X710 | L2XCFWD | BASE | DOT1Q +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2XC with 802.1q test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. 802.1q\ +| ... | tagging is applied on link between DUT1 and DUT2. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross-\ +| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X710 by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 253 flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| ${subid}= | 10 +| ${tag_rewrite}= | pop-1 +| ${overhead}= | ${4} +# X710-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC config with VLAN dot1q with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | overhead=${overhead} +| | And Apply startup configuration on all VPP DUTs +| | And Set interfaces in path in 3-node circular topology up +| | When Initialize VLAN dot1q sub-interfaces in 3-node circular topology +| | ... | ${dut1} | ${dut1_if2} | ${dut2} | ${dut2_if1} | ${subid} +| | And Configure L2 tag rewrite method on interfaces +| | ... | ${dut1} | ${subif_index_1} | ${dut2} | ${subif_index_2} +| | ... | ${tag_rewrite} +| | And Connect interfaces and VLAN sub-interfaces using L2XC +| | ... | ${dut1} | ${dut1_if1} | ${subif_index_1} +| | ... | ${dut2} | ${dut2_if2} | ${subif_index_2} +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-dot1q-l2xcbase-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-dot1q-l2xcbase-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-dot1q-l2xcbase-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-dot1q-l2xcbase-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot index ebe2b9d075..b2a0b44f0b 100644 --- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr.robot @@ -22,13 +22,14 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X710 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with ACL* | ... @@ -73,7 +74,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy | | ... | core(s). @@ -86,66 +87,62 @@ | | ... | - phy_cores - Number of physical cores. Type: integer | | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer | | ... -| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr | | [Tags] | 64B | 1C -| | phy_cores=${1} | framesize=${64} - -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | 1518B | 1C -| | phy_cores=${1} | framesize=${1518} +| | framesize=${64} | phy_cores=${1} -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | 9000B | 1C -| | phy_cores=${1} | framesize=${9000} +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | IMIX | 1C -| | phy_cores=${1} | framesize=IMIX_v4_1 +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} -| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | 64B | 2C -| | phy_cores=${2} | framesize=${64} +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr | | [Tags] | 1518B | 2C -| | phy_cores=${2} | framesize=${1518} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | 9000B | 2C -| | phy_cores=${2} | framesize=${9000} +| | framesize=${1518} | phy_cores=${2} -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | IMIX | 2C -| | phy_cores=${2} | framesize=IMIX_v4_1 +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} -| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | 64B | 4C -| | phy_cores=${4} | framesize=${64} +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc10-1518B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr -| | [Tags] | 1518B | 4C -| | phy_cores=${4} | framesize=${1518} +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc11-9000B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr | | [Tags] | 9000B | 4C -| | phy_cores=${4} | framesize=${9000} +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc12-IMIX-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-mrr +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-mrr | | [Tags] | IMIX | 4C -| | phy_cores=${4} | framesize=IMIX_v4_1 +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr.robot new file mode 100644 index 0000000000..dded8154f8 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr.robot @@ -0,0 +1,154 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL1 | 10k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X710 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X710 by Intel.\ +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X710-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 1 +| ${flows_per_dir}= | 10k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot index 326a01809b..280a1f9d26 100644 --- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr.robot @@ -22,13 +22,14 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X710 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with ACL* | ... @@ -73,7 +74,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy | | ... | core(s). @@ -86,66 +87,62 @@ | | ... | - phy_cores - Number of physical cores. Type: integer | | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer | | ... -| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr | | [Tags] | 64B | 1C -| | phy_cores=${1} | framesize=${64} - -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | 1518B | 1C -| | phy_cores=${1} | framesize=${1518} +| | framesize=${64} | phy_cores=${1} -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | 9000B | 1C -| | phy_cores=${1} | framesize=${9000} +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | IMIX | 1C -| | phy_cores=${1} | framesize=IMIX_v4_1 +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} -| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | 64B | 2C -| | phy_cores=${2} | framesize=${64} +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr | | [Tags] | 1518B | 2C -| | phy_cores=${2} | framesize=${1518} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | 9000B | 2C -| | phy_cores=${2} | framesize=${9000} +| | framesize=${1518} | phy_cores=${2} -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | IMIX | 2C -| | phy_cores=${2} | framesize=IMIX_v4_1 +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} -| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | 64B | 4C -| | phy_cores=${4} | framesize=${64} +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr -| | [Tags] | 1518B | 4C -| | phy_cores=${4} | framesize=${1518} +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr | | [Tags] | 9000B | 4C -| | phy_cores=${4} | framesize=${9000} +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-mrr +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-mrr | | [Tags] | IMIX | 4C -| | phy_cores=${4} | framesize=IMIX_v4_1 +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr.robot new file mode 100644 index 0000000000..2df4396cef --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr.robot @@ -0,0 +1,154 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL1 | 10k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X710 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X710 by Intel.\ +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X710-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 1 +| ${flows_per_dir}= | 10k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot index 8b56ac8431..9a6b310839 100644 --- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr.robot @@ -22,13 +22,14 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X710 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with ACL* | ... @@ -73,7 +74,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy | | ... | core(s). @@ -86,66 +87,62 @@ | | ... | - phy_cores - Number of physical cores. Type: integer | | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer | | ... -| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr | | [Tags] | 64B | 1C -| | phy_cores=${1} | framesize=${64} - -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | 1518B | 1C -| | phy_cores=${1} | framesize=${1518} +| | framesize=${64} | phy_cores=${1} -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | 9000B | 1C -| | phy_cores=${1} | framesize=${9000} +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | IMIX | 1C -| | phy_cores=${1} | framesize=IMIX_v4_1 +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} -| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | 64B | 2C -| | phy_cores=${2} | framesize=${64} +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr | | [Tags] | 1518B | 2C -| | phy_cores=${2} | framesize=${1518} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | 9000B | 2C -| | phy_cores=${2} | framesize=${9000} +| | framesize=${1518} | phy_cores=${2} -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | IMIX | 2C -| | phy_cores=${2} | framesize=IMIX_v4_1 +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} -| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | 64B | 4C -| | phy_cores=${4} | framesize=${64} +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr -| | [Tags] | 1518B | 4C -| | phy_cores=${4} | framesize=${1518} +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr | | [Tags] | 9000B | 4C -| | phy_cores=${4} | framesize=${9000} +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-mrr +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-mrr | | [Tags] | IMIX | 4C -| | phy_cores=${4} | framesize=IMIX_v4_1 +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot new file mode 100644 index 0000000000..2a061bb3e9 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr.robot @@ -0,0 +1,154 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL50 | 10k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X710 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X710 by Intel.\ +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X710-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit+reflect +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 50 +| ${flows_per_dir}= | 10k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot index ec5360b311..2b53f5e1c0 100644 --- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr.robot @@ -22,13 +22,14 @@ | ... | Set up 3-node performance topology with DUT's NIC model | L2 | ... | Intel-X710 | ... | AND | Set up performance test suite with ACL +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases with ACL* | ... @@ -73,7 +74,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy | | ... | core(s). @@ -86,66 +87,62 @@ | | ... | - phy_cores - Number of physical cores. Type: integer | | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer | | ... -| | [Arguments] | ${phy_cores} | ${framesize} | ${rxq}=${None} -| | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr | | [Tags] | 64B | 1C -| | phy_cores=${1} | framesize=${64} - -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | 1518B | 1C -| | phy_cores=${1} | framesize=${1518} +| | framesize=${64} | phy_cores=${1} -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | 9000B | 1C -| | phy_cores=${1} | framesize=${9000} +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | IMIX | 1C -| | phy_cores=${1} | framesize=IMIX_v4_1 +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} -| tc05-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | 64B | 2C -| | phy_cores=${2} | framesize=${64} +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr | | [Tags] | 1518B | 2C -| | phy_cores=${2} | framesize=${1518} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | 9000B | 2C -| | phy_cores=${2} | framesize=${9000} +| | framesize=${1518} | phy_cores=${2} -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | IMIX | 2C -| | phy_cores=${2} | framesize=IMIX_v4_1 +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} -| tc09-64B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | 64B | 4C -| | phy_cores=${4} | framesize=${64} +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr -| | [Tags] | 1518B | 4C -| | phy_cores=${4} | framesize=${1518} +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr | | [Tags] | 9000B | 4C -| | phy_cores=${4} | framesize=${9000} +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-mrr +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-mrr | | [Tags] | IMIX | 4C -| | phy_cores=${4} | framesize=IMIX_v4_1 +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot new file mode 100644 index 0000000000..44da87e6fa --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr.robot @@ -0,0 +1,154 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL50 | 10k_FLOWS +| ... +| Suite Setup | Run Keywords +| ... | Set up 3-node performance topology with DUT's NIC model | L2 +| ... | Intel-X710 +| ... | AND | Set up performance test suite with ACL +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases with ACL* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-UDP for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge domain\ +| ... | and MAC learning enabled. DUT2 is configured with L2 cross-connects.\ +| ... | Required ACL rules are applied to input paths of both DUT1 intefaces.\ +| ... | DUT1 and DUT2 are tested with 2p10GE NIC X710 by Intel.\ +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, ${flows_per_dir} flows per flow-group) with\ +| ... | all packets containing Ethernet header, IPv4 header with UDP header and\ +| ... | static payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X710-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} + +# ACL test setup +| ${acl_action}= | permit +| ${acl_apply_type}= | input +| ${no_hit_aces_number}= | 50 +| ${flows_per_dir}= | 10k + +# starting points for non-hitting ACLs +| ${src_ip_start}= | 30.30.30.1 +| ${dst_ip_start}= | 40.40.40.1 +| ${ip_step}= | ${1} +| ${sport_start}= | ${1000} +| ${dport_start}= | ${1000} +| ${port_step}= | ${1} +| ${trex_stream1_subnet}= | 10.10.10.0/24 +| ${trex_stream2_subnet}= | 20.20.20.0/24 + +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4udp-10u1000p-conc + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD config with ACLs with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain with IPv4 ACLs on DUT1 in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-mrr.robot index ce5d65badb..e564bcd03d 100644 --- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-mrr.robot @@ -19,12 +19,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X710 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test +| ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases* | ... @@ -50,7 +52,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD config with ${phy_cores} phy | | ... | core(s). @@ -65,64 +67,60 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | And Initialize L2 bridge domain in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-mrr +| tc02-64B-2c-eth-l2bdbasemaclrn-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-mrr +| tc03-64B-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-mrr +| tc04-1518B-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-mrr +| tc07-9000B-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-mrr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot new file mode 100644 index 0000000000..bceac78f26 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot @@ -0,0 +1,132 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | BASE | L2BDBASE +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge- +| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC +| ... | X710 by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per +| ... | flow-group) with all packets containing Ethernet header, IPv4 header +| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC +| ... | addresses of the TG node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X710 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD config with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | And Initialize L2 bridge domain in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot deleted file mode 100644 index fd47f48974..0000000000 --- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdbasemaclrn-ndrpdrdisc.robot +++ /dev/null @@ -1,184 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Resource | resources/libraries/robot/performance/performance_setup.robot -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | BASE -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-X710 -| Suite Teardown | Tear down 3-node performance topology -| ... -| Test Setup | Set up performance test -| ... -| Test Teardown | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... -| Documentation | *RFC2544: Pkt throughput L2BD test cases* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ -| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NIC -| ... | X710 by Intel. -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ -| ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ -| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ -| ... | (flow-group per direction, 253 flows per flow-group) with all packets\ -| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ -| ... | payload. MAC addresses are matching MAC addresses of the TG node\ -| ... | interfaces. -| ... | *[Ref] Applicable standard specifications:* RFC2544. - -*** Variables *** -# X710 bandwidth limit -| ${s_limit} | ${10000000000} -# Traffic profile: -| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 - -*** Keywords *** -| L2 Bridge Domain NDR Binary Search -| | [Arguments] | ${framesize} | ${phy_cores} | ${min_rate}=${50000} -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${None} -| | Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs -| | Apply startup configuration on all VPP DUTs -| | Initialize L2 bridge domain in 3-node circular topology -| | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| L2 Bridge Domain PDR Binary Search -| | [Arguments] | ${framesize} | ${phy_cores} | ${min_rate}=${50000} -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${None} -| | Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs -| | Apply startup configuration on all VPP DUTs -| | Initialize L2 bridge domain in 3-node circular topology -| | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | ... | framesize=${64} | phy_cores=${1} -| | [Tags] | 64B | 1C | NDRDISC -| | [Template] | L2 Bridge Domain NDR Binary Search - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc -| | ... | framesize=${64} | phy_cores=${1} -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search - -| tc03-1518B-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | ... | framesize=${1518} | phy_cores=${1} -| | [Tags] | 1518B | 1C | NDRDISC -| | [Template] | L2 Bridge Domain NDR Binary Search - -| tc04-1518B-1t1c-eth-l2bdbasemaclrn-pdrdisc -| | ... | framesize=${1518} | phy_cores=${1} -| | [Tags] | 1518B | 1C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search - -| tc05-9000B-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | ... | framesize=${9000} | phy_cores=${1} -| | [Tags] | 9000B | 1C | NDRDISC -| | [Template] | L2 Bridge Domain NDR Binary Search - -| tc06-9000B-1t1c-eth-l2bdbasemaclrn-pdrdisc -| | ... | framesize=${9000} | phy_cores=${1} -| | [Tags] | 9000B | 1C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search - -| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc -| | ... | framesize=${64} | phy_cores=${2} -| | [Tags] | 64B | 2C | NDRDISC -| | [Template] | L2 Bridge Domain NDR Binary Search - -| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc -| | ... | framesize=${64} | phy_cores=${2} -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search - -| tc09-1518B-2t2c-eth-l2bdbasemaclrn-ndrdisc -| | ... | framesize=${1518} | phy_cores=${2} -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain NDR Binary Search - -| tc10-1518B-2t2c-eth-l2bdbasemaclrn-pdrdisc -| | ... | framesize=${1518} | phy_cores=${2} -| | [Tags] | 1518B | 2C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search - -| tc11-9000B-2t2c-eth-l2bdbasemaclrn-ndrdisc -| | ... | framesize=${9000} | phy_cores=${2} -| | [Tags] | 9000B | 2C | NDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain NDR Binary Search - -| tc12-9000B-2t2c-eth-l2bdbasemaclrn-pdrdisc -| | ... | framesize=${9000} | phy_cores=${2} -| | [Tags] | 9000B | 2C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search - -| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc -| | ... | framesize=${64} | phy_cores=${4} -| | [Tags] | 64B | 4C | NDRDISC -| | [Template] | L2 Bridge Domain NDR Binary Search - -| tc14-64B-4t4c-eth-l2bdbasemaclrn-pdrdisc -| | ... | framesize=${64} | phy_cores=${4} -| | [Tags] | 64B | 4C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search - -| tc15-1518B-4t4c-eth-l2bdbasemaclrn-ndrdisc -| | ... | framesize=${1518} | phy_cores=${4} -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain NDR Binary Search - -| tc16-1518B-4t4c-eth-l2bdbasemaclrn-pdrdisc -| | ... | framesize=${1518} | phy_cores=${4} -| | [Tags] | 1518B | 4C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search - -| tc17-9000B-4t4c-eth-l2bdbasemaclrn-ndrdisc -| | ... | framesize=${9000} | phy_cores=${4} -| | [Tags] | 9000B | 4C | NDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain NDR Binary Search - -| tc18-9000B-4t4c-eth-l2bdbasemaclrn-pdrdisc -| | ... | framesize=${9000} | phy_cores=${4} -| | [Tags] | 9000B | 4C | PDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain PDR Binary Search diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-mrr.robot index 3e4b5bc9ae..2e34a03091 100644 --- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-mrr.robot @@ -19,13 +19,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X710 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results for L2BD test cases* | ... @@ -55,7 +56,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-macsrc50kdst50k *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD switching config with ${phy_cores} phy | | ... | core(s). @@ -70,64 +71,60 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdscale100kmaclrn-mrr +| tc01-64B-1c-eth-l2bdscale100kmaclrn-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdscale100kmaclrn-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdscale100kmaclrn-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdscale100kmaclrn-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdscale100kmaclrn-mrr +| tc02-64B-2c-eth-l2bdscale100kmaclrn-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdscale100kmaclrn-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdscale100kmaclrn-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdscale100kmaclrn-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdscale100kmaclrn-mrr +| tc03-64B-4c-eth-l2bdscale100kmaclrn-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdscale100kmaclrn-mrr +| tc04-1518B-1c-eth-l2bdscale100kmaclrn-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale100kmaclrn-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale100kmaclrn-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdscale100kmaclrn-mrr +| tc07-9000B-1c-eth-l2bdscale100kmaclrn-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale100kmaclrn-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale100kmaclrn-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdscale100kmaclrn-mrr +| tc10-IMIX-1c-eth-l2bdscale100kmaclrn-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale100kmaclrn-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale100kmaclrn-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot new file mode 100644 index 0000000000..c6cf909f87 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale100kmaclrn-ndrpdr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | SCALE | L2BDBASE | FIB_100K +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput for L2BD test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ +| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NI +| ... | X710 by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 50k flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses ranges are incremented as follows: +| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:00:c3:4f,\ +| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:00:c3:4f,\ +| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:00:c3:4f,\ +| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:00:c3:4f,\ +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X710-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc50kdst50k + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale100kmaclrn-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-mrr.robot index bd636f8773..971a33bef0 100644 --- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-mrr.robot @@ -19,13 +19,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X710 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results for L2BD test cases* | ... @@ -55,7 +56,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-macsrc5kdst5k *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [CFG] DUT runs L2BD switching config with ${phy_cores} phy | | ... | core(s). @@ -70,64 +71,60 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2dbscale10kmaclrn-mrr +| tc01-64B-1c-eth-l2bdscale10kmaclrn-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2dbscale10kmaclrn-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2dbscale10kmaclrn-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2dbscale10kmaclrn-mrr -| | [Tags] | IMIX_v4_1 | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2dbscale10kmaclrn-mrr +| tc02-64B-2c-eth-l2bdscale10kmaclrn-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2dbscale10kmaclrn-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2dbscale10kmaclrn-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2dbscale10kmaclrn-mrr -| | [Tags] | IMIX_v4_1 | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2dbscale10kmaclrn-mrr +| tc03-64B-4c-eth-l2bdscale10kmaclrn-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2dbscale10kmaclrn-mrr +| tc04-1518B-1c-eth-l2bdscale10kmaclrn-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale10kmaclrn-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale10kmaclrn-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2dbscale10kmaclrn-mrr +| tc07-9000B-1c-eth-l2bdscale10kmaclrn-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale10kmaclrn-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale10kmaclrn-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2dbscale10kmaclrn-mrr -| | [Tags] | 9000B | IMIX_v4_1 +| tc10-IMIX-1c-eth-l2bdscale10kmaclrn-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale10kmaclrn-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale10kmaclrn-mrr +| | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot new file mode 100644 index 0000000000..d0199828fe --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale10kmaclrn-ndrpdr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | SCALE | L2BDBASE | FIB_10K +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput for L2BD test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ +| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NI +| ... | X710 by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 5k flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses ranges are incremented as follows: +| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:00:13:87,\ +| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:00:13:87,\ +| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:00:13:87,\ +| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:00:13:87,\ +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X710-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc5kdst5k + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [CFG] DUT runs L2BD switching config with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale10kmaclrn-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-mrr.robot index 7cad4b1b01..6ee7b92d6b 100644 --- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-mrr.robot @@ -19,13 +19,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X710 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results for L2BD test cases* | ... @@ -55,7 +56,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-macsrc500kdst500k *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD config with ${phy_cores} phy | | ... | core(s). @@ -70,64 +71,60 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | When Initialize L2 bridge domain in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdscale1mmaclrn-mrr +| tc01-64B-1c-eth-l2bdscale1mmaclrn-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdscale1mmaclrn-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdscale1mmaclrn-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdscale1mmaclrn-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdscale1mmaclrn-mrr +| tc02-64B-2c-eth-l2bdscale1mmaclrn-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdscale1mmaclrn-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdscale1mmaclrn-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-9000B-2t2c-eth-l2bdscale1mmaclrn-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdscale1mmaclrn-mrr +| tc03-64B-4c-eth-l2bdscale1mmaclrn-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdscale1mmaclrn-mrr +| tc04-1518B-1c-eth-l2bdscale1mmaclrn-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale1mmaclrn-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale1mmaclrn-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdscale1mmaclrn-mrr +| tc07-9000B-1c-eth-l2bdscale1mmaclrn-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale1mmaclrn-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale1mmaclrn-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdscale1mmaclrn-mrr +| tc10-IMIX-1c-eth-l2bdscale1mmaclrn-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale1mmaclrn-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale1mmaclrn-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot new file mode 100644 index 0000000000..f5eb734df4 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2bdscale1mmaclrn-ndrpdr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X710 | ETH | L2BDMACLRN | SCALE | L2BDBASE | FIB_1M +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput for L2BD test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ +| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p10GE NI +| ... | X710 by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 500k flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses ranges are incremented as follows: +| ... | port01_src ca:fe:00:00:00:00 - port01_src ca:fe:00:07:a1:1f,\ +| ... | port01_dst fa:ce:00:00:00:00 - port01_dst fa:ce:00:07:a1:1f,\ +| ... | port02_src fa:ce:00:00:00:00 - port02_src fa:ce:00:07:a1:1f,\ +| ... | port02_dst ca:fe:00:00:00:00 - port02_dst ca:fe:00:07:a1:1f,\ +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X710-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-macsrc500kdst500k + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD config with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdscale1mmaclrn-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-mrr.robot index 8e6c949adb..e96f510b5f 100644 --- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-mrr.robot @@ -19,13 +19,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X710 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2patch test cases* | ... @@ -50,7 +51,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy | | ... | core(s). @@ -81,46 +82,46 @@ | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1c-eth-l2patch-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1c-eth-l2patch-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1c-eth-l2patch-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2c-eth-l2patch-mrr +| tc02-64B-2c-eth-l2patch-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2c-eth-l2patch-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2c-eth-l2patch-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2c-eth-l2patch-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4c-eth-l2patch-mrr +| tc03-64B-4c-eth-l2patch-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4c-eth-l2patch-mrr +| tc04-1518B-1c-eth-l2patch-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2patch-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2patch-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4c-eth-l2patch-mrr +| tc07-9000B-1c-eth-l2patch-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2patch-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2patch-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} +| tc10-IMIX-1c-eth-l2patch-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2patch-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + | tc12-IMIX-4c-eth-l2patch-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-ndrpdr.robot index 806a5ed646..a37bf44e61 100644 --- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-ndrpdr.robot +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2patch-ndrpdr.robot @@ -19,6 +19,7 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X710 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -26,9 +27,9 @@ | Test Teardown | Tear down performance discovery test | ${min_rate}pps | ... | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... -| Documentation | *Raw results L2patch test cases* +| Documentation | *RFC2544: Pkt throughput L2patch test cases* | ... | ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology | ... | with single links between nodes. @@ -54,7 +55,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy | | ... | core(s). @@ -69,7 +70,7 @@ | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} | ${20000} +| | Set Test Variable | ${min_rate} | ${10000} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs @@ -83,50 +84,50 @@ | | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1c-eth-l2patch-mrr +| tc01-64B-1c-eth-l2patch-ndrpdr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1c-eth-l2patch-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1c-eth-l2patch-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1c-eth-l2patch-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2c-eth-l2patch-mrr +| tc02-64B-2c-eth-l2patch-ndrpdr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2c-eth-l2patch-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2c-eth-l2patch-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2c-eth-l2patch-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4c-eth-l2patch-mrr +| tc03-64B-4c-eth-l2patch-ndrpdr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4c-eth-l2patch-mrr +| tc04-1518B-1c-eth-l2patch-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2patch-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2patch-ndrpdr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4c-eth-l2patch-mrr +| tc07-9000B-1c-eth-l2patch-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2patch-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2patch-ndrpdr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4c-eth-l2patch-mrr +| tc10-IMIX-1c-eth-l2patch-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2patch-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2patch-ndrpdr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-mrr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-mrr.robot index 0f0b0a8f0f..764528c172 100644 --- a/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-mrr.robot +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-mrr.robot @@ -19,12 +19,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-X710 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test +| ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases* | ... @@ -49,7 +51,7 @@ | ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC config with ${phy_cores} phy | | ... | core(s). @@ -64,64 +66,60 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} -| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | And Initialize L2 xconnect in 3-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-mrr +| tc01-64B-1c-eth-l2xcbase-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2xcbase-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2xcbase-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2xcbase-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2xcbase-mrr +| tc02-64B-2c-eth-l2xcbase-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2xcbase-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2xcbase-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2xcbase-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2xcbase-mrr +| tc03-64B-4c-eth-l2xcbase-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2xcbase-mrr +| tc04-1518B-1c-eth-l2xcbase-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2xcbase-mrr +| tc07-9000B-1c-eth-l2xcbase-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2xcbase-mrr +| tc10-IMIX-1c-eth-l2xcbase-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-ndrpdr.robot new file mode 100644 index 0000000000..0cb2e2927e --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x710-eth-l2xcbase-ndrpdr.robot @@ -0,0 +1,131 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X710 | ETH | L2XCFWD | BASE | L2XCBASE +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-X710 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2XC test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross- +| ... | connect. DUT1 and DUT2 tested with 2p10GE NIC X710 by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per +| ... | flow-group) with all packets containing Ethernet header, IPv4 header +| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC +| ... | addresses of the TG node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# X710-DA2 bandwidth limit +| ${s_limit}= | ${10000000000} +# Traffic profile: +| ${traffic_profile}= | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC config with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} +| | And Apply startup configuration on all VPP DUTs +| | And Initialize L2 xconnect in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2xcbase-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2xcbase-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2xcbase-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2xcbase-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2xcbase-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2xcbase-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/25ge2p1xxv710-eth-l2patch-mrr.robot b/tests/vpp/perf/l2/25ge2p1xxv710-eth-l2patch-mrr.robot index b56d92f4dc..d0c20df494 100644 --- a/tests/vpp/perf/l2/25ge2p1xxv710-eth-l2patch-mrr.robot +++ b/tests/vpp/perf/l2/25ge2p1xxv710-eth-l2patch-mrr.robot @@ -19,13 +19,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-XXV710 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2patch test cases* | ... @@ -44,15 +45,15 @@ | ... | interfaces. *** Variables *** -# XXV710-DA2 bandwidth limit ~50Gbps/2=25Gbps -| ${s_25G} | ${25000000000} +# XXV710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G} | ${24500000000} # XXV710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps | ${s_18.75Mpps} | ${18750000} # Traffic profile: | ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy | | ... | core(s). @@ -70,7 +71,7 @@ | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs | | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg -| | ... | ${s_25G} | ${framesize} | pps_limit=${s_18.75Mpps} +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} | | And Add DPDK dev default RXD to all DUTs | 2048 | | And Add DPDK dev default TXD to all DUTs | 2048 | | And Apply startup configuration on all VPP DUTs @@ -83,46 +84,46 @@ | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1c-eth-l2patch-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1c-eth-l2patch-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1c-eth-l2patch-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2c-eth-l2patch-mrr +| tc02-64B-2c-eth-l2patch-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2c-eth-l2patch-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2c-eth-l2patch-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2c-eth-l2patch-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4c-eth-l2patch-mrr +| tc03-64B-4c-eth-l2patch-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4c-eth-l2patch-mrr +| tc04-1518B-1c-eth-l2patch-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2patch-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2patch-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4c-eth-l2patch-mrr +| tc07-9000B-1c-eth-l2patch-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2patch-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2patch-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} +| tc10-IMIX-1c-eth-l2patch-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2patch-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + | tc12-IMIX-4c-eth-l2patch-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/25ge2p1xxv710-eth-l2patch-ndrpdr.robot b/tests/vpp/perf/l2/25ge2p1xxv710-eth-l2patch-ndrpdr.robot index 7cf11eb401..b9b5061f16 100644 --- a/tests/vpp/perf/l2/25ge2p1xxv710-eth-l2patch-ndrpdr.robot +++ b/tests/vpp/perf/l2/25ge2p1xxv710-eth-l2patch-ndrpdr.robot @@ -19,6 +19,7 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-XXV710 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -26,9 +27,9 @@ | Test Teardown | Tear down performance discovery test | ${min_rate}pps | ... | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... -| Documentation | *Raw results L2patch test cases* +| Documentation | *RFC2544: Pkt throughput L2patch test cases* | ... | ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology | ... | with single links between nodes. @@ -48,15 +49,15 @@ | ... | *[Ref] Applicable standard specifications:* RFC2544. *** Variables *** -# XXV710-DA2 bandwidth limit ~50Gbps/2=25Gbps -| ${s_25G} | ${25000000000} +# XXV710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G} | ${24500000000} # XXV710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps | ${s_18.75Mpps} | ${18750000} # Traffic profile: | ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy | | ... | core(s). @@ -71,12 +72,12 @@ | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} | ${20000} +| | Set Test Variable | ${min_rate} | ${10000} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs | | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg -| | ... | ${s_25G} | ${framesize} | pps_limit=${s_18.75Mpps} +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} | | And Add DPDK dev default RXD to all DUTs | 2048 | | And Add DPDK dev default TXD to all DUTs | 2048 | | And Apply startup configuration on all VPP DUTs @@ -89,46 +90,46 @@ | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1c-eth-l2patch-ndrpdr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1c-eth-l2patch-ndrpdr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1c-eth-l2patch-ndrpdr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2c-eth-l2patch-ndrpdr +| tc02-64B-2c-eth-l2patch-ndrpdr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2c-eth-l2patch-ndrpdr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2c-eth-l2patch-ndrpdr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2c-eth-l2patch-ndrpdr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4c-eth-l2patch-ndrpdr +| tc03-64B-4c-eth-l2patch-ndrpdr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4c-eth-l2patch-ndrpdr +| tc04-1518B-1c-eth-l2patch-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2patch-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2patch-ndrpdr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4c-eth-l2patch-ndrpdr +| tc07-9000B-1c-eth-l2patch-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2patch-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2patch-ndrpdr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} +| tc10-IMIX-1c-eth-l2patch-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2patch-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + | tc12-IMIX-4c-eth-l2patch-ndrpdr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-mrr.robot index d26b3b9aa5..b683490554 100644 --- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-mrr.robot +++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-mrr.robot @@ -19,12 +19,14 @@ | ... | Suite Setup | Set up 2-node performance topology with DUT's NIC model | ... | L2 | Intel-X710 +| ... | Suite Teardown | Tear down 2-node performance topology | ... | Test Setup | Set up performance test +| ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases* | ... @@ -44,13 +46,13 @@ | ... | *[Ref] Applicable standard specifications:* RFC2544. *** Variables *** -# X710 bandwidth limit +# X710-DA2 bandwidth limit | ${s_limit}= | ${10000000000} # Traffic profile: | ${traffic_profile}= | trex-sl-2n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2 switching config.\ | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -65,63 +67,60 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | And Initialize L2 bridge domain in 2-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-mrr +| tc02-64B-2c-eth-l2bdbasemaclrn-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-mrr +| tc03-64B-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-mrr +| tc04-1518B-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-mrr +| tc07-9000B-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-mrr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot index aa75fe22c8..4c73f525c5 100644 --- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot +++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2bdbasemaclrn-ndrpdr.robot @@ -19,6 +19,7 @@ | ... | Suite Setup | Set up 2-node performance topology with DUT's NIC model | ... | L2 | Intel-X710 +| ... | Suite Teardown | Tear down 2-node performance topology | ... | Test Setup | Set up performance test @@ -26,9 +27,9 @@ | Test Teardown | Tear down performance discovery test | ${min_rate}pps | ... | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... -| Documentation | *Packet throughput L2BD test cases* +| Documentation | *RFC2544: Pkt throughput L2BD test cases* | ... | ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\ | ... | with single links between nodes. @@ -49,13 +50,13 @@ | ... | *[Ref] Applicable standard specifications:* RFC2544. *** Variables *** -# X710 bandwidth limit +# X710-DA2 bandwidth limit | ${s_limit} | ${10000000000} # Traffic profile: | ${traffic_profile} | trex-sl-2n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2 switching config.\ | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -70,63 +71,62 @@ | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} | ${20000} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | And Initialize L2 bridge domain in 2-node circular topology | | Then Find NDR and PDR intervals using optimized search | | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrpdr +| tc01-64B-1c-eth-l2bdbasemaclrn-ndrpdr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-ndrpdr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-ndrpdr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-ndrpdr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-ndrpdr +| tc02-64B-2c-eth-l2bdbasemaclrn-ndrpdr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-ndrpdr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-ndrpdr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-ndrpdr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-ndrpdr +| tc03-64B-4c-eth-l2bdbasemaclrn-ndrpdr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-ndrpdr +| tc04-1518B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-ndrpdr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-ndrpdr +| tc07-9000B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-ndrpdr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-ndrpdr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-ndrpdr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2patch-mrr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2patch-mrr.robot index de762da299..fc47e1bcf6 100644 --- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2patch-mrr.robot +++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2patch-mrr.robot @@ -19,13 +19,14 @@ | ... | Suite Setup | Set up 2-node performance topology with DUT's NIC model | ... | L2 | Intel-X710 +| ... | Suite Teardown | Tear down 2-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2patch test cases* | ... @@ -50,7 +51,7 @@ | ${traffic_profile} | trex-sl-2n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy | | ... | core(s). @@ -79,46 +80,46 @@ | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1c-eth-l2patch-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1c-eth-l2patch-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1c-eth-l2patch-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2c-eth-l2patch-mrr +| tc02-64B-2c-eth-l2patch-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2c-eth-l2patch-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2c-eth-l2patch-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2c-eth-l2patch-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4c-eth-l2patch-mrr +| tc03-64B-4c-eth-l2patch-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4c-eth-l2patch-mrr +| tc04-1518B-1c-eth-l2patch-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2patch-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2patch-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4c-eth-l2patch-mrr +| tc07-9000B-1c-eth-l2patch-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2patch-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2patch-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} +| tc10-IMIX-1c-eth-l2patch-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2patch-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + | tc12-IMIX-4c-eth-l2patch-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2patch-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2patch-ndrpdr.robot index 377ad7ee56..381cae98f3 100644 --- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2patch-ndrpdr.robot +++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2patch-ndrpdr.robot @@ -19,6 +19,7 @@ | ... | Suite Setup | Set up 2-node performance topology with DUT's NIC model | ... | L2 | Intel-X710 +| ... | Suite Teardown | Tear down 2-node performance topology | ... | Test Setup | Set up performance test @@ -26,9 +27,9 @@ | Test Teardown | Tear down performance discovery test | ${min_rate}pps | ... | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... -| Documentation | *Raw results L2patch test cases* +| Documentation | *RFC2544: Pkt throughput L2patch test cases* | ... | ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology | ... | with single links between nodes. @@ -54,7 +55,7 @@ | ${traffic_profile} | trex-sl-2n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy | | ... | core(s). @@ -69,7 +70,7 @@ | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} | ${20000} +| | Set Test Variable | ${min_rate} | ${10000} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs @@ -85,46 +86,46 @@ | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1c-eth-l2patch-ndrpdr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1c-eth-l2patch-ndrpdr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1c-eth-l2patch-ndrpdr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2c-eth-l2patch-ndrpdr +| tc02-64B-2c-eth-l2patch-ndrpdr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2c-eth-l2patch-ndrpdr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2c-eth-l2patch-ndrpdr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2c-eth-l2patch-ndrpdr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4c-eth-l2patch-ndrpdr +| tc03-64B-4c-eth-l2patch-ndrpdr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4c-eth-l2patch-ndrpdr +| tc04-1518B-1c-eth-l2patch-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2patch-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2patch-ndrpdr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4c-eth-l2patch-ndrpdr +| tc07-9000B-1c-eth-l2patch-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2patch-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2patch-ndrpdr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} +| tc10-IMIX-1c-eth-l2patch-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2patch-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + | tc12-IMIX-4c-eth-l2patch-ndrpdr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2xcbase-mrr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2xcbase-mrr.robot index 4a0bd7e595..c0938113a5 100644 --- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2xcbase-mrr.robot +++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2xcbase-mrr.robot @@ -19,12 +19,14 @@ | ... | Suite Setup | Set up 2-node performance topology with DUT's NIC model | ... | L2 | Intel-X710 +| ... | Suite Teardown | Tear down 2-node performance topology | ... | Test Setup | Set up performance test +| ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases* | ... @@ -49,7 +51,7 @@ | ${traffic_profile}= | trex-sl-2n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC config.\ | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -64,63 +66,60 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | And Initialize L2 xconnect in 2-node circular topology | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-mrr +| tc01-64B-1c-eth-l2xcbase-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2xcbase-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2xcbase-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2xcbase-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2xcbase-mrr +| tc02-64B-2c-eth-l2xcbase-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2xcbase-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2xcbase-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2xcbase-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2xcbase-mrr +| tc03-64B-4c-eth-l2xcbase-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2xcbase-mrr +| tc04-1518B-1c-eth-l2xcbase-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2xcbase-mrr +| tc07-9000B-1c-eth-l2xcbase-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2xcbase-mrr +| tc10-IMIX-1c-eth-l2xcbase-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2xcbase-ndrpdr.robot index 70911a8915..3d04ce6220 100644 --- a/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2xcbase-ndrpdr.robot +++ b/tests/vpp/perf/l2/2n1l-10ge2p1x710-eth-l2xcbase-ndrpdr.robot @@ -19,6 +19,7 @@ | ... | Suite Setup | Set up 2-node performance topology with DUT's NIC model | ... | L2 | Intel-X710 +| ... | Suite Teardown | Tear down 2-node performance topology | ... | Test Setup | Set up performance test @@ -26,9 +27,9 @@ | Test Teardown | Tear down performance discovery test | ${min_rate}pps | ... | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... -| Documentation | *Packet throughput L2XC test cases* +| Documentation | *RFC2544: Pkt throughput L2XC test cases* | ... | ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology | ... | with single links between nodes. @@ -48,13 +49,13 @@ | ... | *[Ref] Applicable standard specifications:* RFC2544. *** Variables *** -# X710 bandwidth limit +# X710-DA2 bandwidth limit | ${s_limit} | ${10000000000} # Traffic profile: | ${traffic_profile} | trex-sl-2n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC config.\ | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -69,63 +70,62 @@ | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} | ${20000} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${get_framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_limit} | ${framesize} | | And Apply startup configuration on all VPP DUTs | | And Initialize L2 xconnect in 2-node circular topology | | Then Find NDR and PDR intervals using optimized search | | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-ndrpdr +| tc01-64B-1c-eth-l2xcbase-ndrpdr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2xcbase-ndrpdr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2xcbase-ndrpdr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2xcbase-ndrpdr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2xcbase-ndrpdr +| tc02-64B-2c-eth-l2xcbase-ndrpdr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2xcbase-ndrpdr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2xcbase-ndrpdr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2xcbase-ndrpdr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2xcbase-ndrpdr +| tc03-64B-4c-eth-l2xcbase-ndrpdr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2xcbase-ndrpdr +| tc04-1518B-1c-eth-l2xcbase-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-ndrpdr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2xcbase-ndrpdr +| tc07-9000B-1c-eth-l2xcbase-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-ndrpdr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2xcbase-ndrpdr +| tc10-IMIX-1c-eth-l2xcbase-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-ndrpdr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-mrr.robot index 25a3cdba97..c30879f467 100644 --- a/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-mrr.robot +++ b/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-mrr.robot @@ -19,12 +19,14 @@ | ... | Suite Setup | Set up 2-node performance topology with DUT's NIC model | ... | L2 | Intel-XXV710 +| ... | Suite Teardown | Tear down 2-node performance topology | ... | Test Setup | Set up performance test +| ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases* | ... @@ -44,15 +46,15 @@ | ... | *[Ref] Applicable standard specifications:* RFC2544. *** Variables *** -# XXV710-DA2 bandwidth limit ~50Gbps/2=25Gbps -| ${s_25G} | ${25000000000} +# XXV710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G} | ${24500000000} # XXV710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps | ${s_18.75Mpps} | ${18750000} # Traffic profile: | ${traffic_profile}= | trex-sl-2n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2 switching config.\ | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -67,15 +69,10 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_25G} | ${get_framesize} -| | ${max_rate}= | Set Variable If -| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate} | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} | | And Add DPDK dev default RXD to all DUTs | 2048 | | And Add DPDK dev default TXD to all DUTs | 2048 | | And Apply startup configuration on all VPP DUTs @@ -84,50 +81,50 @@ | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-mrr +| tc02-64B-2c-eth-l2bdbasemaclrn-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-mrr +| tc03-64B-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-mrr +| tc04-1518B-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-mrr +| tc07-9000B-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-mrr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-ndrpdr.robot index a76f718522..3abc0da69f 100644 --- a/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-ndrpdr.robot +++ b/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2bdbasemaclrn-ndrpdr.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# Copyright (c) 2018 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -19,6 +19,7 @@ | ... | Suite Setup | Set up 2-node performance topology with DUT's NIC model | ... | L2 | Intel-XXV710 +| ... | Suite Teardown | Tear down 2-node performance topology | ... | Test Setup | Set up performance test @@ -26,9 +27,9 @@ | Test Teardown | Tear down performance discovery test | ${min_rate}pps | ... | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... -| Documentation | *Packet throughput L2BD test cases* +| Documentation | *RFC2544: Pkt throughput L2BD test cases* | ... | ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\ | ... | with single links between nodes. @@ -49,15 +50,15 @@ | ... | *[Ref] Applicable standard specifications:* RFC2544. *** Variables *** -# XXV710-DA2 bandwidth limit ~50Gbps/2=25Gbps -| ${s_25G} | ${25000000000} +# XXV710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G} | ${24500000000} # XXV710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps | ${s_18.75Mpps} | ${18750000} # Traffic profile: | ${traffic_profile} | trex-sl-2n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2 switching config.\ | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -72,15 +73,11 @@ | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} | ${20000} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_25G} | ${get_framesize} -| | ${max_rate}= | Set Variable If -| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate} +| | Set Test Variable | ${min_rate} | ${10000} | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} | | And Add DPDK dev default RXD to all DUTs | 2048 | | And Add DPDK dev default TXD to all DUTs | 2048 | | And Apply startup configuration on all VPP DUTs @@ -89,50 +86,50 @@ | | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrpdr +| tc01-64B-1c-eth-l2bdbasemaclrn-ndrpdr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-ndrpdr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-ndrpdr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-ndrpdr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-ndrpdr +| tc02-64B-2c-eth-l2bdbasemaclrn-ndrpdr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-ndrpdr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-ndrpdr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-ndrpdr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-ndrpdr +| tc03-64B-4c-eth-l2bdbasemaclrn-ndrpdr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-ndrpdr +| tc04-1518B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-ndrpdr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-ndrpdr +| tc07-9000B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-ndrpdr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-ndrpdr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-ndrpdr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2patch-mrr.robot b/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2patch-mrr.robot index 8e32289afe..d3336c8d01 100644 --- a/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2patch-mrr.robot +++ b/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2patch-mrr.robot @@ -19,13 +19,14 @@ | ... | Suite Setup | Set up 2-node performance topology with DUT's NIC model | ... | L2 | Intel-XXV710 +| ... | Suite Teardown | Tear down 2-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2patch test cases* | ... @@ -44,15 +45,15 @@ | ... | interfaces. *** Variables *** -# XXV710-DA2 bandwidth limit ~50Gbps/2=25Gbps -| ${s_25G} | ${25000000000} +# XXV710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G} | ${24500000000} # XXV710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps | ${s_18.75Mpps} | ${18750000} # Traffic profile: | ${traffic_profile} | trex-sl-2n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy | | ... | core(s). @@ -70,7 +71,7 @@ | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs | | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg -| | ... | ${s_25G} | ${framesize} | pps_limit=${s_18.75Mpps} +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} | | And Add DPDK dev default RXD to all DUTs | 2048 | | And Add DPDK dev default TXD to all DUTs | 2048 | | And Apply startup configuration on all VPP DUTs @@ -83,46 +84,46 @@ | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1c-eth-l2patch-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1c-eth-l2patch-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1c-eth-l2patch-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2c-eth-l2patch-mrr +| tc02-64B-2c-eth-l2patch-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2c-eth-l2patch-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2c-eth-l2patch-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2c-eth-l2patch-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4c-eth-l2patch-mrr +| tc03-64B-4c-eth-l2patch-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4c-eth-l2patch-mrr +| tc04-1518B-1c-eth-l2patch-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2patch-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2patch-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4c-eth-l2patch-mrr +| tc07-9000B-1c-eth-l2patch-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2patch-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2patch-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} +| tc10-IMIX-1c-eth-l2patch-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2patch-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + | tc12-IMIX-4c-eth-l2patch-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2patch-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2patch-ndrpdr.robot index a52f59ec80..4fbb450b7e 100644 --- a/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2patch-ndrpdr.robot +++ b/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2patch-ndrpdr.robot @@ -19,6 +19,7 @@ | ... | Suite Setup | Set up 2-node performance topology with DUT's NIC model | ... | L2 | Intel-XXV710 +| ... | Suite Teardown | Tear down 2-node performance topology | ... | Test Setup | Set up performance test @@ -26,9 +27,9 @@ | Test Teardown | Tear down performance discovery test | ${min_rate}pps | ... | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... -| Documentation | *Raw results L2patch test cases* +| Documentation | *RFC2544: Pkt throughput L2patch test cases* | ... | ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology | ... | with single links between nodes. @@ -48,15 +49,15 @@ | ... | *[Ref] Applicable standard specifications:* RFC2544. *** Variables *** -# XXV710-DA2 bandwidth limit ~50Gbps/2=25Gbps -| ${s_25G} | ${25000000000} +# XXV710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G} | ${24500000000} # XXV710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps | ${s_18.75Mpps} | ${18750000} # Traffic profile: | ${traffic_profile} | trex-sl-2n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy | | ... | core(s). @@ -71,12 +72,12 @@ | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} | ${20000} +| | Set Test Variable | ${min_rate} | ${10000} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs | | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg -| | ... | ${s_25G} | ${framesize} | pps_limit=${s_18.75Mpps} +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} | | And Add DPDK dev default RXD to all DUTs | 2048 | | And Add DPDK dev default TXD to all DUTs | 2048 | | And Apply startup configuration on all VPP DUTs @@ -89,46 +90,46 @@ | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1c-eth-l2patch-ndrpdr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1c-eth-l2patch-ndrpdr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1c-eth-l2patch-ndrpdr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2c-eth-l2patch-ndrpdr +| tc02-64B-2c-eth-l2patch-ndrpdr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2c-eth-l2patch-ndrpdr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2c-eth-l2patch-ndrpdr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2c-eth-l2patch-ndrpdr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4c-eth-l2patch-ndrpdr +| tc03-64B-4c-eth-l2patch-ndrpdr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4c-eth-l2patch-ndrpdr +| tc04-1518B-1c-eth-l2patch-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2patch-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2patch-ndrpdr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4c-eth-l2patch-ndrpdr +| tc07-9000B-1c-eth-l2patch-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2patch-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2patch-ndrpdr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} +| tc10-IMIX-1c-eth-l2patch-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2patch-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + | tc12-IMIX-4c-eth-l2patch-ndrpdr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2xcbase-mrr.robot b/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2xcbase-mrr.robot index b45b7377bf..302d852c1c 100644 --- a/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2xcbase-mrr.robot +++ b/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2xcbase-mrr.robot @@ -19,12 +19,14 @@ | ... | Suite Setup | Set up 2-node performance topology with DUT's NIC model | ... | L2 | Intel-XXV710 +| ... | Suite Teardown | Tear down 2-node performance topology | ... | Test Setup | Set up performance test +| ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases* | ... @@ -43,15 +45,15 @@ | ... | *[Ref] Applicable standard specifications:* RFC2544. *** Variables *** -# XXV710-DA2 bandwidth limit ~50Gbps/2=25Gbps -| ${s_25G} | ${25000000000} +# XXV710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G} | ${24500000000} # XXV710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps | ${s_18.75Mpps} | ${18750000} # Traffic profile: | ${traffic_profile}= | trex-sl-2n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC config.\ | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -66,15 +68,10 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_25G} | ${get_framesize} -| | ${max_rate}= | Set Variable If -| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate} | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} | | And Add DPDK dev default RXD to all DUTs | 2048 | | And Add DPDK dev default TXD to all DUTs | 2048 | | And Apply startup configuration on all VPP DUTs @@ -83,50 +80,50 @@ | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-mrr +| tc01-64B-1c-eth-l2xcbase-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2xcbase-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2xcbase-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2xcbase-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2xcbase-mrr +| tc02-64B-2c-eth-l2xcbase-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2xcbase-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2xcbase-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2xcbase-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2xcbase-mrr +| tc03-64B-4c-eth-l2xcbase-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2xcbase-mrr +| tc04-1518B-1c-eth-l2xcbase-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2xcbase-mrr +| tc07-9000B-1c-eth-l2xcbase-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2xcbase-mrr +| tc10-IMIX-1c-eth-l2xcbase-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2xcbase-ndrpdr.robot index 514470f5b1..8ac3c2baa7 100644 --- a/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2xcbase-ndrpdr.robot +++ b/tests/vpp/perf/l2/2n1l-25ge2p1xxv710-eth-l2xcbase-ndrpdr.robot @@ -19,6 +19,7 @@ | ... | Suite Setup | Set up 2-node performance topology with DUT's NIC model | ... | L2 | Intel-XXV710 +| ... | Suite Teardown | Tear down 2-node performance topology | ... | Test Setup | Set up performance test @@ -26,9 +27,9 @@ | Test Teardown | Tear down performance discovery test | ${min_rate}pps | ... | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... -| Documentation | *Packet throughput L2XC test cases* +| Documentation | *RFC2544: Pkt throughput L2XC test cases* | ... | ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology | ... | with single links between nodes. @@ -48,15 +49,15 @@ | ... | *[Ref] Applicable standard specifications:* RFC2544. *** Variables *** -# XXV710-DA2 bandwidth limit ~50Gbps/2=25Gbps -| ${s_25G} | ${25000000000} +# XXV710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G} | ${24500000000} # XXV710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps | ${s_18.75Mpps} | ${18750000} # Traffic profile: | ${traffic_profile} | trex-sl-2n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC config.\ | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. @@ -71,15 +72,12 @@ | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} | ${20000} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_25G} | ${get_framesize} -| | ${max_rate}= | Set Variable If -| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} | | And Add DPDK dev default RXD to all DUTs | 2048 | | And Add DPDK dev default TXD to all DUTs | 2048 | | And Apply startup configuration on all VPP DUTs @@ -88,50 +86,50 @@ | | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} *** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-ndrpdr +| tc01-64B-1c-eth-l2xcbase-ndrpdr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2xcbase-ndrpdr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2xcbase-ndrpdr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2xcbase-ndrpdr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2xcbase-ndrpdr +| tc02-64B-2c-eth-l2xcbase-ndrpdr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2xcbase-ndrpdr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2xcbase-ndrpdr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2xcbase-ndrpdr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2xcbase-ndrpdr +| tc03-64B-4c-eth-l2xcbase-ndrpdr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2xcbase-ndrpdr +| tc04-1518B-1c-eth-l2xcbase-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-ndrpdr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2xcbase-ndrpdr +| tc07-9000B-1c-eth-l2xcbase-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-ndrpdr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2xcbase-ndrpdr +| tc10-IMIX-1c-eth-l2xcbase-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-ndrpdr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-mrr.robot new file mode 100644 index 0000000000..9bd0e7cd8f --- /dev/null +++ b/tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-mrr.robot @@ -0,0 +1,130 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Library | resources.libraries.python.NodePath +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR +| ... | NIC_Cisco-VIC-1385 | ETH | L2BDMACLRN | BASE +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Cisco-VIC-1385 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance mrr test +| ... +| Test Template | Local Template +| ... +| Documentation | *Raw results L2BD test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge- +| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p40GE NIC +| ... | NIC_Cisco-VIC-1385. +| ... | *[Ver] TG verification:* In MaxReceivedRate test TG sends traffic +| ... | at line rate and reports total received/sent packets over trial period. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, 253 flows per flow-group) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static +| ... | payload. MAC addresses are matching MAC addresses of the TG node +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# XL710-DA2 (TG) bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G} | ${24500000000} +# XL710-DA2 Mpps (TG) limit 37.5Mpps/2=18.75Mpps +| ${s_18.75Mpps} | ${18750000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure MaxReceivedRate for ${framesize}B frames using single\ +| | ... | trial throughput test. +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain in 3-node circular topology +| | Then Traffic should pass with maximum rate +| | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdr.robot new file mode 100644 index 0000000000..a86cfc6f50 --- /dev/null +++ b/tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdr.robot @@ -0,0 +1,136 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Library | resources.libraries.python.NodePath +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Cisco-VIC-1385 | ETH | L2BDMACLRN | BASE +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Cisco-VIC-1385 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge- +| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p40GE NIC +| ... | NIC_Cisco-VIC-1385. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, 253 flows per flow-group) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static +| ... | payload. MAC addresses are matching MAC addresses of the TG node +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# XL710-DA2 (TG) bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G} | ${24500000000} +# XL710-DA2 Mpps (TG) limit 37.5Mpps/2=18.75Mpps +| ${s_18.75Mpps} | ${18750000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot deleted file mode 100644 index 9350b66b57..0000000000 --- a/tests/vpp/perf/l2/40ge2p1vic1385-eth-l2bdbasemaclrn-ndrpdrdisc.robot +++ /dev/null @@ -1,352 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Resource | resources/libraries/robot/performance/performance_setup.robot -| Library | resources.libraries.python.NodePath -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Cisco-VIC-1385 | ETH | L2BDMACLRN | BASE -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Cisco-VIC-1385 -| Suite Teardown | Tear down 3-node performance topology -| ... -| Test Setup | Set up performance test -| ... -| Test Teardown | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... -| Documentation | *RFC2544: Pkt throughput L2BD test cases* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge- -| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p40GE NIC -| ... | NIC_Cisco-VIC-1385. -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage -| ... | of packets transmitted. NDR and PDR are discovered for different -| ... | Ethernet L2 frame sizes using either binary search or linear search -| ... | algorithms with configured starting rate and final step that determines -| ... | throughput measurement resolution. Test packets are generated by TG on -| ... | links to DUTs. TG traffic profile contains two L3 flow-groups -| ... | (flow-group per direction, 253 flows per flow-group) with all packets -| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static -| ... | payload. MAC addresses are matching MAC addresses of the TG node -| ... | interfaces. -| ... | *[Ref] Applicable standard specifications:* RFC2544. - -*** Variables *** -# XL710-DA2 (TG) bandwidth limit ~49Gbps/2=24.5Gbps -| ${s_24.5G} | ${24500000000} -# XL710-DA2 Mpps (TG) limit 37.5Mpps/2=18.75Mpps -| ${s_18.75Mpps} | ${18750000} -# Traffic profile: -| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\ -| | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at\ -| | ... | 18.75Mpps rate, step 50kpps. -| | ... -| | [Tags] | 64B | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Set Variable | ${s_18.75Mpps} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 bridge domain in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\ -| | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at\ -| | ... | 18.75Mpps rate, step 50kpps. -| | ... -| | [Tags] | 64B | 1C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Set Variable | ${s_18.75Mpps} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 bridge domain in 3-node circular topology -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc03-1518B-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\ -| | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at\ -| | ... | 24.5G rate, step 50kpps. -| | ... -| | [Tags] | 1518B | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 bridge domain in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc05-9000B-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\ -| | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at\ -| | ... | 24.5G rate, step 10kpps. -| | ... -| | [Tags] | 9000B | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${9000} -| | ${min_rate}= | Set Variable | ${10000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 bridge domain in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\ -| | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at\ -| | ... | 18.75Mpps rate, step 50kpps. -| | ... -| | [Tags] | 64B | 2C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Set Variable | ${s_18.75Mpps} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 bridge domain in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc08-64B-2t2c-eth-l2bdbasemaclrn-pdrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\ -| | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at\ -| | ... | 18.75Mpps rate, step 50kpps. -| | ... -| | [Tags] | 64B | 2C | PDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Set Variable | ${s_18.75Mpps} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 bridge domain in 3-node circular topology -| | Then Find PDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} | ${perf_pdr_loss_acceptance} -| | ... | ${perf_pdr_loss_acceptance_type} - -| tc09-1518B-2t2c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy cores,\ -| | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at\ -| | ... | 24.5G rate, step 50kpps. -| | ... -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 bridge domain in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\ -| | ... | 2 receive queues per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at\ -| | ... | 18.75Mpps rate, step 50kpps. -| | ... -| | [Tags] | 64B | 4C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | ${64} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Set Variable | ${s_18.75Mpps} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 bridge domain in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc15-1518B-4t4c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 4 phy cores,\ -| | ... | 2 receive queues per NIC port. -| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at\ -| | ... | 24.5G rate, step 50kpps. -| | ... -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | ${1518} -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 bridge domain in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc19-IMIX-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 1 phy core,\ -| | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for IMIX_v4_1 frame size using binary search start at\ -| | ... | 24.5G rate, step 50kpps. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 1C | NDRDISC -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 bridge domain in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc20-IMIX-2t2c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 2 phy core,\ -| | ... | 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for IMIX_v4_1 frame size using binary search start at\ -| | ... | 24.5G rate, step 50kpps. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 bridge domain in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc21-IMIX-4t4c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with 4 thread, 4 phy core,\ -| | ... | 2 receive queue per NIC port. -| | ... | [Ver] Find NDR for IMIX_v4_1 frame size using binary search start at\ -| | ... | 24.5G rate, step 50kpps. -| | ... | IMIX_v4_1 = (28x64B; 16x570B; 4x1518B) -| | ... -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | ... -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 bridge domain in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} diff --git a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-mrr.robot b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-mrr.robot index 4003ae0142..3c4b020fe2 100644 --- a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-mrr.robot +++ b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-mrr.robot @@ -17,15 +17,17 @@ | ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | MRR | ... | NIC_Intel-XL710 | ETH | L2BDMACLRN | BASE +| ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-XL710 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2BD test cases* | ... @@ -54,7 +56,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2BD config with ${phy_cores} phy | | ... | core(s). @@ -69,16 +71,10 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${get_framesize} -| | ${max_rate}= | Set Variable If -| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate} -| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} | | And Add DPDK dev default RXD to all DUTs | 2048 | | And Add DPDK dev default TXD to all DUTs | 2048 | | And Apply startup configuration on all VPP DUTs @@ -87,50 +83,50 @@ | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} *** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-mrr +| tc01-64B-1c-eth-l2bdbasemaclrn-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2bdbasemaclrn-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2bdbasemaclrn-mrr +| tc02-64B-2c-eth-l2bdbasemaclrn-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2bdbasemaclrn-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2bdbasemaclrn-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2bdbasemaclrn-mrr +| tc03-64B-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2bdbasemaclrn-mrr +| tc04-1518B-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2bdbasemaclrn-mrr +| tc07-9000B-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2bdbasemaclrn-mrr +| tc10-IMIX-1c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdr.robot b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdr.robot new file mode 100644 index 0000000000..c7397c3309 --- /dev/null +++ b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdr.robot @@ -0,0 +1,138 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Library | resources.libraries.python.NodePath +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-XL710 | ETH | L2BDMACLRN | BASE +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-XL710 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2BD test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ +| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p40GE NIC\ +| ... | XL710-DA2 by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on\ +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ +| ... | (flow-group per direction, 253 flows per flow-group) with all packets\ +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ +| ... | payload. MAC addresses are matching MAC addresses of the TG node\ +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G} | ${24500000000} +# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps +| ${s_18.75Mpps} | ${18750000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD config with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 bridge domain in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2bdbasemaclrn-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot deleted file mode 100644 index 3d16103d19..0000000000 --- a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2bdbasemaclrn-ndrpdrdisc.robot +++ /dev/null @@ -1,215 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Resource | resources/libraries/robot/performance/performance_setup.robot -| Library | resources.libraries.python.NodePath -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-XL710 | ETH | L2BDMACLRN | BASE -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-XL710 -| Suite Teardown | Tear down 3-node performance topology -| ... -| Test Setup | Set up performance test -| ... -| Test Teardown | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... -| Test Template | Local template -| ... -| Documentation | *RFC2544: Pkt throughput L2BD test cases* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 switching of IPv4. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 bridge-\ -| ... | domain and MAC learning enabled. DUT1 and DUT2 tested with 2p40GE NIC\ -| ... | XL710-DA2 by Intel. -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop\ -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ -| ... | of packets transmitted. NDR and PDR are discovered for different\ -| ... | Ethernet L2 frame sizes using either binary search or linear search\ -| ... | algorithms with configured starting rate and final step that determines\ -| ... | throughput measurement resolution. Test packets are generated by TG on\ -| ... | links to DUTs. TG traffic profile contains two L3 flow-groups\ -| ... | (flow-group per direction, 253 flows per flow-group) with all packets\ -| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static\ -| ... | payload. MAC addresses are matching MAC addresses of the TG node\ -| ... | interfaces. -| ... | *[Ref] Applicable standard specifications:* RFC2544. - -*** Variables *** -# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps -| ${s_24.5G} | ${24500000000} -# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps -| ${s_18.75Mpps} | ${18750000} -# Traffic profile: -| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 - -*** Keywords *** -| L2 Bridge Domain Binary Search BW limit -| | [Arguments] | ${framesize} | ${phy_cores} | ${s_limit} -| | ... | ${search_type} | ${min_rate}=${50000} -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Calculate pps | ${s_limit} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${None} -| | Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs -| | Add DPDK dev default RXD to all DUTs | 2048 -| | Add DPDK dev default TXD to all DUTs | 2048 -| | Apply startup configuration on all VPP DUTs -| | Initialize L2 bridge domain in 3-node circular topology -| | Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -| L2 Bridge Domain Binary Search -| | [Arguments] | ${framesize} | ${phy_cores} | ${s_limit} -| | ... | ${search_type} | ${min_rate}=${50000} -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | ${max_rate}= | Set Variable | ${s_limit} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${None} -| | Add PCI devices to all DUTs -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | Run Keyword If | ${get_framesize} < ${1522} | Add no multi seg to all DUTs -| | Add DPDK dev default RXD to all DUTs | 2048 -| | Add DPDK dev default TXD to all DUTs | 2048 -| | Apply startup configuration on all VPP DUTs -| | Initialize L2 bridge domain in 3-node circular topology -| | Run Keyword If | '${search_type}' == 'NDR' -| | ... | Find NDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ELSE IF | '${search_type}' == 'PDR' -| | ... | Find PDR using binary search and pps -| | ... | ${framesize} | ${binary_min} | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} -| | ... | ${perf_pdr_loss_acceptance} | ${perf_pdr_loss_acceptance_type} - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with with\ -| | ... | 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at\ -| | ... | 18.75Mpps rate, step 50kpps. -| | [Tags] | 64B | 1C | NDRDISC -| | [Template] | L2 Bridge Domain Binary Search -| | framesize=${64} | phy_cores=${1} -| | ... | s_limit=${s_18.75Mpps} | search_type=NDR - -| tc03-1518B-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with with\ -| | ... | 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at\ -| | ... | 24.5G rate, step 50kpps. -| | [Tags] | 1518B | 1C | NDRDISC -| | [Template] | L2 Bridge Domain Binary Search BW limit -| | framesize=${1518} | phy_cores=${1} -| | ... | s_limit=${s_24.5G} | search_type=NDR - -| tc07-64B-2t2c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with with\ -| | ... | 2 phy cores, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at\ -| | ... | 18.75Mpps rate, step 50kpps. -| | [Tags] | 64B | 2C | NDRDISC -| | [Template] | L2 Bridge Domain Binary Search -| | framesize=${64} | phy_cores=${2} -| | ... | s_limit=${s_18.75Mpps} | search_type=NDR - -| tc09-1518B-2t2c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with with\ -| | ... | 2 phy cores, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at\ -| | ... | 24.5G rate, step 50kpps. -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain Binary Search BW limit -| | framesize=${1518} | phy_cores=${2} -| | ... | s_limit=${s_24.5G} | search_type=NDR - -| tc13-64B-4t4c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with with\ -| | ... | 4 phy cores, 2 receive queues per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at\ -| | ... | 18.75Mpps rate, step 50kpps. -| | [Tags] | 64B | 4C | NDRDISC -| | [Template] | L2 Bridge Domain Binary Search -| | framesize=${64} | phy_cores=${4} -| | ... | s_limit=${s_18.75Mpps} | search_type=NDR - -| tc15-1518B-4t4c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with with\ -| | ... | 4 phy cores, 2 receive queues per NIC port. -| | ... | [Ver] Find NDR for 1518 Byte frames using binary search start at\ -| | ... | 24.5G rate, step 50kpps. -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain Binary Search BW limit -| | framesize=${1518} | phy_cores=${4} -| | ... | s_limit=${s_24.5G} | search_type=NDR - -| tc19-IMIX-1t1c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with with\ -| | ... | 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at\ -| | ... | 24.5G rate, step 50kpps. -| | [Tags] | IMIX | 1C | NDRDISC -| | [Template] | L2 Bridge Domain Binary Search BW limit -| | framesize=IMIX_v4_1 | phy_cores=${1} -| | ... | s_limit=${s_24.5G} | search_type=NDR - -| tc20-IMIX-2t2c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with with\ -| | ... | 2 phy cores, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at\ -| | ... | 24.5G rate, step 50kpps. -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain Binary Search BW limit -| | framesize=IMIX_v4_1 | phy_cores=${2} -| | ... | s_limit=${s_24.5G} | search_type=NDR - -| tc21-IMIX-4t4c-eth-l2bdbasemaclrn-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with with\ -| | ... | 4 phy cores, 2 receive queues per NIC port. -| | ... | [Ver] Find NDR for IMIX_v4_1 frames using binary search start at\ -| | ... | 24.5G rate, step 50kpps. -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | [Template] | L2 Bridge Domain Binary Search BW limit -| | framesize=IMIX_v4_1 | phy_cores=${4} -| | ... | s_limit=${s_24.5G} | search_type=NDR - diff --git a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2patch-mrr.robot b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2patch-mrr.robot index 90b73bd2e2..0d575041ba 100644 --- a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2patch-mrr.robot +++ b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2patch-mrr.robot @@ -19,13 +19,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-XL710 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2patch test cases* | ... @@ -52,7 +53,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy | | ... | core(s). @@ -83,46 +84,46 @@ | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1c-eth-l2patch-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1c-eth-l2patch-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1c-eth-l2patch-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2c-eth-l2patch-mrr +| tc02-64B-2c-eth-l2patch-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2c-eth-l2patch-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2c-eth-l2patch-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2c-eth-l2patch-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4c-eth-l2patch-mrr +| tc03-64B-4c-eth-l2patch-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4c-eth-l2patch-mrr +| tc04-1518B-1c-eth-l2patch-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2patch-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2patch-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4c-eth-l2patch-mrr +| tc07-9000B-1c-eth-l2patch-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2patch-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2patch-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} +| tc10-IMIX-1c-eth-l2patch-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2patch-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + | tc12-IMIX-4c-eth-l2patch-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2patch-ndrpdr.robot b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2patch-ndrpdr.robot index a264878406..2897f03811 100644 --- a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2patch-ndrpdr.robot +++ b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2patch-ndrpdr.robot @@ -19,6 +19,7 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-XL710 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test @@ -26,9 +27,9 @@ | Test Teardown | Tear down performance discovery test | ${min_rate}pps | ... | ${framesize} | ${traffic_profile} | ... -| Test Template | Local template +| Test Template | Local Template | ... -| Documentation | *Raw results L2patch test cases* +| Documentation | *RFC2544: Pkt throughput L2patch test cases* | ... | ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology | ... | with single links between nodes. @@ -56,7 +57,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2 patch config with ${phy_cores} phy | | ... | core(s). @@ -71,7 +72,7 @@ | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... | | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} | ${20000} +| | Set Test Variable | ${min_rate} | ${10000} | | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs @@ -89,46 +90,46 @@ | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1c-eth-l2patch-ndrpdr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1c-eth-l2patch-ndrpdr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1c-eth-l2patch-ndrpdr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2c-eth-l2patch-ndrpdr +| tc02-64B-2c-eth-l2patch-ndrpdr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2c-eth-l2patch-ndrpdr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2c-eth-l2patch-ndrpdr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2c-eth-l2patch-ndrpdr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4c-eth-l2patch-ndrpdr +| tc03-64B-4c-eth-l2patch-ndrpdr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4c-eth-l2patch-ndrpdr +| tc04-1518B-1c-eth-l2patch-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2patch-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2patch-ndrpdr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4c-eth-l2patch-ndrpdr +| tc07-9000B-1c-eth-l2patch-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2patch-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2patch-ndrpdr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} +| tc10-IMIX-1c-eth-l2patch-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2patch-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + | tc12-IMIX-4c-eth-l2patch-ndrpdr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-mrr.robot b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-mrr.robot index f6e7da49fb..6c1051f3bf 100644 --- a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-mrr.robot +++ b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-mrr.robot @@ -21,13 +21,14 @@ | ... | Suite Setup | Set up 3-node performance topology with DUT's NIC model | ... | L2 | Intel-XL710 +| ... | Suite Teardown | Tear down 3-node performance topology | ... | Test Setup | Set up performance test | ... | Test Teardown | Tear down performance mrr test | ... -| Test Template | Local template +| Test Template | Local Template | ... | Documentation | *Raw results L2XC test cases* | ... @@ -55,7 +56,7 @@ | ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 *** Keywords *** -| Local template +| Local Template | | [Documentation] | | ... | [Cfg] DUT runs L2XC config with ${phy_cores} phy | | ... | core(s). @@ -70,16 +71,10 @@ | | ... | | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} | | ... -| | Set Test Variable | ${framesize} -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${get_framesize} -| | ${max_rate}= | Set Variable If -| | ... | ${max_rate} > ${s_18.75Mpps} | ${s_18.75Mpps} | ${max_rate} -| | ... | | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} | | And Add PCI devices to all DUTs -| | And Run Keyword If | ${get_framesize} < ${1522} -| | ... | Add no multi seg to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} | | And Add DPDK dev default RXD to all DUTs | 2048 | | And Add DPDK dev default TXD to all DUTs | 2048 | | And Apply startup configuration on all VPP DUTs @@ -87,52 +82,51 @@ | | Then Traffic should pass with maximum rate | | ... | ${max_rate}pps | ${framesize} | ${traffic_profile} - *** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-mrr +| tc01-64B-1c-eth-l2xcbase-mrr | | [Tags] | 64B | 1C | | framesize=${64} | phy_cores=${1} -| tc02-1518B-1t1c-eth-l2xcbase-mrr -| | [Tags] | 1518B | 1C -| | framesize=${1518} | phy_cores=${1} - -| tc03-9000B-1t1c-eth-l2xcbase-mrr -| | [Tags] | 9000B | 1C -| | framesize=${9000} | phy_cores=${1} - -| tc04-IMIX-1t1c-eth-l2xcbase-mrr -| | [Tags] | IMIX | 1C -| | framesize=IMIX_v4_1 | phy_cores=${1} - -| tc05-64B-2t2c-eth-l2xcbase-mrr +| tc02-64B-2c-eth-l2xcbase-mrr | | [Tags] | 64B | 2C | | framesize=${64} | phy_cores=${2} -| tc06-1518B-2t2c-eth-l2xcbase-mrr -| | [Tags] | 1518B | 2C -| | framesize=${1518} | phy_cores=${2} - -| tc07-9000B-2t2c-eth-l2xcbase-mrr -| | [Tags] | 9000B | 2C -| | framesize=${9000} | phy_cores=${2} - -| tc08-IMIX-2t2c-eth-l2xcbase-mrr -| | [Tags] | IMIX | 2C -| | framesize=IMIX_v4_1 | phy_cores=${2} - -| tc09-64B-4t4c-eth-l2xcbase-mrr +| tc03-64B-4c-eth-l2xcbase-mrr | | [Tags] | 64B | 4C | | framesize=${64} | phy_cores=${4} -| tc10-1518B-4t4c-eth-l2xcbase-mrr +| tc04-1518B-1c-eth-l2xcbase-mrr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-mrr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-mrr | | [Tags] | 1518B | 4C | | framesize=${1518} | phy_cores=${4} -| tc11-9000B-4t4c-eth-l2xcbase-mrr +| tc07-9000B-1c-eth-l2xcbase-mrr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-mrr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-mrr | | [Tags] | 9000B | 4C | | framesize=${9000} | phy_cores=${4} -| tc12-IMIX-4t4c-eth-l2xcbase-mrr +| tc10-IMIX-1c-eth-l2xcbase-mrr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-mrr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-mrr | | [Tags] | IMIX | 4C | | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-ndrpdr.robot b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-ndrpdr.robot new file mode 100644 index 0000000000..fd58e984c7 --- /dev/null +++ b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-ndrpdr.robot @@ -0,0 +1,138 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Resource | resources/libraries/robot/performance/performance_setup.robot +| Library | resources.libraries.python.InterfaceUtil +| Library | resources.libraries.python.NodePath +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-XL710 | ETH | L2XCFWD | BASE +| ... +| Suite Setup | Set up 3-node performance topology with DUT's NIC model +| ... | L2 | Intel-XL710 +| ... +| Suite Teardown | Tear down 3-node performance topology +| ... +| Test Setup | Set up performance test +| ... +| Test Teardown | Tear down performance discovery test | ${min_rate}pps +| ... | ${framesize} | ${traffic_profile} +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput L2XC test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross- +| ... | connect. DUT1 and DUT2 tested with 2p40GE NIC XL710 by Intel. +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop +| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage +| ... | of packets transmitted. NDR and PDR are discovered for different +| ... | Ethernet L2 frame sizes using MLRsearch library. +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, 253 flows per flow-group) with all packets +| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static +| ... | payload. MAC addresses are matching MAC addresses of the TG node +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps +| ${s_24.5G} | ${24500000000} +# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps +| ${s_18.75Mpps} | ${18750000} +# Traffic profile: +| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs L2XC config with ${phy_cores} phy +| | ... | core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - framesize - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - phy_cores - Number of physical cores. Type: integer +| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer +| | ... +| | [Arguments] | ${framesize} | ${phy_cores} | ${rxq}=${None} +| | ... +| | Set Test Variable | ${framesize} +| | Set Test Variable | ${min_rate} | ${10000} +| | ... +| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq} +| | And Add PCI devices to all DUTs +| | ${max_rate} | ${jumbo} = | Get Max Rate And Jumbo And Handle Multi Seg +| | ... | ${s_24.5G} | ${framesize} | pps_limit=${s_18.75Mpps} +| | And Add DPDK dev default RXD to all DUTs | 2048 +| | And Add DPDK dev default TXD to all DUTs | 2048 +| | And Apply startup configuration on all VPP DUTs +| | When Initialize L2 xconnect in 3-node circular topology +| | Then Find NDR and PDR intervals using optimized search +| | ... | ${framesize} | ${traffic_profile} | ${min_rate} | ${max_rate} + +*** Test Cases *** +| tc01-64B-1c-eth-l2xcbase-ndrpdr +| | [Tags] | 64B | 1C +| | framesize=${64} | phy_cores=${1} + +| tc02-64B-2c-eth-l2xcbase-ndrpdr +| | [Tags] | 64B | 2C +| | framesize=${64} | phy_cores=${2} + +| tc03-64B-4c-eth-l2xcbase-ndrpdr +| | [Tags] | 64B | 4C +| | framesize=${64} | phy_cores=${4} + +| tc04-1518B-1c-eth-l2xcbase-ndrpdr +| | [Tags] | 1518B | 1C +| | framesize=${1518} | phy_cores=${1} + +| tc05-1518B-2c-eth-l2xcbase-ndrpdr +| | [Tags] | 1518B | 2C +| | framesize=${1518} | phy_cores=${2} + +| tc06-1518B-4c-eth-l2xcbase-ndrpdr +| | [Tags] | 1518B | 4C +| | framesize=${1518} | phy_cores=${4} + +| tc07-9000B-1c-eth-l2xcbase-ndrpdr +| | [Tags] | 9000B | 1C +| | framesize=${9000} | phy_cores=${1} + +| tc08-9000B-2c-eth-l2xcbase-ndrpdr +| | [Tags] | 9000B | 2C +| | framesize=${9000} | phy_cores=${2} + +| tc09-9000B-4c-eth-l2xcbase-ndrpdr +| | [Tags] | 9000B | 4C +| | framesize=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-eth-l2xcbase-ndrpdr +| | [Tags] | IMIX | 1C +| | framesize=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-eth-l2xcbase-ndrpdr +| | [Tags] | IMIX | 2C +| | framesize=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-eth-l2xcbase-ndrpdr +| | [Tags] | IMIX | 4C +| | framesize=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot b/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot deleted file mode 100644 index e4acddfcb5..0000000000 --- a/tests/vpp/perf/l2/40ge2p1xl710-eth-l2xcbase-ndrpdrdisc.robot +++ /dev/null @@ -1,269 +0,0 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -*** Settings *** -| Resource | resources/libraries/robot/performance/performance_setup.robot -| Library | resources.libraries.python.InterfaceUtil -| Library | resources.libraries.python.NodePath -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-XL710 | ETH | L2XCFWD | BASE -| ... -| Suite Setup | Set up 3-node performance topology with DUT's NIC model -| ... | L2 | Intel-XL710 -| Suite Teardown | Tear down 3-node performance topology -| ... -| Test Setup | Set up performance test -| ... -| Test Teardown | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... -| Documentation | *RFC2544: Pkt throughput L2XC test cases* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for L2 cross connect. -| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2 cross- -| ... | connect. DUT1 and DUT2 tested with 2p40GE NIC XL710 by Intel. -| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop -| ... | Rate) with zero packet loss tolerance or throughput PDR (Partial Drop -| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage -| ... | of packets transmitted. NDR and PDR are discovered for different -| ... | Ethernet L2 frame sizes using either binary search or linear search -| ... | algorithms with configured starting rate and final step that determines -| ... | throughput measurement resolution. Test packets are generated by TG on -| ... | links to DUTs. TG traffic profile contains two L3 flow-groups -| ... | (flow-group per direction, 253 flows per flow-group) with all packets -| ... | containing Ethernet header, IPv4 header with IP protocol=61 and static -| ... | payload. MAC addresses are matching MAC addresses of the TG node -| ... | interfaces. -| ... | *[Ref] Applicable standard specifications:* RFC2544. - -*** Variables *** -# XL710-DA2 bandwidth limit ~49Gbps/2=24.5Gbps -| ${s_24.5G} | ${24500000000} -# XL710-DA2 Mpps limit 37.5Mpps/2=18.75Mpps -| ${s_18.75Mpps} | ${18750000} -# Traffic profile: -| ${traffic_profile} | trex-sl-3n-ethip4-ip4src254 - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames -| | ... | using binary search start at 18.75Mpps rate, step 50kpps. -| | [Tags] | 64B | 1C | NDRDISC -| | ${framesize}= | Set Variable | 64 -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Set Variable | ${s_18.75Mpps} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Add DPDK dev default RXD to all DUTs | 2048 -| | And Add DPDK dev default TXD to all DUTs | 2048 -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc03-1518B-1t1c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames -| | ... | using binary search start at 24.5G rate, step 50kpps. -| | [Tags] | 1518B | 1C | NDRDISC -| | ${framesize}= | Set Variable | 1518 -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Add DPDK dev default RXD to all DUTs | 2048 -| | And Add DPDK dev default TXD to all DUTs | 2048 -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc07-64B-2t2c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 64 Byte frames -| | ... | using binary search start at 18.75Mpps rate, step 50kpps. -| | [Tags] | 64B | 2C | NDRDISC -| | ${framesize}= | Set Variable | 64 -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Set Variable | ${s_18.75Mpps} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Add DPDK dev default RXD to all DUTs | 2048 -| | And Add DPDK dev default TXD to all DUTs | 2048 -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc09-1518B-2t2c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy cores, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for 1518 Byte frames -| | ... | using binary search start at 24.5G rate, step 50kpps. -| | [Tags] | 1518B | 2C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | 1518 -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Add DPDK dev default RXD to all DUTs | 2048 -| | And Add DPDK dev default TXD to all DUTs | 2048 -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc13-64B-4t4c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 64 Byte frames -| | ... | using binary search start at 18.75Mpps rate, step 50kpps. -| | [Tags] | 64B | 4C | NDRDISC -| | ${framesize}= | Set Variable | 64 -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Set Variable | ${s_18.75Mpps} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Add DPDK dev default RXD to all DUTs | 2048 -| | And Add DPDK dev default TXD to all DUTs | 2048 -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc15-1518B-4t4c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 phy cores, \ -| | ... | 2 receive queues per NIC port. [Ver] Find NDR for 1518 Byte frames -| | ... | using binary search start at 24.5G rate, step 50kpps. -| | [Tags] | 1518B | 4C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | 1518 -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${framesize} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Add DPDK dev default RXD to all DUTs | 2048 -| | And Add DPDK dev default TXD to all DUTs | 2048 -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc19-IMIX-1t1c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 1 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame size -| | ... | using binary search start at 24.5G rate, step 50kpps. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 1C | NDRDISC -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${353.83333} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 1 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Add DPDK dev default RXD to all DUTs | 2048 -| | And Add DPDK dev default TXD to all DUTs | 2048 -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc20-IMIX-2t2c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 2 phy core, \ -| | ... | 1 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame size -| | ... | using binary search start at 24.5G rate, step 50kpps. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 2C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${353.83333} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 2 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Add DPDK dev default RXD to all DUTs | 2048 -| | And Add DPDK dev default TXD to all DUTs | 2048 -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} - -| tc21-IMIX-4t4c-eth-l2xcbase-ndrdisc -| | [Documentation] -| | ... | [Cfg] DUT runs L2XC switching config with 4 thread, 4 phy core, \ -| | ... | 2 receive queue per NIC port. [Ver] Find NDR for IMIX_v4_1 frame size -| | ... | using binary search start at 24.5G rate, step 50kpps. -| | ... | IMIX_v4_1 = (28x64B;16x570B;4x1518B) -| | [Tags] | IMIX | 4C | NDRDISC | SKIP_PATCH -| | ${framesize}= | Set Variable | IMIX_v4_1 -| | ${min_rate}= | Set Variable | ${50000} -| | ${max_rate}= | Calculate pps | ${s_24.5G} | ${353.83333} -| | ${binary_min}= | Set Variable | ${min_rate} -| | ${binary_max}= | Set Variable | ${max_rate} -| | ${threshold}= | Set Variable | ${min_rate} -| | Given Add worker threads and rxqueues to all DUTs | 4 -| | And Add PCI devices to all DUTs -| | And Add no multi seg to all DUTs -| | And Add DPDK dev default RXD to all DUTs | 2048 -| | And Add DPDK dev default TXD to all DUTs | 2048 -| | And Apply startup configuration on all VPP DUTs -| | And Initialize L2 xconnect in 3-node circular topology -| | Then Find NDR using binary search and pps | ${framesize} | ${binary_min} -| | ... | ${binary_max} | ${traffic_profile} -| | ... | ${min_rate} | ${max_rate} | ${threshold} diff --git a/tests/vpp/perf/l2/regenerate_testcases.py b/tests/vpp/perf/l2/regenerate_testcases.py new file mode 100755 index 0000000000..5fabf8b89d --- /dev/null +++ b/tests/vpp/perf/l2/regenerate_testcases.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python + +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from resources.libraries.python.autogen.Regenerator import Regenerator + +Regenerator().regenerate_glob("*.robot") |