From ac6cc22910ea0d3bda42c227d799f2d4e89bc9d0 Mon Sep 17 00:00:00 2001 From: Peter Mikus Date: Tue, 17 Jul 2018 10:14:44 +0000 Subject: CSIT-1201 Create L2patch perf tests - XL710, XXV710, X710 - 2n, 3n - all pkt.size groups - ndrpdr, mrr Change-Id: Ibb36d734cd70a0a4d07e3d177fa2477bf9bfaacd Signed-off-by: Peter Mikus --- resources/libraries/python/L2Util.py | 30 ++++++++++++++++++++++ resources/libraries/robot/l2/l2_patch.robot | 24 +++++++++++++++++ .../performance/performance_configuration.robot | 11 ++++++++ 3 files changed, 65 insertions(+) create mode 100644 resources/libraries/robot/l2/l2_patch.robot (limited to 'resources/libraries') diff --git a/resources/libraries/python/L2Util.py b/resources/libraries/python/L2Util.py index 53c3b99c83..2acb6dba34 100644 --- a/resources/libraries/python/L2Util.py +++ b/resources/libraries/python/L2Util.py @@ -216,6 +216,36 @@ class L2Util(object): interface1=sw_iface2, interface2=sw_iface1) + @staticmethod + def vpp_setup_bidirectional_l2_patch(node, interface1, interface2): + """Create bidirectional l2 patch between 2 interfaces on vpp node. + + :param node: Node to add bidirectional l2 patch. + :param interface1: First interface name or sw_if_index. + :param interface2: Second interface name or sw_if_index. + :type node: dict + :type interface1: str or int + :type interface2: str or int + """ + + if isinstance(interface1, basestring): + sw_iface1 = Topology().get_interface_sw_index(node, interface1) + else: + sw_iface1 = interface1 + + if isinstance(interface2, basestring): + sw_iface2 = Topology().get_interface_sw_index(node, interface2) + else: + sw_iface2 = interface2 + + with VatTerminal(node) as vat: + vat.vat_terminal_exec_cmd_from_template('l2_patch.vat', + interface1=sw_iface1, + interface2=sw_iface2) + vat.vat_terminal_exec_cmd_from_template('l2_patch.vat', + interface1=sw_iface2, + interface2=sw_iface1) + @staticmethod def linux_add_bridge(node, br_name, if_1, if_2, set_up=True): """Bridge two interfaces on linux node. diff --git a/resources/libraries/robot/l2/l2_patch.robot b/resources/libraries/robot/l2/l2_patch.robot new file mode 100644 index 0000000000..f59f924e28 --- /dev/null +++ b/resources/libraries/robot/l2/l2_patch.robot @@ -0,0 +1,24 @@ +# Copyright (c) 2018 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +*** Settings *** +| Library | resources.libraries.python.L2Util +| Library | resources.libraries.python.InterfaceUtil + +*** Keywords *** +| Configure L2 patch +| | [Documentation] | Setup Bidirectional L2 patch on DUT +| | [Arguments] | ${node} | ${if1} | ${if2} | +| | Set Interface State | ${node} | ${if1} | up +| | Set Interface State | ${node} | ${if2} | up +| | Vpp Setup Bidirectional L2 patch | ${node} | ${if1} | ${if2} diff --git a/resources/libraries/robot/performance/performance_configuration.robot b/resources/libraries/robot/performance/performance_configuration.robot index d2e18ea42c..cd6f4028a4 100644 --- a/resources/libraries/robot/performance/performance_configuration.robot +++ b/resources/libraries/robot/performance/performance_configuration.robot @@ -29,6 +29,7 @@ | Resource | resources/libraries/robot/shared/counters.robot | Resource | resources/libraries/robot/l2/l2_bridge_domain.robot | Resource | resources/libraries/robot/l2/l2_xconnect.robot +| Resource | resources/libraries/robot/l2/l2_patch.robot | Resource | resources/libraries/robot/ip/ip4.robot | Resource | resources/libraries/robot/ip/ip6.robot | Resource | resources/libraries/robot/vm/qemu.robot @@ -805,6 +806,16 @@ | | ... | ELSE | Fail | Unsupported behaviour: ${behavior} | | All Vpp Interfaces Ready Wait | ${nodes} +| Initialize L2 patch +| | [Documentation] +| | ... | Setup L2 patch topology by cross connecting two interfaces on +| | ... | each DUT. Interfaces are brought up. +| | ... +| | ${duts}= | Get Matches | ${nodes} | DUT* +| | :FOR | ${dut} | IN | @{duts} +| | | Configure L2patch | ${nodes['${dut}']} | ${${dut}_if1} | ${${dut}_if2} +| | All Vpp Interfaces Ready Wait | ${nodes} + | Initialize L2 xconnect in 2-node circular topology | | [Documentation] | | ... | Setup L2 xconnect topology by cross connecting two interfaces on -- cgit 1.2.3-korg