From 1e81689582f6f1308903406ae443eb437a889726 Mon Sep 17 00:00:00 2001 From: Jan Gelety Date: Fri, 7 Jul 2017 10:04:37 +0200 Subject: [PATCH] CSIT-703: Add ACL 2t2c perf test cases Change-Id: I51f6015681d1fc62da56cf1cca110f7a4c82ba10 Signed-off-by: Jan Gelety --- docs/tag_documentation.rst | 47 +++ ...eth-l2bdbasemaclrn-aclinpermit-ndrpdrdisc.robot | 321 --------------------- ...dbasemaclrn-aclinpermitreflect-ndrpdrdisc.robot | 321 --------------------- ...th-l2bdbasemaclrn-acloutpermit-ndrpdrdisc.robot | 321 --------------------- ...basemaclrn-acloutpermitreflect-ndrpdrdisc.robot | 321 --------------------- ...bdbasemaclrn-iacl10sf-100flows-ndrpdrdisc.robot | 147 ++++++++++ ...dbasemaclrn-iacl10sf-100kflows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-iacl10sf-10kflows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-iacl10sl-100flows-ndrpdrdisc.robot | 147 ++++++++++ ...dbasemaclrn-iacl10sl-100kflows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-iacl10sl-10kflows-ndrpdrdisc.robot | 147 ++++++++++ ...2bdbasemaclrn-iacl1sf-100flows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-iacl1sf-100kflows-ndrpdrdisc.robot | 147 ++++++++++ ...2bdbasemaclrn-iacl1sf-10kflows-ndrpdrdisc.robot | 147 ++++++++++ ...2bdbasemaclrn-iacl1sl-100flows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-iacl1sl-100kflows-ndrpdrdisc.robot | 147 ++++++++++ ...2bdbasemaclrn-iacl1sl-10kflows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-iacl50sf-100flows-ndrpdrdisc.robot | 147 ++++++++++ ...dbasemaclrn-iacl50sf-100kflows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-iacl50sl-100flows-ndrpdrdisc.robot | 147 ++++++++++ ...dbasemaclrn-iacl50sl-100kflows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-oacl10sf-100flows-ndrpdrdisc.robot | 147 ++++++++++ ...dbasemaclrn-oacl10sf-100kflows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-oacl10sf-10kflows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-oacl10sl-100flows-ndrpdrdisc.robot | 147 ++++++++++ ...dbasemaclrn-oacl10sl-100kflows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-oacl10sl-10kflows-ndrpdrdisc.robot | 147 ++++++++++ ...2bdbasemaclrn-oacl1sf-100flows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-oacl1sf-100kflows-ndrpdrdisc.robot | 147 ++++++++++ ...2bdbasemaclrn-oacl1sf-10kflows-ndrpdrdisc.robot | 147 ++++++++++ ...2bdbasemaclrn-oacl1sl-100flows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-oacl1sl-100kflows-ndrpdrdisc.robot | 147 ++++++++++ ...2bdbasemaclrn-oacl1sl-10kflows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-oacl50sf-100flows-ndrpdrdisc.robot | 147 ++++++++++ ...dbasemaclrn-oacl50sf-100kflows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-oacl50sl-100flows-ndrpdrdisc.robot | 147 ++++++++++ ...dbasemaclrn-oacl50sl-100kflows-ndrpdrdisc.robot | 147 ++++++++++ ...bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot | 147 ++++++++++ 41 files changed, 5339 insertions(+), 1284 deletions(-) delete mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-aclinpermit-ndrpdrdisc.robot delete mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-aclinpermitreflect-ndrpdrdisc.robot delete mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-acloutpermit-ndrpdrdisc.robot delete mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-acloutpermitreflect-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdrdisc.robot create mode 100644 tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot diff --git a/docs/tag_documentation.rst b/docs/tag_documentation.rst index 537beced67..d3a71b2f7e 100644 --- a/docs/tag_documentation.rst +++ b/docs/tag_documentation.rst @@ -108,6 +108,21 @@ Scaling TAGs Traffic flow with 4000 unique IPs (users) in one direction. +.. topic:: 100_FLOWS + + Traffic stream with 100 unique flows (10 IPs/users x 10 UDP ports) in one + direction. + +.. topic:: 10k_FLOWS + + Traffic stream with 10 000 unique flows (10 IPs/users x 1000 UDP ports) in + one direction. + +.. topic:: 100k_FLOWS + + Traffic stream with 100 000 unique flows (100 IPs/users x 1000 UDP ports) in + one direction. + Tags marking functional vs. performance of tests ------------------------------------------------ @@ -366,6 +381,38 @@ Feature tags SNAT configured and tested. +.. topic:: ACL + + ACL plugin configured and tested. + +.. topic:: IACL + + ACL plugin configured and tested on input path. + +.. topic:: OACL + + ACL plugin configured and tested on output path. + +.. topic:: ACL_STATELESS + + ACL plugin configured and tested in stateless mode (permit action). + +.. topic:: ACL_STATEFUL + + ACL plugin configured and tested in stateful mode (permit+reflect action). + +.. topic:: ACL1 + + ACL plugin configured and tested with 1 not-hitting ACE. + +.. topic:: ACL10 + + ACL plugin configured and tested with 10 not-hitting ACEs. + +.. topic:: ACL50 + + ACL plugin configured and tested with 50 not-hitting ACEs. + Encryption tags --------------- diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-aclinpermit-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-aclinpermit-ndrpdrdisc.robot deleted file mode 100644 index 88d5786c40..0000000000 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-aclinpermit-ndrpdrdisc.robot +++ /dev/null @@ -1,321 +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.Classify -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X520-DA2 | ETH | 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 | Run Keywords | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} -| ... | AND | Cli Show Acl | ${dut1} -| ... | AND | Run Keyword And Ignore Error -| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} -| ... -| 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 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:* 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} - -# 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 - -*** Keywords *** -| Discover NDR or PDR for L2 Bridge Domain with ACLs -| | [Arguments] | ${wt} | ${rxq} | ${no_hit_aces_number} | ${acl_apply_type} -| | ... | ${acl_action} | ${flows_per_dir} | ${framesize} | ${min_rate} -| | ... | ${search_type} -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | Set Test Variable | ${no_hit_aces_number} -| | Set Test Variable | ${acl_apply_type} -| | Set Test Variable | ${acl_action} -| | ${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 '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology -| | And Add PCI devices to DUTs in 3-node single link topology -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | 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 domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable If -| | ... | '${flows_per_dir}' == '100' | trex-sl-3n-ethip4udp-10u10p-conc -| | ... | '${flows_per_dir}' == '10k' | trex-sl-3n-ethip4udp-10u1000p-conc -| | ... | '${flows_per_dir}' == '100k' | 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} - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-ndrdisc -| | ... -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc03-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc04-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc05-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc06-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc07-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc08-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc09-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc10-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc11-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc12-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc13-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc14-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc15-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc16-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc17-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc18-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=input -| | ... | acl_action=permit | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-aclinpermitreflect-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-aclinpermitreflect-ndrpdrdisc.robot deleted file mode 100644 index 49fba084b3..0000000000 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-aclinpermitreflect-ndrpdrdisc.robot +++ /dev/null @@ -1,321 +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.Classify -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X520-DA2 | ETH | 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 | Run Keywords | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} -| ... | AND | Cli Show Acl | ${dut1} -| ... | AND | Run Keyword And Ignore Error -| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} -| ... -| 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 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:* 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} - -# 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 - -*** Keywords *** -| Discover NDR or PDR for L2 Bridge Domain with ACLs -| | [Arguments] | ${wt} | ${rxq} | ${no_hit_aces_number} | ${acl_apply_type} -| | ... | ${acl_action} | ${flows_per_dir} | ${framesize} | ${min_rate} -| | ... | ${search_type} -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | Set Test Variable | ${no_hit_aces_number} -| | Set Test Variable | ${acl_apply_type} -| | Set Test Variable | ${acl_action} -| | ${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 '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology -| | And Add PCI devices to DUTs in 3-node single link topology -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | 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 domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable If -| | ... | '${flows_per_dir}' == '100' | trex-sl-3n-ethip4udp-10u10p-conc -| | ... | '${flows_per_dir}' == '10k' | trex-sl-3n-ethip4udp-10u1000p-conc -| | ... | '${flows_per_dir}' == '100k' | 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} - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-statefull-flows100-ndrdisc -| | ... -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-statefull-flows100-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc03-64B-1t1c-eth-l2bdbasemaclrn-iacl10-statefull-flows100-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc04-64B-1t1c-eth-l2bdbasemaclrn-iacl10-statefull-flows100-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc05-64B-1t1c-eth-l2bdbasemaclrn-iacl50-statefull-flows100-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc06-64B-1t1c-eth-l2bdbasemaclrn-iacl50-statefull-flows100-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc07-64B-1t1c-eth-l2bdbasemaclrn-iacl1-statefull-flows10k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc08-64B-1t1c-eth-l2bdbasemaclrn-iacl1-statefull-flows10k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc09-64B-1t1c-eth-l2bdbasemaclrn-iacl10-statefull-flows10k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc10-64B-1t1c-eth-l2bdbasemaclrn-iacl10-statefull-flows10k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc11-64B-1t1c-eth-l2bdbasemaclrn-iacl50-statefull-flows10k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc12-64B-1t1c-eth-l2bdbasemaclrn-iacl50-statefull-flows10k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc13-64B-1t1c-eth-l2bdbasemaclrn-iacl1-statefull-flows100k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc14-64B-1t1c-eth-l2bdbasemaclrn-iacl1-statefull-flows100k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc15-64B-1t1c-eth-l2bdbasemaclrn-iacl10-statefull-flows100k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc16-64B-1t1c-eth-l2bdbasemaclrn-iacl10-statefull-flows100k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc17-64B-1t1c-eth-l2bdbasemaclrn-iacl50-statefull-flows100k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc18-64B-1t1c-eth-l2bdbasemaclrn-iacl50-statefull-flows100k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=input -| | ... | acl_action=permit+reflect | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-acloutpermit-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-acloutpermit-ndrpdrdisc.robot deleted file mode 100644 index 53714c76f2..0000000000 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-acloutpermit-ndrpdrdisc.robot +++ /dev/null @@ -1,321 +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.Classify -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X520-DA2 | ETH | 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 | Run Keywords | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} -| ... | AND | Cli Show Acl | ${dut1} -| ... | AND | Run Keyword And Ignore Error -| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} -| ... -| 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 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 output 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\ -| ... | 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} - -# 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 - -*** Keywords *** -| Discover NDR or PDR for L2 Bridge Domain with ACLs -| | [Arguments] | ${wt} | ${rxq} | ${no_hit_aces_number} | ${acl_apply_type} -| | ... | ${acl_action} | ${flows_per_dir} | ${framesize} | ${min_rate} -| | ... | ${search_type} -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | Set Test Variable | ${no_hit_aces_number} -| | Set Test Variable | ${acl_apply_type} -| | Set Test Variable | ${acl_action} -| | ${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 '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology -| | And Add PCI devices to DUTs in 3-node single link topology -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | 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 domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable If -| | ... | '${flows_per_dir}' == '100' | trex-sl-3n-ethip4udp-10u10p-conc -| | ... | '${flows_per_dir}' == '10k' | trex-sl-3n-ethip4udp-10u1000p-conc -| | ... | '${flows_per_dir}' == '100k' | 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} - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-ndrdisc -| | ... -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc03-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc04-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc05-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc06-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc07-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc08-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc09-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc10-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc11-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc12-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc13-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc14-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc15-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc16-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc17-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc18-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=output -| | ... | acl_action=permit | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-acloutpermitreflect-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-acloutpermitreflect-ndrpdrdisc.robot deleted file mode 100644 index c72fee5892..0000000000 --- a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-acloutpermitreflect-ndrpdrdisc.robot +++ /dev/null @@ -1,321 +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.Classify -| ... -| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC -| ... | NIC_Intel-X520-DA2 | ETH | 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 | Run Keywords | Tear down performance discovery test | ${min_rate}pps -| ... | ${framesize} | ${traffic_profile} -| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} -| ... | AND | Cli Show Acl | ${dut1} -| ... | AND | Run Keyword And Ignore Error -| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} -| ... -| 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 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 output 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\ -| ... | 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} - -# 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 - -*** Keywords *** -| Discover NDR or PDR for L2 Bridge Domain with ACLs -| | [Arguments] | ${wt} | ${rxq} | ${no_hit_aces_number} | ${acl_apply_type} -| | ... | ${acl_action} | ${flows_per_dir} | ${framesize} | ${min_rate} -| | ... | ${search_type} -| | Set Test Variable | ${framesize} -| | Set Test Variable | ${min_rate} -| | Set Test Variable | ${no_hit_aces_number} -| | Set Test Variable | ${acl_apply_type} -| | Set Test Variable | ${acl_action} -| | ${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 '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology -| | And Add PCI devices to DUTs in 3-node single link topology -| | ${get_framesize}= | Get Frame Size | ${framesize} -| | 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 domain with IPv4 ACLs on DUT1 in 3-node circular topology -| | ${traffic_profile}= | Set Variable If -| | ... | '${flows_per_dir}' == '100' | trex-sl-3n-ethip4udp-10u10p-conc -| | ... | '${flows_per_dir}' == '10k' | trex-sl-3n-ethip4udp-10u1000p-conc -| | ... | '${flows_per_dir}' == '100k' | 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} - -*** Test Cases *** -| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-statefull-flows100-ndrdisc -| | ... -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-statefull-flows100-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc03-64B-1t1c-eth-l2bdbasemaclrn-oacl10-statefull-flows100-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc04-64B-1t1c-eth-l2bdbasemaclrn-oacl10-statefull-flows100-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc05-64B-1t1c-eth-l2bdbasemaclrn-oacl50-statefull-flows100-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc06-64B-1t1c-eth-l2bdbasemaclrn-oacl50-statefull-flows100-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=100 | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc07-64B-1t1c-eth-l2bdbasemaclrn-oacl1-statefull-flows10k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc08-64B-1t1c-eth-l2bdbasemaclrn-oacl1-statefull-flows10k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc09-64B-1t1c-eth-l2bdbasemaclrn-oacl10-statefull-flows10k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc10-64B-1t1c-eth-l2bdbasemaclrn-oacl10-statefull-flows10k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc11-64B-1t1c-eth-l2bdbasemaclrn-oacl50-statefull-flows10k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc12-64B-1t1c-eth-l2bdbasemaclrn-oacl50-statefull-flows10k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=10k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc13-64B-1t1c-eth-l2bdbasemaclrn-oacl1-statefull-flows100k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc14-64B-1t1c-eth-l2bdbasemaclrn-oacl1-statefull-flows100k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=1 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc15-64B-1t1c-eth-l2bdbasemaclrn-oacl10-statefull-flows100k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc16-64B-1t1c-eth-l2bdbasemaclrn-oacl10-statefull-flows100k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=10 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR - -| tc17-64B-1t1c-eth-l2bdbasemaclrn-oacl50-statefull-flows100k-ndrdisc -| | [Tags] | 1T1C | STHREAD | NDRDISC | FEATURE | ACL | SRC_USER_100 -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=NDR - -| tc18-64B-1t1c-eth-l2bdbasemaclrn-oacl50-statefull-flows100k-pdrdisc -| | [Tags] | 1T1C | STHREAD | PDRDISC | FEATURE | ACL | SRC_USER_100 | SKIP_PATCH -| | [Documentation] -| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ -| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. -| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ -| | ... | linerate, step 10kpps, LT=0.5%. -| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs -| | wt=1 | rxq=1 | no_hit_aces_number=50 | acl_apply_type=output -| | ... | acl_action=permit+reflect | flows_per_dir=100k | framesize=${64} -| | ... | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdrdisc.robot new file mode 100644 index 0000000000..dd70a9f8ab --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100flows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL10 | 100_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows100-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..f67a031dac --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-100kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL10 | 100k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows100k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..4f70e60fcb --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sf-10kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL10 | 10k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateful-flows10k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdrdisc.robot new file mode 100644 index 0000000000..d66c89a9b0 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100flows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL10 | 100_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows100-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..627bda9ff4 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-100kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL10 | 100k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows100k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..dcb2903439 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl10sl-10kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL10 | 10k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl10-stateless-flows10k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdrdisc.robot new file mode 100644 index 0000000000..a9b2430c3a --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100flows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL1 | 100_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows100-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..e7b693d4fc --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-100kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL1 | 100k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows100k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..e5b3f51b5e --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sf-10kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL1 | 10k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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}= | 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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateful-flows10k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdrdisc.robot new file mode 100644 index 0000000000..b771879232 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100flows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL1 | 100_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows100-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..79e9c21727 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-100kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL1 | 100k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows100k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..9f4e0f2436 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl1sl-10kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL1 | 10k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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}= | 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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl1-stateless-flows10k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdrdisc.robot new file mode 100644 index 0000000000..72f0df134c --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100flows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL50 | 100_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows100-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..10302c8eaa --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-100kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL50 | 100k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows100k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..d8bdfe9422 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sf-10kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | IACL | ACL50 | 10k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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}= | 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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateful-flows10k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdrdisc.robot new file mode 100644 index 0000000000..d3bc6899d2 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100flows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL50 | 100_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows100-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..ed624bcffc --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-100kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL50 | 100k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows100k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..bab65d19e5 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-iacl50sl-10kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | IACL | ACL50 | 10k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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}= | 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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-iacl50-stateless-flows10k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdrdisc.robot new file mode 100644 index 0000000000..c967356836 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100flows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL10 | 100_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows100-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..74010d5bc3 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-100kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL10 | 100k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows100k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..aba0b9f195 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sf-10kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL10 | 10k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateful-flows10k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdrdisc.robot new file mode 100644 index 0000000000..d37111ae28 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100flows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL10 | 100_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows100-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..1c6ccbaf20 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-100kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL10 | 100k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows100k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..541d0c8c08 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl10sl-10kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL10 | 10k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl10-stateless-flows10k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdrdisc.robot new file mode 100644 index 0000000000..6f4a190473 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100flows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL1 | 100_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows100-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..66fffb2a39 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-100kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL1 | 100k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows100k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..b075149e37 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sf-10kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL1 | 10k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateful-flows10k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdrdisc.robot new file mode 100644 index 0000000000..898c7245ad --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100flows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL1 | 100_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows100-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..eff10526fd --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-100kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL1 | 100k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows100k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..53b697c727 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl1sl-10kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL1 | 10k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl1-stateless-flows10k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdrdisc.robot new file mode 100644 index 0000000000..6015a79c98 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100flows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL50 | 100_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows100-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..df8f7a4034 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-100kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL50 | 100k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows100k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..4debca2936 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sf-10kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATEFUL +| ... | OACL | ACL50 | 10k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateful-flows10k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdrdisc.robot new file mode 100644 index 0000000000..c3f18a860f --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100flows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL50 | 100_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows100-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..634cceb803 --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-100kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL50 | 100k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows100k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR diff --git a/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot new file mode 100644 index 0000000000..071e003a4d --- /dev/null +++ b/tests/vpp/perf/l2/10ge2p1x520-eth-l2bdbasemaclrn-oacl50sl-10kflows-ndrpdrdisc.robot @@ -0,0 +1,147 @@ +# 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.Classify +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDRDISC +| ... | NIC_Intel-X520-DA2 | ETH | L2BDMACLRN | FEATURE | ACL | ACL_STATELESS +| ... | OACL | ACL50 | 10k_FLOWS +| ... +| 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 | Run Keywords | Tear down performance discovery test +| ... | ${min_rate}pps | ${framesize} | ${traffic_profile} +| ... | AND | Vpp Log Plugin Acl Settings | ${dut1} +| ... | AND | Cli Show Acl | ${dut1} +| ... | AND | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| ... +| 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:* 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, ${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 + +*** Keywords *** +| Discover NDR or PDR for L2 Bridge Domain with ACLs +| | [Arguments] | ${wt} | ${rxq} | ${framesize} | ${min_rate} | ${search_type} +| | 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} +| | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology +| | And Add PCI devices to DUTs in 3-node single link topology +| | ${get_framesize}= | Get Frame Size | ${framesize} +| | 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 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} + +*** Test Cases *** +| tc01-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-ndrdisc +| | [Tags] | 64B | 1T1C | STHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc02-64B-1t1c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-pdrdisc +| | [Tags] | 64B | 1T1C | STHREAD | PDRDISC | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 1 thread, 1 phy core, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=1 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR + +| tc03-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-ndrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | NDRDISC +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find NDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=NDR + +| tc04-64B-2t2c-eth-l2bdbasemaclrn-oacl50-stateless-flows10k-pdrdisc +| | [Tags] | 64B | 2T2C | MTHREAD | SKIP_PATCH +| | ... +| | [Documentation] +| | ... | [Cfg] DUT runs L2BD switching config with ACL with\ +| | ... | 2 threads, 2 phy cores, 1 receive queue per NIC port. +| | ... | [Ver] Find PDR for 64 Byte frames using binary search start at 10GE\ +| | ... | linerate, step 10kpps, LT=0.5%. +| | [Template] | Discover NDR or PDR for L2 Bridge Domain with ACLs +| | wt=2 | rxq=1 | framesize=${64} | min_rate=${10000} | search_type=PDR -- 2.16.6