From 4fc12a553db78ff2ad293e7a87845b365a53d736 Mon Sep 17 00:00:00 2001 From: Matej Klotton Date: Wed, 2 Mar 2016 13:05:13 +0100 Subject: [PATCH] Move Send and receive L2 traffic KWs to standalone file. Change-Id: I3c919a15d5fdbf91ff493d64b768fb69b8c21b65 Signed-off-by: Matej Klotton --- resources/libraries/robot/bridge_domain.robot | 13 ---------- resources/libraries/robot/l2_traffic.robot | 29 ++++++++++++++++++++++ resources/libraries/robot/l2_xconnect.robot | 17 ------------- resources/traffic_scripts/send_ip_icmp.py | 6 ++--- tests/suites/bridge_domain/test.robot | 17 +++++++------ .../suites/l2_xconnect/l2_xconnect_untagged.robot | 7 +++--- tests/suites/vxlan/vxlan_untagged.robot | 4 +-- 7 files changed, 46 insertions(+), 47 deletions(-) create mode 100644 resources/libraries/robot/l2_traffic.robot diff --git a/resources/libraries/robot/bridge_domain.robot b/resources/libraries/robot/bridge_domain.robot index 99ba375c68..819331f1a7 100644 --- a/resources/libraries/robot/bridge_domain.robot +++ b/resources/libraries/robot/bridge_domain.robot @@ -12,8 +12,6 @@ # limitations under the License. *** Settings *** -| Library | resources.libraries.python.topology.Topology -| Library | resources.libraries.python.TrafficScriptExecutor | Library | resources.libraries.python.L2Util | Library | resources.libraries.python.InterfaceUtil @@ -26,14 +24,3 @@ | | Run Keyword If | ${learn} == ${FALSE} | | ... | Vpp Add L2fib Entry | ${node} | ${mac} | ${if2} | ${1} | | All Vpp Interfaces Ready Wait | ${nodes} - -| Send and receive traffic -| | [Documentation] | Send traffic from source interface to destination interface -| | [Arguments] | ${tg_node} | ${src_int} | ${dst_int} -| | ${src_mac}= | Get Interface Mac | ${tg_node} | ${src_int} -| | ${dst_mac}= | Get Interface Mac | ${tg_node} | ${dst_int} -| | ${src_ip}= | Set Variable | 192.168.100.1 -| | ${dst_ip}= | Set Variable | 192.168.100.2 -| | ${args}= | Traffic Script Gen Arg | ${dst_int} | ${src_int} | ${src_mac} -| | | ... | ${dst_mac} | ${src_ip} | ${dst_ip} -| | Run Traffic Script On Node | send_ip_icmp.py | ${tg_node} | ${args} diff --git a/resources/libraries/robot/l2_traffic.robot b/resources/libraries/robot/l2_traffic.robot new file mode 100644 index 0000000000..2ba53d5821 --- /dev/null +++ b/resources/libraries/robot/l2_traffic.robot @@ -0,0 +1,29 @@ +# Copyright (c) 2016 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 *** +| Documentation | Keywords for send and receive different types of traffic through L2 network. +| Library | resources.libraries.python.topology.Topology +| Library | resources.libraries.python.TrafficScriptExecutor + +*** Keywords *** +| Send and receive ICMPv4 +| | [Documentation] | Send ICMPv4 echo request from source interface to destination interface. +| | [Arguments] | ${tg_node} | ${src_int} | ${dst_int} +| | ${src_mac}= | Get Interface Mac | ${tg_node} | ${src_int} +| | ${dst_mac}= | Get Interface Mac | ${tg_node} | ${dst_int} +| | ${src_ip}= | Set Variable | 192.168.100.1 +| | ${dst_ip}= | Set Variable | 192.168.100.2 +| | ${args}= | Traffic Script Gen Arg | ${dst_int} | ${src_int} | ${src_mac} +| | | ... | ${dst_mac} | ${src_ip} | ${dst_ip} +| | Run Traffic Script On Node | send_ip_icmp.py | ${tg_node} | ${args} diff --git a/resources/libraries/robot/l2_xconnect.robot b/resources/libraries/robot/l2_xconnect.robot index 12601e3683..0983181010 100644 --- a/resources/libraries/robot/l2_xconnect.robot +++ b/resources/libraries/robot/l2_xconnect.robot @@ -12,27 +12,10 @@ # limitations under the License. *** Settings *** - -| Library | resources.libraries.python.VatExecutor | Library | resources.libraries.python.L2Util -| Library | resources.libraries.python.topology.Topology -| Library | resources.libraries.python.TrafficScriptExecutor -| Variables | resources/libraries/python/constants.py *** Keywords *** - | L2 setup xconnect on DUT | | [Documentation] | Setup Bidirectional Cross Connect on DUTs | | [Arguments] | ${node} | ${if1} | ${if2} | | | Vpp Setup Bidirectional Cross Connect | ${node} | ${if1} | ${if2} - -| Send and receive traffic -| | [Documentation] | Send traffic from source interface to destination interface -| | [Arguments] | ${tg_node} | ${src_int} | ${dst_int} -| | ${src_mac}= | Get Interface Mac | ${tg_node} | ${src_int} -| | ${dst_mac}= | Get Interface Mac | ${tg_node} | ${dst_int} -| | ${src_ip}= | Set Variable | 192.168.100.1 -| | ${dst_ip}= | Set Variable | 192.168.100.2 -| | ${args}= | Traffic Script Gen Arg | ${dst_int} | ${src_int} | ${src_mac} -| | | ... | ${dst_mac} | ${src_ip} | ${dst_ip} -| | Run Traffic Script On Node | send_ip_icmp.py | ${tg_node} | ${args} diff --git a/resources/traffic_scripts/send_ip_icmp.py b/resources/traffic_scripts/send_ip_icmp.py index 5e365ebc38..f797bda163 100755 --- a/resources/traffic_scripts/send_ip_icmp.py +++ b/resources/traffic_scripts/send_ip_icmp.py @@ -40,8 +40,8 @@ def main(): # Create empty ip ICMP packet and add padding before sending pkt_raw = Ether(src=src_mac, dst=dst_mac) / \ - IP(src=src_ip, dst=dst_ip) / \ - ICMP() + IP(src=src_ip, dst=dst_ip) / \ + ICMP() # Send created packet on one interface and receive on the other sent_packets.append(pkt_raw) @@ -51,7 +51,7 @@ def main(): # Check whether received packet contains layers Ether, IP and ICMP if ether is None: - raise RuntimeError('ICMPv6 echo reply Rx timeout') + raise RuntimeError('ICMP echo Rx timeout') if not ether.haslayer(IP): raise RuntimeError( diff --git a/tests/suites/bridge_domain/test.robot b/tests/suites/bridge_domain/test.robot index a7f1104224..9695b7fe88 100644 --- a/tests/suites/bridge_domain/test.robot +++ b/tests/suites/bridge_domain/test.robot @@ -10,19 +10,20 @@ # 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/default.robot | Resource | resources/libraries/robot/interfaces.robot | Resource | resources/libraries/robot/bridge_domain.robot -| Force Tags | HW_ENV | VM_ENV +| Resource | resources/libraries/robot/l2_traffic.robot | Library | resources.libraries.python.topology.Topology | Library | resources.libraries.python.NodePath | Variables | resources/libraries/python/topology.py +| Force Tags | HW_ENV | VM_ENV | Suite Setup | Setup all TGs before traffic script | Test Setup | Setup all DUTs before test *** Test Cases *** - | VPP reports interfaces | | VPP reports interfaces on | ${nodes['DUT1']} @@ -35,8 +36,8 @@ | | ${bd_if1} | ${tmp}= | First Ingress Interface | | ${bd_if2} | ${tmp}= | Last Egress Interface | | Vpp l2bd forwarding setup | ${nodes['DUT1']} | ${bd_if1} | ${bd_if2} -| | Send and receive traffic | ${nodes['TG']} | ${tg_if1} | ${tg_if2} -| | Send and receive traffic | ${nodes['TG']} | ${tg_if2} | ${tg_if1} +| | Send and receive ICMPv4 | ${nodes['TG']} | ${tg_if1} | ${tg_if2} +| | Send and receive ICMPv4 | ${nodes['TG']} | ${tg_if2} | ${tg_if1} | Vpp forwards packets via L2 bridge domain in circular topology | | [Tags] | 3_NODE_SINGLE_LINK_TOPO @@ -51,8 +52,8 @@ | | ${tg_if2} | ${tg}= | Next Interface | | Vpp l2bd forwarding setup | ${dut1} | ${dut1_if1} | ${dut1_if2} | | Vpp l2bd forwarding setup | ${dut2} | ${dut2_if1} | ${dut2_if2} -| | Send and receive traffic | ${tg} | ${tg_if1} | ${tg_if2} -| | Send and receive traffic | ${tg} | ${tg_if2} | ${tg_if1} +| | Send and receive ICMPv4 | ${tg} | ${tg_if1} | ${tg_if2} +| | Send and receive ICMPv4 | ${tg} | ${tg_if2} | ${tg_if1} | Vpp forwards packets via L2 bridge domain in circular topology with static L2FIB entries | | [Tags] | 3_NODE_SINGLE_LINK_TOPO @@ -70,5 +71,5 @@ | | ... | ${mac} | | Vpp l2bd forwarding setup | ${dut2} | ${dut2_if1} | ${dut2_if2} | ${FALSE} | | ... | ${mac} -| | Send and receive traffic | ${tg} | ${tg_if1} | ${tg_if2} -| | Send and receive traffic | ${tg} | ${tg_if2} | ${tg_if1} +| | Send and receive ICMPv4 | ${tg} | ${tg_if1} | ${tg_if2} +| | Send and receive ICMPv4 | ${tg} | ${tg_if2} | ${tg_if1} diff --git a/tests/suites/l2_xconnect/l2_xconnect_untagged.robot b/tests/suites/l2_xconnect/l2_xconnect_untagged.robot index 0dd3251aca..cf32bfa076 100644 --- a/tests/suites/l2_xconnect/l2_xconnect_untagged.robot +++ b/tests/suites/l2_xconnect/l2_xconnect_untagged.robot @@ -12,9 +12,9 @@ # limitations under the License. *** Settings *** - | Resource | resources/libraries/robot/default.robot | Resource | resources/libraries/robot/l2_xconnect.robot +| Resource | resources/libraries/robot/l2_traffic.robot | Library | resources.libraries.python.InterfaceUtil | Library | resources.libraries.python.NodePath | Force Tags | 3_NODE_SINGLE_LINK_TOPO | HW_ENV | VM_ENV @@ -23,7 +23,6 @@ *** Test Cases *** - | Vpp forwards packets via L2 xconnect in circular topology | | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} | | Compute Path @@ -36,5 +35,5 @@ | | L2 setup xconnect on DUT | ${dut1} | ${dut1_if1} | ${dut1_if2} | | L2 setup xconnect on DUT | ${dut2} | ${dut2_if1} | ${dut2_if2} | | All Vpp Interfaces Ready Wait | ${nodes} -| | Send and receive traffic | ${tg} | ${tg_if1} | ${tg_if2} -| | Send and receive traffic | ${tg} | ${tg_if2} | ${tg_if1} +| | Send and receive ICMPv4 | ${tg} | ${tg_if1} | ${tg_if2} +| | Send and receive ICMPv4 | ${tg} | ${tg_if2} | ${tg_if1} diff --git a/tests/suites/vxlan/vxlan_untagged.robot b/tests/suites/vxlan/vxlan_untagged.robot index fe4428210d..45d57a902d 100644 --- a/tests/suites/vxlan/vxlan_untagged.robot +++ b/tests/suites/vxlan/vxlan_untagged.robot @@ -14,8 +14,8 @@ *** Settings *** | Documentation | VXLAN tunnel untagged traffic tests | Resource | resources/libraries/robot/default.robot -| Resource | resources/libraries/robot/bridge_domain.robot | Resource | resources/libraries/robot/vxlan.robot +| Resource | resources/libraries/robot/l2_traffic.robot | Force Tags | 3_NODE_SINGLE_LINK_TOPO | EXPECTED_FAILING | Suite Setup | Run Keywords | Setup all DUTs before test | ... | AND | Setup all TGs before traffic script @@ -24,4 +24,4 @@ *** Test Cases *** | VPP can encapsulate L2 in VXLAN over V4 -| | Send and receive traffic | ${nodes['TG']} | ${tgs_to_dut1} | ${tgs_to_dut2} +| | Send and receive ICMPv4 | ${nodes['TG']} | ${tgs_to_dut1} | ${tgs_to_dut2} -- 2.16.6