X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Flibraries%2Frobot%2Fip%2Fnat.robot;h=bff8b27dbf26d6a771ae2ef17e911832ce9518c6;hp=ff3d5bac08ab01403d274069539c4683b0ae76be;hb=1108807740e6c7d0b154ad8bb391bf0f35c550b9;hpb=287ef8c6dc057220e403a1493cb23450dd8db2b2 diff --git a/resources/libraries/robot/ip/nat.robot b/resources/libraries/robot/ip/nat.robot index ff3d5bac08..bff8b27dbf 100644 --- a/resources/libraries/robot/ip/nat.robot +++ b/resources/libraries/robot/ip/nat.robot @@ -1,4 +1,4 @@ -# Copyright (c) 2017 Cisco and/or its affiliates. +# 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: @@ -13,6 +13,7 @@ *** Settings *** | Library | resources.libraries.python.NATUtil +| ... | Documentation | Keywords for NAT feature in VPP. *** Keywords *** @@ -69,3 +70,58 @@ | | [Arguments] | ${node} | | ... | | Show NAT | ${node} + +| Initialize NAT44 in circular topology +| | [Documentation] | Initialization of 2-node / 3-node topology with NAT44 +| | ... | between DUTs: +| | ... | - set interfaces up +| | ... | - set IP addresses +| | ... | - set ARP +| | ... | - create routes +| | ... | - set NAT44 - only on DUT1 +| | ... +| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error +| | ... | Variable Should Exist | ${dut2} +| | ... +| | Set interfaces in path up +| | ... +| | VPP Interface Set IP Address | ${dut1} | ${dut1_if1} | 10.0.0.1 | 20 +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | VPP Interface Set IP Address | ${dut1} | ${dut1_if2} +| | ... | 11.0.0.1 | 20 +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | VPP Interface Set IP Address | ${dut2} | ${dut2_if1} +| | ... | 11.0.0.2 | 20 +| | ${dut}= | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Set Variable | ${dut2} +| | ... | ELSE | Set Variable | ${dut1} +| | ${dut_if2}= | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Set Variable | ${dut2_if2} +| | ... | ELSE | Set Variable | ${dut1_if2} +| | VPP Interface Set IP Address | ${dut} | ${dut_if2} | 12.0.0.1 | 20 +| | ... +| | VPP Add IP Neighbor | ${dut1} | ${dut1_if1} | 10.0.0.2 | ${tg_if1_mac} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | VPP Add IP Neighbor +| | ... | ${dut1} | ${dut1_if2} | 11.0.0.2 | ${dut2_if1_mac} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | VPP Add IP Neighbor +| | ... | ${dut2} | ${dut2_if1} | 11.0.0.1 | ${dut1_if2_mac} +| | VPP Add IP Neighbor | ${dut} | ${dut_if2} | 12.0.0.2 | ${tg_if2_mac} +| | ... +| | Vpp Route Add | ${dut1} | 20.0.0.0 | 18 | gateway=10.0.0.2 +| | ... | interface=${dut1_if1} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Vpp Route Add | ${dut1} | 12.0.0.2 | 32 | gateway=11.0.0.2 +| | ... | interface=${dut1_if2} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Vpp Route Add | ${dut2} | 12.0.0.0 | 24 | gateway=12.0.0.2 +| | ... | interface=${dut2_if2} +| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Vpp Route Add | ${dut2} | 200.0.0.0 | 30 | gateway=11.0.0.1 +| | ... | interface=${dut2_if1} +| | ... +| | Configure inside and outside interfaces +| | ... | ${dut1} | ${dut1_if1} | ${dut1_if2} +| | Configure deterministic mode for NAT44 +| | ... | ${dut1} | 20.0.0.0 | 18 | 200.0.0.0 | 30