From 5ce772f3b2d83c31eda5c2abdcd6cc4547ecc6c8 Mon Sep 17 00:00:00 2001 From: Fangyin Hu Date: Tue, 11 Apr 2017 00:31:33 -0700 Subject: Add the NSH SFC functional test cases. 1. Proxy Inbound test with 152/256/512/1024/1280/1518 Bytes VxLAN-GPE + NSH packet 2. Proxy Outbound test with 128/256/512/1024/1280/1518 Bytes VxLAN packet 3. SFC SFF test with 152/256/512/1024/1280/1518 Bytes VxLAN-GPE + NSH packet Separate the functional test bootstrap file to another code review. Change-Id: I05cf6ab1d01c1b41c1c61044d6d31fd6219b86af Signed-off-by: Fangyin Hu --- resources/libraries/robot/nsh_sfc/default.robot | 67 +++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 resources/libraries/robot/nsh_sfc/default.robot (limited to 'resources/libraries/robot') diff --git a/resources/libraries/robot/nsh_sfc/default.robot b/resources/libraries/robot/nsh_sfc/default.robot new file mode 100644 index 0000000000..fc70523cdd --- /dev/null +++ b/resources/libraries/robot/nsh_sfc/default.robot @@ -0,0 +1,67 @@ +# 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 *** +| Variables | resources/libraries/python/topology.py +| Library | resources.libraries.python.topology.Topology +| Library | resources.libraries.python.InterfaceUtil +| Library | resources.libraries.python.SFC.SFCTest +| Library | Collections + +*** Keywords *** +| Setup DUT nodes for '${type}' functional testing +| | [Documentation] | Configure and Start the SFC functional test +| | ... | on the DUT node. +| | ${testtype}= | Convert to String | ${type} +| | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} +| | Compute Path +| | ${src_port} | ${src_node}= | First Interface +| | ${dst_port} | ${dst_node}= | Last Interface +| | Set Suite Variable | ${src_node} +| | Set Suite Variable | ${src_port} +| | Set Suite Variable | ${dst_node} +| | Set Suite Variable | ${dst_port} +| | Set Interface State | ${src_node} | ${src_port} | 'up' +| | Set Interface Ethernet MTU | ${src_node} | ${src_port} | 9000 +| | ${adj_mac}= | Get interface mac | ${src_node} | ${src_port} +| | Config and Start SFC test | ${dst_node} | ${dst_port} +| | ... | ${adj_mac} | ${testtype} + +| Node "${from_node}" interface "${from_port}" send "${size}" Bytes packet to node "${to_node}" interface "${to_port}" for "${type}" test +| | [Documentation] | At the first start the tcpdump on the TG node, +| | ... | then build the packet with the scapy and send the packet to the +| | ... | DUT node, DUT node will receive the packet on the ingress interface +| | ... | DUT will loopback packet to the TG after processed. TG will use +| | ... | the tcpdump to capture the packet and check the packet is correct. +| | ${filter_dst_ip}= | Set Variable | 192.168.50.71 +| | Start the tcpdump on the Node | ${from_node} | ${from_port} | ${filter_dst_ip} +| | ${src_ip}= | Set Variable If | "${type}" == "Classifier" | 10.10.12.101 | 192.168.50.72 +| | ${dst_ip}= | Set Variable If | "${type}" == "Classifier" | 10.10.12.100 | 192.168.50.76 +| | ${src_mac}= | Get interface mac | ${from_node} | ${from_port} +| | ${dst_mac}= | Get interface mac | ${to_node} | ${to_port} +| | ${from_port_name}= | Get interface name | ${from_node} | ${from_port} +| | ${to_port_name}= | Get interface name | ${to_node} | ${to_port} +| | ${timeout}= | Set Variable | 10 +| | ${frame_size}= | Convert To Integer | ${size} +| | ${args}= | Traffic Script Gen Arg | ${from_port_name} | ${from_port_name} +| | | ... | ${src_mac} | ${dst_mac} | ${src_ip} | ${dst_ip} +| | ${args}= | Catenate | ${args} | --framesize ${frame_size} +| | | ... | --timeout ${timeout} | --testtype "${type}" +| | Run Keyword If | "${type}" == "Classifier" | Run Traffic Script On Node +| | | | | ... | send_tcp_for_classifier_test.py | ${from_node} | ${args} +| | ... | ELSE IF | "${type}" == "Proxy Inbound" | Run Traffic Script On Node +| | | | | ... | send_vxlangpe_nsh_for_proxy_test.py | ${from_node} | ${args} +| | ... | ELSE IF | "${type}" == "Proxy Outbound" | Run Traffic Script On Node +| | | | | ... | send_vxlan_for_proxy_test.py | ${from_node} | ${args} +| | ... | ELSE | Run Traffic Script On Node | send_vxlangpe_nsh_for_sff_test.py +| | | | | ... | ${from_node} | ${args} -- cgit 1.2.3-korg