X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=tests%2Ffunc%2Fhoneycomb%2Fmgmt-cfg-pluginacl-apihc-apivat-func.robot;h=7f96472474af9c6f4e0dc912b5b94652bef72d1a;hp=6a53cfd224d2d77565e03c15282ef153973a5171;hb=430afafb4cadf503ccee99c09f6de7402f5404c7;hpb=4f4eaa1d52f3bdbe3caecdc1d6a024c369a2834a 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 6a53cfd224..7f96472474 100644 --- a/tests/func/honeycomb/mgmt-cfg-pluginacl-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-pluginacl-apihc-apivat-func.robot @@ -43,14 +43,10 @@ | 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 Setup | Vpp All ra suppress link layer | ${nodes} | Suite Teardown | ... | Restart Honeycomb and VPP | ${node} | Documentation | *Honeycomb access control lists test suite for ACL plugin.* -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC *** Test Cases *** | TC01: ACL MAC filtering through plugin-acl node - bridged @@ -62,11 +58,7 @@ | | ... | [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 @@ -74,17 +66,17 @@ | | And Honeycomb Assigns plugin-acl Chain To Interface | | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_name_macip} | | ... | ingress | macip=${True} -| | When Send TCP Or UDP Packet | ${tg_node} | ${src_ip} | ${dst_ip} +| | When Send TCP or UDP packet and verify received packet | ${tg_node} | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${src_port} | ${dst_port} | | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send TCP Or UDP Packet | ${tg_node} | ${src_ip} | ${dst_ip} +| | ... | Send TCP or UDP packet and verify received packet | ${tg_node} | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${classify_src} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${src_port} | ${dst_port} | | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send TCP Or UDP Packet | ${tg_node} | ${src_ip} | ${dst_ip} +| | ... | Send TCP or UDP packet and verify received packet | ${tg_node} | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${classify_src2} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${src_port} | ${dst_port} @@ -99,30 +91,25 @@ | | ... | [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 | | ... | ${dut_node} | ${acl_name_l3_ip4} | ${acl_settings} | | And Honeycomb Assigns plugin-acl Chain To Interface | | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_name_l3_ip4} | ingress -| | Then Send TCP Or UDP Packet | ${tg_node} +| | Then Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | UDP | ${src_port} | ${dst_port} -| | And Send TCP Or UDP Packet | ${tg_node} +| | And Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src} | ${classify_dst} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${src_port} | ${dst_port} | | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send TCP Or UDP Packet | ${tg_node} +| | ... | Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src} | ${classify_dst} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} @@ -138,30 +125,25 @@ | | ... | [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] | 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 | | ... | ${dut_node} | ${acl_name_l3_ip6} | ${acl_settings} | | And Honeycomb Assigns plugin-acl Chain To Interface | | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_name_l3_ip6} | ingress -| | Then Send TCP Or UDP Packet | ${tg_node} +| | Then Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | UDP | ${src_port} | ${dst_port} -| | And Send TCP Or UDP Packet | ${tg_node} +| | And Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src} | ${classify_dst} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${src_port} | ${dst_port} | | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send TCP Or UDP Packet | ${tg_node} +| | ... | Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src} | ${classify_dst} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} @@ -177,31 +159,26 @@ | | ... | [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 | | ... | ${dut_node} | ${acl_name_l4} | ${acl_settings} | | And Honeycomb Assigns plugin-acl Chain To Interface | | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_name_l4} | ingress -| | Then Send TCP Or UDP Packet | ${tg_node} +| | Then Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${src_port} | ${dst_port} | | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send TCP Or UDP Packet | ${tg_node} +| | ... | Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${classify_src} | ${classify_dst} | | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send TCP Or UDP Packet | ${tg_node} +| | ... | Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} @@ -217,29 +194,24 @@ | | ... | [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 | | ... | ${dut_node} | ${acl_name_mixed} | ${acl_settings} | | And Honeycomb Assigns plugin-acl Chain To Interface | | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_name_mixed} | ingress -| | Then Send TCP Or UDP Packet | ${tg_node} | ${src_ip} | ${dst_ip} +| | Then Send TCP or UDP packet and verify received packet | ${tg_node} | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${src_port} | ${dst_port} -| | Then Send TCP Or UDP Packet | ${tg_node} +| | Then Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src_ip} | ${classify_dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${src_port} | ${dst_port} | | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send TCP Or UDP Packet | ${tg_node} +| | ... | Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src_ip} | ${classify_dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} @@ -254,32 +226,25 @@ | | ... | [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. -| | [Tags] | EXPECTED_FAILING -# Bug VPP-624, ICMP type/code values are not matched -| | [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 | | ... | ${dut_node} | ${acl_name_icmp} | ${acl_settings} | | And Honeycomb Assigns plugin-acl Chain To Interface | | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_name_icmp} | ingress -| | Then Send ICMP packet with type and code | ${tg_node} +| | Then Send ICMP packet with type and code and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | ${icmp_type} | ${icmp_code} -| | Then Send ICMP packet with type and code | ${tg_node} +| | Then Send ICMP packet with type and code and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | ${classify_type} | ${icmp_code} | | And Run Keyword And Expect Error | ICMP echo Rx timeout -| | ... | Send ICMP packet with type and code | ${tg_node} +| | ... | Send ICMP packet with type and code and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} @@ -294,32 +259,25 @@ | | ... | [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 -# Bug VPP-624, ICMP type/code values are not matched -| | [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 | | ... | ${dut_node} | ${acl_name_icmpv6} | ${acl_settings} | | And Honeycomb Assigns plugin-acl Chain To Interface | | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_name_icmpv6} | ingress -| | Then Send ICMP packet with type and code | ${tg_node} +| | Then Send ICMP packet with type and code and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | ${icmp_type} | ${icmp_code} -| | Then Send ICMP packet with type and code | ${tg_node} +| | Then Send ICMP packet with type and code and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | ${classify_type} | ${icmp_code} | | And Run Keyword And Expect Error | ICMP echo Rx timeout -| | ... | Send ICMP packet with type and code | ${tg_node} +| | ... | Send ICMP packet with type and code and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} @@ -336,14 +294,7 @@ | | ... | 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. -| | [Tags] | EXPCETED_FAILING -# Bug VPP-633, VPP crashes when any packet hits a reflexive rule -| | [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 @@ -357,17 +308,17 @@ | | And Honeycomb Assigns plugin-acl Chain To Interface | | ... | ${dut_node} | ${dut_to_tg_if1} | block_all | ingress | | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send TCP Or UDP Packet | ${tg_node} +| | ... | Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src} | ${classify_dst} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${src_port} | ${dst_port} -| | And Send TCP Or UDP Packet | ${tg_node} +| | And Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_dst} | ${classify_src} -| | ... | ${tg_to_dut_if2} | ${dut_to_tg_if2_mac} -| | ... | ${tg_to_dut_if1} | ${tg_to_dut_if2_mac} +| | ... | ${tg_to_dut_if2} | ${tg_to_dut_if2_mac} +| | ... | ${tg_to_dut_if1} | ${dut_to_tg_if2_mac} | | ... | TCP | ${dst_port} | ${src_port} -| | And Send TCP Or UDP Packet | ${tg_node} +| | And Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src} | ${classify_dst} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} @@ -386,26 +337,25 @@ | | ... | [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. -| | [Tags] | EXPECTED_FAILING -# routed interfaces not yet supported by ACL plugin (no Jira id available) +| | [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 | | ... | ${dut_node} | ${acl_name_l3_ip4} | ${acl_settings} | | And Honeycomb Assigns plugin-acl Chain To Interface | | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_name_l3_ip4} | ingress -| | Then Send TCP Or UDP Packet | ${tg_node} +| | Then Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | UDP | ${src_port} | ${dst_port} -| | And Send TCP Or UDP Packet | ${tg_node} +| | And Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src} | ${classify_dst} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${src_port} | ${dst_port} | | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send TCP Or UDP Packet | ${tg_node} +| | ... | Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src} | ${classify_dst} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} @@ -421,22 +371,19 @@ | | ... | [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 -# routed interfaces not yet supported by ACL plugin (no Jira id available) -| | Given Path for 2-node testing is set +| | [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 | | ... | 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 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 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 @@ -446,18 +393,18 @@ | | ... | ${dut_node} | ${acl_name_l3_ip6} | ${acl_settings} | | And Honeycomb Assigns plugin-acl Chain To Interface | | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_name_l3_ip6} | ingress -| | Then Send TCP Or UDP Packet | ${tg_node} +| | Then Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | UDP | ${src_port} | ${dst_port} -| | And Send TCP Or UDP Packet | ${tg_node} +| | And Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src} | ${classify_dst} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${src_port} | ${dst_port} | | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send TCP Or UDP Packet | ${tg_node} +| | ... | Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src} | ${classify_dst} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} @@ -473,27 +420,26 @@ | | ... | [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. -| | [Tags] | EXPECTED_FAILING -# routed interfaces not yet supported by ACL plugin (no Jira id available) +| | [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 | | ... | ${dut_node} | ${acl_name_l4} | ${acl_settings} | | And Honeycomb Assigns plugin-acl Chain To Interface | | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_name_l4} | ingress -| | Then Send TCP Or UDP Packet | ${tg_node} +| | Then Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${src_port} | ${dst_port} | | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send TCP Or UDP Packet | ${tg_node} +| | ... | Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${classify_src} | ${classify_dst} | | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send TCP Or UDP Packet | ${tg_node} +| | ... | Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} @@ -509,25 +455,24 @@ | | ... | [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. -| | [Tags] | EXPECTED_FAILING -# routed interfaces not yet supported by ACL plugin (no Jira id available) +| | [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 | | ... | ${dut_node} | ${acl_name_mixed} | ${acl_settings} | | And Honeycomb Assigns plugin-acl Chain To Interface | | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_name_mixed} | ingress -| | Then Send TCP Or UDP Packet | ${tg_node} | ${src_ip} | ${dst_ip} +| | Then Send TCP or UDP packet and verify received packet | ${tg_node} | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${src_port} | ${dst_port} -| | Then Send TCP Or UDP Packet | ${tg_node} +| | Then Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src_ip} | ${classify_dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${src_port} | ${dst_port} | | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send TCP Or UDP Packet | ${tg_node} +| | ... | Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src_ip} | ${classify_dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dst_mac} @@ -543,27 +488,25 @@ | | ... | [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. -| | [Tags] | EXPECTED_FAILING -# Bug VPP-624, ICMP type/code values are not matched -# routed interfaces not yet supported by ACL plugin (no Jira id available) +| | [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 | | ... | ${dut_node} | ${acl_name_icmp} | ${acl_settings} | | And Honeycomb Assigns plugin-acl Chain To Interface | | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_name_icmp} | ingress -| | Then Send ICMP packet with type and code | ${tg_node} +| | Then Send ICMP packet with type and code and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | ${icmp_type} | ${icmp_code} -| | Then Send ICMP packet with type and code | ${tg_node} +| | Then Send ICMP packet with type and code and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | ${classify_type} | ${icmp_code} -| | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send ICMP packet with type and code | ${tg_node} +| | And Run Keyword And Expect Error | ICMP echo Rx timeout +| | ... | Send ICMP packet with type and code and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} @@ -579,50 +522,46 @@ | | ... | [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 -# Bug VPP-624, ICMP type/code values are not matched -# routed interfaces not yet supported by ACL plugin (no Jira id available) -| | Given Path for 2-node testing is set +| | [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 -| | ... | 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} +| | ... | icmpv6 | ${acl_name_icmpv6} +| | 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 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 -| | Then Send ICMP packet with type and code | ${tg_node} +| | ... | ${dut_node} | ${dut_to_tg_if1} | ${acl_name_icmpv6} | ingress +| | Then Send ICMP packet with type and code and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | ${icmp_type} | ${icmp_code} -| | Then Send ICMP packet with type and code | ${tg_node} +| | Then Send ICMP packet with type and code and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | ${classify_type} | ${icmp_code} -| | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send ICMP packet with type and code | ${tg_node} +| | And Run Keyword And Expect Error | ICMP echo Rx timeout +| | ... | Send ICMP packet with type and code and verify received packet | ${tg_node} | | ... | ${src_ip} | ${dst_ip} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | ${classify_type} | ${classify_code} -| TC15: ACL reflexive IPv4 filtering through plugin-acl node - bridged +| TC15: ACL reflexive IPv4 filtering through plugin-acl node - routed | | [Documentation] | | ... | [Top] TG=DUT1=TG. | | ... | [Enc] Eth-IPv4-TCP. @@ -634,11 +573,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. -| | [Tags] | EXPECTED_FAILING -# routed interfaces not yet supported by ACL plugin (no Jira id available) -# Bug VPP-633, VPP crashes when any packet hits a reflexive rule +| | [Teardown] | Routed ACL test teardown - ipv4 | | Given Setup Interface IPs And Routes For IPv4 plugin-acl Test -| | ... | icmp | ${acl_name_reflex} +| | ... | reflex | ${acl_name_reflex} | | And Add ARP on DUT | | ... | ${node} | ${dut_to_tg_if1} | ${gateway2} | ${tg_to_dut_if1_mac} | | And VPP Route Add @@ -658,17 +595,17 @@ | | And Honeycomb Assigns plugin-acl Chain To Interface | | ... | ${dut_node} | ${dut_to_tg_if1} | block_all | ingress | | And Run Keyword And Expect Error | TCP/UDP Rx timeout -| | ... | Send TCP Or UDP Packet | ${tg_node} +| | ... | Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src} | ${classify_dst} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} | | ... | TCP | ${src_port} | ${dst_port} -| | And Send TCP Or UDP Packet | ${tg_node} +| | And Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_dst} | ${classify_src} -| | ... | ${tg_to_dut_if2} | ${dut_to_tg_if2_mac} -| | ... | ${tg_to_dut_if1} | ${tg_to_dut_if2_mac} +| | ... | ${tg_to_dut_if2} | ${tg_to_dut_if2_mac} +| | ... | ${tg_to_dut_if1} | ${dut_to_tg_if2_mac} | | ... | TCP | ${dst_port} | ${src_port} -| | And Send TCP Or UDP Packet | ${tg_node} +| | And Send TCP or UDP packet and verify received packet | ${tg_node} | | ... | ${classify_src} | ${classify_dst} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac} @@ -676,19 +613,20 @@ *** 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 +| | 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 sets interface ipv4 address with prefix | ${dut_node} +| | Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if1} | up +| | Honeycomb configures interface state | ${dut_node} | ${dut_to_tg_if2} | up +| | Honeycomb sets interface IPv4 address with prefix | ${dut_node} | | ... | ${dut_to_tg_if1} | ${dut_to_tg_if1_ip} | ${prefix_length} -| | Honeycomb sets interface ipv4 address with prefix | ${dut_node} +| | 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} @@ -698,8 +636,9 @@ | | ... | 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 +| | 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} @@ -710,3 +649,30 @@ | | 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}