HC Test: update plugin-ACL test suite 42/6242/5
authorselias <samelias@cisco.com>
Thu, 13 Apr 2017 10:28:43 +0000 (12:28 +0200)
committerTibor Frank <tifrank@cisco.com>
Fri, 21 Apr 2017 08:03:50 +0000 (08:03 +0000)
 - fix variables in routed icmpv6 test case
 - remove EXPECTED_FAILING tag from IPv6 and ICMPv6 cases
 - create and use keywords for test teardown

Change-Id: I91792b5900015827bc2bcfd138192f972f92df28
Signed-off-by: selias <samelias@cisco.com>
resources/test_data/honeycomb/plugin_acl.py
tests/func/honeycomb/mgmt-cfg-pluginacl-apihc-apivat-func.robot

index 6bd673d..9741da8 100644 (file)
@@ -121,6 +121,11 @@ def get_variables(test_case, name):
             "src_ip": "10::1",
             "dst_ip": "11::1",
             "dst_net": "11::",
+            # IPs for DUT interface setup
+            "dut_to_tg_if1_ip": "10::2",
+            "dut_to_tg_if2_ip": "20::2",
+            "prefix_length": 64,
+            "gateway": "20::1",
             # ICMP code and type for control packet
             "icmp_type": 1,
             "icmp_code": 0,
