Clean: Various libraries
[csit.git] / resources / libraries / robot / ip / nat.robot
index fefc0fe..bff8b27 100644 (file)
@@ -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 ***
 | | 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.
 | | ...
 | | ...
 | | 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