aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/robot/nsh_sfc/default.robot
diff options
context:
space:
mode:
authorFangyin Hu <fangyinx.hu@intel.com>2017-04-11 00:31:33 -0700
committerTibor Frank <tifrank@cisco.com>2017-06-09 06:59:11 +0000
commit5ce772f3b2d83c31eda5c2abdcd6cc4547ecc6c8 (patch)
tree746b1f0ad5be956e3627fd8af85a69ff31e47b34 /resources/libraries/robot/nsh_sfc/default.robot
parent1e59ee6e39f0604be721ac8ebdb36be14b738bd8 (diff)
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 <fangyinx.hu@intel.com>
Diffstat (limited to 'resources/libraries/robot/nsh_sfc/default.robot')
-rw-r--r--resources/libraries/robot/nsh_sfc/default.robot67
1 files changed, 67 insertions, 0 deletions
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}