From 298d0a61d75cded31fc0f09d408e7b3e3f9ee4f7 Mon Sep 17 00:00:00 2001 From: Vratko Polak Date: Fri, 20 Jul 2018 13:13:06 +0200 Subject: CSIT-1097: Migrate Vts suite to NDRPDR Change-Id: Iaac913bb4b15d743a2e9d565e25d31c089cee3e8 Signed-off-by: Vratko Polak --- .../libraries/python/autogen/DefaultTestcase.py | 2 +- resources/libraries/python/autogen/Regenerator.py | 12 ++++-- .../performance/performance_configuration.robot | 30 ++++++++++++++ .../robot/performance/performance_setup.robot | 48 ++++++++++++++++++++++ 4 files changed, 88 insertions(+), 4 deletions(-) (limited to 'resources') diff --git a/resources/libraries/python/autogen/DefaultTestcase.py b/resources/libraries/python/autogen/DefaultTestcase.py index 9878289bd1..3c11cb073e 100644 --- a/resources/libraries/python/autogen/DefaultTestcase.py +++ b/resources/libraries/python/autogen/DefaultTestcase.py @@ -13,7 +13,7 @@ """Module with utilities for autogeneration of non-customizable testcases.""" -from Testcase import Testcase +from .Testcase import Testcase class DefaultTestcase(Testcase): diff --git a/resources/libraries/python/autogen/Regenerator.py b/resources/libraries/python/autogen/Regenerator.py index 30dc7b7e89..4ed123ae7c 100644 --- a/resources/libraries/python/autogen/Regenerator.py +++ b/resources/libraries/python/autogen/Regenerator.py @@ -36,7 +36,7 @@ class Regenerator(object): """ self.testcase_class = testcase_class - def regenerate_glob(self, pattern, is_ip6=False, tc_kwargs_list=None): + def regenerate_glob(self, pattern, protocol="ip4", tc_kwargs_list=None): """Regenerate files matching glob pattern based on arguments. In the current working directory, find all files matching @@ -56,6 +56,12 @@ class Regenerator(object): :type tc_kwargs_list: list of tuple or None """ + protocol_to_min_framesize = { + "ip4": 64, + "ip6": 78, + "vxlan+ip4": 114 + } + def get_suite_id(filename): dash_split = filename.split("-", 1) if len(dash_split[0]) <= 4: @@ -73,8 +79,8 @@ class Regenerator(object): num = add_testcase(file_out, num, **tc_kwargs) print "Regenerator starts at {cwd}".format(cwd=getcwd()) - min_framesize = 78 if is_ip6 else 64 - kwargs_list = tc_kwargs_list if tc_kwargs_list is not None else [ + min_framesize = protocol_to_min_framesize[protocol] + kwargs_list = tc_kwargs_list if tc_kwargs_list else [ {"framesize": min_framesize, "phy_cores": 1}, {"framesize": min_framesize, "phy_cores": 2}, {"framesize": min_framesize, "phy_cores": 4}, diff --git a/resources/libraries/robot/performance/performance_configuration.robot b/resources/libraries/robot/performance/performance_configuration.robot index f5ca1e7705..231004700c 100644 --- a/resources/libraries/robot/performance/performance_configuration.robot +++ b/resources/libraries/robot/performance/performance_configuration.robot @@ -2762,3 +2762,33 @@ | | ... | ${number} | | All Vpp Interfaces Ready Wait | ${nodes} | | Show Memif on all DUTs | ${nodes} + +| Configure ACLs on a single interface +| | [Documentation] +| | ... | Configure ACL +| | ... +| | ... | *Arguments:* +| | ... | - dut - DUT node. Type: string +| | ... | - dut_if - DUT node interface name. Type: string +| | ... | - acl_apply_type - To what path apply the ACL - input or output. +| | ... | - acl_action - Action for the rule - deny, permit, permit+reflect. +| | ... | - subnets - Subnets to apply the specific ACL. Type: list +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Configure ACLs on a single interface \| ${nodes['DUT1']} +| | ... | \| ... \| GigabitEthernet0/7/0 \| input \| permit | 0.0.0.0/0 +| | ... +| | [Arguments] | ${dut} | ${dut_if} | ${acl_apply_type} | ${acl_action} +| | ... | @{subnets} +| | Set Test variable | ${acl} | ${EMPTY} +| | :FOR | ${subnet} | IN | @{subnets} +| | | ${acl} = | Run Keyword If | '${acl}' == '${EMPTY}' +| | | ... | Set Variable | ipv4 ${acl_action} src ${subnet} +| | | ... | ELSE +| | | ... | Catenate | SEPARATOR=, | ${acl} +| | | ... | ipv4 ${acl_action} src ${subnet} +| | Add Replace Acl Multi Entries | ${dut} | rules=${acl} +| | @{acl_list} = | Create List | ${0} +| | Set Acl List For Interface | ${dut} | ${dut_if} | ${acl_apply_type} +| | ... | ${acl_list} diff --git a/resources/libraries/robot/performance/performance_setup.robot b/resources/libraries/robot/performance/performance_setup.robot index a41894c747..e34e842352 100644 --- a/resources/libraries/robot/performance/performance_setup.robot +++ b/resources/libraries/robot/performance/performance_setup.robot @@ -636,6 +636,34 @@ | | Run keyword unless | ${dut2_node}==${None} | | ... | Tear down guest VM with dpdk-testpmd | ${dut2} | ${dut2_vm_refs} +| Tear down mrr test with vhost and VM with dpdk-testpmd +| | [Documentation] | Common test teardown for mrr tests which use +| | ... | vhost(s) and VM(s) with dpdk-testpmd. +| | ... +| | ... | *Arguments:* +| | ... | - dut1_node - Node where to clean qemu. Type: dictionary +| | ... | - dut1_vm_refs - VM references on node. Type: dictionary +| | ... | - dut2_node - Node where to clean qemu. Type: dictionary +| | ... | - dut2_vm_refs - VM references on node. Type: dictionary +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Tear down performance test with vhost and VM with dpdk-testpmd \ +| | ... | \| ${node['DUT1']} \| ${dut_vm_refs} \ +| | ... | \| ${node['DUT2']} \| ${dut_vm_refs} \| +| | ... +| | [Arguments] | ${dut1_node}=${None} | ${dut1_vm_refs}=${None} +| | ... | ${dut2_node}=${None} | ${dut2_vm_refs}=${None} +| | ... +| | Remove All Added Ports On All DUTs From Topology | ${nodes} +| | Show VAT History On All DUTs | ${nodes} +| | Show VPP vhost on all DUTs | ${nodes} +| | Show statistics on all DUTs | ${nodes} +| | Run keyword unless | ${dut1_node}==${None} +| | ... | Tear down guest VM with dpdk-testpmd | ${dut1} | ${dut1_vm_refs} +| | Run keyword unless | ${dut2_node}==${None} +| | ... | Tear down guest VM with dpdk-testpmd | ${dut2} | ${dut2_vm_refs} + | Tear down performance test with vhost and VM with dpdk-testpmd and ACL | | [Documentation] | Common test teardown for performance tests which use | | ... | vhost(s) and VM(s) with ACL and dpdk-testpmd. @@ -661,6 +689,26 @@ | | Run Keyword If Test Failed | Run Keyword And Ignore Error | | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} +| Tear down mrr test with vhost and VM with dpdk-testpmd and ACL +| | [Documentation] | Common test teardown for mrr tests which use +| | ... | vhost(s) and VM(s) with ACL and dpdk-testpmd. +| | ... +| | ... | *Arguments:* +| | ... | - dut1_node - Node where to clean qemu. Type: dictionary +| | ... | - dut1_vm_refs - VM references on node. Type: dictionary +| | ... | - dut2_node - Node where to clean qemu. Type: dictionary +| | ... | - dut2_vm_refs - VM references on node. Type: dictionary +| | ... +| | [Arguments] | ${dut1_node}=${None} | ${dut1_vm_refs}=${None} +| | ... | ${dut2_node}=${None} | ${dut2_vm_refs}=${None} +| | ... +| | Tear down mrr test with vhost and VM with dpdk-testpmd +| | ... | ${dut1_node} | ${dut1_vm_refs} +| | ... | ${dut2_node} | ${dut2_vm_refs} +| | Vpp Log Plugin Acl Settings | ${dut1} +| | Run Keyword If Test Failed | Run Keyword And Ignore Error +| | ... | Vpp Log Plugin Acl Interface Assignment | ${dut1} + | Tear down performance pdrchk test with vhost and VM with dpdk-testpmd | | [Documentation] | Common test teardown for performance pdrchk tests which \ | | ... | use vhost(s) and VM(s) with dpdk-testpmd. -- cgit 1.2.3-korg