diff options
author | Tibor Frank <tifrank@cisco.com> | 2017-06-08 14:45:26 +0200 |
---|---|---|
committer | Tibor Frank <tifrank@cisco.com> | 2017-06-13 09:00:09 +0200 |
commit | 53d69321e41aa6fd94abc16c7050314dc2e53f08 (patch) | |
tree | 21977de9cc93e53eb2625224262e583a3476bc91 /tests/func | |
parent | 5f6802ba1d16005e7562f0eace81512dddab6762 (diff) |
CSIT-664: Refactor setups and teardowns
- Add suite setup for performance IPSec tests
- Add test teardown for performance SNAT tests
- Add setups and teardowns for functional tests
- Clean up the code
Change-Id: Ia456e9f3ff0f0f2bb9a03f692f27c7f9a2817621
Signed-off-by: Tibor Frank <tifrank@cisco.com>
Diffstat (limited to 'tests/func')
70 files changed, 1047 insertions, 697 deletions
diff --git a/tests/func/dhcp/eth2p-ethip4-ip4base-ip4dhcpproxy-func.robot b/tests/func/dhcp/eth2p-ethip4-ip4base-ip4dhcpproxy-func.robot index de7ae2d4b1..3e89c63f73 100644 --- a/tests/func/dhcp/eth2p-ethip4-ip4base-ip4dhcpproxy-func.robot +++ b/tests/func/dhcp/eth2p-ethip4-ip4base-ip4dhcpproxy-func.robot @@ -63,9 +63,9 @@ | | ... | ${tg_to_dut_if2_mac} | | When DHCP Proxy Config | ${dut_node} | ${dhcp_server_ip} | | ... | ${dut_to_tg_if1_ip} -| | Then Send DHCP messages and check answer | ${tg_node} | ${tg_to_dut_if1} | ${tg_to_dut_if2} -| | ... | ${dhcp_server_ip} | ${tg_to_dut_if2_mac} | ${client_ip} -| | ... | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_ip} +| | Then Send DHCP messages and check answer | ${tg_node} | ${tg_to_dut_if1} +| | ... | ${tg_to_dut_if2} | ${dhcp_server_ip} | ${tg_to_dut_if2_mac} +| | ... | ${client_ip} | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_ip} | TC02: VPP proxy ignores invalid DHCPv4 request | | [Documentation] | diff --git a/tests/func/fds/eth2p-dot1q-l2bdbasemaclrn-eth-4vhost-2vm-fds-provider-nets-func.robot b/tests/func/fds/eth2p-dot1q-l2bdbasemaclrn-eth-4vhost-2vm-fds-provider-nets-func.robot index 9656a4a6f7..dc1ab41018 100644 --- a/tests/func/fds/eth2p-dot1q-l2bdbasemaclrn-eth-4vhost-2vm-fds-provider-nets-func.robot +++ b/tests/func/fds/eth2p-dot1q-l2bdbasemaclrn-eth-4vhost-2vm-fds-provider-nets-func.robot @@ -18,19 +18,16 @@ | Resource | resources/libraries/robot/testing_path.robot | Resource | resources/libraries/robot/double_qemu_setup.robot | Resource | resources/libraries/robot/qemu.robot +| Resource | resources/libraries/robot/fds/default.robot | Library | resources.libraries.python.Trace +| ... | Force Tags | HW_ENV | VM_ENV | SKIP_PATCH -| Test Setup | Run Keywords | Configure all DUTs before test -| ... | AND | Save VPP PIDs -| ... | AND | Configure all TGs for traffic script -| ... | AND | Reset VAT History On All DUTs | ${nodes} -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Tear down QEMU | ${dut1_node} | ${qemu_node1} -| ... | qemu_node1 -| ... | AND | Tear down QEMU | ${dut2_node} | ${qemu_node2} -| ... | qemu_node2 -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Setup | Set up FDS functional test | ${nodes} +| ... +| Test Teardown | Tear down FDS functional test | ${nodes} +| ... | ${dut1_node} | ${qemu_node1} | ${dut2_node} | ${qemu_node2} +| ... | Documentation | *Provider network FDS related.* | ... | ... | Test suite uses 3-node topology TG - DUT1 - DUT2 - TG @@ -77,11 +74,11 @@ *** Test Cases *** | Provider network test cases with provider physical networks (VLAN) | | [Documentation] | Ping among all ports inside the same network should pass. -| | ... | a) test l2 connectivity inside every network -| | ... | b) test l2 connectivity between networks +| | ... | a) test l2 connectivity inside every network +| | ... | b) test l2 connectivity between networks | | [Tags] | 3_NODE_DOUBLE_LINK_TOPO | VPP_VM_ENV -| | Given Configure path in 3-node circular topology | ${nodes['TG']} | ${nodes['DUT1']} -| | ... | ${nodes['DUT2']} | ${nodes['TG']} +| | Given Configure path in 3-node circular topology | ${nodes['TG']} +| | ... | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} | | And Set Interface Address | ${dut1_node} | ${dut1_to_dut2} | ${dut1_if_ip} | | ... | ${prefix_length} | | And Set Interface Address | ${dut2_node} | ${dut2_to_dut1} | ${dut2_if_ip} @@ -109,29 +106,29 @@ | | ${dut2_vhosts}= | And Create List | ${vhost_if1_DUT2} | ${vhost_if2_DUT2} | | ... | ${vhost_if3_DUT2} | ${vhost_if4_DUT2} | | When Configure QEMU vhost and run it | ${dut1_node} -| | ... | ${sock1} -| | ... | ${sock2} -| | ... | ${sock3} -| | ... | ${sock4} -| | ... | ${dut1_blue1} -| | ... | ${dut1_blue2} -| | ... | ${dut1_red1} -| | ... | ${dut1_red2} -| | ... | ${prefix_length} -| | ... | qemu_node1 -| | ... | 04 +| | ... | ${sock1} +| | ... | ${sock2} +| | ... | ${sock3} +| | ... | ${sock4} +| | ... | ${dut1_blue1} +| | ... | ${dut1_blue2} +| | ... | ${dut1_red1} +| | ... | ${dut1_red2} +| | ... | ${prefix_length} +| | ... | qemu_node1 +| | ... | 04 | | And Configure QEMU vhost and run it | ${dut2_node} -| | ... | ${sock1} -| | ... | ${sock2} -| | ... | ${sock3} -| | ... | ${sock4} -| | ... | ${dut2_blue1} -| | ... | ${dut2_blue2} -| | ... | ${dut2_red1} -| | ... | ${dut2_red2} -| | ... | ${prefix_length} -| | ... | qemu_node2 -| | ... | 06 +| | ... | ${sock1} +| | ... | ${sock2} +| | ... | ${sock3} +| | ... | ${sock4} +| | ... | ${dut2_blue1} +| | ... | ${dut2_blue2} +| | ... | ${dut2_red1} +| | ... | ${dut2_red2} +| | ... | ${prefix_length} +| | ... | qemu_node2 +| | ... | 06 | | And Setup VLAN and BD on Dut | ${dut1_node} | ${dut1_to_dut2} | | ... | @{dut1_vhosts} | | And Setup VLAN and BD on Dut | ${dut2_node} | ${dut2_to_dut1} @@ -148,13 +145,13 @@ *** Keywords *** | Setup VLAN and BD on Dut | | [Documentation] | Setup VLAN and bridge domain on specific DUT and -| | ... | subsequently interconnect them properly. Also set VLAN tag -| | ... | rewrite on vhosts. +| | ... | subsequently interconnect them properly. Also set VLAN tag +| | ... | rewrite on vhosts. | | ... | | ... | *Arguments:* | | ... | - dut_node - Node where to setup VLAN and BD. Type: dict | | ... | - interface - Interface where to create VLAN sub-interface. -| | ... | Type: string +| | ... | Type: string | | ... | - vhosts - List containing vhost interfaces. | | ... | | ... | *Example:* @@ -193,7 +190,7 @@ | Positive Scenario Ping From DUT1 - Intra network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test connectivity. +| | ... | order to test connectivity. | | Send Ping From Node To Dst | ${qemu_node1} | ${dut1_blue2} | ${namespace1} | | Send Ping From Node To Dst | ${qemu_node1} | ${dut1_blue1} | ${namespace2} | | Send Ping From Node To Dst | ${qemu_node1} | ${dut1_red2} | ${namespace3} @@ -201,7 +198,7 @@ | Positive Scenario Ping From DUT1 - Inter network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test connectivity. +| | ... | order to test connectivity. | | Send Ping From Node To Dst | ${qemu_node1} | ${dut2_blue1} | ${namespace1} | | Send Ping From Node To Dst | ${qemu_node1} | ${dut2_blue2} | ${namespace1} | | Send Ping From Node To Dst | ${qemu_node1} | ${dut2_blue1} | ${namespace2} @@ -213,7 +210,7 @@ | Positive Scenario Ping From DUT2 - Intra network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test connectivity. +| | ... | order to test connectivity. | | Send Ping From Node To Dst | ${qemu_node2} | ${dut2_blue2} | ${namespace1} | | Send Ping From Node To Dst | ${qemu_node2} | ${dut2_blue1} | ${namespace2} | | Send Ping From Node To Dst | ${qemu_node2} | ${dut2_red2} | ${namespace3} @@ -221,7 +218,7 @@ | Positive Scenario Ping From DUT2 - Inter network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test connectivity. +| | ... | order to test connectivity. | | Send Ping From Node To Dst | ${qemu_node2} | ${dut1_blue1} | ${namespace1} | | Send Ping From Node To Dst | ${qemu_node2} | ${dut1_blue2} | ${namespace1} | | Send Ping From Node To Dst | ${qemu_node2} | ${dut1_blue1} | ${namespace2} @@ -233,7 +230,7 @@ | Negative Scenario Ping From DUT1 - Intra network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test unreachability of namespaces. +| | ... | order to test unreachability of namespaces. | | Run keyword and expect error | Ping Not Successful | | ... | Send Ping From Node To Dst | ${qemu_node1} | ${dut1_red1} | | ... | ${namespace1} @@ -261,7 +258,7 @@ | Negative Scenario Ping From DUT1 - Inter network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test unreachability of namespaces. +| | ... | order to test unreachability of namespaces. | | Run keyword and expect error | Ping Not Successful | | ... | Send Ping From Node To Dst | ${qemu_node1} | ${dut2_red1} | | ... | ${namespace1} @@ -289,7 +286,7 @@ | Negative Scenario Ping From DUT2 - Intra network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test unreachability of namespaces. +| | ... | order to test unreachability of namespaces. | | Run keyword and expect error | Ping Not Successful | | ... | Send Ping From Node To Dst | ${qemu_node2} | ${dut2_red1} | | ... | ${namespace1} @@ -317,7 +314,7 @@ | Negative Scenario Ping From DUT2 - Inter network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test unreachability of namespaces. +| | ... | order to test unreachability of namespaces. | | Run keyword and expect error | Ping Not Successful | | ... | Send Ping From Node To Dst | ${qemu_node2} | ${dut1_red1} | | ... | ${namespace1} diff --git a/tests/func/fds/eth2p-ethip4vxlan-l2bdbasemaclrn--eth-4vhost-2vm-fds-tenant-nets-func.robot b/tests/func/fds/eth2p-ethip4vxlan-l2bdbasemaclrn--eth-4vhost-2vm-fds-tenant-nets-func.robot index 80312fb3f5..0a2cd0b515 100644 --- a/tests/func/fds/eth2p-ethip4vxlan-l2bdbasemaclrn--eth-4vhost-2vm-fds-tenant-nets-func.robot +++ b/tests/func/fds/eth2p-ethip4vxlan-l2bdbasemaclrn--eth-4vhost-2vm-fds-tenant-nets-func.robot @@ -18,19 +18,16 @@ | Resource | resources/libraries/robot/testing_path.robot | Resource | resources/libraries/robot/double_qemu_setup.robot | Resource | resources/libraries/robot/qemu.robot +| Resource | resources/libraries/robot/fds/default.robot | Library | resources.libraries.python.Trace +| ... | Force Tags | HW_ENV | VM_ENV | SKIP_PATCH -| Test Setup | Run Keywords | Configure all DUTs before test -| ... | AND | Save VPP PIDs -| ... | AND | Configure all TGs for traffic script -| ... | AND | Reset VAT History On All DUTs | ${nodes} -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Tear down QEMU | ${dut1_node} | ${qemu_node1} -| ... | qemu_node1 -| ... | AND | Tear down QEMU | ${dut2_node} | ${qemu_node2} -| ... | qemu_node2 -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Setup | Set up FDS functional test | ${nodes} +| ... +| Test Teardown | Tear down FDS functional test | ${nodes} +| ... | ${dut1_node} | ${qemu_node1} | ${dut2_node} | ${qemu_node2} +| ... | Documentation | *Tenant network FDS related.* | ... | ... | Test suite uses 3-node topology TG - DUT1 - DUT2 - TG @@ -77,8 +74,8 @@ *** Test Cases *** | L2 test cases with tenant networks (VXLAN) | | [Documentation] | Ping among all ports inside the same network should pass. -| | ... | a) test l2 connectivity inside every network -| | ... | b) test l2 connectivity between networks +| | ... | a) test l2 connectivity inside every network +| | ... | b) test l2 connectivity between networks | | [Tags] | 3_NODE_DOUBLE_LINK_TOPO | VPP_VM_ENV | | Given Configure path in 3-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} @@ -109,29 +106,29 @@ | | ${dut2_vhosts}= | And Create List | ${vhost_if1_DUT2} | ${vhost_if2_DUT2} | | ... | ${vhost_if3_DUT2} | ${vhost_if4_DUT2} | | When Configure QEMU vhost and run it | ${dut1_node} -| | ... | ${sock1} -| | ... | ${sock2} -| | ... | ${sock3} -| | ... | ${sock4} -| | ... | ${dut1_blue1} -| | ... | ${dut1_blue2} -| | ... | ${dut1_red1} -| | ... | ${dut1_red2} -| | ... | ${prefix_length} -| | ... | qemu_node1 -| | ... | 04 +| | ... | ${sock1} +| | ... | ${sock2} +| | ... | ${sock3} +| | ... | ${sock4} +| | ... | ${dut1_blue1} +| | ... | ${dut1_blue2} +| | ... | ${dut1_red1} +| | ... | ${dut1_red2} +| | ... | ${prefix_length} +| | ... | qemu_node1 +| | ... | 04 | | And Configure QEMU vhost and run it | ${dut2_node} -| | ... | ${sock1} -| | ... | ${sock2} -| | ... | ${sock3} -| | ... | ${sock4} -| | ... | ${dut2_blue1} -| | ... | ${dut2_blue2} -| | ... | ${dut2_red1} -| | ... | ${dut2_red2} -| | ... | ${prefix_length} -| | ... | qemu_node2 -| | ... | 06 +| | ... | ${sock1} +| | ... | ${sock2} +| | ... | ${sock3} +| | ... | ${sock4} +| | ... | ${dut2_blue1} +| | ... | ${dut2_blue2} +| | ... | ${dut2_red1} +| | ... | ${dut2_red2} +| | ... | ${prefix_length} +| | ... | qemu_node2 +| | ... | 06 | | And Setup VXLAN and BD on Dut | ${dut1_node} | ${dut1_if_ip} | ${dut2_if_ip} | | ... | @{dut1_vhosts} | | And Setup VXLAN and BD on Dut | ${dut2_node} | ${dut2_if_ip} | ${dut1_if_ip} @@ -148,7 +145,7 @@ *** Keywords *** | Setup VXLAN and BD on Dut | | [Documentation] | Setup VXLAN and bridge domain on specific DUT and -| | ... | subsequently interconnect them properly. +| | ... | subsequently interconnect them properly. | | ... | | ... | *Arguments:* | | ... | - dut_node - Node where to setup vxlan and BD. Type: dict @@ -166,10 +163,10 @@ | | ... | ${dut_node} | ${bid_b} | learn=${TRUE} | | Create bridge domain | | ... | ${dut_node} | ${bid_r} | learn=${TRUE} -| | ${vxlan1_if}= | Create VXLAN interface | ${dut_node} | ${vni_blue} -| | | ... | ${src_ip} | ${dst_ip} -| | ${vxlan2_if}= | Create VXLAN interface | ${dut_node} | ${vni_red} -| | | ... | ${src_ip} | ${dst_ip} +| | ${vxlan1_if}= | Create VXLAN interface | ${dut_node} | ${vni_blue} +| | ... | ${src_ip} | ${dst_ip} +| | ${vxlan2_if}= | Create VXLAN interface | ${dut_node} | ${vni_red} +| | ... | ${src_ip} | ${dst_ip} | | Add interface to bridge domain | | ... | ${dut_node} | ${vxlan1_if} | ${bid_b} | 0 | | Add interface to bridge domain @@ -185,7 +182,7 @@ | Positive Scenario Ping From DUT1 - Intra network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test connectivity. +| | ... | order to test connectivity. | | Send Ping From Node To Dst | ${qemu_node1} | ${dut1_blue2} | ${namespace1} | | Send Ping From Node To Dst | ${qemu_node1} | ${dut1_blue1} | ${namespace2} | | Send Ping From Node To Dst | ${qemu_node1} | ${dut1_red2} | ${namespace3} @@ -193,7 +190,7 @@ | Positive Scenario Ping From DUT1 - Inter network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test connectivity. +| | ... | order to test connectivity. | | Send Ping From Node To Dst | ${qemu_node1} | ${dut2_blue1} | ${namespace1} | | Send Ping From Node To Dst | ${qemu_node1} | ${dut2_blue2} | ${namespace1} | | Send Ping From Node To Dst | ${qemu_node1} | ${dut2_blue1} | ${namespace2} @@ -205,7 +202,7 @@ | Positive Scenario Ping From DUT2 - Intra network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test connectivity. +| | ... | order to test connectivity. | | Send Ping From Node To Dst | ${qemu_node2} | ${dut2_blue2} | ${namespace1} | | Send Ping From Node To Dst | ${qemu_node2} | ${dut2_blue1} | ${namespace2} | | Send Ping From Node To Dst | ${qemu_node2} | ${dut2_red2} | ${namespace3} @@ -213,7 +210,7 @@ | Positive Scenario Ping From DUT2 - Inter network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test connectivity. +| | ... | order to test connectivity. | | Send Ping From Node To Dst | ${qemu_node2} | ${dut1_blue1} | ${namespace1} | | Send Ping From Node To Dst | ${qemu_node2} | ${dut1_blue2} | ${namespace1} | | Send Ping From Node To Dst | ${qemu_node2} | ${dut1_blue1} | ${namespace2} @@ -225,7 +222,7 @@ | Negative Scenario Ping From DUT1 - Intra network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test unreachability of namespaces. +| | ... | order to test unreachability of namespaces. | | Run keyword and expect error | Ping Not Successful | | ... | Send Ping From Node To Dst | ${qemu_node1} | ${dut1_red1} | | ... | ${namespace1} @@ -251,10 +248,9 @@ | | ... | Send Ping From Node To Dst | ${qemu_node1} | ${dut1_blue2} | | ... | ${namespace4} - | Negative Scenario Ping From DUT1 - Inter network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test unreachability of namespaces. +| | ... | order to test unreachability of namespaces. | | Run keyword and expect error | Ping Not Successful | | ... | Send Ping From Node To Dst | ${qemu_node1} | ${dut2_red1} | | ... | ${namespace1} @@ -282,7 +278,7 @@ | Negative Scenario Ping From DUT2 - Intra network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test unreachability of namespaces. +| | ... | order to test unreachability of namespaces. | | Run keyword and expect error | Ping Not Successful | | ... | Send Ping From Node To Dst | ${qemu_node2} | ${dut2_red1} | | ... | ${namespace1} @@ -308,10 +304,9 @@ | | ... | Send Ping From Node To Dst | ${qemu_node2} | ${dut2_blue2} | | ... | ${namespace4} - | Negative Scenario Ping From DUT2 - Inter network | | [Documentation] | Send ping packets from specified namespaces to other in -| | ... | order to test unreachability of namespaces. +| | ... | order to test unreachability of namespaces. | | Run keyword and expect error | Ping Not Successful | | ... | Send Ping From Node To Dst | ${qemu_node2} | ${dut1_red1} | | ... | ${namespace1} diff --git a/tests/func/honeycomb/__init__.robot b/tests/func/honeycomb/__init__.robot index 128f19f6a0..3f79a6a1f8 100644 --- a/tests/func/honeycomb/__init__.robot +++ b/tests/func/honeycomb/__init__.robot @@ -19,12 +19,13 @@ | Library | resources/libraries/python/honeycomb/HcPersistence.py | Resource | resources/libraries/robot/default.robot | Resource | resources/libraries/robot/honeycomb/honeycomb.robot -| Suite Setup | Run Keywords | Setup All DUTs Before Test | AND +| ... +| Suite Setup | Run Keywords | Configure all DUTs before test | AND | ... | Configure Honeycomb for testing | ${node} | AND | ... | Configure ODL Client for testing | ${node} | AND | ... | Set Global Variable | ${node} -| Suite Teardown -| ... | Archive Honeycomb log file | ${node} +| ... +| Suite Teardown | Archive Honeycomb log file | ${node} *** Keywords *** | Configure Honeycomb for testing @@ -35,7 +36,7 @@ | | Configure Persistence | ${node} | disable | | Configure jVPP timeout | ${node} | ${14} | | Clear Persisted Honeycomb Configuration | ${node} -| | Setup Honeycomb Service On DUTs | ${node} +| | Configure Honeycomb service on DUTs | ${node} | Configure ODL Client for testing | | [Arguments] | ${node} diff --git a/tests/func/honeycomb/mgmt-cfg-acl-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-acl-apihc-apivat-func.robot index 9d94d3d024..b18b111981 100644 --- a/tests/func/honeycomb/mgmt-cfg-acl-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-acl-apihc-apivat-func.robot @@ -20,13 +20,17 @@ | Resource | resources/libraries/robot/honeycomb/honeycomb.robot | Resource | resources/libraries/robot/honeycomb/access_control_lists.robot | Variables | resources/test_data/honeycomb/acl.py +| ... | Suite Teardown | Restart Honeycomb and VPP | ${node} +| ... | Documentation | *Honeycomb access control lists test suite.* +| ... | Force Tags | HC_FUNC *** Test Cases *** | TC01: Honeycomb can create ACL classify table | | [Documentation] | Check if Honeycomb API can create an ACL table. +| | ... | | Given ACL table from Honeycomb should not exist | | ... | ${node} | ${hc_acl_table['name']} | | And ACL table from VAT should not exist @@ -39,6 +43,7 @@ | TC02: Honeycomb can remove ACL table | | [Documentation] | Check if Honeycomb API can delete an ACL table. +| | ... | | Given ACL table from Honeycomb should be | ${node} | ${hc_acl_table_oper} | | And ACL table from VAT should be | | ... | ${node} | ${table_index} | ${vat_acl_table} @@ -50,6 +55,7 @@ | TC03: Honeycomb manages more than one ACL table | | [Documentation] | Check if Honeycomb API can create another ACL table. +| | ... | | Given ACL table from Honeycomb should not exist | | ... | ${node} | ${hc_acl_table['name']} | | And ACL table from VAT should not exist @@ -65,6 +71,7 @@ | TC04: Honeycomb can add ACL session to table | | [Documentation] | Check if Honeycomb API can add an ACL session to a table. +| | ... | | Given ACL table from Honeycomb should be | ${node} | ${hc_acl_table_oper} | | And ACL table from VAT should be | | ... | ${node} | ${table_index} | ${vat_acl_table} @@ -77,6 +84,7 @@ | TC05: Honeycomb can remove ACL session | | [Documentation] | Check if Honeycomb API can remove an ACL session. +| | ... | | Given ACL session from Honeycomb should be | | ... | ${node} | ${hc_acl_table['name']} | ${hc_acl_session} | | And ACL session from VAT should be @@ -91,6 +99,7 @@ | TC06: Honeycomb manages more than one ACL session on one table | | [Documentation] | Check if Honeycomb API can add another ACL session\ | | ... | to a table. +| | ... | | Given ACL session from Honeycomb should not exist | | ... | ${node} | ${hc_acl_table['name']} | ${hc_acl_session['match']} | | And ACL session from VAT should not exist @@ -110,6 +119,7 @@ | TC07: Honeycomb enables ACL on interface | | [Documentation] | Check if Honeycomb API can enable ACL on an interface. +| | ... | | Given ACL table from Honeycomb should be | ${node} | ${hc_acl_table_oper} | | And ACL table from VAT should be | | ... | ${node} | ${table_index} | ${vat_acl_table} @@ -126,6 +136,7 @@ | TC08: Honeycomb disables ACL on interface | | [Documentation] | Check if Honeycomb API can disable ACL on an interface. +| | ... | | Given Interface ACL configuration from Honeycomb should be | | ... | ${node} | ${interface} | ${hc_acl_table['name']} | | And Interface ACL configuration from VAT should be @@ -139,6 +150,7 @@ | TC09: Honeycomb can remove one out of multiple ACL tables | | [Documentation] | Check if Honeycomb API can delete an ACL table if more\ | | ... | than one table exists. +| | ... | | Given ACL table from Honeycomb should be | ${node} | ${hc_acl_table_oper} | | And ACL table from VAT should be | | ... | ${node} | ${table_index} | ${vat_acl_table} diff --git a/tests/func/honeycomb/mgmt-cfg-dhcp-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-dhcp-apihc-apivat-func.robot index 5b6656958d..fba37e6318 100644 --- a/tests/func/honeycomb/mgmt-cfg-dhcp-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-dhcp-apihc-apivat-func.robot @@ -24,9 +24,14 @@ | Library | resources.libraries.python.IPv6Util | Library | resources.libraries.python.Routing | Variables | resources/test_data/honeycomb/dhcp_relay.py +| ... +| ... | Documentation | *Honeycomb DHCP relay test suite.* +| ... | Test Setup | Clear Packet Trace on All DUTs | ${nodes} +| ... | Suite Teardown | Restart Honeycomb and VPP | ${node} +| ... | Force Tags | HC_FUNC *** Test Cases *** @@ -38,20 +43,23 @@ | | ... | neighbors and configure DHCP relay. | | ... | [Ver] Send DHCP packets from TG interface to DUT. Receive all packets\ | | ... | on the second TG interface and verify required fields. +| | ... | | [Teardown] | Run Keywords | Show Packet Trace on All DUTs | ${nodes} | | ... | AND | Log DHCP relay configuration from VAT | ${node} | ipv4 +| | ... | | Given DHCP relay Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb configures DHCP relay | ${node} | ${relay1} | ipv4 | ${0} | | Then DHCP relay configuration from Honeycomb should contain | | ... | ${node} | ${relay1_oper} | | When DHCP relay test setup -| | Then Send DHCP messages and check answer | ${tg_node} | ${tg_to_dut_if1} | ${tg_to_dut_if2} -| | ... | ${dhcp_server1_ip} | ${tg_to_dut_if2_mac} | ${client_ip} -| | ... | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_ip} +| | Then Send DHCP messages and check answer | ${tg_node} | ${tg_to_dut_if1} +| | ... | ${tg_to_dut_if2} | ${dhcp_server1_ip} | ${tg_to_dut_if2_mac} +| | ... | ${client_ip} | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_ip} | TC02: Honeycomb can remove DHCP relay entry | | [Documentation] | Remove DHCP relay configuration, and verify that\ | | ... | it was removed. +| | ... | | Given DHCP relay configuration from Honeycomb should contain | | ... | ${node} | ${relay1_oper} | | When Honeycomb clears DHCP relay configuration | ${node} @@ -60,7 +68,9 @@ | TC03: Honeycomb can configure multiple DHCP relay servers. | | [Documentation] | Configure multiple DHCP relay servers and verify\ | | ... | their configuration using operational data. +| | ... | | [Teardown] | Honeycomb clears DHCP relay configuration | ${node} +| | ... | | Given DHCP relay Operational Data From Honeycomb Should Be empty | ${node} | | And Honeycomb configures DHCP relay | ${node} | ${relay2} | ipv4 | ${0} | | Then DHCP relay configuration from Honeycomb should contain @@ -74,9 +84,11 @@ | | ... | neighbors and configure DHCP relay. | | ... | [Ver] Send DHCPv6 packets from TG interface to DUT. Receive all\ | | ... | packets on the second TG interface and verify required fields. +| | ... | | [Teardown] | Run Keywords | Show Packet Trace on All DUTs | ${nodes} | | ... | AND | Log DHCP relay configuration from VAT | ${node} | ipv6 | | ... | AND | Honeycomb clears DHCP relay configuration | ${node} +| | ... | | Given DHCP relay Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb configures DHCP relay | ${node} | ${relay_v6} | ipv6 | ${0} | | Then DHCP relay configuration from Honeycomb should contain @@ -96,10 +108,10 @@ | | ... | ${dut_to_tg_if1} | ${dut_to_tg_if1_ip} | ${prefix_length} | | Honeycomb sets interface IPv4 address with prefix | ${dut_node} | | ... | ${dut_to_tg_if2} | ${dut_to_tg_if2_ip} | ${prefix_length} -| | Add ARP on DUT -| | ... | ${dut_node} | ${dut_to_tg_if2} | ${dhcp_server1_ip} | ${tg_to_dut_if2_mac} -| | Add ARP on DUT -| | ... | ${dut_node} | ${dut_to_tg_if2} | ${dhcp_server2_ip} | ${tg_to_dut_if2_mac} +| | Add ARP on DUT | ${dut_node} | ${dut_to_tg_if2} | ${dhcp_server1_ip} +| | ... | ${tg_to_dut_if2_mac} +| | Add ARP on DUT | ${dut_node} | ${dut_to_tg_if2} | ${dhcp_server2_ip} +| | ... | ${tg_to_dut_if2_mac} | | And VPP Route Add | ${dut_node} | 255.255.255.255 | 32 | ${NONE} | local | | ... | ${FALSE} | ${NONE} diff --git a/tests/func/honeycomb/mgmt-cfg-int-apihcnc-func.robot b/tests/func/honeycomb/mgmt-cfg-int-apihcnc-func.robot index c6ae380f9b..3e3c64fd1f 100644 --- a/tests/func/honeycomb/mgmt-cfg-int-apihcnc-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-int-apihcnc-func.robot @@ -19,11 +19,13 @@ | Library | resources.libraries.python.honeycomb.HcAPIKwInterfaces.InterfaceKeywords | ... | WITH NAME | InterfaceAPI | Variables | resources/test_data/honeycomb/netconf/triggers.py +| ... | Documentation | *Netconf test suite. Contains test cases that need to bypass\ | ... | REST API.* +| ... | Force Tags | HC_FUNC | HC_REST_ONLY -| Suite Teardown -| ... | Restart Honeycomb and VPP | ${node} +| ... +| Suite Teardown | Restart Honeycomb and VPP | ${node} *** Variables *** | ${interface}= | ${node['interfaces']['port1']['name']} @@ -34,6 +36,7 @@ | TC01: Honeycomb can create and delete interfaces | | [Documentation] | Repeatedly create and delete an interface through Netconf\ | | ... | and check the reply for any errors. +| | ... | | Given Netconf session should be established | ${node} | | And Honeycomb creates first L2 bridge domain | | ... | ${node} | bd_netconf | ${bd_settings} @@ -44,6 +47,7 @@ | TC02: Transaction revert test case 1 | | [Documentation] | Configure two conflicting VxLAN tunnels, then verify\ | | ... | that neither tunnel exists. +| | ... | | Given Netconf session should be established | ${node} | | ${if_data}= | And InterfaceAPI.Get all interfaces oper data | ${node} | | When Error trigger is sent | ${trigger_revert1} @@ -53,6 +57,7 @@ | TC03: Transaction revert test case 2 | | [Documentation] | Configure two conflicting TAP interfaces, then verify\ | | ... | that neither interface exists. +| | ... | | Given Netconf session should be established | ${node} | | ${if_data}= | And InterfaceAPI.Get all interfaces oper data | ${node} | | When Error trigger is sent | ${trigger_revert1} @@ -61,6 +66,7 @@ | TC04: Vlan subinterface creation | | [Documentation] | Configure a Vlan sub-interface under a physical interface. +| | ... | | Given Netconf session should be established | ${node} | | When Error Trigger Is Sent | | ... | ${trigger_vlan} | interface=${interface} diff --git a/tests/func/honeycomb/mgmt-cfg-int-subint-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-int-subint-apihc-apivat-func.robot index 803cfa0932..f766eb296c 100644 --- a/tests/func/honeycomb/mgmt-cfg-int-subint-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-int-subint-apihc-apivat-func.robot @@ -18,10 +18,13 @@ | Resource | resources/libraries/robot/honeycomb/bridge_domain.robot | Resource | resources/libraries/robot/honeycomb/interfaces.robot | Variables | resources/test_data/honeycomb/sub_interfaces.py +| ... | Suite Setup | Add Interface local0 To Topology | ${node} -| Suite Teardown -| ... | Restart Honeycomb and VPP | ${node} +| ... +| Suite Teardown | Restart Honeycomb and VPP | ${node} +| ... | Force Tags | HC_FUNC +| ... | Documentation | *Honeycomb sub-interface management test suite.* *** Variables *** @@ -365,8 +368,10 @@ | TC17: Honeycomb modifies existing sub-interface ipv4 address | | [Documentation] | Check if Honeycomb can modify an ipv4 address already\ | | ... | configured on the sub-interface. +| | ... | | [Teardown] | Honeycomb removes all sub-interface ipv4 addresses | | ... | ${node} | ${super_if} | ${sub_if_id} +| | ... | | Given sub-interface ipv4 address from Honeycomb should be empty | | ... | ${node} | ${super_if} | ${sub_if_id} | | And sub-interface ipv4 address from VAT should be empty @@ -387,6 +392,7 @@ | TC18: Honeycomb modifies sub-interface exact tag match | | [Documentation] | Check if Honeycomb can modify a sub-interface with exact\ | | ... | tag match. +| | ... | | Given Honeycomb configures interface state | ${node} | ${super_if2} | down | | And sub-interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${super_if2} | ${sub_if_id} @@ -440,8 +446,10 @@ | TC21: Honeycomb modifies existing sub-interface ipv6 address | | [Documentation] | Check if Honeycomb can modify an ipv6 address already\ | | ... | configured on the sub-interface. +| | ... | | [Teardown] | Honeycomb removes all sub-interface ipv6 addresses | | ... | ${node} | ${super_if} | ${sub_if_id} +| | ... | | Given sub-interface ipv6 address from Honeycomb should be empty | | ... | ${node} | ${super_if} | ${sub_if_id} | | And sub-interface ipv6 address from VAT should be empty @@ -462,6 +470,7 @@ | TC22: Honeycomb can configure unnumbered sub-interface | | [Documentation] | Check if Honeycomb can configure an unnumbered interface\ | | ... | on a sub-interface, borrowing the IP address of 'local0'. +| | ... | | Given sub-interface ipv4 address from Honeycomb should be empty | | ... | ${node} | ${super_if} | ${sub_if_id} | | And sub-interface ipv4 address from VAT should be empty @@ -485,8 +494,10 @@ | TC23: Honeycomb removes sub-interface unnumbered configuration | | [Documentation] | Check if Honeycomb can remove unnumbered configuration\ | | ... | from a sub-interface. +| | ... | | [Teardown] | Honeycomb removes interface IPv4 addresses | ${node} | | ... | local0 +| | ... | | Given IPv4 address from Honeycomb should be | | ... | ${node} | local0 | ${ipv4['address']} | ${ipv4['prefix-length']} | | And IPv4 address from VAT should be @@ -513,6 +524,7 @@ | TC24: Honeycomb can configure unnumbered interface using a sub-interface | | [Documentation] | Check if Honeycomb can configure an unnumbered interface\ | | ... | on an interface, borrowing the IP address of a sub-interface. +| | ... | | Given IPv4 address from Honeycomb should be empty | ${node} | local0 | | And ipv4 address from VAT should be empty | ${node} | local0 | | And sub-interface ipv4 address from Honeycomb should be empty diff --git a/tests/func/honeycomb/mgmt-cfg-intip4-intip6-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-intip4-intip6-apihc-apivat-func.robot index dd619efbe7..03160e0a65 100644 --- a/tests/func/honeycomb/mgmt-cfg-intip4-intip6-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-intip4-intip6-apihc-apivat-func.robot @@ -22,15 +22,18 @@ | Resource | resources/libraries/robot/testing_path.robot | Resource | resources/libraries/robot/ipv6.robot | Variables | resources/test_data/honeycomb/interface_ip.py +| ... | Force Tags | HC_FUNC -| Suite Teardown -| | ... | Restart Honeycomb and VPP | ${node} +| ... +| Suite Teardown | Restart Honeycomb and VPP | ${node} +| ... | Documentation | *Honeycomb interface management test suite.* *** Test Cases *** | TC01: Honeycomb configures and reads interface state | | [Documentation] | Check if Honeycomb API can modify the admin state of\ | | ... | VPP interfaces. +| | ... | | Given Interface state from Honeycomb should be | | ... | ${node} | ${interface} | down | | And Interface state from VAT should be | ${node} | ${interface} | down @@ -46,6 +49,7 @@ | TC02: Honeycomb modifies interface IPv4 address with netmask | | [Documentation] | Check if Honeycomb API can configure interfaces for ipv4\ | | ... | with address and netmask provided. +| | ... | | Given IPv4 address from Honeycomb should be empty | ${node} | ${interface} | | And ipv4 address from VAT should be empty | ${node} | ${interface} | | When Honeycomb sets interface IPv4 address | ${node} | ${interface} @@ -59,6 +63,7 @@ | TC03: Honeycomb removes IPv4 address from interface | | [Documentation] | Check if Honeycomb API can remove configured ipv4\ | | ... | addresses from interface. +| | ... | | Given IPv4 address from Honeycomb should be | | ... | ${node} | ${interface} | ${ipv4_address} | ${ipv4_prefix} | | And IPv4 address from VAT should be @@ -71,8 +76,10 @@ | TC04: Honeycomb modifies interface IPv4 address with prefix | | [Documentation] | Check if Honeycomb API can configure interfaces for ipv4\ | | ... | with address and prefix provided. +| | ... | | [Teardown] | Honeycomb removes interface IPv4 addresses | ${node} | | ... | ${interface} +| | ... | | Given IPv4 address from Honeycomb should be empty | ${node} | ${interface} | | And ipv4 address from VAT should be empty | ${node} | ${interface} | | When Honeycomb sets interface IPv4 address with prefix @@ -85,8 +92,10 @@ | TC05: Honeycomb modifies IPv4 neighbor table | | [Documentation] | Check if Honeycomb API can add and remove ARP entries. +| | ... | | [Teardown] | Honeycomb clears all interface IPv4 neighbors | | ... | ${node} | ${interface} +| | ... | | Given IPv4 neighbor from Honeycomb should be empty | | ... | ${node} | ${interface} | | When Honeycomb adds interface IPv4 neighbor @@ -96,8 +105,10 @@ | TC06: Honeycomb modifies interface configuration - IPv6 | | [Documentation] | Check if Honeycomb API can configure interfaces for ipv6. +| | ... | | [Teardown] | Honeycomb removes interface IPv6 addresses | ${node} | | ... | ${interface} +| | ... | | Given IPv6 address from Honeycomb should be empty | | ... | ${node} | ${interface} | | And IPv6 address from VAT should be empty @@ -111,8 +122,10 @@ | TC07: Honeycomb modifies IPv6 neighbor table | | [Documentation] | Check if Honeycomb API can add and remove ARP entries. +| | ... | | [Teardown] | Honeycomb clears all interface IPv6 neighbors | | ... | ${node} | ${interface} +| | ... | | Given IPv6 neighbor from Honeycomb should be empty | | ... | ${node} | ${interface} | | When Honeycomb adds interface IPv6 neighbor @@ -123,6 +136,7 @@ | TC08: Honeycomb modifies interface configuration - MTU | | [Documentation] | Check if Honeycomb API can configure interface\ | | ... | MTU value. +| | ... | | When Honeycomb sets interface ethernet configuration | | ... | ${node} | ${interface} | ${ethernet} | | Then Interface ethernet Operational Data From Honeycomb Should Be @@ -133,8 +147,10 @@ | TC09: Honeycomb modifies interface configuration - vrf | | [Documentation] | Check if Honeycomb API can configure interface\ | | ... | vrf ID. +| | ... | | [Teardown] | Honeycomb sets interface VRF ID | | ... | ${node} | ${interface} | ${0} | ipv4 +| | ... | | When Honeycomb sets interface VRF ID | | ... | ${node} | ${interface} | ${1} | ipv4 | | Then Interface VRF ID from Honeycomb should be @@ -201,9 +217,12 @@ | TC11: Honeycomb fails to configure two IPv4 addresses from the same subnet | | [Documentation] | Check if Honeycomb can configure two IPv4 addresses in\ | | ... | the same subnet onto a single interface. It should not be possible. +| | ... | | [Teardown] | Honeycomb removes interface IPv4 addresses | ${node} | | ... | ${interface} +| | ... | | [Tags] | EXPECTED_FAILING +| | ... # VPP API does not configure the second address, but returns success. VPP-649 | | When Honeycomb sets interface IPv4 address with prefix | | ... | ${node} | ${interface} | 192.168.0.1 | ${9} @@ -215,7 +234,9 @@ | TC12: Honeycomb fails to configure two IPv6 addresses from the same subnet | | [Documentation] | Check if Honeycomb can configure two IPv6 addresses in\ | | ... | the same subnet onto a single interface. It should not be possible. +| | ... | | [Tags] | EXPECTED_FAILING +| | ... # VPP API does not configure the second address, but returns success. VPP-649 | | [Teardown] | Honeycomb removes interface IPv6 addresses | ${node} | | ... | ${interface} @@ -229,6 +250,7 @@ | TC13: Honeycomb can configure unnumbered interface | | [Documentation] | Check if Honeycomb can configure an unnumbered interface\ | | ... | on a physical interface, borrowing the IP address of 'local0'. +| | ... | | Given Honeycomb sets interface IPv4 address | ${node} | | ... | local0 | ${ipv4_address} | ${ipv4_prefix} | | When Honeycomb adds unnumbered configuration to interface @@ -247,6 +269,7 @@ | TC14: Honeycomb removes interface unnumbered configuration | | [Documentation] | Check if Honeycomb can remove unnumbered configuration\ | | ... | from an interface. +| | ... | | Given IPv4 address from Honeycomb should be | | ... | ${node} | local0 | ${ipv4_address} | ${ipv4_prefix} | | And IPv4 address from VAT should be diff --git a/tests/func/honeycomb/mgmt-cfg-inttap-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-inttap-apihc-apivat-func.robot index 2efdaf2eb5..74d99a9684 100644 --- a/tests/func/honeycomb/mgmt-cfg-inttap-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-inttap-apihc-apivat-func.robot @@ -26,14 +26,18 @@ | Resource | resources/libraries/robot/honeycomb/honeycomb.robot | Resource | resources/libraries/robot/honeycomb/interfaces.robot | Resource | resources/libraries/robot/honeycomb/tap.robot +| ... | Force Tags | HC_FUNC +| ... | Suite Teardown | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} +| ... | Documentation | *Honeycomb TAP management test suite.* *** Test Cases *** | TC01: Honeycomb configures TAP interface | | [Documentation] | Check if Honeycomb API can configure a TAP interface. +| | ... | | Given TAP Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${tap_interface} | | And TAP Operational Data From VAT Should Be empty @@ -48,6 +52,7 @@ | TC02: Honeycomb modifies existing TAP interface configuration | | [Documentation] | Check if Honeycomb API can re-configure and existing TAP\ | | ... | interface with new settings. +| | ... | | Given TAP Operational Data From Honeycomb Should Be | | ... | ${node} | ${tap_interface} | ${tap_settings} | | And TAP Operational Data From VAT Should Be @@ -61,6 +66,7 @@ | TC03: Honeycomb removes TAP interface | | [Documentation] | Check if Honeycomb API can remove TAP interface. +| | ... | | Given TAP Operational Data From Honeycomb Should Be | | ... | ${node} | ${tap_interface} | ${tap_settings2} | | And TAP Operational Data From VAT Should Be diff --git a/tests/func/honeycomb/mgmt-cfg-intvhost-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-intvhost-apihc-apivat-func.robot index 24e79fa799..64136bcfd6 100644 --- a/tests/func/honeycomb/mgmt-cfg-intvhost-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-intvhost-apihc-apivat-func.robot @@ -26,9 +26,12 @@ | Resource | resources/libraries/robot/default.robot | Resource | resources/libraries/robot/honeycomb/honeycomb.robot | Resource | resources/libraries/robot/honeycomb/vhost_user.robot +| ... | Force Tags | HC_FUNC +| ... | Suite Teardown | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} +| ... | Documentation | *Honeycomb vhost-user interface management test suite.* *** Test Cases *** diff --git a/tests/func/honeycomb/mgmt-cfg-l2bd-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-l2bd-apihc-apivat-func.robot index e8649bd0c7..e6287e79ae 100644 --- a/tests/func/honeycomb/mgmt-cfg-l2bd-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-l2bd-apihc-apivat-func.robot @@ -28,16 +28,20 @@ | Resource | resources/libraries/robot/honeycomb/honeycomb.robot | Resource | resources/libraries/robot/honeycomb/interfaces.robot | Resource | resources/libraries/robot/honeycomb/bridge_domain.robot +| ... | Suite Teardown | Run keywords | ... | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} | ... | AND | Honeycomb removes all bridge domains | ${node} | @{interfaces} +| ... | Force Tags | HC_FUNC +| ... | Documentation | *Honeycomb bridge domain management test suite.* *** Test Cases *** | TC01: Honeycomb sets up l2 bridge domain | | [Documentation] | Check if Honeycomb can create bridge domains on VPP node. +| | ... | | When Honeycomb creates first l2 bridge domain | | ... | ${node} | ${bd1_name} | ${bd_settings} | | Then Bridge domain Operational Data From Honeycomb Should Be @@ -48,6 +52,7 @@ | TC02: Honeycomb manages multiple bridge domains on node | | [Documentation] | Check if Honeycomb can manage multiple bridge domains on\ | | ... | a single node. +| | ... | | Given Bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${bd1_name} | ${bd_settings} | | When Honeycomb creates l2 bridge domain @@ -64,6 +69,7 @@ | TC03: Honeycomb removes bridge domains | | [Documentation] | Check if Honeycomb can remove bridge domains from a VPP\ | | ... | node. +| | ... | | Given Bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${bd1_name} | ${bd_settings} | | When Honeycomb removes all bridge domains | ${node} @@ -73,6 +79,7 @@ | TC04: Honeycomb assigns interfaces to bridge domain | | [Documentation] | Check if Honeycomb can assign VPP interfaces to an\ | | ... | existing bridge domain. +| | ... | | Given Honeycomb creates first l2 bridge domain | | ... | ${node} | ${bd1_name} | ${bd_settings} | | When Honeycomb adds interfaces to bridge domain @@ -89,6 +96,7 @@ | TC05: Honeycomb cannot remove bridge domain with an interface assigned | | [Documentation] | Check if Honeycomb can remove a bridge domain that has an\ | | ... | interface assigned to it. Expect to fail with code 500. +| | ... | | Given Bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${bd1_name} | ${bd_settings} | | And Bridge domain Operational Data From VAT Should Be diff --git a/tests/func/honeycomb/mgmt-cfg-l2fib-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-l2fib-apihc-apivat-func.robot index 48527b98df..184f361947 100644 --- a/tests/func/honeycomb/mgmt-cfg-l2fib-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-l2fib-apihc-apivat-func.robot @@ -19,15 +19,18 @@ | Resource | resources/libraries/robot/honeycomb/l2_fib.robot | Variables | resources/test_data/honeycomb/l2_fib.py | ${node} | ${interface} | ... | ${interface2} +| ... | Documentation | *Honeycomb L2 FIB management test suite.* -| Suite Setup | Run keywords -| ... | Set test interface down +| ... +| Suite Setup | Run keywords | Set test interface down +| ... | Suite Teardown | Run keywords | ... | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} | ... | AND | ... | Honeycomb removes all bridge domains | ... | ${node} | ${interface} | ${interface2} +| ... | Force tags | HC_FUNC *** Variables *** diff --git a/tests/func/honeycomb/mgmt-cfg-lisp-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-lisp-apihc-apivat-func.robot index 9f4a328258..42f5a84b8f 100644 --- a/tests/func/honeycomb/mgmt-cfg-lisp-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-lisp-apihc-apivat-func.robot @@ -27,14 +27,18 @@ | Resource | resources/libraries/robot/honeycomb/lisp.robot | Resource | resources/libraries/robot/honeycomb/bridge_domain.robot | Variables | resources/test_data/honeycomb/lisp.py +| ... | Documentation | *Honeycomb Lisp test suite.* +| ... | Suite Teardown | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} +| ... | Force Tags | HC_FUNC *** Test Cases *** | TC01: Honeycomb enables LISP feature | | [Documentation] | Check if Honeycomb can enable the Lisp feature. +| | ... | | Given Lisp Should Not Be Configured | ${node} | | When Honeycomb enables LISP | ${node} | | Then LISP state from Honeycomb should be | ${node} | ${state} @@ -42,6 +46,7 @@ | TC02: Honeycomb adds locator set and locator | | [Documentation] | Check if Honeycomb can configure a locator set. +| | ... | | Given LISP state from Honeycomb should be | ${node} | ${state} | | When Honeycomb adds locator set | ${node} | ${interface} | ${locator_set} | | Then Locator Set From Honeycomb Should Be @@ -50,6 +55,7 @@ | TC03: Honeycomb configures Lisp - remote mapping - Bridge Domain | | [Documentation] | Check if Honeycomb can configure a remote Lisp mapping\ | | ... | with a bridge domain. +| | ... | | Given LISP state from Honeycomb should be | ${node} | ${state} | | And Honeycomb creates first l2 bridge domain | | ... | ${node} | ${bd_name} | ${bd_settings} @@ -61,6 +67,7 @@ | TC04: Honeycomb can remove Lisp mapping | | [Documentation] | Check if Honeycomb can remove a configured Lisp mapping. +| | ... | | Given LISP mapping from Honeycomb should be | | ... | ${node} | ${remote_bd_subtable} | | And LISP mapping from VAT should be @@ -74,7 +81,9 @@ | TC05: Honeycomb configures Lisp - remote mapping - VRF | | [Documentation] | Check if Honeycomb can configure a remote Lisp mapping\ | | ... | with VRF. +| | ... | | [Teardown] | Honeycomb removes all lisp mappings | ${node} +| | ... | | Given LISP mappings from Honeycomb should not exist | | ... | ${node} | | And LISP mappings from VAT should not exist @@ -87,7 +96,9 @@ | TC06: Honeycomb configures Lisp - local mapping - Bridge Domain | | [Documentation] | Check if Honeycomb can configure a local Lisp mapping\ | | ... | with a bridge domain. +| | ... | | [Teardown] | Honeycomb removes all lisp mappings | ${node} +| | ... | | Given Locator Set From Honeycomb Should Be | | ... | ${node} | ${interface} | ${locator_set} | | And LISP mappings from Honeycomb should not exist @@ -103,7 +114,9 @@ | TC07: Honeycomb configures Lisp - local mapping - VRF | | [Documentation] | Check if Honeycomb can configure a local Lisp mapping\ | | ... | with VRF. +| | ... | | [Teardown] | Honeycomb removes all lisp mappings | ${node} +| | ... | | Given Locator Set From Honeycomb Should Be | | ... | ${node} | ${interface} | ${locator_set} | | And LISP mappings from Honeycomb should not exist @@ -117,7 +130,9 @@ | TC08: Honeycomb configures Lisp mapping with adjacency | | [Documentation] | Check if Honeycomb can configure local and remote Lisp\ | | ... | mappings with VRF, and configure adjacency. +| | ... | | [Teardown] | Honeycomb removes all lisp mappings | ${node} +| | ... | | Given Locator Set From Honeycomb Should Be | | ... | ${node} | ${interface} | ${locator_set} | | And Honeycomb creates first l2 bridge domain @@ -134,6 +149,7 @@ | TC09: Honeycomb configures Lisp Map Resolver | | [Documentation] | Check if Honeycomb can configure a Lisp Map Resolver. +| | ... | | Given LISP state from Honeycomb should be | ${node} | ${state} | | And LISP state from VAT should be | ${node} | ${state} | | When Honeycomb adds Lisp Map Resolver | ${node} | ${ip_address} @@ -142,6 +158,7 @@ | TC10: Honeycomb configures Lisp Map Server | | [Documentation] | Check if Honeycomb can configure a Lisp Map Server. +| | ... | | Given LISP state from Honeycomb should be | ${node} | ${state} | | And LISP state from VAT should be | ${node} | ${state} | | When Honeycomb adds Lisp Map Server | ${node} | @{ip_addresses} @@ -151,6 +168,7 @@ | TC11: Honeycomb configures Lisp PETR configuration | | [Documentation] | Check if Honeycomb can configure Lisp | | ... | PETR configuration. +| | ... | | Given LISP state from Honeycomb should be | ${node} | ${state} | | And LISP state from VAT should be | ${node} | ${state} | | When Honeycomb enables LISP PETR feature | ${node} | ${ip_address} @@ -159,6 +177,7 @@ | TC12: Honeycomb configures Lisp RLOC Probing | | [Documentation] | Check if Honeycomb can configure Lisp RLOC Probing. +| | ... | | Given LISP state from Honeycomb should be | ${node} | ${state} | | And LISP state from VAT should be | ${node} | ${state} | | When Honeycomb enables LISP RLOC feature | ${node} @@ -167,6 +186,7 @@ | TC13: Honeycomb configures Lisp Map Register | | [Documentation] | Check if Honeycomb can configure a Lisp Map Register. +| | ... | | Given LISP state from Honeycomb should be | ${node} | ${state} | | And LISP state from VAT should be | ${node} | ${state} | | When Honeycomb adds Lisp Map Register | ${node} | ${True} @@ -175,6 +195,7 @@ | TC14: Honeycomb enabled Lisp PITR feature | | [Documentation] | Check if Honeycomb can configure the Lisp PITR feature. +| | ... | | Given Locator Set From Honeycomb Should Be | | ... | ${node} | ${interface} | ${locator_set} | | When Honeycomb enables LISP PITR feature | ${node} | ${locator_set} @@ -183,6 +204,7 @@ | TC15: Honeycomb can remove configuration of Lisp features | | [Documentation] | Check if Honeycomb can disable all Lisp features. +| | ... | | Given Map resolver from Honeycomb should be | ${node} | ${ip_address} | | And PITR config from Honeycomb should be | ${node} | ${locator_set} | | When Honeycomb disables all LISP features | ${node} @@ -191,7 +213,9 @@ | TC16: Honeycomb configures Lisp Map Request Mode | | [Documentation] | Check if Honeycomb can configure Lisp Map Request mode. | | ... | Note: Map Request Mode cannot be removed once configured. +| | ... | | [Teardown] | Honeycomb disables LISP | ${node} +| | ... | | Given Honeycomb enables LISP | ${node} | | When Honeycomb sets Lisp Map Request Mode | ${node} | ${True} | | Then Map Request Mode from Honeycomb should be diff --git a/tests/func/honeycomb/mgmt-cfg-nsh-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-nsh-apihc-apivat-func.robot index 068fbcf8a3..03ccc320fc 100644 --- a/tests/func/honeycomb/mgmt-cfg-nsh-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-nsh-apihc-apivat-func.robot @@ -21,7 +21,9 @@ | Resource | resources/libraries/robot/honeycomb/vxlan_gpe.robot | Variables | resources/test_data/honeycomb/nsh.py | Variables | resources/test_data/honeycomb/vxlan_gpe.py +| ... | Documentation | *Honeycomb NSH test suite.* +| ... | Suite Teardown | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} # disabled pending NSH version 17.04 @@ -30,6 +32,7 @@ *** Test Cases *** | TC01: Honeycomb can configure NSH entry | | [Documentation] | Check if Honeycomb can configure an NSH entry. +| | ... | | Given NSH Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb adds NSH entry | ${node} | entry1 | ${nsh_entry1} | | Then NSH entry from Honeycomb should be @@ -37,6 +40,7 @@ | TC02: Honeycomb can remove NSH entry | | [Documentation] | Check if Honeycomb can remove an existing NSH entry. +| | ... | | Given NSH entry from Honeycomb should be | | ... | ${node} | entry1 | ${nsh_entry1_oper} | | When Honeycomb removes NSH entry | ${node} | entry1 @@ -45,7 +49,9 @@ | TC03: Honeycomb can configure new NSH entry | | [Documentation] | Check if Honeycomb can configure an NSH antry after one\ | | ... | has been deleted. +| | ... | | [Teardown] | Honeycomb removes NSH entry | ${node} | entry2 +| | ... | | Given NSH Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb adds NSH entry | ${node} | entry2 | ${nsh_entry2} | | Then NSH entry from Honeycomb should be @@ -54,7 +60,9 @@ | TC04: Honeycomb can configure multiple NSH entries at the same time | | [Documentation] | Check if Honeycomb can configure an NSH entry when one\ | | ... | already exists. +| | ... | | [Teardown] | Honeycomb clears NSH configuration | ${node} +| | ... | | Given NSH Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb adds NSH entry | ${node} | entry1 | ${nsh_entry1} | | And Honeycomb adds NSH entry | ${node} | entry2 | ${nsh_entry2} @@ -65,6 +73,7 @@ | TC05: Honeycomb can configure NSH map | | [Documentation] | Check if Honeycomb can configure an NSH map. +| | ... | | Given NSH Operational Data From Honeycomb Should Be empty | ${node} | | And Honeycomb creates VxLAN GPE interface | | ... | ${node} | ${vxlan_gpe_if1} @@ -75,6 +84,7 @@ | TC06: Honeycomb can remove NSH map | | [Documentation] | Check if Honeycomb can remove an existing NSH map. +| | ... | | Given NSH entry from Honeycomb should be | | ... | ${node} | entry1 | ${nsh_entry1_oper} | | And VxLAN GPE Operational Data From Honeycomb Should Be @@ -89,7 +99,9 @@ | TC07: Honeycomb can modify existing NSH map | | [Documentation] | Check if Honeycomb can configure an NSH map after one\ | | ... | has been deleted. +| | ... | | [Teardown] | Honeycomb removes NSH map | ${node} | map1_edit +| | ... | | Given NSH map from Honeycomb should not exist | ${node} | map1_edit | | And NSH entry from Honeycomb should be | | ... | ${node} | entry1 | ${nsh_entry1_oper} @@ -105,12 +117,14 @@ | TC08: Honeycomb can configure multiple NSH maps at the same time | | [Documentation] | Check if Honeycomb can configure and NSH map when one\ | | ... | already exists. +| | ... | | [Teardown] | Run Keywords | | ... | Honeycomb clears NSH configuration | ${node} | AND | | ... | Honeycomb removes VxLAN GPE interface | | ... | ${node} | ${vxlan_gpe_if1} | AND | | ... | Honeycomb removes VxLAN GPE interface | | ... | ${node} | ${vxlan_gpe_if2} +| | ... | | Given NSH map from Honeycomb should not exist | ${node} | map2 | | And NSH entry from Honeycomb should be | | ... | ${node} | entry1 | ${nsh_entry1_oper} diff --git a/tests/func/honeycomb/mgmt-cfg-pbb-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-pbb-apihc-apivat-func.robot index 4d7c8a21ef..a04932556a 100644 --- a/tests/func/honeycomb/mgmt-cfg-pbb-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-pbb-apihc-apivat-func.robot @@ -19,9 +19,12 @@ | Resource | resources/libraries/robot/honeycomb/honeycomb.robot | Resource | resources/libraries/robot/honeycomb/provider_backbone_bridge.robot | Variables | resources/test_data/honeycomb/pbb/pbb.py +| ... | Documentation | *Honeycomb provider backbone bridge test suite.* +| ... | Suite Teardown | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} +| ... | Force Tags | HC_FUNC *** Test Cases *** @@ -29,33 +32,33 @@ | TC01: Honeycomb sets PBB sub-interface | | [Documentation] | Honeycomb creates a new PBB sub-interface. | | ... -| | Honeycomb creates PBB sub interface | ${node} | ${super_if} +| | Honeycomb creates PBB sub-interface | ${node} | ${super_if} | | ... | ${cfg_pbb_sub_if_1} | TC02: Honeycomb modifies existing PBB sub-interface | | [Documentation] | Honeycomb modifies an existing PBB sub-interface. | | ... -| | Honeycomb creates PBB sub interface | ${node} | ${super_if} +| | Honeycomb creates PBB sub-interface | ${node} | ${super_if} | | ... | ${cfg_pbb_sub_if_1_mod} | TC03: Honeycomb deletes existing PBB sub-interface | | [Documentation] | Honeycomb deletes an existing PBB sub-interface. | | ... -| | Honeycomb Removes PBB sub interface +| | Honeycomb removes PBB sub-interface | | ... | ${node} | ${super_if} | TC04: Honeycomb fails to set wrong destination-address for new PBB sub-interface | | [Documentation] | Honeycomb fails to create a new PBB sub-interface with\ | | ... | wrong value of parameter destination-address, type yang:mac-address. | | ... -| | Honeycomb fails to create PBB sub interface | ${node} | ${super_if} +| | Honeycomb fails to create PBB sub-interface | ${node} | ${super_if} | | ... | ${cfg_pbb_sub_if_wrong_dst_addr} | TC05: Honeycomb fails to set wrong source-address for new PBB sub-interface | | [Documentation] | Honeycomb fails to create a new PBB sub-interface with\ | | ... | wrong value of parameter source-address, type yang:mac-address. | | ... -| | Honeycomb fails to create PBB sub interface | ${node} | ${super_if} +| | Honeycomb fails to create PBB sub-interface | ${node} | ${super_if} | | ... | ${cfg_pbb_sub_if_wrong_src_addr} | TC06: Honeycomb fails to set wrong b-vlan-tag-vlan-id for new PBB sub-interface @@ -63,7 +66,7 @@ | | ... | wrong value of parameter b-vlan-tag-vlan-id, type uint16, 12 bit\ | | ... | range, range 1..4095. | | ... -| | Honeycomb fails to create PBB sub interface | ${node} | ${super_if} +| | Honeycomb fails to create PBB sub-interface | ${node} | ${super_if} | | ... | ${cfg_pbb_sub_if_wrong_vlan_tag} | TC07: Honeycomb fails to set wrong i-tag-isid for new PBB sub-interface @@ -71,12 +74,12 @@ | | ... | wrong value of parameter i-tag-isid, type uint32, 24 bit range,\ | | ... | range 1..16777215. | | ... -| | Honeycomb fails to create PBB sub interface | ${node} | ${super_if} +| | Honeycomb fails to create PBB sub-interface | ${node} | ${super_if} | | ... | ${cfg_pbb_sub_if_wrong_i_tag} | TC08: Honeycomb fails to create new PBB sub-interface without vlan tag | | [Documentation] | Honeycomb fails to create a new PBB sub-interface without\ | | ... | parameter b-vlan-tag-vlan-id. | | ... -| | Honeycomb fails to create PBB sub interface | ${node} | ${super_if} +| | Honeycomb fails to create PBB sub-interface | ${node} | ${super_if} | | ... | ${cfg_pbb_sub_if_no_vlan_tag} diff --git a/tests/func/honeycomb/mgmt-cfg-pluginacl-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-pluginacl-apihc-apivat-func.robot index 7f96472474..f7d92fcc98 100644 --- a/tests/func/honeycomb/mgmt-cfg-pluginacl-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-pluginacl-apihc-apivat-func.robot @@ -42,10 +42,13 @@ | Library | resources.libraries.python.IPv4Util | Library | resources.libraries.python.IPv6Util | Library | resources.libraries.python.Routing +| ... | Test Setup | Clear Packet Trace on All DUTs | ${nodes} -| Suite Teardown -| ... | Restart Honeycomb and VPP | ${node} +| ... +| Suite Teardown | Restart Honeycomb and VPP | ${node} +| ... | Documentation | *Honeycomb access control lists test suite for ACL plugin.* +| ... | Force Tags | HC_FUNC *** Test Cases *** @@ -58,7 +61,9 @@ | | ... | [Ver] Send simple TCP packets from one TG interface to the other,\ | | ... | using different MACs. Receive all packets except those with\ | | ... | MACs in the filtered ranges. +| | ... | | [Teardown] | Bridged ACL test teardown +| | ... | | Given Setup Interfaces And Bridge Domain For plugin-acl Test | | ... | macip | ${acl_name_macip} | | When Honeycomb Creates ACL Chain Through ACL plugin @@ -91,7 +96,9 @@ | | ... | [Ver] Send simple TCP and UDP packets from one TG interface\ | | ... | to the other, using different IPv4 IPs. Receive all packets except\ | | ... | those with IPs in the filtered ranges and UDP protocol payload. +| | ... | | [Teardown] | Bridged ACL test teardown +| | ... | | Given Setup Interfaces And Bridge Domain For plugin-acl Test | | ... | l3_ip4 | ${acl_name_l3_ip4} | | When Honeycomb Creates ACL Chain Through ACL plugin @@ -125,7 +132,9 @@ | | ... | [Ver] Send simple TCP and UDP packets from one TG interface\ | | ... | to the other, using different IPv6 IPs. Receive all packets except\ | | ... | those with IPs in the filtered ranges and UDP protocol payload. +| | ... | | [Teardown] | Bridged ACL test teardown +| | ... | | Given Setup interfaces and bridge domain for plugin-acl test | | ... | l3_ip6 | ${acl_name_l3_ip6} | | When Honeycomb Creates ACL Chain Through ACL plugin @@ -159,7 +168,9 @@ | | ... | [Ver] Send simple TCP and UDP packets from one TG interface\ | | ... | to the other, using different ports. Receive all packets except\ | | ... | those with ports in the filtered ranges. +| | ... | | [Teardown] | Bridged ACL test teardown +| | ... | | Given Setup interfaces and bridge domain for plugin-acl test | | ... | L4 | ${acl_name_l4} | | When Honeycomb Creates ACL Chain Through ACL plugin @@ -194,7 +205,9 @@ | | ... | [Ver] Send simple TCP packets from one TG interface to the other,\ | | ... | using IPs and ports. Receive all packets except those with\ | | ... | both IPs and ports in the filtered ranges. +| | ... | | [Teardown] | Bridged ACL test teardown +| | ... | | Given Setup Interfaces And Bridge Domain For plugin-acl Test | | ... | mixed | ${acl_name_mixed} | | When Honeycomb Creates ACL Chain Through ACL plugin @@ -226,7 +239,9 @@ | | ... | [Ver] Send ICMP packets from one TG interface\ | | ... | to the other, using different codes and types. Receive all packets\ | | ... | except those with types and codes in the filtered ranges. +| | ... | | [Teardown] | Bridged ACL test teardown +| | ... | | Given Setup interfaces and bridge domain for plugin-acl test | | ... | icmp | ${acl_name_icmp} | | When Honeycomb Creates ACL Chain Through ACL plugin @@ -259,7 +274,9 @@ | | ... | [Ver] Send ICMPv6 packets from one TG interface\ | | ... | to the other, using different codes and types. Receive all packets\ | | ... | except those with the filtered type and code. +| | ... | | [Teardown] | Bridged ACL test teardown +| | ... | | Given Setup interfaces and bridge domain for plugin-acl test | | ... | icmpv6 | ${acl_name_icmpv6} | | When Honeycomb Creates ACL Chain Through ACL plugin @@ -294,7 +311,9 @@ | | ... | to VPP interface 2 and receive it from interface 1(this should create\ | | ... | a reflexive "permit" rule) Finally, send the original packet again\ | | ... | and receive it from interface 2. +| | ... | | [Teardown] | Bridged ACL test teardown +| | ... | | Given Setup Interfaces And Bridge Domain For plugin-acl Test | | ... | reflex | ${acl_name_reflex} | | When Honeycomb Creates ACL Chain Through ACL plugin @@ -337,7 +356,9 @@ | | ... | [Ver] Send simple TCP and UDP packets from one TG interface\ | | ... | to the other, using different IPv4 IPs. Receive all packets except\ | | ... | those with IPs in the filtered ranges and UDP protocol payload. +| | ... | | [Teardown] | Routed ACL test teardown - ipv4 +| | ... | | Given Setup Interface IPs And Routes For IPv4 plugin-acl Test | | ... | l3_ip4 | ${acl_name_l3_ip4} | | When Honeycomb Creates ACL Chain Through ACL plugin @@ -371,7 +392,9 @@ | | ... | [Ver] Send simple TCP and UDP packets from one TG interface\ | | ... | to the other, using different IPv6 IPs. Receive all packets except\ | | ... | those with IPs in the filtered ranges and UDP protocol payload. +| | ... | | [Teardown] | Routed ACL test teardown - ipv6 +| | ... | | Given Configure path in 2-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | And Import Variables | resources/test_data/honeycomb/plugin_acl.py @@ -420,7 +443,9 @@ | | ... | [Ver] Send simple TCP and UDP packets from one TG interface\ | | ... | to the other, using different ports. Receive all packets except\ | | ... | those with ports in the filtered ranges. +| | ... | | [Teardown] | Routed ACL test teardown - ipv4 +| | ... | | Given Setup Interface IPs And Routes For IPv4 plugin-acl Test | | ... | L4 | ${acl_name_l4} | | When Honeycomb Creates ACL Chain Through ACL plugin @@ -455,7 +480,9 @@ | | ... | [Ver] Send simple TCP packets from one TG interface to the other,\ | | ... | using IPs and ports. Receive all packets except those with\ | | ... | both IPs and ports in the filtered ranges. +| | ... | | [Teardown] | Routed ACL test teardown - ipv4 +| | ... | | Given Setup Interface IPs And Routes For IPv4 plugin-acl Test | | ... | mixed | ${acl_name_mixed} | | When Honeycomb Creates ACL Chain Through ACL plugin @@ -488,7 +515,9 @@ | | ... | [Ver] Send ICMP packets from one TG interface\ | | ... | to the other, using different codes and types. Receive all packets\ | | ... | except those with the filtered type and code. +| | ... | | [Teardown] | Routed ACL test teardown - ipv4 +| | ... | | Given Setup Interface IPs And Routes For IPv4 plugin-acl Test | | ... | icmp | ${acl_name_icmp} | | When Honeycomb Creates ACL Chain Through ACL plugin @@ -522,7 +551,9 @@ | | ... | [Ver] Send ICMPv6 packets from one TG interface\ | | ... | to the other, using different codes and types. Receive all packets\ | | ... | except those with the filtered type and code. +| | ... | | [Teardown] | Routed ACL test teardown - ipv6 +| | ... | | Given Configure path in 2-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | And Import Variables | resources/test_data/honeycomb/plugin_acl.py @@ -573,7 +604,9 @@ | | ... | to VPP interface 2 and receive it from interface 1(this should create\ | | ... | a reflexive "permit" rule) Finally, send the original packet again\ | | ... | and receive it from interface 2. +| | ... | | [Teardown] | Routed ACL test teardown - ipv4 +| | ... | | Given Setup Interface IPs And Routes For IPv4 plugin-acl Test | | ... | reflex | ${acl_name_reflex} | | And Add ARP on DUT @@ -615,7 +648,9 @@ | Setup interface IPs and routes for IPv4 plugin-acl test | | [Documentation] | Import test variables, set interfaces up, | | ... | configure IPv4 addresses, add neighbor entry and routes. +| | ... | | [Arguments] | ${test_data_id} | ${acl_name} +| | ... | | Configure path in 2-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | Import Variables | resources/test_data/honeycomb/plugin_acl.py @@ -637,13 +672,15 @@ | Setup interfaces and bridge domain for plugin-acl test | | [Documentation] | Import test variables, set interfaces up and bridge them. +| | ... | | [Arguments] | ${test_data_id} | ${acl_name} +| | ... | | Configure path in 2-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | Import Variables | resources/test_data/honeycomb/plugin_acl.py | | ... | ${test_data_id} | ${acl_name} -| | Honeycomb Sets Interface State | ${dut_node} | ${dut_to_tg_if1} | up -| | Honeycomb Sets Interface State | ${dut_node} | ${dut_to_tg_if2} | up +| | Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if1} | up +| | Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if2} | up | | Honeycomb Creates first L2 Bridge Domain | | ... | ${dut_node} | ${bd_name} | ${bd_settings} | | Honeycomb Adds Interfaces To Bridge Domain @@ -653,26 +690,29 @@ | Bridged ACL test teardown | | [Documentation] | Log packet trace and ACL settings, | | ... | then clean up bridge domains. +| | ... | | Show Packet Trace on All DUTs | ${nodes} | | Read plugin-ACL configuration from VAT | ${node} -| | Clear plugin-acl Settings | ${node} | ${dut_to_tg_if1} +| | Clear plugin-ACL configuration | ${node} | ${dut_to_tg_if1} | | Honeycomb Removes All Bridge Domains | | ... | ${node} | ${dut_to_tg_if1} | ${dut_to_tg_if2} | Routed ACL test teardown - ipv4 | | [Documentation] | Log packet trace and ACL settings, | | ... | then clean up IPv4 addresses and neighbors. +| | ... | | Show Packet Trace on All DUTs | ${nodes} | | Read plugin-ACL configuration from VAT | ${node} -| | Clear plugin-acl Settings | ${node} | ${dut_to_tg_if1} +| | Clear plugin-ACL configuration | ${node} | ${dut_to_tg_if1} | | Honeycomb removes interface IPv4 addresses | ${node} | ${dut_to_tg_if1} | | Honeycomb clears all interface IPv4 neighbors | ${node} | ${dut_to_tg_if1} | Routed ACL test teardown - ipv6 | | [Documentation] | Log packet trace and ACL settings, | | ... | then clean up IPv6 addresses and neighbors. +| | ... | | Show Packet Trace on All DUTs | ${nodes} -| | Clear plugin-acl Settings | ${node} | ${dut_to_tg_if1} +| | Clear plugin-ACL configuration | ${node} | ${dut_to_tg_if1} | | Read plugin-ACL configuration from VAT | ${node} | | Honeycomb removes interface IPv6 addresses | ${node} | ${dut_to_tg_if1} | | Honeycomb clears all interface IPv6 neighbors | ${node} | ${dut_to_tg_if1} diff --git a/tests/func/honeycomb/mgmt-cfg-policer-apihc-func.robot b/tests/func/honeycomb/mgmt-cfg-policer-apihc-func.robot index d9b6aaaa9c..1fe4847f23 100644 --- a/tests/func/honeycomb/mgmt-cfg-policer-apihc-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-policer-apihc-func.robot @@ -29,15 +29,19 @@ | Resource | resources/libraries/robot/testing_path.robot | Library | resources.libraries.python.Trace | Variables | resources/test_data/honeycomb/policer_variables.py +| ... | Suite Teardown | ... | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} +| ... | Force Tags | HC_FUNC +| ... | Documentation | *Honeycomb Policer management test suite.* *** Test Cases *** | TC01: Honeycomb can configure Policer | | [Documentation] | Checks if Honeycomb can configure Policer. +| | ... | | Given Policer Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb configures Policer | ${node} | ${policer_data} | | Then Policer Operational Data From Honeycomb Should Be | ${node} @@ -45,6 +49,7 @@ | TC02: Honeycomb can disable Policer | | [Documentation] | Checks if Honeycomb can disable Policer. +| | ... | | Given Policer Operational Data From Honeycomb Should Be | ${node} | | ... | ${policer_data_oper} | | When Honeycomb removes Policer configuration | ${node} @@ -53,7 +58,9 @@ | TC03: Honeycomb can configure Policer with increased values of CIR (900kbps) | | [Documentation] | Checks if Honeycomb can configure Policer\ | | ... | with increased values of CIR. +| | ... | | [Teardown] | Tear down policer test | ${node} +| | ... | | Given Policer Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb configures Policer | ${node} | ${policer_data_2} | | Then Policer Operational Data From Honeycomb Should Be | ${node} @@ -62,23 +69,26 @@ | TC04: Honeycomb can configure Packets-Per-Second Based Policer | | [Documentation] | Checks if Honeycomb can configure Policer\ | | ... | based on rate-type measured in pps. +| | ... | | [Teardown] | Tear down policer test | ${node} +| | ... | | Given Policer Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb configures Policer | ${node} | ${policer_data_3} | | Then Policer Operational Data From Honeycomb Should Be | ${node} | | ... | ${policer_data_oper_3} | TC05: Configure Policer on Interface -| | [Documentation] | Honeycomb can configure Policer\ -| | ... | on a given interface. +| | [Documentation] | Honeycomb can configure Policer on a given interface. +| | ... | | [Teardown] | Run Keywords | | ... | Honeycomb disables Policer on interface | ${node} | ${interface} | AND -| | ... | Honeycomb removes ACL session -| | ... | ${node} | ${acl_tables['hc_acl_table']['name']} +| | ... | Honeycomb removes ACL session | ${node} +| | ... | ${acl_tables['hc_acl_table']['name']} | | ... | ${acl_tables['hc_acl_session']['match']} | AND | | ... | Honeycomb removes ACL table | ${node} | | ... | ${acl_tables['hc_acl_table']['name']} | AND | | ... | Tear down policer test | ${node} +| | ... | | Given Honeycomb configures Policer | ${node} | ${policer_data} | | And ACL table from Honeycomb should not exist | | ... | ${node} | ${acl_tables['hc_acl_table']['name']} @@ -99,7 +109,9 @@ | | ... | [Ver] TG sends IPv4 TCP packet on the first link to DUT1.\ | | ... | Packet on DUT1 is marked with DSCP tag. Verifies if DUT1 sends\ | | ... | correct IPv4 TCP packet with correct DSCP on the second link to TG. +| | ... | | [Teardown] | Show Packet Trace on All DUTs | ${nodes} +| | ... | | Given Configure path in 2-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | And Honeycomb configures Policer | ${dut_node} | ${policer_data_3} @@ -112,8 +124,10 @@ | | ... | ${acl_tables['hc_acl_session']} | | And Honeycomb enables policer on interface | | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_tables['hc_acl_table']['name']} -| | And Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if1} | up -| | And Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if2} | up +| | And Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if1} +| | ... | up +| | And Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if2} +| | ... | up | | And Honeycomb sets interface IPv4 address with prefix | ${dut_node} | | ... | ${dut_to_tg_if1} | ${dut_to_tg_if1_ip} | ${prefix_length} | | And Honeycomb sets interface IPv4 address with prefix | ${dut_node} diff --git a/tests/func/honeycomb/mgmt-cfg-proxyarp-apihc-func.robot b/tests/func/honeycomb/mgmt-cfg-proxyarp-apihc-func.robot index 056771512f..26f73b054c 100644 --- a/tests/func/honeycomb/mgmt-cfg-proxyarp-apihc-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-proxyarp-apihc-func.robot @@ -30,24 +30,31 @@ | Resource | resources/libraries/robot/ipv4.robot | Resource | resources/libraries/robot/traffic.robot | Library | resources.libraries.python.Trace +| ... | Suite Teardown | ... | Run Keyword If Any Tests Failed | ... | Restart Honeycomb And VPP | ${node} +| ... | Force Tags | HC_FUNC +| ... | Documentation | *Honeycomb proxyARP management test suite.* *** Test Cases *** # TODO: Add operational data and VAT dump verification if/when avaliable | TC01: Honeycomb can configure ipv4 proxyARP | | [Documentation] | Check if Honeycomb can configure the proxyARP feature. +| | ... | | [Teardown] | Honeycomb removes proxyARP configuration | ${node} +| | ... | | Honeycomb configures proxyARP | ${node} | ${proxyarp_settings_ipv4} | TC02: Honeycomb can enable proxyarp on an interface | | [Documentation] | Check if Honeycomb can enable the proxyARP feature\ | | ... | on an interface. +| | ... | | [Teardown] | Honeycomb disables proxyARP on interface | | ... | ${node} | ${interface} +| | ... | | Honeycomb enables proxyARP on interface | ${node} | ${interface} | TC03: DUT sends ARP reply on behalf of another machine from the IP range @@ -59,6 +66,7 @@ | | ... | [Ver] Make TG send ARP request to DUT1 interface, | | ... | verify if DUT1 sends correct ARP reply on behalf of machine whose | | ... | IP is in the configured range. +| | ... | | [Teardown] | Run Keywords | | ... | Show Packet Trace on all DUTs | ${nodes} | | ... | AND | Honeycomb removes proxyARP configuration | ${node} @@ -66,6 +74,7 @@ | | ... | ${dut_node} | ${dut_to_tg_if1} | down | | ... | AND | Honeycomb removes interface IPv4 addresses | | ... | ${node} | ${interface} +| | ... | | Given Configure path in 2-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | ${dut_to_tg_name}= | Get interface name | ${dut_node} | ${dut_to_tg_if1} @@ -76,5 +85,5 @@ | | When Honeycomb configures proxyARP | ${dut_node} | ${proxyarp_settings_ipv4} | | And Honeycomb enables proxyARP on interface | ${node} | ${dut_to_tg_name} | | Then Send ARP Request | ${tg_node} | ${tg_to_dut_name} -| | ... | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_mac} -| | ... | ${tg_to_dut_ip} | ${test_ip} +| | ... | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_mac} +| | ... | ${tg_to_dut_ip} | ${test_ip} diff --git a/tests/func/honeycomb/mgmt-cfg-proxynd6-apihc-func.robot b/tests/func/honeycomb/mgmt-cfg-proxynd6-apihc-func.robot index abc03c04f4..6c718e705a 100644 --- a/tests/func/honeycomb/mgmt-cfg-proxynd6-apihc-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-proxynd6-apihc-func.robot @@ -34,15 +34,20 @@ | Resource | resources/libraries/robot/traffic.robot | Resource | resources/libraries/robot/dhcp_proxy.robot | Library | resources.libraries.python.Trace +| ... | Test Setup | Clear Packet Trace on All DUTs | ${nodes} +| ... | Suite Teardown | Restart Honeycomb And VPP | ${node} +| ... | Force Tags | HC_FUNC +| ... | Documentation | *Honeycomb IPv6 neighbor discovery proxy test suite.* *** Test Cases *** | TC01: Honeycomb can configure IPv6 ND proxy on an interface | | [Documentation] | Check if Honeycomb can configure the IPv6 ND proxy\ | | ... | feature on an interface. +| | ... | | Given IPv6 ND proxy from Honeycomb should be empty | ${node} | ${interface} | | And Honeycomb configures interface state | ${node} | ${interface} | up | | When Honeycomb configures IPv6 ND proxy on interface @@ -53,6 +58,7 @@ | TC02: Honeycomb can disable IPv6 ND proxy on an interface | | [Documentation] | Check if Honeycomb can remove IPv6 ND proxy feature\ | | ... | configuration from an interface. +| | ... | | Given IPv6 ND proxy from Honeycomb should be | | ... | ${node} | ${interface} | ${test_dst_ip} | | When Honeycomb disables IPv6 ND proxy on interface | ${node} | ${interface} @@ -61,8 +67,10 @@ | TC03: Honeycomb can configure multiple IPv6 ND proxies on an interface | | [Documentation] | Check if Honeycomb can configure two ND proxies\ | | ... | on one interface. +| | ... | | [Teardown] | Honeycomb disables IPv6 ND proxy on interface | | ... | ${node} | ${interface} +| | ... | | Given IPv6 ND proxy from Honeycomb should be empty | ${node} | ${interface} | | And Honeycomb configures interface state | ${node} | ${interface} | up | | When Honeycomb configures IPv6 ND proxy on interface @@ -85,6 +93,7 @@ | | ... | Show Packet Trace on All DUTs | ${nodes} | AND | | ... | Honeycomb disables IPv6 ND proxy on interface | | ... | ${dut_node} | ${dut_to_tg_if2} +| | ... | | Given Configure path in 2-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if1} | up diff --git a/tests/func/honeycomb/mgmt-cfg-routing-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-routing-apihc-apivat-func.robot index e0544f71bb..be151c347a 100644 --- a/tests/func/honeycomb/mgmt-cfg-routing-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-routing-apihc-apivat-func.robot @@ -21,11 +21,15 @@ | Resource | resources/libraries/robot/honeycomb/honeycomb.robot | Resource | resources/libraries/robot/honeycomb/interfaces.robot | Resource | resources/libraries/robot/honeycomb/routing.robot +| ... | Test Setup | Clear Packet Trace on All DUTs | ${nodes} +| ... | Suite Teardown | Restart Honeycomb And VPP | ${node} -| Test Teardown | Honeycomb routing test teardown -| ... | ${node} | ${table} +| ... +| Test Teardown | Honeycomb routing test teardown | ${node} | ${table} +| ... | Documentation | *Honeycomb routing test suite.* +| ... | Force Tags | HC_FUNC *** Test Cases *** @@ -37,6 +41,7 @@ | | ... | interfaces and configure route with TG-if2 as next-hop. | | ... | [Ver] Send ICMP packet from first TG interface to configured route | | ... | destination. Receive packet on the second TG interface. +| | ... | | ${table}= | Set Variable | table1 | | Given Setup interfaces and neighbors for IPv4 routing test | | When Honeycomb configures routing table @@ -58,6 +63,7 @@ | | ... | route destination. Receive all packets on the second TG interface and\ | | ... | verify that each destination MAC was used by exactly 50 packets. | | ... | Receive packet on the second TG interface. +| | ... | | ${table}= | Set Variable | table2 | | Given Setup interfaces and neighbors for IPv4 routing test | | And Honeycomb adds interface IPv4 neighbor | ${dut_node} | ${dut_to_tg_if2} @@ -83,6 +89,7 @@ | | ... | [Ver] Send ICMP packet from first TG interface to configured route | | ... | destination. Make sure no packet is received on the second TG\ | | ... | interface. +| | ... | | ${table}= | Set Variable | table3 | | Given Setup interfaces and neighbors for IPv4 routing test | | When Honeycomb configures routing table @@ -103,6 +110,7 @@ | | ... | interfaces and configure route with TG-if2 as next-hop. | | ... | [Ver] Send ICMP packet from first TG interface to configured route | | ... | destination. Receive packet on the second TG interface. +| | ... | | ${table}= | Set Variable | table4 | | Given Setup interfaces and neighbors for IPv6 routing test | | When Honeycomb configures routing table @@ -124,6 +132,7 @@ | | ... | route destination. Receive all packets on the second TG interface and\ | | ... | verify that each destination MAC was used by exactly 50 packets. | | ... | Receive packet on the second TG interface. +| | ... | | ${table}= | Set Variable | table5 | | Given Setup interfaces and neighbors for IPv6 routing test | | And Honeycomb adds interface IPv6 neighbor | ${dut_node} | ${dut_to_tg_if2} @@ -149,6 +158,7 @@ | | ... | [Ver] Send ICMP packet from first TG interface to configured route | | ... | destination. Make sure no packet is received on the second TG\ | | ... | interface. +| | ... | | ${table}= | Set Variable | table6 | | Given Setup interfaces and neighbors for IPv6 routing test | | When Honeycomb configures routing table @@ -202,13 +212,17 @@ | | Vpp all ra suppress link layer | ${nodes} | Honeycomb routing test teardown +| | ... | | [arguments] | ${node} | ${routing_table} +| | ... | | Show Packet Trace on All DUTs | ${nodes} | | Log routing configuration from VAT | ${node} | | Honeycomb removes routing configuration | ${node} | ${routing_table} | Setup vrf IDs +| | ... | | [Arguments] | ${node} | ${interface} | ${vrf} +| | ... | | Honeycomb sets interface VRF ID | | ... | ${node} | ${interface} | ${vrf} | ipv4 | | Honeycomb sets interface VRF ID diff --git a/tests/func/honeycomb/mgmt-cfg-slaac-apihc-func.robot b/tests/func/honeycomb/mgmt-cfg-slaac-apihc-func.robot index abcd86e95d..c5533c27d0 100644 --- a/tests/func/honeycomb/mgmt-cfg-slaac-apihc-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-slaac-apihc-func.robot @@ -22,16 +22,21 @@ | Resource | resources/libraries/robot/honeycomb/slaac.robot | Resource | resources/libraries/robot/testing_path.robot | Resource | resources/libraries/robot/traffic.robot +| ... | Suite Teardown | ... | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} +| ... | Force Tags | HC_FUNC +| ... | Documentation | *Honeycomb SLAAC management test suite.* +| ... | Variables | resources/test_data/honeycomb/slaac_variables.py *** Test Cases *** | TC01: Honeycomb can configure SLAAC | | [Documentation] | Checks if Honeycomb can congigure SLAAC. +| | ... | | Given SLAAC Operational Data From Honeycomb Should Be empty | ${node} | | ... | ${interface} | | And InterfaceAPI.Set Interface State | ${node} | ${interface} | up @@ -43,6 +48,7 @@ | TC02: Honeycomb can disable SLAAC | | [Documentation] | Checks if Honeycomb can disable SLAAC. +| | ... | | Given SLAAC Operational Data From Honeycomb Should Be | ${node} | | ... | ${interface} | ${slaac_data} | | When Honeycomb removes SLAAC configuration | ${node} | ${interface} @@ -51,7 +57,9 @@ | TC03: Honeycomb can configure SLAAC with suppress link layer disabled | | [Documentation] | Checks if Honeycomb can congigure SLAAC. +| | ... | | [Teardown] | SLAAC test teardown | ${node} | ${interface} +| | ... | | Given SLAAC Operational Data From Honeycomb Should Be empty | ${node} | | ... | ${interface} | | And InterfaceAPI.Set Interface State | ${node} | ${interface} | up @@ -64,41 +72,47 @@ | TC04: Honeycomb can configure SLAAC with sending RA packets disabled | | [Documentation] | Checks if Honeycomb can configure SLAAC\ | | ... | with given settings. +| | ... | | [Teardown] | SLAAC test teardown | ${node} | ${interface} +| | ... | | Given SLAAC Operational Data From Honeycomb Should Be empty | ${node} | | ... | ${interface} | | And InterfaceAPI.Set Interface State | ${node} | ${interface} | up | | And Honeycomb sets interface IPv6 address | ${node} | ${interface} | | ... | ${address} | ${prefix} | | When Honeycomb configures SLAAC | ${node} | ${interface} | ${slaac_data_01} -| | Then SLAAC Operational Data From Honeycomb Should Be | ${node} | ${interface} -| | ... | ${slaac_data_01} +| | Then SLAAC Operational Data From Honeycomb Should Be | ${node} +| | ... | ${interface} | ${slaac_data_01} | TC05: Honeycomb can configure SLAAC with min interval values | | [Documentation] | Checks if Honeycomb can configure SLAAC\ | | ... | with given settings. +| | ... | | [Teardown] | SLAAC test teardown | ${node} | ${interface} +| | ... | | Given SLAAC Operational Data From Honeycomb Should Be empty | ${node} | | ... | ${interface} | | And InterfaceAPI.Set Interface State | ${node} | ${interface} | up | | And Honeycomb sets interface IPv6 address | ${node} | ${interface} | | ... | ${address} | ${prefix} | | When Honeycomb configures SLAAC | ${node} | ${interface} | ${slaac_data_02} -| | Then SLAAC Operational Data From Honeycomb Should Be | ${node} | ${interface} -| | ... | ${slaac_data_02} +| | Then SLAAC Operational Data From Honeycomb Should Be | ${node} +| | ... | ${interface} | ${slaac_data_02} | TC06: Honeycomb can configure SLAAC with max interval values | | [Documentation] | Checks if Honeycomb can configure SLAAC\ | | ... | with given settings. +| | ... | | [Teardown] | SLAAC test teardown | ${node} | ${interface} +| | ... | | Given SLAAC Operational Data From Honeycomb Should Be empty | ${node} | | ... | ${interface} | | And InterfaceAPI.Set Interface State | ${node} | ${interface} | up | | And Honeycomb sets interface IPv6 address | ${node} | ${interface} | | ... | ${address} | ${prefix} | | When Honeycomb configures SLAAC | ${node} | ${interface} | ${slaac_data_03} -| | Then SLAAC Operational Data From Honeycomb Should Be | ${node} | ${interface} -| | ... | ${slaac_data_03} +| | Then SLAAC Operational Data From Honeycomb Should Be | ${node} +| | ... | ${interface} | ${slaac_data_03} | TC07: DUT retransmits RA on IPv6 enabled interface after a set interval | | [Documentation] @@ -106,12 +120,15 @@ | | ... | [Cfg] On DUT1 configure IPv6 interface on the link to TG. | | ... | [Ver] Make TG wait for two IPv6 Router Advertisement packets\ | | ... | to be sent by DUT1 and verify the received RA packets are correct. +| | ... | | [Teardown] | SLAAC test teardown | ${dut_node} | ${dut_to_tg_if1} +| | ... | | Given Configure path in 2-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | And Honeycomb sets interface IPv6 address | | ... | ${dut_node} | ${dut_to_tg_if1} | ${address} | ${prefix} -| | And Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if1} | up +| | And Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if1} +| | ... | up | | When Honeycomb configures SLAAC | ${dut_node} | ${dut_to_tg_if1} | | ... | ${slaac_data} | | :FOR | ${n} | IN RANGE | ${2} diff --git a/tests/func/honeycomb/mgmt-cfg-snat44-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-snat44-apihc-apivat-func.robot index d765f1e4e9..3c6be394c3 100644 --- a/tests/func/honeycomb/mgmt-cfg-snat44-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-snat44-apihc-apivat-func.robot @@ -19,14 +19,18 @@ | Resource | resources/libraries/robot/honeycomb/nat.robot | Resource | resources/libraries/robot/honeycomb/honeycomb.robot | Variables | resources/test_data/honeycomb/nat.py | ${node} | ${interface} +| ... | Documentation | *Honeycomb NAT test suite.* +| ... | Suite Teardown | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} +| ... | Force Tags | HC_FUNC *** Test Cases *** | TC01: Honeycomb configures NAT entry | | [Documentation] | Honeycomb configures a static NAT entry. +| | ... | | Given NAT Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${nat_empty} | | When Honeycomb Configures NAT Entry | ${node} | ${entry1} @@ -34,6 +38,7 @@ | TC02: Honeycomb removes NAT entry | | [Documentation] | Honeycomb removes a configured static NAT entry. +| | ... | | Given NAT Entries From Honeycomb Should Be | ${node} | ${entry1} | | When Honeycomb Configures NAT Entry | ${node} | ${NONE} | | Then NAT Operational Data From Honeycomb Should Be empty @@ -41,7 +46,9 @@ | TC03: Honeycomb configures multiple NAT entries | | [Documentation] | Honeycomb configures two static NAT entries. +| | ... | | [Teardown] | Honeycomb Configures NAT Entry | ${node} | ${NONE} +| | ... | | Given NAT Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${nat_empty} | | When Honeycomb Configures NAT Entry | ${node} | ${entry1} | ${0} | ${1} @@ -52,6 +59,7 @@ | TC04: Honeycomb enables NAT on interface - inbound | | [Documentation] | Honeycomb configures NAT on an interface\ | | ... | in inbound direction. +| | ... | | Given NAT Interface Operational Data From Honeycomb Should Be Empty | | ... | ${node} | ${interface} | inbound | | And NAT Interface Operational Data From Honeycomb Should Be Empty @@ -65,6 +73,7 @@ | TC05: Honeycomb removes NAT interface configuration | | [Documentation] | Honeycomb removes NAT configuration from an interface. +| | ... | | Given NAT Interface Operational Data From Honeycomb Should Be | | ... | ${node} | ${interface} | inbound | | And NAT Interface Operational Data From Honeycomb Should Be empty @@ -79,8 +88,10 @@ | TC06: Honeycomb enables NAT on interface - outbound | | [Documentation] | Honeycomb configures NAT on an interface\ | | ... | in outbound direction. +| | ... | | [Teardown] | Honeycomb removes NAT interface configuration | | ... | ${node} | ${interface} | outbound +| | ... | | Given NAT Interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${interface} | inbound | | And NAT Interface Operational Data From Honeycomb Should Be empty diff --git a/tests/func/honeycomb/mgmt-cfg-spanrx-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-spanrx-apihc-apivat-func.robot index b2adb871c5..e7fe2eb94e 100644 --- a/tests/func/honeycomb/mgmt-cfg-spanrx-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-spanrx-apihc-apivat-func.robot @@ -24,9 +24,13 @@ | ... | ${node['interfaces']['port3']['name']} | ... | local0 | Variables | resources/test_data/honeycomb/sub_interfaces.py +| ... | Force Tags | HC_FUNC +| ... | Suite Setup | Add Interface local0 To Topology | ${node} +| ... | Suite Teardown | Restart Honeycomb and VPP | ${node} +| ... | Documentation | *Honeycomb port mirroring test suite.* *** Test Cases *** @@ -86,6 +90,7 @@ | | ... | ${node} | ${interface1} | AND | | ... | Honeycomb removes interface SPAN configuration | | ... | ${node} | ${interface2} +| | ... | | When Honeycomb configures SPAN on interface | | ... | ${node} | ${interface1} | ${settings_if2} | | And Honeycomb configures SPAN on interface @@ -112,10 +117,13 @@ | | ... | ${dut_node} | ${dut_to_tg_if1} | AND | | ... | Honeycomb removes interface SPAN configuration | | ... | ${node} | ${dut_to_tg_if2} +| | ... | | Given Configure path in 2-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} -| | And Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if1} | up -| | And Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if2} | up +| | And Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if1} +| | ... | up +| | And Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if2} +| | ... | up | | And Honeycomb sets interface IPv4 address with prefix | ${dut_node} | | ... | ${dut_to_tg_if1} | ${dut_to_tg_if1_ip} | ${prefix} | | And Honeycomb adds interface IPv4 neighbor | ${dut_node} | ${dut_to_tg_if1} @@ -196,6 +204,7 @@ | | ... | ${node} | ${interface1} | ${1} | AND | | ... | Honeycomb removes sub-interface SPAN configuration | | ... | ${node} | ${interface2} | ${1} +| | ... | | Given Honeycomb creates sub-interface | ${node} | ${interface2} | | ... | ${sub_if_2_match} | ${sub_if_2_tags} | ${sub_if_2_settings} | | When Honeycomb Configures SPAN on sub-interface @@ -218,12 +227,15 @@ | | ... | on the sub-interface. | | ... | | [Teardown] | Show Packet Trace on All DUTs | ${nodes} +| | ... | | Given Configure path in 2-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | And Sub-interface state from Honeycomb should be | | ... | ${dut_node} | ${interface1} | ${1} | down | up -| | And Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if1} | up -| | And Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if2} | up +| | And Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if1} +| | ... | up +| | And Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if2} +| | ... | up | | And Honeycomb sets the sub-interface up | | ... | ${dut_node} | ${dut_to_tg_if1} | ${1} | | And Honeycomb sets interface IPv4 address with prefix | ${dut_node} diff --git a/tests/func/honeycomb/mgmt-cfg-vxlan-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-vxlan-apihc-apivat-func.robot index 409eb13d21..7d0f5af665 100644 --- a/tests/func/honeycomb/mgmt-cfg-vxlan-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-vxlan-apihc-apivat-func.robot @@ -32,14 +32,18 @@ | Resource | resources/libraries/robot/honeycomb/vxlan.robot # import additional VxLAN settings from resource file | Variables | resources/test_data/honeycomb/vxlan.py +| ... | Force Tags | HC_FUNC +| ... | Suite Teardown | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} +| ... | Documentation | *Honeycomb VxLAN management test suite.* *** Test Cases *** | TC01: Honeycomb configures VxLAN tunnel | | [Documentation] | Check if Honeycomb API can configure VxLAN settings. +| | ... | | Given VxLAN Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vx_interface} | | And VxLAN Operational Data From VAT Should Be empty | ${node} @@ -55,6 +59,7 @@ | TC02: Honeycomb disables VxLAN tunnel | | [Documentation] | Check if Honeycomb API can reset VxLAN configuration. +| | ... | | Given VxLAN Operational Data From Honeycomb Should Be | | ... | ${node} | ${vx_interface} | ${vxlan_settings} | | And Honeycomb should not show disabled interface in oper data @@ -71,8 +76,10 @@ | TC03: Honeycomb can configure VXLAN tunnel after one has been disabled | | [Documentation] | Check if Honeycomb API can configure VxLAN settings again\ | | ... | after previous settings have been removed. +| | ... | | [Teardown] | Honeycomb removes VxLAN tunnel settings | | ... | ${node} | ${vx_interface} +| | ... | | Given VxLAN Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vx_interface} | | And Honeycomb should show disabled interface in oper data @@ -90,6 +97,7 @@ | TC04: Honeycomb does not set VxLAN configuration on another interface type | | [Documentation] | Check if Honeycomb API prevents setting VxLAN\ | | ... | on incorrect interface. +| | ... | | Given VxLAN Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${interface} | | And VxLAN Operational Data From VAT Should Be empty | ${node} @@ -103,6 +111,7 @@ | TC05: Honeycomb does not set invalid VxLAN configuration | | [Documentation] | Check if Honeycomb API prevents setting incorrect VxLAN\ | | ... | settings. +| | ... | | Given VxLAN Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vx_interface} | | And VxLAN Operational Data From VAT Should Be empty | ${node} @@ -114,8 +123,10 @@ | TC06: Honeycomb configures VxLAN tunnel with ipv6 | | [Documentation] | Check if Honeycomb API can configure VxLAN with\ | | ... | ipv6 settings. +| | ... | | [Teardown] | Honeycomb removes VxLAN tunnel settings | | ... | ${node} | ${vx_interface} +| | ... | | Given VxLAN Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vx_interface} | | And VxLAN Operational Data From VAT Should Be empty | ${node} diff --git a/tests/func/honeycomb/mgmt-cfg-vxlangpe-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-vxlangpe-apihc-apivat-func.robot index 253cd6ab05..8dd884af71 100644 --- a/tests/func/honeycomb/mgmt-cfg-vxlangpe-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-vxlangpe-apihc-apivat-func.robot @@ -38,10 +38,12 @@ | Resource | resources/libraries/robot/honeycomb/vxlan_gpe.robot # Import additional VxLAN GPE settings from resource file | Variables | resources/test_data/honeycomb/vxlan_gpe.py +| ... | Documentation | *Honeycomb VxLAN-GPE management test suite.* -| Force Tags | HC_FUNC -| Suite Setup -| ... | Restart Honeycomb and VPP | ${node} +| ... +#| Force Tags | HC_FUNC +| ... +| Suite Setup | Restart Honeycomb and VPP | ${node} *** Test Cases *** | TC01: Honeycomb creates VxLAN GPE tunnel diff --git a/tests/func/honeycomb/mgmt-notif-apihcnc-func.robot b/tests/func/honeycomb/mgmt-notif-apihcnc-func.robot index 7daa08bc85..2f834ac4b6 100644 --- a/tests/func/honeycomb/mgmt-notif-apihcnc-func.robot +++ b/tests/func/honeycomb/mgmt-notif-apihcnc-func.robot @@ -24,13 +24,17 @@ | Resource | resources/libraries/robot/honeycomb/interfaces.robot | Resource | resources/libraries/robot/honeycomb/tap.robot | Resource | resources/libraries/robot/honeycomb/notifications.robot +| ... | Suite Setup | Run keywords | ... | Honeycomb configures interface state | ... | ${node} | ${interface} | down | AND | ... | Honeycomb creates TAP interface | ... | ${node} | ${tap_interface} | ${tap_settings} +| ... | Documentation | *Honeycomb notifications test suite.* +| ... | Force Tags | HC_FUNC +| ... | Suite Teardown | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} @@ -38,6 +42,7 @@ | TC01: Honeycomb sends notification on interface state change | | [Documentation] | Check if Honeycomb sends a state-changed notification\ | | ... | when the state of an interface is changed. +| | ... | | Given Interface state from Honeycomb should be | | ... | ${node} | ${interface} | down | | And Interface state from VAT should be | ${node} | ${interface} | down @@ -50,6 +55,7 @@ | TC02: Honeycomb sends notification on interface deletion | | [Documentation] | Check if Honeycomb sends an interface-deleted notification | | ... | when an interface is deleted. +| | ... | | Given TAP Operational Data From Honeycomb Should Be | | ... | ${node} | ${tap_interface} | ${tap_settings} | | And TAP Operational Data From VAT Should Be diff --git a/tests/func/honeycomb/mgmt-statepersist-apihc-func.robot b/tests/func/honeycomb/mgmt-statepersist-apihc-func.robot index f5f9673230..90ed077533 100644 --- a/tests/func/honeycomb/mgmt-statepersist-apihc-func.robot +++ b/tests/func/honeycomb/mgmt-statepersist-apihc-func.robot @@ -21,11 +21,15 @@ | Resource | resources/libraries/robot/honeycomb/interfaces.robot | Resource | resources/libraries/robot/honeycomb/bridge_domain.robot | Resource | resources/libraries/robot/honeycomb/l2_fib.robot +| ... | Suite Setup | Run Keywords | ... | Configure Persistence | ${node} | enable | AND | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| ... | Suite Teardown | Configure Persistence | ${node} | disable +| ... | Force Tags | HC_PERSIST | HC_REST_ONLY +| ... | Documentation | *Honeycomb configuration persistence test suite.* *** Test Cases *** @@ -34,21 +38,27 @@ | TC01: Honeycomb persists configuration through restart of both Honeycomb and VPP | | [Documentation] | Checks if Honeycomb maintains configuration after both\ | | ... | Restart Honeycomb and VPP. +| | ... | | [Tags] | HC_FUNC +| | ... | | [Teardown] | | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | ... | | Given Multi-Feature Persistence test configuration | ${node} | ${interface} | | And Multi-Feature persistence Test Verification | ${node} | ${interface} | | And Log persisted configuration on node | ${node} -| | When Restart Honeycomb and VPP | ${node} +| | When Restart Honeycomb and VPP in pesistence test | ${node} | | Then Multi-Feature persistence Test Verification | ${node} | ${interface} | TC02: Honeycomb reverts to defaults if persistence files are invalid | | [Documentation] | Checks if Honeycomb reverts to default configuration when\ | | ... | persistence files are damaged or invalid. +| | ... | | [Tags] | HC_FUNC +| | ... | | [Teardown] | | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | ... | | Given Multi-Feature Persistence test configuration | ${node} | ${interface} | | And Multi-Feature persistence Test Verification | ${node} | ${interface} | | When Persistence file is damaged during restart | ${node} @@ -57,8 +67,10 @@ | TC03: Honeycomb persists configuration through restart of Honeycomb | | [Documentation] | Checks if Honeycomb maintains configuration after it\ | | ... | is restarted. +| | ... | | [Teardown] | | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | ... | | Given Multi-Feature Persistence test configuration | ${node} | ${interface} | | And Multi-Feature persistence Test Verification | ${node} | ${interface} | | And Log persisted configuration on node | ${node} @@ -68,8 +80,10 @@ | TC04: Honeycomb persists configuration through restart of VPP | | [Documentation] | Checks if Honeycomb updates VPP settings after VPP is\ | | ... | restarted. +| | ... | | [Teardown] | | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | ... | | Given Multi-Feature Persistence test configuration | ${node} | ${interface} | | And Multi-Feature persistence Test Verification | ${node} | ${interface} | | And Log persisted configuration on node | ${node} @@ -82,18 +96,22 @@ | TC05: Persist configuration of IP addresses and neighbors - HC and VPP restart | | [Documentation] | Verify persistence of interface state, IPv4 address | | ... | and neighbor entries through restart of both Honeycomb and VPP. +| | ... | | [Teardown] | | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | ... | | Given Interface Persistence Setup | ${node} | | And Interface Persistence Check | ${node} -| | When Restart Honeycomb and VPP | ${node} +| | When Restart Honeycomb and VPP in pesistence test | ${node} | | Then Interface Persistence Check | ${node} | TC06: Persist configuration of IP addresses and neighbors - HC restart | | [Documentation] | Verify persistence of interface state, IPv4 address | | ... | and neighbor entries through restart of Honeycomb. +| | ... | | [Teardown] | | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | ... | | Given Interface Persistence Setup | ${node} | | And Interface Persistence Check | ${node} | | When Restart Honeycomb | ${node} @@ -102,8 +120,10 @@ | TC07: Persist configuration of IP addresses and neighbors - VPP restart | | [Documentation] | Verify persistence of interface state, IPv4 address | | ... | and neighbor entries through restart of VPP. +| | ... | | [Teardown] | | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | ... | | Given Interface Persistence Setup | ${node} | | And Interface Persistence Check | ${node} | | When Restart VPP | ${node} @@ -113,18 +133,22 @@ | | [Documentation] | Verify persistence of bridge domain, L2-FIB entry | | ... | and Bridge domain Operational Interface Assignment through restart | | ... | of both Honeycomb and VPP. +| | ... | | [Teardown] | | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | ... | | Given Bridge Domain Persistence Setup | ${node} -| | When Restart Honeycomb and VPP | ${node} +| | When Restart Honeycomb and VPP in pesistence test | ${node} | | Then Bridge Domain Persistence Check | ${node} | TC09: Honeycomb persists configuration of bridge domains - HC restart | | [Documentation] | Verify persistence of bridge domain, L2-FIB entry | | ... | and Bridge domain Operational Interface Assignment through restart | | ... | of Honeycomb. +| | ... | | [Teardown] | | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | ... | | Given Bridge Domain Persistence Setup | ${node} | | When Restart Honeycomb | ${node} | | Then Bridge Domain Persistence Check | ${node} @@ -133,8 +157,10 @@ | | [Documentation] | Verify persistence of bridge domain, L2-FIB entry | | ... | and Bridge domain Operational Interface Assignment through restart | | ... | of VPP. +| | ... | | [Teardown] | | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | ... | | Given Bridge Domain Persistence Setup | ${node} | | When Restart VPP | ${node} | | Then Bridge Domain Persistence Check | ${node} diff --git a/tests/func/ipsec/eth2p-ethip4ipsectnl-ip4base-func.robot b/tests/func/ipsec/eth2p-ethip4ipsectnl-ip4base-func.robot index ab0c6f04c7..c4c0f3c2b7 100644 --- a/tests/func/ipsec/eth2p-ethip4ipsectnl-ip4base-func.robot +++ b/tests/func/ipsec/eth2p-ethip4ipsectnl-ip4base-func.robot @@ -16,10 +16,11 @@ | Library | resources.libraries.python.Trace | Force Tags | 3_NODE_SINGLE_LINK_TOPO | 3_NODE_DOUBLE_LINK_TOPO | ... | VM_ENV | HW_ENV | SKIP_VPP_PATCH -| Test Setup | Run Keywords | Set up functional test -| ... | AND | Configure topology for IPv4 IPsec testing -| Test Teardown | Run Keywords | VPP IPsec Show | ${dut_node} -| ... | AND | Tear down functional test +| ... +| Test Setup | Set up IPv4 IPSec functional test +| ... +| Test Teardown | Tear down IPSec functional test | ${dut_node} +| ... | Documentation | *IPv4 IPsec tunnel mode test suite.* | ... | ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\ @@ -56,7 +57,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -76,7 +78,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -96,7 +99,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -117,7 +121,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -137,7 +142,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -158,7 +164,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -179,7 +186,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -200,7 +208,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -220,7 +229,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -241,7 +251,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -262,7 +273,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -282,7 +294,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -305,7 +318,8 @@ | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -328,7 +342,8 @@ | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -353,7 +368,8 @@ | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -374,7 +390,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -382,7 +399,8 @@ | | ${new_auth_key}= | And Get Second Random String | ${auth_alg} | Integ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${new_encr_key} | ${auth_alg} | ${new_auth_key} | | ... | ${tg_spi} | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -406,7 +424,8 @@ | | ... | ${dut_tun_ip} | ${tg_tun_ip} | | ${encr_key2}= | And Get Second Random String | ${encr_alg} | Crypto | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -415,7 +434,8 @@ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${new_auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -439,7 +459,8 @@ | | ... | ${dut_tun_ip} | ${tg_tun_ip} | | ${auth_key2}= | And Get Second Random String | ${auth_alg} | Integ | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -448,7 +469,8 @@ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${new_encr_key} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -474,7 +496,8 @@ | | ${encr_key2}= | And Get Second Random String | ${encr_alg} | Crypto | | ${auth_key2}= | And Get Second Random String | ${auth_alg} | Integ | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -483,7 +506,8 @@ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -493,7 +517,7 @@ | | [Arguments] | ${req_alg} | ${req_type} | | ${req_key_len}= | Run Keyword | Get ${req_type} Alg Key Len | ${req_alg} | | ${key}= | Set Variable If | '${req_type}' == 'Crypto' | ${encr_key} -| | ... | '${req_type}' == 'Integ' | ${auth_key} +| | ... | '${req_type}' == 'Integ' | ${auth_key} | | :FOR | ${index} | IN RANGE | 100 | | | ${req_key}= | Generate Random String | ${req_key_len} | | | Return From Keyword If | '${req_key}' != '${key}' | ${req_key} diff --git a/tests/func/ipsec/eth2p-ethip4ipsectpt-ip4base-func.robot b/tests/func/ipsec/eth2p-ethip4ipsectpt-ip4base-func.robot index 15bf7e2668..03753496ff 100644 --- a/tests/func/ipsec/eth2p-ethip4ipsectpt-ip4base-func.robot +++ b/tests/func/ipsec/eth2p-ethip4ipsectpt-ip4base-func.robot @@ -16,10 +16,10 @@ | Library | resources.libraries.python.Trace | Force Tags | 3_NODE_SINGLE_LINK_TOPO | 3_NODE_DOUBLE_LINK_TOPO | ... | VM_ENV | HW_ENV | SKIP_VPP_PATCH -| Test Setup | Run Keywords | Set up functional test -| ... | AND | Configure topology for IPv4 IPsec testing -| Test Teardown | Run Keywords | VPP IPsec Show | ${dut_node} -| ... | AND | Tear down functional test +| Test Setup | Set up IPv4 IPSec functional test +| ... +| Test Teardown | Tear down IPSec functional test | ${dut_node} +| ... | Documentation | *IPv4 IPsec transport mode test suite.* | ... | ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\ @@ -56,7 +56,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -75,7 +76,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -94,7 +96,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -113,7 +116,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -131,7 +135,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -150,7 +155,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -169,7 +175,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -188,7 +195,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -206,7 +214,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -225,7 +234,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -244,7 +254,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -262,7 +273,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -285,7 +297,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -307,7 +320,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -331,7 +345,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -350,14 +365,16 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} | | ${new_encr_key}= | Given Get Second Random String | ${encr_alg} | Crypto | | ${new_auth_key}= | And Get Second Random String | ${auth_alg} | Integ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${new_encr_key} | ${auth_alg} | ${new_auth_key} | | ... | ${tg_spi} | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -379,7 +396,8 @@ | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} | | ${encr_key2}= | And Get Second Random String | ${encr_alg} | Crypto | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} | | ${new_encr_key}= | Given Get Second Random String | ${encr_alg} | Crypto @@ -387,7 +405,8 @@ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${new_auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -409,7 +428,8 @@ | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} | | ${auth_key2}= | And Get Second Random String | ${auth_alg} | Integ | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} | | ${new_encr_key}= | Given Get Second Random String | ${encr_alg} | Crypto @@ -417,7 +437,8 @@ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${new_encr_key} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -441,7 +462,8 @@ | | ${encr_key2}= | And Get Second Random String | ${encr_alg} | Crypto | | ${auth_key2}= | And Get Second Random String | ${auth_alg} | Integ | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} | | ${new_encr_key}= | Given Get Second Random String | ${encr_alg} | Crypto @@ -449,7 +471,8 @@ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -458,7 +481,7 @@ | | [Arguments] | ${req_alg} | ${req_type} | | ${req_key_len}= | Run Keyword | Get ${req_type} Alg Key Len | ${req_alg} | | ${key}= | Set Variable If | '${req_type}' == 'Crypto' | ${encr_key} -| | ... | '${req_type}' == 'Integ' | ${auth_key} +| | ... | '${req_type}' == 'Integ' | ${auth_key} | | :FOR | ${index} | IN RANGE | 100 | | | ${req_key}= | Generate Random String | ${req_key_len} | | | Return From Keyword If | '${req_key}' != '${key}' | ${req_key} diff --git a/tests/func/ipsec/eth2p-ethip6ipsectnl-ip6base-func.robot b/tests/func/ipsec/eth2p-ethip6ipsectnl-ip6base-func.robot index 702d6f5d33..03ecb344e5 100644 --- a/tests/func/ipsec/eth2p-ethip6ipsectnl-ip6base-func.robot +++ b/tests/func/ipsec/eth2p-ethip6ipsectnl-ip6base-func.robot @@ -16,10 +16,10 @@ | Library | resources.libraries.python.Trace | Force Tags | 3_NODE_SINGLE_LINK_TOPO | 3_NODE_DOUBLE_LINK_TOPO | ... | VM_ENV | HW_ENV | SKIP_VPP_PATCH -| Test Setup | Run Keywords | Set up functional test -| ... | AND | Configure topology for IPv6 IPsec testing -| Test Teardown | Run Keywords | VPP IPsec Show | ${dut_node} -| ... | AND | Tear down functional test +| Test Setup | Set up IPv6 IPSec functional test +| ... +| Test Teardown | Tear down IPSec functional test | ${dut_node} +| ... | Documentation | *IPv6 IPsec tunnel mode test suite.* | ... | ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\ @@ -57,7 +57,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -77,7 +78,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -97,7 +99,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -118,7 +121,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -138,7 +142,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -159,7 +164,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -180,7 +186,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -201,7 +208,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -221,7 +229,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -242,7 +251,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -263,7 +273,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -283,7 +294,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -306,7 +318,8 @@ | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -329,7 +342,8 @@ | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -354,7 +368,8 @@ | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -375,7 +390,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip} | | ... | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -383,7 +399,8 @@ | | ${new_auth_key}= | And Get Second Random String | ${auth_alg} | Integ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${new_encr_key} | ${auth_alg} | ${new_auth_key} | | ... | ${tg_spi} | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -407,7 +424,8 @@ | | ... | ${dut_tun_ip} | ${tg_tun_ip} | | ${encr_key2}= | And Get Second Random String | ${encr_alg} | Crypto | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -416,7 +434,8 @@ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${new_auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -440,7 +459,8 @@ | | ... | ${dut_tun_ip} | ${tg_tun_ip} | | ${auth_key2}= | And Get Second Random String | ${auth_alg} | Integ | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -449,7 +469,8 @@ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${new_encr_key} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -475,7 +496,8 @@ | | ${encr_key2}= | And Get Second Random String | ${encr_alg} | Crypto | | ${auth_key2}= | And Get Second Random String | ${auth_alg} | Integ | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -484,7 +506,8 @@ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip} | | ... | ${dut_tun_ip} @@ -494,7 +517,7 @@ | | [Arguments] | ${req_alg} | ${req_type} | | ${req_key_len}= | Run Keyword | Get ${req_type} Alg Key Len | ${req_alg} | | ${key}= | Set Variable If | '${req_type}' == 'Crypto' | ${encr_key} -| | ... | '${req_type}' == 'Integ' | ${auth_key} +| | ... | '${req_type}' == 'Integ' | ${auth_key} | | :FOR | ${index} | IN RANGE | 100 | | | ${req_key}= | Generate Random String | ${req_key_len} | | | Return From Keyword If | '${req_key}' != '${key}' | ${req_key} diff --git a/tests/func/ipsec/eth2p-ethip6ipsectpt-ip6base-func.robot b/tests/func/ipsec/eth2p-ethip6ipsectpt-ip6base-func.robot index 12cc4e4c29..9c5ab83d40 100644 --- a/tests/func/ipsec/eth2p-ethip6ipsectpt-ip6base-func.robot +++ b/tests/func/ipsec/eth2p-ethip6ipsectpt-ip6base-func.robot @@ -16,10 +16,10 @@ | Library | resources.libraries.python.Trace | Force Tags | 3_NODE_SINGLE_LINK_TOPO | 3_NODE_DOUBLE_LINK_TOPO | ... | VM_ENV | HW_ENV | SKIP_VPP_PATCH -| Test Setup | Run Keywords | Set up functional test -| ... | AND | Configure topology for IPv6 IPsec testing -| Test Teardown | Run Keywords | VPP IPsec Show | ${dut_node} -| ... | AND | Tear down functional test +| Test Setup | Set up IPv6 IPSec functional test +| ... +| Test Teardown | Tear down IPSec functional test | ${dut_node} +| ... | Documentation | *IPv6 IPsec transport mode test suite.* | ... | ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\ @@ -57,7 +57,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -76,7 +77,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -95,7 +97,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -114,7 +117,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -132,7 +136,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -151,7 +156,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -170,7 +176,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -189,7 +196,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -207,7 +215,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -226,7 +235,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -245,7 +255,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -263,7 +274,8 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -285,7 +297,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -307,7 +320,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -331,7 +345,8 @@ | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -350,14 +365,16 @@ | | When Configure manual keyed connection for IPSec | | ... | ${dut_node} | ${dut_if} | ${encr_alg} | ${encr_key} | ${auth_alg} | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} | | ${new_encr_key}= | Given Get Second Random String | ${encr_alg} | Crypto | | ${new_auth_key}= | And Get Second Random String | ${auth_alg} | Integ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} -| | Then Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | Then Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${new_encr_key} | ${auth_alg} | ${new_auth_key} | | ... | ${tg_spi} | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -379,7 +396,8 @@ | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} | | ${encr_key2}= | And Get Second Random String | ${encr_alg} | Crypto | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} | | ${new_encr_key}= | Given Get Second Random String | ${encr_alg} | Crypto @@ -387,7 +405,8 @@ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${new_auth_key} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -409,7 +428,8 @@ | | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip} | | ${auth_key2}= | And Get Second Random String | ${auth_alg} | Integ | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} | | ${new_encr_key}= | Given Get Second Random String | ${encr_alg} | Crypto @@ -417,7 +437,8 @@ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${new_encr_key} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -441,7 +462,8 @@ | | ${encr_key2}= | And Get Second Random String | ${encr_alg} | Crypto | | ${auth_key2}= | And Get Second Random String | ${auth_alg} | Integ | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} | | ${new_encr_key}= | Given Get Second Random String | ${encr_alg} | Crypto @@ -449,7 +471,8 @@ | | When Update IPSec SA keys | ${dut_node} | ${l_sa_id} | ${r_sa_id} | | ... | ${new_encr_key} | ${new_auth_key} | | Then Run Keyword And Expect Error | ESP packet Rx timeout -| | ... | Send IPsec Packet and verify ESP encapsulation in received packet | ${tg_node} | ${tg_if} | ${dut_if_mac} +| | ... | Send IPsec Packet and verify ESP encapsulation in received packet +| | ... | ${tg_node} | ${tg_if} | ${dut_if_mac} | | ... | ${encr_alg} | ${encr_key2} | ${auth_alg} | ${auth_key2} | ${tg_spi} | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip} @@ -458,7 +481,7 @@ | | [Arguments] | ${req_alg} | ${req_type} | | ${req_key_len}= | Run Keyword | Get ${req_type} Alg Key Len | ${req_alg} | | ${key}= | Set Variable If | '${req_type}' == 'Crypto' | ${encr_key} -| | ... | '${req_type}' == 'Integ' | ${auth_key} +| | ... | '${req_type}' == 'Integ' | ${auth_key} | | :FOR | ${index} | IN RANGE | 100 | | | ${req_key}= | Generate Random String | ${req_key_len} | | | Return From Keyword If | '${req_key}' != '${key}' | ${req_key} diff --git a/tests/func/ipv6/eth2p-ethip6-ip6base-ip6ra-func.robot b/tests/func/ipv6/eth2p-ethip6-ip6base-ip6ra-func.robot index ea0864e4ff..0eb017b125 100644 --- a/tests/func/ipv6/eth2p-ethip6-ip6base-ip6ra-func.robot +++ b/tests/func/ipv6/eth2p-ethip6-ip6base-ip6ra-func.robot @@ -85,7 +85,7 @@ | | And Vpp Set If Ipv6 Addr | ${dut1_node} | | ... | ${dut1_to_tg} | ${dut1_to_tg_ip} | ${prefix_length} | | When VPP RA Suppress Link Layer | ${dut1_node} | ${dut1_to_tg} -| | Then Send Router Solicitation And Check Response +| | Then Send router solicitation and verify response | | ... | ${tg_node} | ${dut1_node} | ${tg_to_dut1} | ${dut1_to_tg} | | ... | ${tg_to_dut1_ip} @@ -103,5 +103,5 @@ | | And Vpp Set If Ipv6 Addr | ${dut1_node} | | ... | ${dut1_to_tg} | ${dut1_to_tg_ip} | ${prefix_length} | | When VPP RA Suppress Link Layer | ${dut1_node} | ${dut1_to_tg} -| | Then Send Router Solicitation And Check Response +| | Then Send router solicitation and verify response | | ... | ${tg_node} | ${dut1_node} | ${tg_to_dut1} | ${dut1_to_tg} diff --git a/tests/func/l2bd/eth2p-eth-l2bdbasemaclrn-eth-2vhost-1vm-func.robot b/tests/func/l2bd/eth2p-eth-l2bdbasemaclrn-eth-2vhost-1vm-func.robot index e15f080577..b6a945865f 100644 --- a/tests/func/l2bd/eth2p-eth-l2bdbasemaclrn-eth-2vhost-1vm-func.robot +++ b/tests/func/l2bd/eth2p-eth-l2bdbasemaclrn-eth-2vhost-1vm-func.robot @@ -59,22 +59,22 @@ | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | And Set interfaces in 2-node circular topology up | | When Configure vhost interfaces for L2BD forwarding | ${dut_node} -| | ... | ${sock1} -| | ... | ${sock2} +| | ... | ${sock1} +| | ... | ${sock2} | | And Create bridge domain | ${dut_node} | ${bd_id1} | | And Add interface to bridge domain | ${dut_node} | ${dut_to_tg_if1} -| | ... | ${bd_id1} +| | ... | ${bd_id1} | | And Add interface to bridge domain | ${dut_node} | ${vhost_if1} -| | ... | ${bd_id1} +| | ... | ${bd_id1} | | And Create bridge domain | ${dut_node} | ${bd_id2} | | And Add interface to bridge domain | ${dut_node} | ${dut_to_tg_if2} -| | ... | ${bd_id2} +| | ... | ${bd_id2} | | And Add interface to bridge domain | ${dut_node} | ${vhost_if2} -| | ... | ${bd_id2} +| | ... | ${bd_id2} | | And Configure VM for vhost L2BD forwarding | ${dut_node} | ${sock1} -| | ... | ${sock2} -| | Then Send ICMPv4 bidirectionally and verify received packets | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} +| | ... | ${sock2} +| | Then Send ICMPv4 bidirectionally and verify received packets | ${tg_node} +| | ... | ${tg_to_dut_if1} | ${tg_to_dut_if2} | TC02: DUT with two L2BDs (MAC learn) switches ICMPv6 between TG and VM links | | [Documentation] @@ -92,19 +92,19 @@ | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | And Set interfaces in 2-node circular topology up | | When Configure vhost interfaces for L2BD forwarding | ${dut_node} -| | ... | ${sock1} -| | ... | ${sock2} +| | ... | ${sock1} +| | ... | ${sock2} | | And Create bridge domain | ${dut_node} | ${bd_id1} | | And Add interface to bridge domain | ${dut_node} | ${dut_to_tg_if1} -| | ... | ${bd_id1} +| | ... | ${bd_id1} | | And Add interface to bridge domain | ${dut_node} | ${vhost_if1} -| | ... | ${bd_id1} +| | ... | ${bd_id1} | | And Create bridge domain | ${dut_node} | ${bd_id2} | | And Add interface to bridge domain | ${dut_node} | ${dut_to_tg_if2} -| | ... | ${bd_id2} +| | ... | ${bd_id2} | | And Add interface to bridge domain | ${dut_node} | ${vhost_if2} -| | ... | ${bd_id2} +| | ... | ${bd_id2} | | And Configure VM for vhost L2BD forwarding | ${dut_node} | ${sock1} -| | ... | ${sock2} -| | Then Send ICMPv6 bidirectionally and verify received packets | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} +| | ... | ${sock2} +| | Then Send ICMPv6 bidirectionally and verify received packets | ${tg_node} +| | ... | ${tg_to_dut_if1} | ${tg_to_dut_if2} diff --git a/tests/func/l2bd/eth2p-eth-l2bdbasemaclrn-func.robot b/tests/func/l2bd/eth2p-eth-l2bdbasemaclrn-func.robot index 4d201004af..93367d459c 100644 --- a/tests/func/l2bd/eth2p-eth-l2bdbasemaclrn-func.robot +++ b/tests/func/l2bd/eth2p-eth-l2bdbasemaclrn-func.robot @@ -60,11 +60,11 @@ | | And Set interfaces in 2-node circular topology up | | When Create bridge domain | ${dut_node} | ${bd_id1} | | And Add interface to bridge domain | ${dut_node} | ${dut_to_tg_if1} -| | ... | ${bd_id1} +| | ... | ${bd_id1} | | And Add interface to bridge domain | ${dut_node} | ${dut_to_tg_if2} -| | ... | ${bd_id1} -| | Then Send ICMPv4 bidirectionally and verify received packets | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} +| | ... | ${bd_id1} +| | Then Send ICMPv4 bidirectionally and verify received packets | ${tg_node} +| | ... | ${tg_to_dut_if1} | ${tg_to_dut_if2} | TC03: DUT1 and DUT2 with L2BD (MAC learning) switch between two TG links | | [Documentation] @@ -78,13 +78,13 @@ | | And Set interfaces in 3-node circular topology up | | When Create bridge domain | ${dut1_node} | ${bd_id1} | | And Add interface to bridge domain | ${dut1_node} | ${dut1_to_tg} -| | ... | ${bd_id1} +| | ... | ${bd_id1} | | And Add interface to bridge domain | ${dut1_node} | ${dut1_to_dut2} -| | ... | ${bd_id1} +| | ... | ${bd_id1} | | And Create bridge domain | ${dut2_node} | ${bd_id2} | | And Add interface to bridge domain | ${dut2_node} | ${dut2_to_tg} -| | ... | ${bd_id2} +| | ... | ${bd_id2} | | And Add interface to bridge domain | ${dut2_node} | ${dut2_to_dut1} -| | ... | ${bd_id2} -| | Then Send ICMPv4 bidirectionally and verify received packets | ${tg_node} | ${tg_to_dut1} -| | ... | ${tg_to_dut2} +| | ... | ${bd_id2} +| | Then Send ICMPv4 bidirectionally and verify received packets | ${tg_node} +| | ... | ${tg_to_dut1} | ${tg_to_dut2} diff --git a/tests/func/l2bd/eth2p-eth-l2bdbasemacstc-eth-2vhost-1vm-func.robot b/tests/func/l2bd/eth2p-eth-l2bdbasemacstc-eth-2vhost-1vm-func.robot index 88d3260e1e..951d522baa 100644 --- a/tests/func/l2bd/eth2p-eth-l2bdbasemacstc-eth-2vhost-1vm-func.robot +++ b/tests/func/l2bd/eth2p-eth-l2bdbasemacstc-eth-2vhost-1vm-func.robot @@ -59,44 +59,42 @@ | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | And Set interfaces in 2-node circular topology up | | When Configure vhost interfaces for L2BD forwarding | ${dut_node} -| | ... | ${sock1} -| | ... | ${sock2} +| | ... | ${sock1} | ${sock2} | | And Create bridge domain | ${dut_node} | ${bd_id1} -| | ... | learn=${FALSE} +| | ... | learn=${FALSE} | | And Add interface to bridge domain | ${dut_node} | ${dut_to_tg_if1} -| | ... | ${bd_id1} -| | And Add interface to bridge domain | ${dut_node} | ${vhost_if1} -| | ... | ${bd_id1} +| | ... | ${bd_id1} +| | And Add interface to bridge domain | ${dut_node} | ${vhost_if1} | ${bd_id1} | | And Add destination port to L2FIB | ${tg_node} -| | ... | ${tg_to_dut_if1} -| | ... | ${dut_node} -| | ... | ${dut_to_tg_if1} -| | ... | ${bd_id1} +| | ... | ${tg_to_dut_if1} +| | ... | ${dut_node} +| | ... | ${dut_to_tg_if1} +| | ... | ${bd_id1} | | And Add destination port to L2FIB | ${tg_node} -| | ... | ${tg_to_dut_if2} -| | ... | ${dut_node} -| | ... | ${vhost_if1} -| | ... | ${bd_id1} +| | ... | ${tg_to_dut_if2} +| | ... | ${dut_node} +| | ... | ${vhost_if1} +| | ... | ${bd_id1} | | And Create bridge domain | ${dut_node} | ${bd_id2} -| | ... | learn=${FALSE} +| | ... | learn=${FALSE} | | And Add interface to bridge domain | ${dut_node} | ${dut_to_tg_if2} -| | ... | ${bd_id2} +| | ... | ${bd_id2} | | And Add interface to bridge domain | ${dut_node} | ${vhost_if2} -| | ... | ${bd_id2} +| | ... | ${bd_id2} | | And Add destination port to L2FIB | ${tg_node} -| | ... | ${tg_to_dut_if2} -| | ... | ${dut_node} -| | ... | ${dut_to_tg_if2} -| | ... | ${bd_id2} +| | ... | ${tg_to_dut_if2} +| | ... | ${dut_node} +| | ... | ${dut_to_tg_if2} +| | ... | ${bd_id2} | | And Add destination port to L2FIB | ${tg_node} -| | ... | ${tg_to_dut_if1} -| | ... | ${dut_node} -| | ... | ${vhost_if2} -| | ... | ${bd_id2} +| | ... | ${tg_to_dut_if1} +| | ... | ${dut_node} +| | ... | ${vhost_if2} +| | ... | ${bd_id2} | | And Configure VM for vhost L2BD forwarding | ${dut_node} | ${sock1} -| | ... | ${sock2} -| | Then Send ICMPv4 bidirectionally and verify received packets | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} +| | ... | ${sock2} +| | Then Send ICMPv4 bidirectionally and verify received packets +| | ... | ${tg_node} | ${tg_to_dut_if1} | ${tg_to_dut_if2} | TC02: DUT with two L2BDs (static MACs) switches ICMPv6 between TG and VM links | | [Documentation] @@ -114,41 +112,40 @@ | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | And Set interfaces in 2-node circular topology up | | When Configure vhost interfaces for L2BD forwarding | ${dut_node} -| | ... | ${sock1} -| | ... | ${sock2} +| | ... | ${sock1} +| | ... | ${sock2} | | And Create bridge domain | ${dut_node} | ${bd_id1} -| | ... | learn=${FALSE} +| | ... | learn=${FALSE} | | And Add interface to bridge domain | ${dut_node} | ${dut_to_tg_if1} -| | ... | ${bd_id1} +| | ... | ${bd_id1} | | And Add interface to bridge domain | ${dut_node} | ${vhost_if1} -| | ... | ${bd_id1} +| | ... | ${bd_id1} | | And Add destination port to L2FIB | ${tg_node} -| | ... | ${tg_to_dut_if1} -| | ... | ${dut_node} -| | ... | ${dut_to_tg_if1} -| | ... | ${bd_id1} +| | ... | ${tg_to_dut_if1} +| | ... | ${dut_node} +| | ... | ${dut_to_tg_if1} +| | ... | ${bd_id1} | | And Add destination port to L2FIB | ${tg_node} -| | ... | ${tg_to_dut_if2} -| | ... | ${dut_node} -| | ... | ${vhost_if1} -| | ... | ${bd_id1} +| | ... | ${tg_to_dut_if2} +| | ... | ${dut_node} +| | ... | ${vhost_if1} +| | ... | ${bd_id1} | | And Create bridge domain | ${dut_node} | ${bd_id2} -| | ... | learn=${FALSE} +| | ... | learn=${FALSE} | | And Add interface to bridge domain | ${dut_node} | ${dut_to_tg_if2} -| | ... | ${bd_id2} -| | And Add interface to bridge domain | ${dut_node} | ${vhost_if2} -| | ... | ${bd_id2} +| | ... | ${bd_id2} +| | And Add interface to bridge domain | ${dut_node} | ${vhost_if2} | ${bd_id2} | | And Add destination port to L2FIB | ${tg_node} -| | ... | ${tg_to_dut_if2} -| | ... | ${dut_node} -| | ... | ${dut_to_tg_if2} -| | ... | ${bd_id2} +| | ... | ${tg_to_dut_if2} +| | ... | ${dut_node} +| | ... | ${dut_to_tg_if2} +| | ... | ${bd_id2} | | And Add destination port to L2FIB | ${tg_node} -| | ... | ${tg_to_dut_if1} -| | ... | ${dut_node} -| | ... | ${vhost_if2} -| | ... | ${bd_id2} +| | ... | ${tg_to_dut_if1} +| | ... | ${dut_node} +| | ... | ${vhost_if2} +| | ... | ${bd_id2} | | And Configure VM for vhost L2BD forwarding | ${dut_node} | ${sock1} -| | ... | ${sock2} -| | Then Send ICMPv6 bidirectionally and verify received packets | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} +| | ... | ${sock2} +| | Then Send ICMPv6 bidirectionally and verify received packets +| | ... | ${tg_node} | ${tg_to_dut_if1} | ${tg_to_dut_if2} diff --git a/tests/func/l2bd/eth2p-eth-l2bdbasemacstc-func.robot b/tests/func/l2bd/eth2p-eth-l2bdbasemacstc-func.robot index 2cfa02ae99..7ba6b46591 100644 --- a/tests/func/l2bd/eth2p-eth-l2bdbasemacstc-func.robot +++ b/tests/func/l2bd/eth2p-eth-l2bdbasemacstc-func.robot @@ -50,37 +50,36 @@ | | Given Configure path in 3-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} | | And Set interfaces in 3-node circular topology up -| | When Create bridge domain | ${dut1_node} | ${bd_id1} -| | ... | learn=${FALSE} +| | When Create bridge domain | ${dut1_node} | ${bd_id1} | learn=${FALSE} | | And Add interface to bridge domain | ${dut1_node} | ${dut1_to_tg} -| | ... | ${bd_id1} +| | ... | ${bd_id1} | | And Add interface to bridge domain | ${dut1_node} | ${dut1_to_dut2} -| | ... | ${bd_id1} +| | ... | ${bd_id1} | | And Add destination port to L2FIB | ${tg_node} -| | ... | ${tg_to_dut1} -| | ... | ${dut1_node} -| | ... | ${dut1_to_tg} -| | ... | ${bd_id1} +| | ... | ${tg_to_dut1} +| | ... | ${dut1_node} +| | ... | ${dut1_to_tg} +| | ... | ${bd_id1} | | And Add destination port to L2FIB | ${tg_node} -| | ... | ${tg_to_dut2} -| | ... | ${dut1_node} -| | ... | ${dut1_to_dut2} -| | ... | ${bd_id1} +| | ... | ${tg_to_dut2} +| | ... | ${dut1_node} +| | ... | ${dut1_to_dut2} +| | ... | ${bd_id1} | | And Create bridge domain | ${dut2_node} | ${bd_id2} -| | ... | learn=${FALSE} +| | ... | learn=${FALSE} | | And Add interface to bridge domain | ${dut2_node} | ${dut2_to_tg} -| | ... | ${bd_id2} +| | ... | ${bd_id2} | | And Add interface to bridge domain | ${dut2_node} | ${dut2_to_dut1} -| | ... | ${bd_id2} +| | ... | ${bd_id2} | | And Add destination port to L2FIB | ${tg_node} -| | ... | ${tg_to_dut1} -| | ... | ${dut2_node} -| | ... | ${dut2_to_dut1} -| | ... | ${bd_id2} +| | ... | ${tg_to_dut1} +| | ... | ${dut2_node} +| | ... | ${dut2_to_dut1} +| | ... | ${bd_id2} | | And Add destination port to L2FIB | ${tg_node} -| | ... | ${tg_to_dut2} -| | ... | ${dut2_node} -| | ... | ${dut2_to_tg} -| | ... | ${bd_id2} +| | ... | ${tg_to_dut2} +| | ... | ${dut2_node} +| | ... | ${dut2_to_tg} +| | ... | ${bd_id2} | | Then Send ICMPv4 bidirectionally and verify received packets | ${tg_node} | ${tg_to_dut1} -| | ... | ${tg_to_dut2} +| | ... | ${tg_to_dut2} diff --git a/tests/func/l2bd/eth4p-eth-l2bdbasemaclrn-l2shg-func.robot b/tests/func/l2bd/eth4p-eth-l2bdbasemaclrn-l2shg-func.robot index 2136394cf5..3649f928c5 100644 --- a/tests/func/l2bd/eth4p-eth-l2bdbasemaclrn-l2shg-func.robot +++ b/tests/func/l2bd/eth4p-eth-l2bdbasemaclrn-l2shg-func.robot @@ -54,40 +54,33 @@ | | ... | isolated interfaces. [Ref] | | [Tags] | 3_NODE_DOUBLE_LINK_TOPO | | Given Configure path for 3-node BD-SHG test | ${nodes['TG']} -| | ... | ${nodes['DUT1']} -| | ... | ${nodes['DUT2']} +| | ... | ${nodes['DUT1']} | ${nodes['DUT2']} | | And Set interfaces in 3-node BD-SHG test up | | When Create bridge domain | ${dut1_node} | ${bd_id1} | | And Add interface to bridge domain | ${dut1_node} | ${dut1_to_tg_if1} -| | ... | ${bd_id1} | ${shg1} +| | ... | ${bd_id1} | ${shg1} | | And Add interface to bridge domain | ${dut1_node} | ${dut1_to_tg_if2} -| | ... | ${bd_id1} | ${shg1} +| | ... | ${bd_id1} | ${shg1} | | And Add interface to bridge domain | ${dut1_node} | ${dut1_to_dut2} -| | ... | ${bd_id1} +| | ... | ${bd_id1} | | And Create bridge domain | ${dut2_node} | ${bd_id2} | | And Add interface to bridge domain | ${dut2_node} | ${dut2_to_tg_if1} -| | ... | ${bd_id2} | ${shg2} +| | ... | ${bd_id2} | ${shg2} | | And Add interface to bridge domain | ${dut2_node} | ${dut2_to_tg_if2} -| | ... | ${bd_id2} | ${shg2} +| | ... | ${bd_id2} | ${shg2} | | And Add interface to bridge domain | ${dut2_node} | ${dut2_to_dut1} -| | ... | ${bd_id2} +| | ... | ${bd_id2} | | Then Send ICMPv4 bidirectionally and verify received packets | ${tg_node} -| | ... | ${tg_to_dut1_if1} -| | ... | ${tg_to_dut2_if1} +| | ... | ${tg_to_dut1_if1} | ${tg_to_dut2_if1} | | And Send ICMPv4 bidirectionally and verify received packets | ${tg_node} -| | ... | ${tg_to_dut1_if1} -| | ... | ${tg_to_dut2_if2} +| | ... | ${tg_to_dut1_if1} | ${tg_to_dut2_if2} | | And Send ICMPv4 bidirectionally and verify received packets | ${tg_node} -| | ... | ${tg_to_dut1_if2} -| | ... | ${tg_to_dut2_if1} +| | ... | ${tg_to_dut1_if2} | ${tg_to_dut2_if1} | | And Send ICMPv4 bidirectionally and verify received packets | ${tg_node} -| | ... | ${tg_to_dut1_if2} -| | ... | ${tg_to_dut2_if2} +| | ... | ${tg_to_dut1_if2} | ${tg_to_dut2_if2} | | And Run Keyword And Expect Error | ICMP echo Rx timeout -| | ... | Send ICMPv4 bidirectionally and verify received packets -| | | ... | ${tg_node} | ${tg_to_dut1_if1} -| | | ... | ${tg_to_dut1_if2} +| | ... | Send ICMPv4 bidirectionally and verify received packets +| | | ... | ${tg_node} | ${tg_to_dut1_if1} | ${tg_to_dut1_if2} | | And Run Keyword And Expect Error | ICMP echo Rx timeout -| | ... | Send ICMPv4 bidirectionally and verify received packets -| | | ... | ${tg_node} | ${tg_to_dut2_if1} -| | | ... | ${tg_to_dut2_if2} +| | ... | Send ICMPv4 bidirectionally and verify received packets +| | | ... | ${tg_node} | ${tg_to_dut2_if1} | ${tg_to_dut2_if2} diff --git a/tests/func/l2xc/eth2p-eth-l2xcbase-eth-2vhost-1vm-func.robot b/tests/func/l2xc/eth2p-eth-l2xcbase-eth-2vhost-1vm-func.robot index 0763b88142..d593fdf4d0 100644 --- a/tests/func/l2xc/eth2p-eth-l2xcbase-eth-2vhost-1vm-func.robot +++ b/tests/func/l2xc/eth2p-eth-l2xcbase-eth-2vhost-1vm-func.robot @@ -59,14 +59,13 @@ | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | And Set interfaces in 2-node circular topology up | | When Configure vhost interfaces for L2BD forwarding | ${dut_node} -| | ... | ${sock1} -| | ... | ${sock2} +| | ... | ${sock1} | ${sock2} | | And Configure L2XC | ${dut_node} | ${dut_to_tg_if1} | ${vhost_if1} | | And Configure L2XC | ${dut_node} | ${dut_to_tg_if2} | ${vhost_if2} | | And Configure VM for vhost L2BD forwarding | ${dut_node} | ${sock1} -| | ... | ${sock2} -| | Then Send ICMPv4 bidirectionally and verify received packets | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} +| | ... | ${sock2} +| | Then Send ICMPv4 bidirectionally and verify received packets | ${tg_node} +| | ... | ${tg_to_dut_if1} | ${tg_to_dut_if2} | TC02: DUT with two L2XCs switches ICMPv6 between TG and local VM links | | [Documentation] @@ -84,12 +83,11 @@ | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | And Set interfaces in 2-node circular topology up | | When Configure vhost interfaces for L2BD forwarding | ${dut_node} -| | ... | ${sock1} -| | ... | ${sock2} +| | ... | ${sock1} | ${sock2} | | And Configure L2XC | ${dut_node} | ${dut_to_tg_if1} | ${vhost_if1} | | And Configure L2XC | ${dut_node} | ${dut_to_tg_if2} | ${vhost_if2} | | And Configure VM for vhost L2BD forwarding | ${dut_node} | ${sock1} -| | ... | ${sock2} -| | Then Send ICMPv6 bidirectionally and verify received packets | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} +| | ... | ${sock2} +| | Then Send ICMPv6 bidirectionally and verify received packets | ${tg_node} +| | ... | ${tg_to_dut_if1} | ${tg_to_dut_if2} diff --git a/tests/func/l2xc/eth2p-eth-l2xcbase-func.robot b/tests/func/l2xc/eth2p-eth-l2xcbase-func.robot index 2c4f4625e6..a1b9fc24ad 100644 --- a/tests/func/l2xc/eth2p-eth-l2xcbase-func.robot +++ b/tests/func/l2xc/eth2p-eth-l2xcbase-func.robot @@ -50,10 +50,8 @@ | | Given Configure path in 3-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} | | And Set interfaces in 3-node circular topology up -| | And Configure L2XC -| | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_to_dut2} -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} +| | And Configure L2XC | ${dut1_node} | ${dut1_to_tg} | ${dut1_to_dut2} +| | And Configure L2XC | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} | | When All Vpp Interfaces Ready Wait | ${nodes} | | Then Send ICMPv4 bidirectionally and verify received packets | | ... | ${tg_node} | ${tg_to_dut1} | ${tg_to_dut2} @@ -69,10 +67,8 @@ | | Given Configure path in 3-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} | | And Set interfaces in 3-node circular topology up -| | And Configure L2XC -| | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_to_dut2} -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} +| | And Configure L2XC | ${dut1_node} | ${dut1_to_tg} | ${dut1_to_dut2} +| | And Configure L2XC | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} | | When All Vpp Interfaces Ready Wait | ${nodes} | | Then Send ICMPv6 bidirectionally and verify received packets | | ... | ${tg_node} | ${tg_to_dut1} | ${tg_to_dut2} diff --git a/tests/func/lisp/api-crud-lisp-func.robot b/tests/func/lisp/api-crud-lisp-func.robot index b627cad8a9..da97272913 100644 --- a/tests/func/lisp/api-crud-lisp-func.robot +++ b/tests/func/lisp/api-crud-lisp-func.robot @@ -21,10 +21,14 @@ | Resource | resources/libraries/robot/lisp/lisp_api.robot # import additional Lisp settings from resource file | Variables | resources/test_data/lisp/api/lisp_api_resources.py +| ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | 3_NODE_DOUBLE_LINK_TOPO | ... | VM_ENV | HW_ENV +| ... | Test Setup | Set up functional test +| ... | Test Teardown | Tear down functional test +| ... | Documentation | *API test cases* | ... | ... | *[Top] Network Topologies:* DUT1 1-node topology. diff --git a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-eth-2vhost-1vm-func.robot b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-eth-2vhost-1vm-func.robot index 32b3b5c75c..235e581f02 100644 --- a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-eth-2vhost-1vm-func.robot +++ b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-eth-2vhost-1vm-func.robot @@ -36,12 +36,8 @@ | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | SKIP_VPP_PATCH | ... | Test Setup | Set up functional test -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Stop and clear QEMU | ${nodes['DUT1']} | ${vm_node} -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Teardown | Tear down LISP functional test with QEMU | ${vm_node} | ... | Documentation | *IPv4-ip4-ipsec-lispgpe-ip4 - main fib, vrf (gpe_vni-to-vrf)* | ... diff --git a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-func.robot b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-func.robot index 80ee675c3e..5f9a37eeca 100644 --- a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-func.robot +++ b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip4base-func.robot @@ -36,11 +36,8 @@ | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | SKIP_VPP_PATCH | ... | Test Setup | Set up functional test -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Teardown | Tear down LISP functional test | ... | Documentation | *IPv4-ip4-ipsec-lispgpe-ip4 - main fib, vrf (gpe_vni-to-vrf)* | ... diff --git a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-eth-2vhost-1vm-func.robot b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-eth-2vhost-1vm-func.robot index 90b62e1f87..f09fa31793 100644 --- a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-eth-2vhost-1vm-func.robot +++ b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-eth-2vhost-1vm-func.robot @@ -36,15 +36,12 @@ | Resource | resources/libraries/robot/bridge_domain.robot # Import configuration and test data: | Variables | resources/test_data/lisp/ipv6_lispgpe_ipv4/ipv6_lispgpe_ipsec_ipv4.py +| ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | SKIP_VPP_PATCH | ... | Test Setup | Set up functional test -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Stop and clear QEMU | ${nodes['DUT1']} | ${vm_node} -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Teardown | Tear down LISP functional test with QEMU | ${vm_node} | ... | Documentation | *IPv6 - ip4-ipsec-lispgpe-ip6 - main fib, vrf, virt2lisp,\ | ... | phy2lisp* @@ -186,4 +183,3 @@ | | ${vhost_mac}= | Get Vhost User Mac By SW Index | ${dut1_node} | ${vhost2} | | Set test variable | ${dst_vhost_mac} | ${vhost_mac} | | Configure VM for vhost L2BD forwarding | ${dut1_node} | ${sock1} | ${sock2} - diff --git a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-func.robot b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-func.robot index 86db5f5bac..ac3620f8a7 100644 --- a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-func.robot +++ b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6base-func.robot @@ -36,14 +36,12 @@ | Resource | resources/libraries/robot/bridge_domain.robot # Import configuration and test data: | Variables | resources/test_data/lisp/ipv6_lispgpe_ipv4/ipv6_lispgpe_ipsec_ipv4.py +| ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | SKIP_VPP_PATCH | ... | Test Setup | Set up functional test -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Teardown | Tear down LISP functional test | ... | Documentation | *IPv6 - ip4-ipsec-lispgpe-ip6 - main fib, vrf, virt2lisp,\ | ... | phy2lisp* diff --git a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6basevrf-func.robot b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6basevrf-func.robot index 81d5f758ad..0c87b3a906 100644 --- a/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6basevrf-func.robot +++ b/tests/func/lisp/eth2p-ethip4ipsectptlispgpe-ip6basevrf-func.robot @@ -36,14 +36,12 @@ | Resource | resources/libraries/robot/bridge_domain.robot # Import configuration and test data: | Variables | resources/test_data/lisp/ipv6_lispgpe_ipv4/ipv6_lispgpe_ipsec_ipv4.py +| ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | SKIP_VPP_PATCH | ... | Test Setup | Set up functional test -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Teardown | Tear down LISP functional test | ... | Documentation | *IPv6 - ip4-ipsec-lispgpe-ip6 - main fib, vrf, virt2lisp,\ | ... | phy2lisp* diff --git a/tests/func/lisp/eth2p-ethip4lisp-ip4base-func.robot b/tests/func/lisp/eth2p-ethip4lisp-ip4base-func.robot index 0a7338c26f..b506c9517f 100644 --- a/tests/func/lisp/eth2p-ethip4lisp-ip4base-func.robot +++ b/tests/func/lisp/eth2p-ethip4lisp-ip4base-func.robot @@ -22,10 +22,14 @@ | Library | resources.libraries.python.Trace # import additional Lisp settings from resource file | Variables | resources/test_data/lisp/static_adjacency/lisp_static_adjacency.py +| ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | 3_NODE_DOUBLE_LINK_TOPO | ... | VM_ENV | HW_ENV +| ... | Test Setup | Set up functional test +| ... | Test Teardown | Tear down functional test +| ... | Documentation | *IP AFI independent functional tests.* | ... | ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ @@ -58,63 +62,63 @@ | | ... | [Ref] RFC6830. | | Given Configure path in 3-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} -| | And Set interfaces in 3-node circular topology up -| | And Configure IP addresses on interfaces -| | ... | ${dut1_node} | ${dut1_to_dut2} -| | ... | ${dut1_to_dut2_ip4} | ${prefix4} -| | ... | ${dut1_node} | ${dut1_to_tg} -| | ... | ${dut1_to_tg_ip4} | ${prefix4} -| | ... | ${dut2_node} | ${dut2_to_dut1} -| | ... | ${dut2_to_dut1_ip4} | ${prefix4} -| | ... | ${dut2_node} | ${dut2_to_tg} -| | ... | ${dut2_to_tg_ip4} | ${prefix4} -| | And VPP IP Probe | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip4} -| | And VPP IP Probe | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip4} -| | And Add Arp On Dut | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip4} -| | ... | ${tg_to_dut2_mac} -| | And Add Arp On Dut | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip4} -| | ... | ${tg_to_dut1_mac} +| | And Set interfaces in 3-node circular topology up +| | And Configure IP addresses on interfaces +| | ... | ${dut1_node} | ${dut1_to_dut2} +| | ... | ${dut1_to_dut2_ip4} | ${prefix4} +| | ... | ${dut1_node} | ${dut1_to_tg} +| | ... | ${dut1_to_tg_ip4} | ${prefix4} +| | ... | ${dut2_node} | ${dut2_to_dut1} +| | ... | ${dut2_to_dut1_ip4} | ${prefix4} +| | ... | ${dut2_node} | ${dut2_to_tg} +| | ... | ${dut2_to_tg_ip4} | ${prefix4} +| | And VPP IP Probe | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip4} +| | And VPP IP Probe | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip4} +| | And Add Arp On Dut | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip4} +| | ... | ${tg_to_dut2_mac} +| | And Add Arp On Dut | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip4} +| | ... | ${tg_to_dut1_mac} | | When Configure LISP topology in 3-node circular topology -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE} -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE} -| | ... | ${duts_locator_set} | ${dut1_ip4_eid} | ${dut2_ip4_eid} -| | ... | ${dut1_to_dut2_ip4_static_adjacency} -| | ... | ${dut2_to_dut1_ip4_static_adjacency} +| | ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE} +| | ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE} +| | ... | ${duts_locator_set} | ${dut1_ip4_eid} | ${dut2_ip4_eid} +| | ... | ${dut1_to_dut2_ip4_static_adjacency} +| | ... | ${dut2_to_dut1_ip4_static_adjacency} | | Then Send packet and verify headers -| | ... | ${tg_node} | ${tg1_ip4} | ${tg2_ip4} -| | ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac} -| | ... | ${tg_to_dut2} | ${dut2_to_tg_mac} | ${tg_to_dut2_mac} +| | ... | ${tg_node} | ${tg1_ip4} | ${tg2_ip4} +| | ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac} +| | ... | ${tg_to_dut2} | ${dut2_to_tg_mac} | ${tg_to_dut2_mac} | | And Send packet and verify headers -| | ... | ${tg_node} | ${tg2_ip4} | ${tg1_ip4} -| | ... | ${tg_to_dut2} | ${tg_to_dut2_mac} | ${dut2_to_tg_mac} -| | ... | ${tg_to_dut1} | ${dut1_to_tg_mac} | ${tg_to_dut1_mac} +| | ... | ${tg_node} | ${tg2_ip4} | ${tg1_ip4} +| | ... | ${tg_to_dut2} | ${tg_to_dut2_mac} | ${dut2_to_tg_mac} +| | ... | ${tg_to_dut1} | ${dut1_to_tg_mac} | ${tg_to_dut1_mac} | | When Disable Lisp | ${dut1_node} | | Then Packet transmission from port to port should fail -| | ... | ${tg_node} | ${tg1_ip4} | ${tg2_ip4} -| | ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac} -| | ... | ${tg_to_dut2} | ${dut2_to_tg_mac} | ${tg_to_dut2_mac} +| | ... | ${tg_node} | ${tg1_ip4} | ${tg2_ip4} +| | ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac} +| | ... | ${tg_to_dut2} | ${dut2_to_tg_mac} | ${tg_to_dut2_mac} | | And Packet transmission from port to port should fail -| | ... | ${tg_node} | ${tg2_ip4} | ${tg1_ip4} -| | ... | ${tg_to_dut2} | ${tg_to_dut2_mac} | ${dut2_to_tg_mac} -| | ... | ${tg_to_dut1} | ${dut1_to_tg_mac} | ${tg_to_dut1_mac} +| | ... | ${tg_node} | ${tg2_ip4} | ${tg1_ip4} +| | ... | ${tg_to_dut2} | ${tg_to_dut2_mac} | ${dut2_to_tg_mac} +| | ... | ${tg_to_dut1} | ${dut1_to_tg_mac} | ${tg_to_dut1_mac} | | When Enable Lisp | ${dut1_node} | | And Vpp Add Lisp Adjacency | ${dut1_node} -| | ... | ${dut1_to_dut2_ip4_static_adjacency['vni']} -| | ... | ${dut1_to_dut2_ip4_static_adjacency['deid']} -| | ... | ${dut1_to_dut2_ip4_static_adjacency['prefix']} -| | ... | ${dut1_to_dut2_ip4_static_adjacency['seid']} -| | ... | ${dut1_to_dut2_ip4_static_adjacency['prefix']} +| | ... | ${dut1_to_dut2_ip4_static_adjacency['vni']} +| | ... | ${dut1_to_dut2_ip4_static_adjacency['deid']} +| | ... | ${dut1_to_dut2_ip4_static_adjacency['prefix']} +| | ... | ${dut1_to_dut2_ip4_static_adjacency['seid']} +| | ... | ${dut1_to_dut2_ip4_static_adjacency['prefix']} | | And Vpp Add Lisp Adjacency | ${dut2_node} -| | ... | ${dut2_to_dut1_ip4_static_adjacency['vni']} -| | ... | ${dut2_to_dut1_ip4_static_adjacency['deid']} -| | ... | ${dut2_to_dut1_ip4_static_adjacency['prefix']} -| | ... | ${dut2_to_dut1_ip4_static_adjacency['seid']} -| | ... | ${dut2_to_dut1_ip4_static_adjacency['prefix']} +| | ... | ${dut2_to_dut1_ip4_static_adjacency['vni']} +| | ... | ${dut2_to_dut1_ip4_static_adjacency['deid']} +| | ... | ${dut2_to_dut1_ip4_static_adjacency['prefix']} +| | ... | ${dut2_to_dut1_ip4_static_adjacency['seid']} +| | ... | ${dut2_to_dut1_ip4_static_adjacency['prefix']} | | Then Wait Until Keyword Succeeds | 2x | 5s | Send packet and verify headers -| | ... | ${tg_node} | ${tg1_ip4} | ${tg2_ip4} -| | ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac} -| | ... | ${tg_to_dut2} | ${dut2_to_tg_mac} | ${tg_to_dut2_mac} +| | ... | ${tg_node} | ${tg1_ip4} | ${tg2_ip4} +| | ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac} +| | ... | ${tg_to_dut2} | ${dut2_to_tg_mac} | ${tg_to_dut2_mac} | | And Wait Until Keyword Succeeds | 2x | 5s | Send packet and verify headers -| | ... | ${tg_node} | ${tg2_ip4} | ${tg1_ip4} -| | ... | ${tg_to_dut2} | ${tg_to_dut2_mac} | ${dut2_to_tg_mac} -| | ... | ${tg_to_dut1} | ${dut1_to_tg_mac} | ${tg_to_dut1_mac}
\ No newline at end of file +| | ... | ${tg_node} | ${tg2_ip4} | ${tg1_ip4} +| | ... | ${tg_to_dut2} | ${tg_to_dut2_mac} | ${dut2_to_tg_mac} +| | ... | ${tg_to_dut1} | ${dut1_to_tg_mac} | ${tg_to_dut1_mac} diff --git a/tests/func/lisp/eth2p-ethip4lisp-l2bdbasemaclrn-func.robot b/tests/func/lisp/eth2p-ethip4lisp-l2bdbasemaclrn-func.robot index 04c73db933..b4c4459e3d 100644 --- a/tests/func/lisp/eth2p-ethip4lisp-l2bdbasemaclrn-func.robot +++ b/tests/func/lisp/eth2p-ethip4lisp-l2bdbasemaclrn-func.robot @@ -30,6 +30,7 @@ | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | ... | Test Setup | Set up functional test +| ... | Test Teardown | Tear down functional test | ... | Documentation | *ip4-lispgpe-ip4 encapsulation test cases* @@ -92,5 +93,3 @@ | | ... | ${tg_node} | ${tg2_ip4} | ${tg1_ip4} | | ... | ${tg_to_dut2} | ${tg_if2_mac} | ${tg_if1_mac} | | ... | ${tg_to_dut1} | ${tg_if2_mac} | ${tg_if1_mac} - - diff --git a/tests/func/lisp/eth2p-ethip4lispgpe-ip4base-eth-2vhost-1vm-func.robot b/tests/func/lisp/eth2p-ethip4lispgpe-ip4base-eth-2vhost-1vm-func.robot index 512f63ee72..4b1f281fb8 100644 --- a/tests/func/lisp/eth2p-ethip4lispgpe-ip4base-eth-2vhost-1vm-func.robot +++ b/tests/func/lisp/eth2p-ethip4lispgpe-ip4base-eth-2vhost-1vm-func.robot @@ -34,12 +34,8 @@ | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | ... | Test Setup | Set up functional test -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Stop and clear QEMU | ${nodes['DUT1']} | ${vm_node} -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Teardown | Tear down LISP functional test with QEMU | ${vm_node} | ... | Documentation | *ip4-lispgpe-ip4 encapsulation test cases* | ... diff --git a/tests/func/lisp/eth2p-ethip4lispgpe-ip4base-func.robot b/tests/func/lisp/eth2p-ethip4lispgpe-ip4base-func.robot index adb01ee289..9c3b7afa31 100644 --- a/tests/func/lisp/eth2p-ethip4lispgpe-ip4base-func.robot +++ b/tests/func/lisp/eth2p-ethip4lispgpe-ip4base-func.robot @@ -34,11 +34,8 @@ | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | ... | Test Setup | Set up functional test -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Teardown | Tear down LISP functional test | ... | Documentation | *ip4-lispgpe-ip4 encapsulation test cases* | ... @@ -104,4 +101,4 @@ | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip4} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip4} -| | ... | ${dut1_to_dut2_mac}
\ No newline at end of file +| | ... | ${dut1_to_dut2_mac} diff --git a/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-eth-2vhost-1vm-func.robot b/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-eth-2vhost-1vm-func.robot index d85f009c84..d547624225 100644 --- a/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-eth-2vhost-1vm-func.robot +++ b/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-eth-2vhost-1vm-func.robot @@ -34,12 +34,8 @@ | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | ... | Test Setup | Set up functional test -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Stop and clear QEMU | ${nodes['DUT1']} | ${vm_node} -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Teardown | Tear down LISP functional test with QEMU | ${vm_node} | ... | Documentation | *ip4-lispgpe-ip4 encapsulation test cases* | ... @@ -134,4 +130,4 @@ | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip4} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip4} -| | ... | ${dut1_to_dut2_mac}
\ No newline at end of file +| | ... | ${dut1_to_dut2_mac} diff --git a/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-func.robot b/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-func.robot index 86d7ee8c0e..b4d5c08bb6 100644 --- a/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-func.robot +++ b/tests/func/lisp/eth2p-ethip4lispgpe-ip4basevrf-func.robot @@ -34,11 +34,8 @@ | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | ... | Test Setup | Set up functional test -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Teardown | Tear down LISP functional test | ... | Documentation | *ip4-lispgpe-ip4 encapsulation test cases* | ... diff --git a/tests/func/lisp/eth2p-ethip4lispgpe-ip6base-eth-2vhost-1vm-func.robot b/tests/func/lisp/eth2p-ethip4lispgpe-ip6base-eth-2vhost-1vm-func.robot index f74af9607f..ee4e408de7 100644 --- a/tests/func/lisp/eth2p-ethip4lispgpe-ip6base-eth-2vhost-1vm-func.robot +++ b/tests/func/lisp/eth2p-ethip4lispgpe-ip6base-eth-2vhost-1vm-func.robot @@ -27,15 +27,14 @@ | Library | resources.libraries.python.VPPUtil # import additional Lisp settings from resource file | Variables | resources/test_data/lisp/static_adjacency/lisp_static_adjacency.py +| ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | 3_NODE_DOUBLE_LINK_TOPO | ... | VM_ENV | HW_ENV +| ... | Test Setup | Set up functional test -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Stop and clear QEMU | ${nodes['DUT1']} | ${vm_node} -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Teardown | Tear down LISP functional test with QEMU | ${vm_node} +| ... | Documentation | *LISP static adjacency test cases* | ... | ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ diff --git a/tests/func/lisp/eth2p-ethip4lispgpe-ip6base-func.robot b/tests/func/lisp/eth2p-ethip4lispgpe-ip6base-func.robot index 2d1a9c4253..7966d1c57c 100644 --- a/tests/func/lisp/eth2p-ethip4lispgpe-ip6base-func.robot +++ b/tests/func/lisp/eth2p-ethip4lispgpe-ip6base-func.robot @@ -27,10 +27,14 @@ | Library | resources.libraries.python.VPPUtil # import additional Lisp settings from resource file | Variables | resources/test_data/lisp/static_adjacency/lisp_static_adjacency.py +| ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | 3_NODE_DOUBLE_LINK_TOPO | ... | VM_ENV | HW_ENV +| ... | Test Setup | Set up functional test +| ... | Test Teardown | Tear down functional test +| ... | Documentation | *LISP static adjacency test cases* | ... | ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ diff --git a/tests/func/lisp/eth2p-ethip4lispgpe-ip6basevrf-func.robot b/tests/func/lisp/eth2p-ethip4lispgpe-ip6basevrf-func.robot index e5bc484b75..d1db5a8a19 100644 --- a/tests/func/lisp/eth2p-ethip4lispgpe-ip6basevrf-func.robot +++ b/tests/func/lisp/eth2p-ethip4lispgpe-ip6basevrf-func.robot @@ -27,12 +27,14 @@ | Library | resources.libraries.python.VPPUtil # import additional Lisp settings from resource file | Variables | resources/test_data/lisp/static_adjacency/lisp_static_adjacency.py +| ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | 3_NODE_DOUBLE_LINK_TOPO | ... | VM_ENV | HW_ENV +| ... | Test Setup | Set up functional test -| Test Teardown | Run Keywords | Tear down functional test -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} +| ... +| Test Teardown | Tear down LISP functional test +| ... | Documentation | *LISP static adjacency test cases* | ... | ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ diff --git a/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip4base-eth-2vhost-1vm-func.robot b/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip4base-eth-2vhost-1vm-func.robot index f125dcbe39..3db32da344 100644 --- a/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip4base-eth-2vhost-1vm-func.robot +++ b/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip4base-eth-2vhost-1vm-func.robot @@ -36,15 +36,12 @@ | Resource | resources/libraries/robot/bridge_domain.robot # Import configuration and test data: | Variables | resources/test_data/lisp/ipv4_lispgpe_ipv6/ipv4_lispgpe_ipsec_ipv6.py +| ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | SKIP_VPP_PATCH | ... | Test Setup | Set up functional test -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Stop and clear QEMU | ${nodes['DUT1']} | ${vm_node} -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Teardown | Tear down LISP functional test with QEMU | ${vm_node} | ... | Documentation | *IPv6 - ip4-ipsec-lispgpe-ip6 - main fib, virt2lisp, phy2lisp* | ... diff --git a/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip4base-func.robot b/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip4base-func.robot index d67928c7ab..b1f923d36b 100644 --- a/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip4base-func.robot +++ b/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip4base-func.robot @@ -35,9 +35,11 @@ | Resource | resources/libraries/robot/bridge_domain.robot # Import configuration and test data: | Variables | resources/test_data/lisp/ipv4_lispgpe_ipv6/ipv4_lispgpe_ipsec_ipv6.py +| ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | SKIP_VPP_PATCH | ... | Test Setup | Set up functional test +| ... | Test Teardown | Tear down functional test | ... | Documentation | *IPv6 - ip4-ipsec-lispgpe-ip6 - main fib, virt2lisp, phy2lisp* diff --git a/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip6base-eth-2vhost-1vm-func.robot b/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip6base-eth-2vhost-1vm-func.robot index 66c8a58abc..e03d8fff38 100644 --- a/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip6base-eth-2vhost-1vm-func.robot +++ b/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip6base-eth-2vhost-1vm-func.robot @@ -36,16 +36,13 @@ | Resource | resources/libraries/robot/bridge_domain.robot # Import configuration and test data: | Variables | resources/test_data/lisp/ipv6_lispgpe_ipv6/ipv6_lispgpe_ipsec_ipv6.py +| ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | SKIP_VPP_PATCH | ... | Test Setup | Run Keywords | Set up functional test | ... | AND | Vpp All Ra Suppress Link Layer | ${nodes} -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Stop and clear QEMU | ${nodes['DUT1']} | ${vm_node} -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Teardown | Tear down LISP functional test with QEMU | ${vm_node} | ... | Documentation | *IPv6 - ip6-ipsec-lispgpe-ip6 - main fib, | ... | vrf (gpe_vni-to-vrf), phy2lisp, virt2lisp* diff --git a/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip6base-func.robot b/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip6base-func.robot index e68ecf550d..177550f468 100644 --- a/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip6base-func.robot +++ b/tests/func/lisp/eth2p-ethip6ipsectptlispgpe-ip6base-func.robot @@ -36,10 +36,12 @@ | Resource | resources/libraries/robot/bridge_domain.robot # Import configuration and test data: | Variables | resources/test_data/lisp/ipv6_lispgpe_ipv6/ipv6_lispgpe_ipsec_ipv6.py +| ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | SKIP_VPP_PATCH | ... | Test Setup | Run Keywords | Set up functional test | ... | AND | Vpp All Ra Suppress Link Layer | ${nodes} +| ... | Test Teardown | Tear down functional test | ... | Documentation | *IPv6 - ip6-ipsec-lispgpe-ip6 - main fib, diff --git a/tests/func/lisp/eth2p-ethip6lisp-l2bdbasemaclrn-func.robot b/tests/func/lisp/eth2p-ethip6lisp-l2bdbasemaclrn-func.robot index af550b319b..7db90b677a 100644 --- a/tests/func/lisp/eth2p-ethip6lisp-l2bdbasemaclrn-func.robot +++ b/tests/func/lisp/eth2p-ethip6lisp-l2bdbasemaclrn-func.robot @@ -30,6 +30,7 @@ | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | ... | Test Setup | Set up functional test +| ... | Test Teardown | Tear down functional test | ... | Documentation | *l2-lispgpe-ip6 encapsulation test cases* @@ -93,5 +94,3 @@ | | ... | ${tg_node} | ${tg2_ip6} | ${tg1_ip6} | | ... | ${tg_to_dut2} | ${tg_if2_mac} | ${tg_if1_mac} | | ... | ${tg_to_dut1} | ${tg_if2_mac} | ${tg_if1_mac} - - diff --git a/tests/func/lisp/eth2p-ethip6lispgpe-ip4base-func.robot b/tests/func/lisp/eth2p-ethip6lispgpe-ip4base-func.robot index d44aabc0f2..5ddf50eb96 100644 --- a/tests/func/lisp/eth2p-ethip6lispgpe-ip4base-func.robot +++ b/tests/func/lisp/eth2p-ethip6lispgpe-ip4base-func.robot @@ -22,10 +22,14 @@ | Library | resources.libraries.python.Trace # import additional Lisp settings from resource file | Variables | resources/test_data/lisp/static_adjacency/lisp_static_adjacency.py +| ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | 3_NODE_DOUBLE_LINK_TOPO | ... | VM_ENV | HW_ENV +| ... | Test Setup | Set up functional test +| ... | Test Teardown | Tear down functional test +| ... | Documentation | *LISP static adjacency test cases* | ... | ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology\ @@ -55,49 +59,50 @@ | | ... | [Cfg2] Reconf LISP. | | ... | [Ver2] Verify packets are received again via LISP tunnel. | | ... | [Ref] RFC6830. +| | ... | | Given Configure path in 3-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} -| | And Set interfaces in 3-node circular topology up -| | And Configure IP addresses on interfaces -| | ... | ${dut1_node} | ${dut1_to_dut2} -| | ... | ${dut1_to_dut2_ip4o6} | ${dut_prefix4o6} -| | ... | ${dut1_node} | ${dut1_to_tg} -| | ... | ${dut1_to_tg_ip4o6} | ${tg_prefix4o6} -| | ... | ${dut2_node} | ${dut2_to_dut1} -| | ... | ${dut2_to_dut1_ip4o6} | ${dut_prefix4o6} -| | ... | ${dut2_node} | ${dut2_to_tg} -| | ... | ${dut2_to_tg_ip4o6} | ${tg_prefix4o6} -| | And VPP IP Probe | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip4o6} -| | And VPP IP Probe | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip4o6} -| | And Add Arp On Dut | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip4o6} -| | ... | ${tg_to_dut2_mac} -| | And Add Arp On Dut | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip4o6} -| | ... | ${tg_to_dut1_mac} +| | And Set interfaces in 3-node circular topology up +| | And Configure IP addresses on interfaces +| | ... | ${dut1_node} | ${dut1_to_dut2} +| | ... | ${dut1_to_dut2_ip4o6} | ${dut_prefix4o6} +| | ... | ${dut1_node} | ${dut1_to_tg} +| | ... | ${dut1_to_tg_ip4o6} | ${tg_prefix4o6} +| | ... | ${dut2_node} | ${dut2_to_dut1} +| | ... | ${dut2_to_dut1_ip4o6} | ${dut_prefix4o6} +| | ... | ${dut2_node} | ${dut2_to_tg} +| | ... | ${dut2_to_tg_ip4o6} | ${tg_prefix4o6} +| | And VPP IP Probe | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip4o6} +| | And VPP IP Probe | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip4o6} +| | And Add Arp On Dut | ${dut2_node} | ${dut2_to_tg} | ${tg2_ip4o6} +| | ... | ${tg_to_dut2_mac} +| | And Add Arp On Dut | ${dut1_node} | ${dut1_to_tg} | ${tg1_ip4o6} +| | ... | ${tg_to_dut1_mac} | | And Vpp All RA Suppress Link Layer | ${nodes} | | When Configure LISP topology in 3-node circular topology -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE} -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE} -| | ... | ${duts_locator_set} | ${dut1_ip4o6_eid} | ${dut2_ip4o6_eid} -| | ... | ${dut1_ip4o6_static_adjacency} | ${dut2_ip4o6_static_adjacency} +| | ... | ${dut1_node} | ${dut1_to_dut2} | ${NONE} +| | ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE} +| | ... | ${duts_locator_set} | ${dut1_ip4o6_eid} | ${dut2_ip4o6_eid} +| | ... | ${dut1_ip4o6_static_adjacency} | ${dut2_ip4o6_static_adjacency} | | Then Send packet and verify headers -| | ... | ${tg_node} | ${tg1_ip4o6} | ${tg2_ip4o6} -| | ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac} -| | ... | ${tg_to_dut2} | ${dut2_to_tg_mac} | ${tg_to_dut2_mac} +| | ... | ${tg_node} | ${tg1_ip4o6} | ${tg2_ip4o6} +| | ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac} +| | ... | ${tg_to_dut2} | ${dut2_to_tg_mac} | ${tg_to_dut2_mac} | | And Send packet and verify headers -| | ... | ${tg_node} | ${tg2_ip4o6} | ${tg1_ip4o6} -| | ... | ${tg_to_dut2} | ${tg_to_dut2_mac} | ${dut2_to_tg_mac} -| | ... | ${tg_to_dut1} | ${dut1_to_tg_mac} | ${tg_to_dut1_mac} +| | ... | ${tg_node} | ${tg2_ip4o6} | ${tg1_ip4o6} +| | ... | ${tg_to_dut2} | ${tg_to_dut2_mac} | ${dut2_to_tg_mac} +| | ... | ${tg_to_dut1} | ${dut1_to_tg_mac} | ${tg_to_dut1_mac} | | When Change LISP Configuration | ${dut1_node} | ${dut2_node} -| | ... | ${dut1_to_dut2} | ${dut2_to_dut1} | ${dut1_to_dut2_mac} -| | ... | ${dut2_to_dut1_mac} | ${dut1_to_dut2_ip4o6} -| | ... | ${dut2_to_dut1_ip4o6_reconf} | ${dut_prefix4o6} -| | ... | ${dut1_ip4o6_static_adjacency} -| | ... | ${dut1_ip4o6_static_adjacency_reconf} +| | ... | ${dut1_to_dut2} | ${dut2_to_dut1} | ${dut1_to_dut2_mac} +| | ... | ${dut2_to_dut1_mac} | ${dut1_to_dut2_ip4o6} +| | ... | ${dut2_to_dut1_ip4o6_reconf} | ${dut_prefix4o6} +| | ... | ${dut1_ip4o6_static_adjacency} +| | ... | ${dut1_ip4o6_static_adjacency_reconf} | | Then Send packet and verify headers -| | ... | ${tg_node} | ${tg1_ip4o6} | ${tg2_ip4o6} -| | ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac} -| | ... | ${tg_to_dut2} | ${dut2_to_tg_mac} | ${tg_to_dut2_mac} +| | ... | ${tg_node} | ${tg1_ip4o6} | ${tg2_ip4o6} +| | ... | ${tg_to_dut1} | ${tg_to_dut1_mac} | ${dut1_to_tg_mac} +| | ... | ${tg_to_dut2} | ${dut2_to_tg_mac} | ${tg_to_dut2_mac} | | And Send packet and verify headers -| | ... | ${tg_node} | ${tg2_ip4o6} | ${tg1_ip4o6} -| | ... | ${tg_to_dut2} | ${tg_to_dut2_mac} | ${dut2_to_tg_mac} -| | ... | ${tg_to_dut1} | ${dut1_to_tg_mac} | ${tg_to_dut1_mac}
\ No newline at end of file +| | ... | ${tg_node} | ${tg2_ip4o6} | ${tg1_ip4o6} +| | ... | ${tg_to_dut2} | ${tg_to_dut2_mac} | ${dut2_to_tg_mac} +| | ... | ${tg_to_dut1} | ${dut1_to_tg_mac} | ${tg_to_dut1_mac} diff --git a/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-eth-2vhost-1vm-func.robot b/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-eth-2vhost-1vm-func.robot index b0c519f799..afcbab6918 100644 --- a/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-eth-2vhost-1vm-func.robot +++ b/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-eth-2vhost-1vm-func.robot @@ -33,12 +33,8 @@ | ... | Test Setup | Run Keywords | Set up functional test | ... | AND | Vpp All Ra Suppress Link Layer | ${nodes} -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Stop and clear QEMU | ${nodes['DUT1']} | ${vm_node} -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Teardown | Tear down LISP functional test with QEMU | ${vm_node} | ... | Documentation | *ip6-lispgpe-ip6 encapsulation test cases* | ... @@ -132,4 +128,4 @@ | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip6} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip6} -| | ... | ${dut1_to_dut2_mac}
\ No newline at end of file +| | ... | ${dut1_to_dut2_mac} diff --git a/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-func.robot b/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-func.robot index 73e66561d5..93399bbe35 100644 --- a/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-func.robot +++ b/tests/func/lisp/eth2p-ethip6lispgpe-ip6base-func.robot @@ -32,12 +32,9 @@ | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | ... | Test Setup | Run Keywords | Set up functional test -| ... | AND | Vpp All Ra Suppress Link Layer | ${nodes} -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Verify VPP PID in Teardown +| ... | AND | Vpp All Ra Suppress Link Layer | ${nodes} +| ... +| Test Teardown | Tear down LISP functional test | ... | Documentation | *ip6-lispgpe-ip6 encapsulation test cases* | ... @@ -107,4 +104,4 @@ | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip6} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip6} -| | ... | ${dut1_to_dut2_mac}
\ No newline at end of file +| | ... | ${dut1_to_dut2_mac} diff --git a/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-eth-2vhost-1vm-func.robot b/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-eth-2vhost-1vm-func.robot index 1f409c98a0..b41cb37d94 100644 --- a/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-eth-2vhost-1vm-func.robot +++ b/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-eth-2vhost-1vm-func.robot @@ -33,12 +33,8 @@ | ... | Test Setup | Run Keywords | Set up functional test | ... | AND | Vpp All Ra Suppress Link Layer | ${nodes} -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Stop and clear QEMU | ${nodes['DUT1']} | ${vm_node} -| ... | AND | Verify VPP PID in Teardown +| ... +| Test Teardown | Tear down LISP functional test with QEMU | ${vm_node} | ... | Documentation | *ip6-lispgpe-ip6 encapsulation test cases* | ... @@ -139,4 +135,4 @@ | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip6} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip6} -| | ... | ${dut1_to_dut2_mac}
\ No newline at end of file +| | ... | ${dut1_to_dut2_mac} diff --git a/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-func.robot b/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-func.robot index 79503d8638..281bbd0dda 100644 --- a/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-func.robot +++ b/tests/func/lisp/eth2p-ethip6lispgpe-ip6basevrf-func.robot @@ -32,12 +32,9 @@ | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | LISP | ... | Test Setup | Run Keywords | Set up functional test -| ... | AND | Vpp All Ra Suppress Link Layer | ${nodes} -| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes} -| ... | AND | Show VAT History On All DUTs | ${nodes} -| ... | AND | Show Vpp Settings | ${nodes['DUT1']} -| ... | AND | Show Vpp Settings | ${nodes['DUT2']} -| ... | AND | Verify VPP PID in Teardown +| ... | AND | Vpp All Ra Suppress Link Layer | ${nodes} +| ... +| Test Teardown | Tear down LISP functional test | ... | Documentation | *ip6-lispgpe-ip6 encapsulation test cases* | ... @@ -112,4 +109,4 @@ | | Add IP Neighbor | ${dut1_node} | ${dut1_to_dut2} | ${dut2_to_dut1_ip6} | | ... | ${dut2_to_dut1_mac} | | Add IP Neighbor | ${dut2_node} | ${dut2_to_dut1} | ${dut1_to_dut2_ip6} -| | ... | ${dut1_to_dut2_mac}
\ No newline at end of file +| | ... | ${dut1_to_dut2_mac} diff --git a/tests/func/tap/api-crud-tap-func.robot b/tests/func/tap/api-crud-tap-func.robot index 99014a9583..c1a830937c 100644 --- a/tests/func/tap/api-crud-tap-func.robot +++ b/tests/func/tap/api-crud-tap-func.robot @@ -23,11 +23,13 @@ | Library | resources.libraries.python.Tap | Library | resources.libraries.python.Namespaces | Library | resources.libraries.python.IPUtil +| ... | Force Tags | HW_ENV | VM_ENV | 3_NODE_DOUBLE_LINK_TOPO -| Test Setup | Run Keywords | Set up functional test -| ... | AND | Clean Up Namespaces | ${nodes['DUT1']} -| Test Teardown | Run Keywords | Tear down functional test -| ... | AND | Clean Up Namespaces | ${nodes['DUT1']} +| ... +| Test Setup | Set up TAP functional test +| ... +| Test Teardown | Tear down TAP functional test +| ... | Documentation | *Tap Interface CRUD Tests* | ... | *[Top] Network Topologies:* TG=DUT1 2-node topology with two links | ... | between nodes. @@ -47,10 +49,11 @@ | | ... | [Top] TG-DUT1-TG. | | ... | [Enc] Eth-IPv4-ICMPv4. | | ... | [Cfg] Set two TAP interfaces. -| | ... | [Ver] Verify that TAP interface can be modified, deleted, and no other -| | ... | TAP interface is affected. -| | Given Configure path in 2-node circular topology | ${nodes['TG']} | ${nodes['DUT1']} -| | ... | ${nodes['TG']} +| | ... | [Ver] Verify that TAP interface can be modified, deleted, and no\ +| | ... | other TAP interface is affected. +| | ... +| | Given Configure path in 2-node circular topology | ${nodes['TG']} +| | ... | ${nodes['DUT1']} | ${nodes['TG']} | | And Set interfaces in 2-node circular topology up | | ${int1}= | And Add Tap Interface | ${dut_node} | ${tap_int1} | | ${int2}= | And Add Tap Interface | ${dut_node} | ${tap_int2} diff --git a/tests/func/tap/eth2p-eth-l2bdbasemaclrn-eth-2tap-func.robot b/tests/func/tap/eth2p-eth-l2bdbasemaclrn-eth-2tap-func.robot index f7d267f272..984b6e42ef 100644 --- a/tests/func/tap/eth2p-eth-l2bdbasemaclrn-eth-2tap-func.robot +++ b/tests/func/tap/eth2p-eth-l2bdbasemaclrn-eth-2tap-func.robot @@ -23,12 +23,13 @@ | Library | resources.libraries.python.Tap | Library | resources.libraries.python.Namespaces | Library | resources.libraries.python.IPUtil +| ... | Force Tags | HW_ENV | VM_ENV | 3_NODE_DOUBLE_LINK_TOPO -| Test Setup | Run Keywords | Set up functional test -| ... | AND | Clean Up Namespaces | ${nodes['DUT1']} -| Test Teardown | Run Keywords | Tear down functional test -| ... | AND | Linux Del Bridge | ${nodes['DUT1']} | ${bid_TAP} -| ... | AND | Clean Up Namespaces | ${nodes['DUT1']} +| ... +| Test Setup | Set up TAP functional test +| ... +| Test Teardown | Tear down TAP functional test with Linux bridge | ${bid_TAP} +| ... | Documentation | *Tap Interface Traffic Tests* | ... | *[Top] Network Topologies:* TG=DUT1 2-node topology with two links | ... | between nodes. @@ -56,14 +57,14 @@ | | [Documentation] | | ... | [Top] TG-DUT1-TG. | | ... | [Enc] Eth-IPv4-ICMPv4. -| | ... | [Cfg] On DUT1 configure two -| | ... | L2BD with two if's for each L2BD with MAC learning and one L2BD -| | ... | joining two linux-TAP interfaces created by VPP located in namespace. -| | ... | [Ver] Packet sent from TG is passed through all L2BD and received +| | ... | [Cfg] On DUT1 configure two L2BD with two if's for each L2BD with MAC\ +| | ... | learning and one L2BD joining two linux-TAP interfaces created by VPP\ +| | ... | located in namespace. +| | ... | [Ver] Packet sent from TG is passed through all L2BD and received\ | | ... | back on TG. Then src_ip, dst_ip and MAC are checked. | | ... -| | Given Configure path in 2-node circular topology | ${nodes['TG']} | ${nodes['DUT1']} -| | ... | ${nodes['TG']} +| | Given Configure path in 2-node circular topology | ${nodes['TG']} +| | ... | ${nodes['DUT1']} | ${nodes['TG']} | | And Set interfaces in 2-node circular topology up | | ${int1}= | And Add Tap Interface | ${dut_node} | ${tap_int1} | | ${int2}= | And Add Tap Interface | ${dut_node} | ${tap_int2} diff --git a/tests/func/tap/eth2p-eth-l2bdbasemaclrn-l2shg-eth-2tap-func.robot b/tests/func/tap/eth2p-eth-l2bdbasemaclrn-l2shg-eth-2tap-func.robot index 8b3d25d051..8cfd10ac25 100644 --- a/tests/func/tap/eth2p-eth-l2bdbasemaclrn-l2shg-eth-2tap-func.robot +++ b/tests/func/tap/eth2p-eth-l2bdbasemaclrn-l2shg-eth-2tap-func.robot @@ -23,11 +23,13 @@ | Library | resources.libraries.python.Tap | Library | resources.libraries.python.Namespaces | Library | resources.libraries.python.IPUtil +| ... | Force Tags | HW_ENV | VM_ENV | 3_NODE_DOUBLE_LINK_TOPO -| Test Setup | Run Keywords | Set up functional test -| ... | AND | Clean Up Namespaces | ${nodes['DUT1']} -| Test Teardown | Run Keywords | Tear down functional test -| ... | AND | Clean Up Namespaces | ${nodes['DUT1']} +| ... +| Test Setup | Set up TAP functional test +| ... +| Test Teardown | Tear down TAP functional test +| ... | Documentation | *Tap Interface Traffic Tests* | ... | *[Top] Network Topologies:* TG=DUT1 2-node topology with two links | ... | between nodes. @@ -67,14 +69,14 @@ | | [Documentation] | | ... | [Top] TG-DUT1-TG. | | ... | [Enc] Eth-IPv4-ICMPv4. -| | ... | [Cfg] On DUT1 -| | ... | configure one if into L2BD with MAC learning. Add two TAP interfaces -| | ... | into this L2BD and assign them different SHG. Setup two namespaces -| | ... | and assign two linux-TAP interfaces to it respectively. -| | ... | [Ver] Packet is sent from TG to both linux-TAP interfaces and reply +| | ... | [Cfg] On DUT1 configure one if into L2BD with MAC learning. Add two\ +| | ... | TAP interfaces into this L2BD and assign them different SHG. Setup\ +| | ... | two namespaces and assign two linux-TAP interfaces to it respectively. +| | ... | [Ver] Packet is sent from TG to both linux-TAP interfaces and reply\ | | ... | is checked. Ping from First linux-TAP to another should pass. -| | Given Configure path in 2-node circular topology | ${nodes['TG']} | ${nodes['DUT1']} -| | ... | ${nodes['TG']} +| | ... +| | Given Configure path in 2-node circular topology | ${nodes['TG']} +| | ... | ${nodes['DUT1']} | ${nodes['TG']} | | And Set interfaces in 2-node circular topology up | | ${int1}= | And Add Tap Interface | ${dut_node} | ${tap_int1} | | ${int2}= | And Add Tap Interface | ${dut_node} | ${tap_int2} @@ -101,32 +103,34 @@ | | And Create bridge domain | ${dut_node} | | ... | ${bd_id1} | learn=${TRUE} | | And Add interface to bridge domain | ${dut_node} | ${dut_to_tg_if1} -| | ... | ${bd_id1} +| | ... | ${bd_id1} | | And Add interface to bridge domain | ${dut_node} | ${int1} -| | ... | ${bd_id1} | ${shg1} +| | ... | ${bd_id1} | ${shg1} | | And Add interface to bridge domain | ${dut_node} | ${int2} -| | ... | ${bd_id1} | ${shg2} -| | Then Send ICMP echo request and verify answer | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tap1_NM_mac} | ${tg_to_dut_if1_mac} +| | ... | ${bd_id1} | ${shg2} +| | Then Send ICMP echo request and verify answer | ${tg_node} +| | ... | ${tg_to_dut_if1} | ${tap1_NM_mac} | ${tg_to_dut_if1_mac} | | ... | ${tap1_NM_ip} | ${tg_ip_address_SHG} | | And Send ICMP echo request and verify answer | ${tg_node} | ${tg_to_dut_if1} | | ... | ${tap2_NM_mac} | ${tg_to_dut_if1_mac} | | ... | ${tap2_NM_SHG} | ${tg_ip_address_SHG} -| | And Send Ping From Node To Dst | ${dut_node} | ${tap1_NM_ip} | namespace=${namespace2} -| | And Send Ping From Node To Dst | ${dut_node} | ${tap2_NM_SHG} | namespace=${namespace1} +| | And Send Ping From Node To Dst | ${dut_node} | ${tap1_NM_ip} +| | ... | namespace=${namespace2} +| | And Send Ping From Node To Dst | ${dut_node} | ${tap2_NM_SHG} +| | ... | namespace=${namespace1} | TC02: Tap Interface BD - Same Split Horizon | | [Documentation] | | ... | [Top] TG-DUT1-TG. | | ... | [Enc] Eth-IPv4-ICMPv4. -| | ... | [Cfg] On DUT1 -| | ... | configure one if into L2BD with MAC learning. Add two TAP interfaces -| | ... | into this L2BD and assign them same SHG. Setup two namespaces -| | ... | and assign two linux-TAP interfaces to it respectively. -| | ... | [Ver] Packet is sent from TG to both linux-TAP interfaces and reply +| | ... | [Cfg] On DUT1 configure one if into L2BD with MAC learning. Add two\ +| | ... | TAP interfaces into this L2BD and assign them same SHG. Setup two\ +| | ... | namespaces and assign two linux-TAP interfaces to it respectively. +| | ... | [Ver] Packet is sent from TG to both linux-TAP interfaces and reply\ | | ... | is checked. Ping from First linux-TAP to another should fail. -| | Given Configure path in 2-node circular topology | ${nodes['TG']} | ${nodes['DUT1']} -| | ... | ${nodes['TG']} +| | ... +| | Given Configure path in 2-node circular topology | ${nodes['TG']} +| | ... | ${nodes['DUT1']} | ${nodes['TG']} | | And Set interfaces in 2-node circular topology up | | ${int1}= | And Add Tap Interface | ${dut_node} | ${tap_int1} | | ${int2}= | And Add Tap Interface | ${dut_node} | ${tap_int2} @@ -153,18 +157,20 @@ | | And Create bridge domain | ${dut_node} | | ... | ${bd_id1} | learn=${TRUE} | | And Add interface to bridge domain | ${dut_node} | ${dut_to_tg_if1} -| | ... | ${bd_id1} +| | ... | ${bd_id1} | | And Add interface to bridge domain | ${dut_node} | ${int1} -| | ... | ${bd_id1} | ${shg1} +| | ... | ${bd_id1} | ${shg1} | | And Add interface to bridge domain | ${dut_node} | ${int2} -| | ... | ${bd_id1} | ${shg1} -| | Then Send ICMP echo request and verify answer | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tap1_NM_mac} | ${tg_to_dut_if1_mac} +| | ... | ${bd_id1} | ${shg1} +| | Then Send ICMP echo request and verify answer | ${tg_node} +| | ... | ${tg_to_dut_if1} | ${tap1_NM_mac} | ${tg_to_dut_if1_mac} | | ... | ${tap1_NM_ip} | ${tg_ip_address_SHG} | | And Send ICMP echo request and verify answer | ${tg_node} | ${tg_to_dut_if1} | | ... | ${tap2_NM_mac} | ${tg_to_dut_if1_mac} | | ... | ${tap2_NM_SHG} | ${tg_ip_address_SHG} -| | And Run Keyword And Expect Error | Ping Not Successful | Send Ping From Node To Dst -| | ... | ${dut_node} | ${tap2_NM_SHG} | namespace=${namespace1} -| | And Run Keyword And Expect Error | Ping Not Successful | Send Ping From Node To Dst -| | ... | ${dut_node} | ${tap1_NM_ip} | namespace=${namespace2} +| | And Run Keyword And Expect Error | Ping Not Successful +| | ... | Send Ping From Node To Dst | ${dut_node} | ${tap2_NM_SHG} +| | ... | namespace=${namespace1} +| | And Run Keyword And Expect Error | Ping Not Successful +| | ... | Send Ping From Node To Dst | ${dut_node} | ${tap1_NM_ip} +| | ... | namespace=${namespace2} diff --git a/tests/func/tap/eth2p-ethip4-ip4base-eth-1tap-func.robot b/tests/func/tap/eth2p-ethip4-ip4base-eth-1tap-func.robot index 7b84a00028..9500debfbc 100644 --- a/tests/func/tap/eth2p-ethip4-ip4base-eth-1tap-func.robot +++ b/tests/func/tap/eth2p-ethip4-ip4base-eth-1tap-func.robot @@ -23,11 +23,13 @@ | Library | resources.libraries.python.Tap | Library | resources.libraries.python.Namespaces | Library | resources.libraries.python.IPUtil +| ... | Force Tags | HW_ENV | VM_ENV | 3_NODE_DOUBLE_LINK_TOPO -| Test Setup | Run Keywords | Set up functional test -| ... | AND | Clean Up Namespaces | ${nodes['DUT1']} -| Test Teardown | Run Keywords | Tear down functional test -| ... | AND | Clean Up Namespaces | ${nodes['DUT1']} +| ... +| Test Setup | Set up TAP functional test +| ... +| Test Teardown | Tear down TAP functional test +| ... | Documentation | *Tap Interface Traffic Tests* | ... | *[Top] Network Topologies:* TG=DUT1 2-node topology with two links | ... | between nodes. @@ -60,13 +62,13 @@ | | [Documentation] | | ... | [Top] TG-DUT1-TG. | | ... | [Enc] Eth-IPv4-ICMPv4. -| | ... | [Cfg] On DUT1 configure two interface addresses with IPv4 of which -| | ... | one is TAP interface ( dut_to_tg_if and TAP ). -| | ... | and one is linux-TAP. -| | ... | [Ver] Packet sent from TG gets to the destination and ICMP-reply is +| | ... | [Cfg] On DUT1 configure two interface addresses with IPv4 of which\ +| | ... | one is TAP interface (dut_to_tg_if and TAP) and one is linux-TAP. +| | ... | [Ver] Packet sent from TG gets to the destination and ICMP-reply is\ | | ... | received on TG. -| | Given Configure path in 2-node circular topology | ${nodes['TG']} | ${nodes['DUT1']} -| | ... | ${nodes['TG']} +| | ... +| | Given Configure path in 2-node circular topology | ${nodes['TG']} +| | ... | ${nodes['DUT1']} | ${nodes['TG']} | | And Set interfaces in 2-node circular topology up | | ${int1}= | And Add Tap Interface | ${dut_node} | ${tap_int1} | | | And Set Interface Address @@ -83,21 +85,22 @@ | | ... | ${tg_ip_address} | ${tg_to_dut_if1_mac} | | And Add Arp On Dut | ${dut_node} | ${int1} | | ... | ${tap1_NM_ip} | ${tap1_NM_mac} -| | Then Send ICMP echo request and verify answer | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${dut_to_tg_if1_mac} | ${tg_to_dut_if1_mac} +| | Then Send ICMP echo request and verify answer | ${tg_node} +| | ... | ${tg_to_dut_if1} | ${dut_to_tg_if1_mac} | ${tg_to_dut_if1_mac} | | ... | ${tap1_NM_ip} | ${tg_ip_address} | TC02: Tap Interface IP Ping With Namespace | | [Documentation] | | ... | [Top] TG-DUT1-TG. | | ... | [Enc] Eth-IPv4-ICMPv4. -| | ... | [Cfg] On DUT1 configure two interface addresses with IPv4 of which -| | ... | one is TAP interface ( dut_to_tg_if and TAP ). -| | ... | and one is linux-TAP in namespace. -| | ... | [Ver] Packet sent from TG gets to the destination and ICMP-reply is +| | ... | [Cfg] On DUT1 configure two interface addresses with IPv4 of which\ +| | ... | one is TAP interface (dut_to_tg_if and TAP) and one is linux-TAP in\ +| | ... | namespace. +| | ... | [Ver] Packet sent from TG gets to the destination and ICMP-reply is\ | | ... | received on TG. -| | Given Configure path in 2-node circular topology | ${nodes['TG']} | ${nodes['DUT1']} -| | ... | ${nodes['TG']} +| | ... +| | Given Configure path in 2-node circular topology | ${nodes['TG']} +| | ... | ${nodes['DUT1']} | ${nodes['TG']} | | And Set interfaces in 2-node circular topology up | | ${int1}= | And Add Tap Interface | ${dut_node} | ${tap_int1} | | | And Set Interface Address @@ -118,6 +121,6 @@ | | ... | ${tap1_NM_ip} | ${tap1_NM_mac} | | And Add Route | ${dut_node} | | ... | ${tg_ip_address_GW} | ${prefix} | ${tap1_VPP_ip} | ${namespace1} -| | Then Send ICMP echo request and verify answer | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${dut_to_tg_if1_mac} | ${tg_to_dut_if1_mac} +| | Then Send ICMP echo request and verify answer | ${tg_node} +| | ... | ${tg_to_dut_if1} | ${dut_to_tg_if1_mac} | ${tg_to_dut_if1_mac} | | ... | ${tap1_NM_ip} | ${tg_ip_address} diff --git a/tests/func/vhost/eth2p-ethip4-l2bdbase-vhost-client-reconnect-2vm-func.robot b/tests/func/vhost/eth2p-ethip4-l2bdbase-vhost-client-reconnect-2vm-func.robot index 7ac0ec698e..958acc2c5d 100644 --- a/tests/func/vhost/eth2p-ethip4-l2bdbase-vhost-client-reconnect-2vm-func.robot +++ b/tests/func/vhost/eth2p-ethip4-l2bdbase-vhost-client-reconnect-2vm-func.robot @@ -50,7 +50,7 @@ | ${sock_vm2_2}= | /tmp/sock4 *** Test Cases *** -| TC01: Qemu reconnects to VPPs vhost-user when Qemu is killed and restarted +| TC01: Qemu reconnects to VPPs vhost-user when Qemu is killed and restarted | | Given Configure path in 2-node circular topology | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | And Set interfaces in 2-node circular topology up @@ -90,10 +90,10 @@ | | ... | ${vhost_if3} | | And Vpp Add L2 Bridge Domain | ${dut_node} | ${104} | ${vxlan4} | | ... | ${vhost_if4} -| | And Configure QEMU vhost and run it VM | ${dut_node} | ${sock_vm1_1} | ${sock_vm1_2} -| | ... | ${1} -| | And Configure QEMU vhost and run it VM | ${dut_node} | ${sock_vm2_1} | ${sock_vm2_2} -| | ... | ${2} +| | And Configure QEMU vhost and run it VM | ${dut_node} | ${sock_vm1_1} +| | ... | ${sock_vm1_2} | ${1} +| | And Configure QEMU vhost and run it VM | ${dut_node} | ${sock_vm2_1} +| | ... | ${sock_vm2_2} | ${2} | | And Check traffic through VM | | When Run keyword | qemu-1.Qemu Kill | | ${vm1}= | And Run Keyword | qemu-1.Qemu Start @@ -150,10 +150,10 @@ | | ... | ${vhost_if3} | | And Vpp Add L2 Bridge Domain | ${dut_node} | ${104} | ${vxlan4} | | ... | ${vhost_if4} -| | And Configure QEMU vhost and run it VM | ${dut_node} | ${sock_vm1_1} | ${sock_vm1_2} -| | ... | ${1} -| | And Configure QEMU vhost and run it VM | ${dut_node} | ${sock_vm2_1} | ${sock_vm2_2} -| | ... | ${2} +| | And Configure QEMU vhost and run it VM | ${dut_node} | ${sock_vm1_1} +| | ... | ${sock_vm1_2} | ${1} +| | And Configure QEMU vhost and run it VM | ${dut_node} | ${sock_vm2_1} +| | ... | ${sock_vm2_2} | ${2} | | And Check traffic through VM | | And Verify VPP PID in Teardown | | When Setup All Duts | ${nodes} |