diff options
Diffstat (limited to 'resources/libraries/robot/ip')
-rw-r--r-- | resources/libraries/robot/ip/ip4.robot | 13 | ||||
-rw-r--r-- | resources/libraries/robot/ip/nat.robot | 127 |
2 files changed, 69 insertions, 71 deletions
diff --git a/resources/libraries/robot/ip/ip4.robot b/resources/libraries/robot/ip/ip4.robot index 2dc2a72857..9855e129a4 100644 --- a/resources/libraries/robot/ip/ip4.robot +++ b/resources/libraries/robot/ip/ip4.robot @@ -32,13 +32,16 @@ | | ... | Type: string | | ... | - remote_host2_ip - IP address of remote host2 (Optional). | | ... | Type: string +| | ... | - remote_host_mask - Mask of remote host IP addresses (Optional). +| | ... | Type: string | | | | ... | *Example:* | | | | ... | \| Initialize IPv4 forwarding in circular topology \ -| | ... | \| 192.168.0.1 \| 192.168.0.2 \| +| | ... | \| 192.168.0.1 \| 192.168.0.2 \| 24 \| | | | | [Arguments] | ${remote_host1_ip}=${NONE} | ${remote_host2_ip}=${NONE} +| | ... | ${remote_host_mask}=32 | | | | ${dut2_status} | ${value}= | Run Keyword And Ignore Error | | ... | Variable Should Exist | ${dut2} @@ -81,18 +84,18 @@ | | ... | interface=${DUT2_${int}1}[0] | | | | Run Keyword Unless | '${remote_host1_ip}' == '${NONE}' -| | ... | Vpp Route Add | ${dut1} | ${remote_host1_ip} | 24 +| | ... | Vpp Route Add | ${dut1} | ${remote_host1_ip} | ${remote_host_mask} | | ... | gateway=10.10.10.2 | interface=${DUT1_${int}1}[0] | | Run Keyword Unless | '${remote_host2_ip}' == '${NONE}' -| | ... | Vpp Route Add | ${dut} | ${remote_host2_ip} | 24 +| | ... | Vpp Route Add | ${dut} | ${remote_host2_ip} | ${remote_host_mask} | | ... | gateway=20.20.20.2 | interface=${dut_if2} | | Run Keyword Unless | '${remote_host1_ip}' == '${NONE}' | | ... | Run Keyword If | '${dut2_status}' == 'PASS' -| | ... | Vpp Route Add | ${dut1} | ${remote_host1_ip} | 24 +| | ... | Vpp Route Add | ${dut1} | ${remote_host1_ip} | ${remote_host_mask} | | ... | gateway=1.1.1.2 | interface=${DUT1_${int}2}[0] | | Run Keyword Unless | '${remote_host2_ip}' == '${NONE}' | | ... | Run Keyword If | '${dut2_status}' == 'PASS' -| | ... | Vpp Route Add | ${dut2} | ${remote_host2_ip} | 24 +| | ... | Vpp Route Add | ${dut2} | ${remote_host2_ip} | ${remote_host_mask} | | ... | gateway=1.1.1.1 | interface=${DUT2_${int}1}[0] | Initialize IPv4 forwarding with scaling in circular topology diff --git a/resources/libraries/robot/ip/nat.robot b/resources/libraries/robot/ip/nat.robot index e1c302e98a..8a970cf556 100644 --- a/resources/libraries/robot/ip/nat.robot +++ b/resources/libraries/robot/ip/nat.robot @@ -72,86 +72,81 @@ | | | | Show NAT | ${node} -| Initialize NAT44 in circular topology -| | [Documentation] | Initialization of 2-node / 3-node topology with NAT44 -| | ... | between DUTs: +| Initialize NAT44 deterministic mode in circular topology +| | [Documentation] | Initialization of NAT44 deterministic mode on DUT1 +| | +| | Configure inside and outside interfaces +| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${DUT1_${int}2}[0] +| | Configure deterministic mode for NAT44 +| | ... | ${dut1} | ${in_net} | ${in_mask} | ${out_net} | ${out_mask} + +| Initialize NAT44 endpoint-dependent mode in circular topology +| | [Documentation] | Initialization of NAT44 endpoint-dependent mode on DUT1 +| | +| | Configure inside and outside interfaces +| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${DUT1_${int}2}[0] +| | Set NAT44 Address Range +| | ... | ${dut1} | ${out_net} | ${out_net_end} + +# TODO: Remove when 'ip4.Initialize IPv4 forwarding in circular topology' KW +# adapted to use IP values from variables +| Initialize IPv4 forwarding for NAT44 in circular topology +| | [Documentation] +| | ... | Set IPv4 forwarding for NAT44: | | ... | - set interfaces up | | ... | - set IP addresses | | ... | - set ARP | | ... | - create routes -| | ... | - set NAT44 - only on DUT1 | | -| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error +| | ${status} | ${value}= | Run Keyword And Ignore Error | | ... | Variable Should Exist | ${dut2} +| | ${dut2_status}= | Set Variable If | '${status}' == 'PASS' | ${True} +| | ... | ${False} | | | | Set interfaces in path up | | -| | ${tg_if1_ip4}= | Get Variable Value | ${tg_if1_ip4} | 10.0.0.2 -| | ${tg_if1_mask}= | Get Variable Value | ${tg_if1_mask} | 20 -| | ${tg_if2_ip4}= | Get Variable Value | ${tg_if2_ip4} | 12.0.0.2 -| | ${tg_if2_mask}= | Get Variable Value | ${tg_if2_mask} | 20 -| | ${dut1_if1_ip4}= | Get Variable Value | ${dut1_if1_ip4} | 10.0.0.1 -| | ${dut1_if1_mask}= | Get Variable Value | ${dut1_if1_mask} | 20 -| | ${dut1_if2_ip4}= | Get Variable Value | ${dut1_if2_ip4} | 11.0.0.1 -| | ${dut1_if2_mask}= | Get Variable Value | ${dut2_if2_mask} | 20 -| | ${dut2_if1_ip4}= | Get Variable Value | ${dut2_if1_ip4} | 11.0.0.2 -| | ${dut2_if1_mask}= | Get Variable Value | ${dut2_if1_mask} | 20 -| | ${dut2_if2_ip4}= | Get Variable Value | ${dut2_if2_ip4} | 12.0.0.1 -| | ${dut2_if2_mask}= | Get Variable Value | ${dut2_if2_mask} | 20 -| | ${inside_net}= | Get Variable Value | ${inside_net} | 192.168.0.0 -| | ${inside_mask}= | Get Variable Value | ${inside_mask} | 16 -| | ${nat_net}= | Get Variable Value | ${nat_net} | 109.146.163.128 -| | ${nat_mask}= | Get Variable Value | ${nat_mask} | 26 -| | ${dest_net}= | Get Variable Value | ${dest_net} | 20.0.0.0 -| | ${dest_mask}= | Get Variable Value | ${dest_mask} | 24 -| | -| | VPP Interface Set IP Address | ${dut1} | ${DUT1_${int}1}[0] -| | ... | ${dut1_if1_ip4} | ${dut1_if1_mask} -| | Run Keyword If | '${dut2_status}' == 'PASS' -| | ... | VPP Interface Set IP Address | ${dut1} | ${DUT1_${int}2}[0] -| | ... | ${dut1_if2_ip4} | ${dut1_if2_mask} -| | Run Keyword If | '${dut2_status}' == 'PASS' -| | ... | VPP Interface Set IP Address | ${dut2} | ${DUT2_${int}1}[0] -| | ... | ${dut2_if1_ip4} | ${dut2_if1_mask} -| | ${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_${int}2}[0] -| | ... | ELSE | Set Variable | ${DUT1_${int}2}[0] -| | VPP Interface Set IP Address | ${dut} | ${dut_if2} | ${dut2_if2_ip4} -| | ... | ${dut2_if2_mask} +| | VPP Interface Set IP Address +| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${dut1_if1_ip4} | ${dut1_if1_mask} +| | VPP Interface Set IP Address +| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut1_if2_ip4} | ${dut1_if2_mask} +| | Run Keyword If | ${dut2_status} +| | ... | VPP Interface Set IP Address +| | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut2_if1_ip4} | ${dut2_if1_mask} +| | Run Keyword If | ${dut2_status} +| | ... | VPP Interface Set IP Address +| | ... | ${dut2} | ${DUT2_${int}2}[0] | ${dut2_if2_ip4} | ${dut2_if2_mask} | | | | VPP Add IP Neighbor | | ... | ${dut1} | ${DUT1_${int}1}[0] | ${tg_if1_ip4} | ${TG_pf1_mac}[0] -| | Run Keyword If | '${dut2_status}' == 'PASS' +| | Run Keyword If | ${dut2_status} | | ... | VPP Add IP Neighbor | | ... | ${dut1} | ${DUT1_${int}2}[0] | ${dut2_if1_ip4} | | ... | ${DUT2_${int}1_mac}[0] -| | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | ELSE | VPP Add IP Neighbor +| | ... | ${dut1} | ${DUT1_${int}2}[0] | ${tg_if2_ip4} | ${TG_pf2_mac}[0] +| | Run Keyword If | ${dut2_status} | | ... | VPP Add IP Neighbor -| | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut1_if2_ip4} +| | ... | ${dut2} | ${DUT2_${int}1}[0] | ${dut1_if1_ip4} | | ... | ${DUT1_${int}2_mac}[0] -| | VPP Add IP Neighbor -| | ... | ${dut} | ${dut_if2} | ${tg_if2_ip4} | ${TG_pf2_mac}[0] -| | -| | Vpp Route Add | ${dut1} | ${inside_net} | ${inside_mask} -| | ... | gateway=${tg_if1_ip4} | interface=${DUT1_${int}1}[0] -| | Run Keyword If | '${dut2_status}' == 'PASS' -| | ... | Vpp Route Add | ${dut1} | ${dest_net} | ${dest_mask} -| | ... | gateway=${dut2_if1_ip4} | interface=${DUT1_${int}2}[0] -| | Run Keyword Unless | '${dut2_status}' == 'PASS' -| | ... | Vpp Route Add | ${dut1} | ${dest_net} | ${dest_mask} -| | ... | gateway=${tg_if2_ip4} | interface=${DUT1_${int}2}[0] -| | Run Keyword If | '${dut2_status}' == 'PASS' -| | ... | Vpp Route Add | ${dut2} | ${dest_net} | ${dest_mask} -| | ... | gateway=${tg_if2_ip4} | interface=${DUT2_${int}2}[0] -| | Run Keyword If | '${dut2_status}' == 'PASS' -| | ... | Vpp Route Add | ${dut2} | ${nat_net} | ${nat_mask} -| | ... | gateway=${dut1_if2_ip4} | interface=${DUT2_${int}1}[0] -| | -| | Configure inside and outside interfaces -| | ... | ${dut1} | ${DUT1_${int}1}[0] | ${DUT1_${int}2}[0] -| | Configure deterministic mode for NAT44 -| | ... | ${dut1} | ${inside_net} | ${inside_mask} | ${nat_net} | ${nat_mask} - +| | Run Keyword If | ${dut2_status} +| | ... | VPP Add IP Neighbor +| | ... | ${dut2} | ${DUT2_${int}2}[0] | ${tg_if2_ip4}| ${TG_pf2_mac}[0] +| | +| | Vpp Route Add +| | ... | ${dut1} | ${in_net} | ${in_mask} | gateway=${tg_if1_ip4} +| | ... | interface=${DUT1_${int}1}[0] +| | Run Keyword If | ${dut2_status} +| | ... | Vpp Route Add +| | ... | ${dut1} | ${dest_net} | ${dest_mask} | gateway=${dut2_if1_ip4} +| | ... | interface=${DUT1_${int}2}[0] +| | ... | ELSE | Vpp Route Add +| | ... | ${dut1} | ${dest_net} | ${dest_mask} | gateway=${tg_if2_ip4} +| | ... | interface=${DUT1_${int}2}[0] +| | Run Keyword If | ${dut2_status} +| | ... | Vpp Route Add +| | ... | ${dut2} | ${dest_net} | ${dest_mask} | gateway=${tg_if2_ip4} +| | ... | interface=${DUT2_${int}2}[0] +| | Run Keyword If | ${dut2_status} +| | ... | Vpp Route Add +| | ... | ${dut2} | ${out_net} | ${out_mask} | gateway=${dut1_if2_ip4} +| | ... | interface=${DUT2_${int}1}[0] |