@@ -295,6 +300,7 @@ def get_variables(test_case, name):
                     "rule-name": "rule1",
                     "matches": {
                         "vpp-ace-nodes": {
+                            "source-ipv4-network": "0.0.0.0/0",
                             "tcp-nodes": {
                                 "destination-port-range": {
                                     "lower-port":
@@ -339,6 +345,7 @@ def get_variables(test_case, name):
                     "rule-name": "ports",
                     "matches": {
                         "vpp-ace-nodes": {
+                            "source-ipv4-network": "0.0.0.0/0",
                             "tcp-nodes": {
                                 "destination-port-range": {
                                     "lower-port":
@@ -384,6 +391,7 @@ def get_variables(test_case, name):
                         "rule-name": "rule1",
                         "matches": {
                             "vpp-ace-nodes": {
+                                "source-ipv4-network": "0.0.0.0/0",
                                 "icmp-nodes": {
                                     "icmp-type-range": {
                                         "first": "1",
@@ -425,6 +433,7 @@ def get_variables(test_case, name):
                         "rule-name": "rule1",
                         "matches": {
                             "vpp-ace-nodes": {
+                                "source-ipv6-network": "::/0",
                                 "icmp-v6-nodes": {
                                     "icmp-type-range": {
                                         "first": "1",
index 15fedd9..cecd1c2 100644 (file)
@@ -43,9 +43,6 @@
 | Library | resources.libraries.python.IPv6Util
 | Library | resources.libraries.python.Routing
 | Test Setup | Clear Packet Trace on All DUTs | ${nodes}
-| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes}
-| ... | AND | Read plugin-ACL configuration from VAT | ${node}
-| ... | AND | Clear plugin-acl settings | ${node} | ${dut_to_tg_if1}
 | Suite Teardown
 | ... | Restart Honeycomb and VPP | ${node}
 | Documentation | *Honeycomb access control lists test suite for ACL plugin.*
 | | ... | [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] | Run Keywords
-| | ... | Show Packet Trace on All DUTs | ${nodes} | AND
-| | ... | Clear plugin-acl Settings | ${node} | ${dut_to_tg_if1} | AND
-| | ... | Honeycomb Removes All Bridge Domains
-| | ... | ${node} | ${dut_to_tg_if1} | ${dut_to_tg_if2}
+| | [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
 | | ... | [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] | Run Keywords
-| | ... | Show Packet Trace on All DUTs | ${nodes} | AND
-| | ... | Read plugin-ACL configuration from VAT | ${node} | AND
-| | ... | Clear plugin-acl Settings | ${node} | ${dut_to_tg_if1} | AND
-| | ... | Honeycomb Removes All Bridge Domains
-| | ... | ${node} | ${dut_to_tg_if1} | ${dut_to_tg_if2}
+| | [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
 | | ... | [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.
-| | [Tags] | EXPECTED_FAILING
-# VPP-687: IPv6 next-header does not match for UDP values
-| | [Teardown] | Run Keywords
-| | ... | Show Packet Trace on All DUTs | ${nodes} | AND
-| | ... | Read plugin-ACL configuration from VAT | ${node} | AND
-| | ... | Clear plugin-acl Settings | ${node} | ${dut_to_tg_if1} | AND
-| | ... | Honeycomb Removes All Bridge Domains
-| | ... | ${node} | ${dut_to_tg_if1} | ${dut_to_tg_if2}
+| | [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
 | | ... | [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] | Run Keywords
-| | ... | Show Packet Trace on All DUTs | ${nodes} | AND
-| | ... | Read plugin-ACL configuration from VAT | ${node} | AND
-| | ... | Clear plugin-acl Settings | ${node} | ${dut_to_tg_if1} | AND
-| | ... | Honeycomb Removes All Bridge Domains
-| | ... | ${node} | ${dut_to_tg_if1} | ${dut_to_tg_if2}
+| | [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
 | | ... | [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] | Run Keywords
-| | ... | Show Packet Trace on All DUTs | ${nodes} | AND
-| | ... | Read plugin-ACL configuration from VAT | ${node} | AND
-| | ... | Clear plugin-acl Settings | ${node} | ${dut_to_tg_if1} | AND
-| | ... | Honeycomb Removes All Bridge Domains
-| | ... | ${node} | ${dut_to_tg_if1} | ${dut_to_tg_if2}
+| | [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
 | | ... | [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] | Run Keywords
-| | ... | Show Packet Trace on All DUTs | ${nodes} | AND
-| | ... | Read plugin-ACL configuration from VAT | ${node} | AND
-| | ... | Clear plugin-acl Settings | ${node} | ${dut_to_tg_if1} | AND
-| | ... | Honeycomb Removes All Bridge Domains
-| | ... | ${node} | ${dut_to_tg_if1} | ${dut_to_tg_if2}
+| | [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
 | | ... | [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.
-| | [Tags] | EXPECTED_FAILING
-# VPP-687: IPv6 next-header does not match for UDP values
-| | [Teardown] | Run Keywords
-| | ... | Show Packet Trace on All DUTs | ${nodes} | AND
-| | ... | Read plugin-ACL configuration from VAT | ${node} | AND
-| | ... | Clear plugin-acl Settings | ${node} | ${dut_to_tg_if1} | AND
-| | ... | Honeycomb Removes All Bridge Domains
-| | ... | ${node} | ${dut_to_tg_if1} | ${dut_to_tg_if2}
+| | [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
 | | ... | 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] | Run Keywords
-| | ... | Show Packet Trace on All DUTs | ${nodes} | AND
-| | ... | Read plugin-ACL configuration from VAT | ${node} | AND
-| | ... | Clear plugin-acl Settings | ${node} | ${dut_to_tg_if1} | AND
-| | ... | Honeycomb Removes All Bridge Domains
-| | ... | ${node} | ${dut_to_tg_if1} | ${dut_to_tg_if2}
+| | [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
 | | ... | [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
 | | ... | [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.
-| | [Tags] | EXPECTED_FAILING
-# VPP-687: IPv6 next-header does not match for UDP values
+| | [Teardown] | Routed ACL test teardown - ipv6
 | | Given Path for 2-node testing is set
 | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']}
 | | And Import Variables | resources/test_data/honeycomb/plugin_acl.py
 | | ... | L3_IP6 | ${acl_name_l3_ip6}
 | | And Honeycomb sets interface state | ${dut_node} | ${dut_to_tg_if1} | up
 | | And Honeycomb sets interface state | ${dut_node} | ${dut_to_tg_if2} | up
-# TODO: Configure addresses through Honeycomb when implemented. (Honeycomb-102)
-| | And Set Interface Address | ${dut_node}
+| | And Honeycomb sets interface ipv6 address | ${dut_node}
 | | ... | ${dut_to_tg_if1} | ${dut_to_tg_if1_ip} | ${prefix_length}
-| | And Set Interface Address | ${dut_node}
+| | And Honeycomb sets interface ipv6 address | ${dut_node}
 | | ... | ${dut_to_tg_if2} | ${dut_to_tg_if2_ip} | ${prefix_length}
 | | And VPP RA suppress link layer | ${dut_node} | ${dut_to_tg_if2}
-# TODO: Configure route through Honeycomb when implemented.(Honeycomb-58)
-| | And Add IP Neighbor
+| | And Honeycomb adds interface ipv6 neighbor
 | | ... | ${node} | ${dut_to_tg_if2} | ${gateway} | ${tg_to_dut_if2_mac}
 | | And VPP Route Add | ${node} | ${dst_net} | ${prefix_length}
 | | ... | ${gateway} | interface=${dut_to_tg_if2} | use_sw_index=False
 | | ... | [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
 | | ... | [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
 | | ... | [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
 | | ... | [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.
-| | [Tags] | EXPECTED_FAILING
-# VPP-687: IPv6 next-header does not match for UDP values
+| | [Teardown] | Routed ACL test teardown - ipv6
 | | Given Path for 2-node testing is set
 | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']}
 | | And Import Variables | resources/test_data/honeycomb/plugin_acl.py
-| | ... | L3_IP6 | ${acl_name_l3_ip6}
+| | ... | icmpv6 | ${acl_name_icmpv6}
 | | And Honeycomb sets interface state | ${dut_node} | ${dut_to_tg_if1} | up
 | | And Honeycomb sets interface state | ${dut_node} | ${dut_to_tg_if2} | up
-# TODO: Configure addresses through Honeycomb when implemented. (Honeycomb-102)
-| | And Set Interface Address | ${dut_node}
+| | And Honeycomb sets interface ipv6 address | ${dut_node}
 | | ... | ${dut_to_tg_if1} | ${dut_to_tg_if1_ip} | ${prefix_length}
-| | And Set Interface Address | ${dut_node}
+| | And Honeycomb sets interface ipv6 address | ${dut_node}
 | | ... | ${dut_to_tg_if2} | ${dut_to_tg_if2_ip} | ${prefix_length}
-| | And VPP RA suppress link layer | ${dut_node} | ${dut_to_tg_if2}
-# TODO: Configure route through Honeycomb when implemented.(Honeycomb-58)
-| | And Add IP Neighbor
+| | And Honeycomb adds interface ipv6 neighbor
 | | ... | ${node} | ${dut_to_tg_if2} | ${gateway} | ${tg_to_dut_if2_mac}
+| | And VPP RA suppress link layer | ${dut_node} | ${dut_to_tg_if2}
 | | And VPP Route Add | ${node} | ${dst_net} | ${prefix_length}
 | | ... | ${gateway} | interface=${dut_to_tg_if2} | use_sw_index=False
 | | And VPP Route Add | ${node} | ${classify_dst_net} | ${prefix_length}
 | | ... | ${gateway} | interface=${dut_to_tg_if2} | use_sw_index=False
 | | When Honeycomb Creates ACL Chain Through ACL plugin
-| | ... | ${dut_node} | ${acl_name_icmp} | ${acl_settings}
+| | ... | ${dut_node} | ${acl_name_icmpv6} | ${acl_settings}
 | | And Honeycomb Assigns plugin-acl Chain To Interface
-| | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_name_icmp} | ingress
+| | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_name_icmpv6} | ingress
 | | Then Send ICMP packet with type and code | ${tg_node}
 | | ... | ${src_ip} | ${dst_ip}
 | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac}
 | | ... | 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
 
 *** Keywords ***
 | 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}
 | | Path for 2-node testing is set
 | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']}
 | | ... | ${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}
-# TODO: Configure routes through Honeycomb once routing tests are added
-| | Add ARP on DUT
+| | And Honeycomb adds interface ipv4 neighbor
 | | ... | ${node} | ${dut_to_tg_if2} | ${gateway} | ${tg_to_dut_if2_mac}
 | | VPP Route Add
 | | ... | ${node} | ${dst_net} | ${prefix_length} | ${gateway}
 | | ... | interface=${dut_to_tg_if2} | use_sw_index=False
 
 | 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}
 | | Path For 2-node Testing Is Set
 | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']}
 | | Honeycomb Adds Interfaces To Bridge Domain
 | | ... | ${dut_node} | ${dut_to_tg_if1} | ${dut_to_tg_if2}
 | | ... | ${bd_name} | ${bd_if_settings}
+
+| 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}
+| | 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}
+| | 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}
+| | 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}