diff options
Diffstat (limited to 'resources/libraries/robot')
-rw-r--r-- | resources/libraries/robot/vxlan.robot | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/resources/libraries/robot/vxlan.robot b/resources/libraries/robot/vxlan.robot new file mode 100644 index 0000000000..e38c678d2b --- /dev/null +++ b/resources/libraries/robot/vxlan.robot @@ -0,0 +1,68 @@ +# 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 *** +| Library | Collections +| Resource | resources/libraries/robot/default.robot +| Resource | resources/libraries/robot/bridge_domain.robot +| Library | resources.libraries.python.L2Util +| Library | resources.libraries.python.IPUtil +| Library | resources.libraries.python.IPv4Util +| Library | resources.libraries.python.IPv4Setup +| Library | resources.libraries.python.InterfaceSetup +| Library | resources.libraries.python.InterfaceUtil +| Library | resources.libraries.python.topology.Topology +| Library | resources.libraries.python.NodePath + + +*** Keywords *** +| Setup VXLAN tunnel on nodes +| | [Arguments] | ${TG} | ${DUT1} | ${DUT2} | ${VNI} +| | Append Nodes | ${TG} | ${DUT1} | ${DUT2} | ${TG} +| | Compute Path +| | ${tgs_to_dut1} | ${tg}= | Next Interface +| | ${dut1s_to_tg} | ${dut1}= | Next Interface +| | ${dut1s_to_dut2} | ${dut1}= | Next Interface +| | ${dut2s_to_dut1} | ${dut2}= | Next Interface +| | ${dut2s_to_tg} | ${dut2}= | Next Interface +| | ${tgs_to_dut2} | ${tg}= | Next Interface +| | Set Suite Variable | ${tgs_to_dut1} +| | Set Suite Variable | ${dut1s_to_tg} +| | Set Suite Variable | ${tgs_to_dut2} +| | Set Suite Variable | ${dut2s_to_tg} +| | Set Suite Variable | ${dut1s_to_dut2} +| | Set Suite Variable | ${dut2s_to_dut1} +# TODO: replace with address generator +| | Set Suite Variable | ${dut1s_ip_address} | 172.16.0.1 +| | Set Suite Variable | ${dut2s_ip_address} | 172.16.0.2 +| | Set Suite Variable | ${duts_ip_address_prefix} | 24 +| | Set Interface State | ${TG} | ${tgs_to_dut1} | up +| | Set Interface State | ${TG} | ${tgs_to_dut2} | up +| | Setup DUT for VXLAN | ${DUT1} | ${VNI} | ${dut1s_ip_address} | ${dut2s_ip_address} +| | ... | ${dut1s_to_tg} | ${dut1s_to_dut2} | ${dut1s_ip_address} | ${duts_ip_address_prefix} +| | Setup DUT for VXLAN | ${DUT2} | ${VNI} | ${dut2s_ip_address} | ${dut1s_ip_address} +| | ... | ${dut2s_to_tg} | ${dut2s_to_dut1} | ${dut2s_ip_address} | ${duts_ip_address_prefix} +| | @{test_nodes}= | Create list | ${DUT1} | ${DUT2} +| | Vpp Nodes Interfaces Ready Wait | ${test_nodes} +# ip arp table must be filled on both nodes with neighbors address +| | VPP IP Probe | ${DUT1} | ${dut1s_to_dut2} | ${dut2s_ip_address} + +| Setup DUT for VXLAN +| | [Arguments] | ${DUT} | ${VNI} | ${SRC_IP} | ${DST_IP} | ${INGRESS} | ${EGRESS} | ${IP} | ${PREFIX} +| | Set Interface State | ${DUT} | ${EGRESS} | up +| | Set Interface State | ${DUT} | ${INGRESS} | up +| | Node "${DUT}" interface "${EGRESS}" has IPv4 address "${IP}" with prefix length "${PREFIX}" +| | ${vxlan_if_index}= | Create VXLAN interface on "${DUT}" with VNI "${VNI}" from "${SRC_IP}" to "${DST_IP}" +| | Create L2 BD | ${DUT} | ${VNI} +| | Add sw if index To L2 BD | ${DUT} | ${vxlan_if_index} | ${VNI} +| | Add Interface To L2 BD | ${DUT} | ${INGRESS} | ${VNI} |