X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Flibraries%2Frobot%2Ffeatures%2Fgbp.robot;fp=resources%2Flibraries%2Frobot%2Ffeatures%2Fgbp.robot;h=78f9251180f91a8deec6d3bb7dca54e0c94363b3;hb=97e93cd29f1a9c01b139e2d7fcc745d37d4bd944;hp=0000000000000000000000000000000000000000;hpb=11aa6d6cd19b10d43011f1f55362d158aa488888;p=csit.git diff --git a/resources/libraries/robot/features/gbp.robot b/resources/libraries/robot/features/gbp.robot new file mode 100644 index 0000000000..78f9251180 --- /dev/null +++ b/resources/libraries/robot/features/gbp.robot @@ -0,0 +1,99 @@ +# Copyright (c) 2019 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.GBP +| ... +| Documentation | GBP keywords + +*** Keywords *** +| Initialize GBP routing domains on node +| | [Documentation] +| | ... | Initialize GBP routing domains on node. +| | ... +| | ... | *Arguments:* +| | ... | - dut - DUT node. Type: string +| | ... | - count - Number of baseline interface variables. Type: integer +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Initialize GBP routing domains on node \| DUT1 \| 1 \| +| | ... +| | [Arguments] | ${dut} | ${count}=${1} +| | ... +| | ${dut_str}= | Convert To Lowercase | ${dut} +| | :FOR | ${id} | IN RANGE | 1 | ${count} + 1 +| | | ${hexa_id}= | Convert To Hex | ${id} | length=2 | lowercase=yes +| | | ${dut_lo}= | VPP Create Loopback | ${nodes['${dut}']} +| | | ... | mac=ba:dc:00:ff:ee:${hexa_id} +| | | Set Interface State +| | | ... | ${nodes['${dut}']} | ${dut_lo} | up +| | | Add Fib Table +| | | ... | ${nodes['${dut}']} | ${id} +| | | GBP Route Domain Add +| | | ... | ${nodes['${dut}']} | rd_id=${id} +| | | Assign Interface To Fib Table +| | | ... | ${nodes['${dut}']} | ${dut_lo} | ${id} +| | | Create L2 BD +| | | ... | ${nodes['${dut}']} | ${id} | arp_term=${1} +| | | GBP Bridge Domain Add +| | | ... | ${nodes['${dut}']} | ${dut_lo} | bd_id=${id} +| | | GBP Endpoint Group Add +| | | ... | ${nodes['${dut}']} | ${100} | bd_id=${id} | rd_id=${id} +| | | Configure IP addresses on interfaces +| | | ... | ${nodes['${dut}']} | ${dut_lo} | 1.1.1.1 | 24 +| | | GBP Subnet Add Del +| | | ... | ${nodes['${dut}']} | 1.1.1.0 | 24 | ${100} | rd_id=${id} +| | | GBP Ext Itf Add Del +| | | ... | ${nodes['${dut}']} | ${dut_lo} | bd_id=${id} | rd_id=${id} +| | | GBP Endpoint Add +| | | ... | ${nodes['${dut}']} | ${${dut_str}_${prev_layer}_${id}_1} | 1.1.1.100 +| | | ... | ${tg_if1_mac} | ${100} +| | | GBP Endpoint Add +| | | ... | ${nodes['${dut}']} | ${${dut_str}_${prev_layer}_${id}_2} | 1.1.1.200 +| | | ... | ${tg_if2_mac} | ${100} +| | | VPP Route Add +| | | ... | ${nodes['${dut}']} | 10.10.10.0 | 24 | gateway=1.1.1.100 +| | | ... | interface=${dut_lo} | vrf=${1} +| | | VPP Route Add +| | | ... | ${nodes['${dut}']} | 20.20.20.0 | 24 | gateway=1.1.1.200 +| | | ... | interface=${dut_lo} | vrf=${1} +| | | GBP Subnet Add Del +| | | ... | ${nodes['${dut}']} | 10.10.10.0 | 24 | ${200} | rd_id=${id} +| | | GBP Subnet Add Del +| | | ... | ${nodes['${dut}']} | 20.20.20.0 | 24 | ${300} | rd_id=${id} +| | | Add Replace Acl Multi Entries +| | | ... | ${nodes['${dut}']} +| | | ... | rules="ipv4 permit src 0.0.0.0/0 dst 0.0.0.0/0 proto 61" +| | | ... | tag="gbp-permit-200-300" +| | | GBP Contract Add Del +| | | ... | ${nodes['${dut}']} | ${200} | ${300} | acl_index=${0} +| | | GBP Contract Add Del +| | | ... | ${nodes['${dut}']} | ${300} | ${200} | acl_index=${0} + +| Initialize GBP routing domains +| | [Documentation] +| | ... | Initialize GBP routing domains on all DUTs. +| | ... +| | ... | *Arguments:* +| | ... | - count - Number of GBP routing domains. Type: integer +| | ... +| | ... | *Example:* +| | ... +| | ... | \| Initialize GBP routing domains \| 1 \| +| | ... +| | [Arguments] | ${count}=${1} +| | ... +| | :FOR | ${dut} | IN | @{duts} +| | | Initialize GBP routing domains on node | ${dut} | count=${count} +| | Set interfaces in path up