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=fefc0fe7394b37b796939b65c021e568d9a184ef;hb=1108807740e6c7d0b154ad8bb391bf0f35c550b9;hpb=2bdb1dc59ba736546a6663cbaf55b6edbcac6eab diff --git a/resources/libraries/robot/ip/nat.robot b/resources/libraries/robot/ip/nat.robot index fefc0fe739..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 *** @@ -56,22 +57,6 @@ | | Set NAT44 deterministic | ${node} | ${ip_in} | ${subnet_in} | ${ip_out} | | ... | ${subnet_out} -| Configure workers for NAT -| | [Documentation] | Configure workers for NAT. -| | ... -| | ... | *Arguments:* -| | ... | - node - DUT node to set NAT workers on. Type: dictionary -| | ... | - lcores - list of cores, format: range e.g. 1-5 or list of ranges \ -| | ... | e.g.: 1-5,18-22. Type: string -| | ... -| | ... | *Example:* -| | ... -| | ... | \| Configure workers for NAT \| ${nodes['DUT1']} \| 12-23,36-47 \| -| | ... -| | [Arguments] | ${node} | ${lcores} -| | ... -| | Set NAT workers | ${node} | ${lcores} - | Show NAT verbose | | [Documentation] | Get the NAT settings on the node. | | ... @@ -86,64 +71,57 @@ | | ... | | Show NAT | ${node} -| Get NAT44 deterministic forward -| | [Documentation] | Show forward IP address and port(s). -| | ... -| | ... | *Arguments:* -| | ... | - node - DUT node to get NAT44 deterministic forward on. -| | ... | Type: dictionary -| | ... | - ip - IP address. Type: string -| | ... -| | ... | *Example:* -| | ... -| | ... | \| Get NAT44 deterministic forward \| ${nodes['DUT1']} \| 10.0.0.2 \| -| | ... -| | [Arguments] | ${node} | ${ip} -| | ... -| | Show NAT44 deterministic forward | ${node} | ${ip} - -| Get NAT44 deterministic reverse -| | [Documentation] | Show reverse IP address. -| | ... -| | ... | *Arguments:* -| | ... | - node - DUT node to get NAT44 deterministic reverse on. -| | ... | Type: dictionary -| | ... | - ip - IP address. Type: string -| | ... | - port - Port. Type: string or integer -| | ... -| | ... | *Example:* -| | ... -| | ... | \| Get NAT44 deterministic reverse \| ${nodes['DUT1']} \| 10.0.0.2 \ -| | ... | \| 1025 \| -| | ... -| | [Arguments] | ${node} | ${ip} | ${port} -| | ... -| | Show NAT44 deterministic reverse | ${node} | ${ip} | ${port} - -| Get NAT interfaces -| | [Documentation] | Get list of interfaces configured with NAT from VPP node. -| | ... -| | ... | *Arguments:* -| | ... | - node - DUT node to get NAT interfaces on. Type: dictionary -| | ... -| | ... | *Example:* -| | ... -| | ... | \| Get NAT interfaces \| ${nodes['DUT1']} \| -| | ... -| | [Arguments] | ${node} -| | ... -| | Get NAT interfaces | ${node} - -| Get NAT static mappings -| | [Documentation] | Get NAT static mappings from VPP node. -| | ... -| | ... | *Arguments:* -| | ... | - node - DUT node to get NAT static mappings on. Type: dictionary -| | ... -| | ... | *Example:* -| | ... -| | ... | \| Get NAT static mappings \| ${nodes['DUT1']} \| -| | ... -| | [Arguments] | ${node} -| | ... -| | Get NAT static mappings | ${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