| 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}
| 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}
| | ... | [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.
| | ... | [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
| | [Teardown] | Run Keywords
| | ... | Show Packet Trace on All DUTs | ${nodes} | AND
| | ... | Read plugin-ACL configuration from VAT | ${node} | AND
| | ... | [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.
| | ... | [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
| | [Teardown] | Run Keywords
| | ... | Show Packet Trace on All DUTs | ${nodes} | AND
| | ... | Read plugin-ACL configuration from VAT | ${node} | AND
| | ... | to the other, using different codes and types. Receive all packets\
| | ... | except those with the filtered type and code.
| | [Tags] | EXPECTED_FAILING
| | ... | to the other, using different codes and types. Receive all packets\
| | ... | except those with the filtered type and code.
| | [Tags] | EXPECTED_FAILING
| | [Teardown] | Run Keywords
| | ... | Show Packet Trace on All DUTs | ${nodes} | AND
| | ... | Read plugin-ACL configuration from VAT | ${node} | AND
| | [Teardown] | Run Keywords
| | ... | Show Packet Trace on All DUTs | ${nodes} | AND
| | ... | Read plugin-ACL configuration from VAT | ${node} | AND
| | ... | 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.
| | ... | 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
| | [Teardown] | Run Keywords
| | ... | Show Packet Trace on All DUTs | ${nodes} | AND
| | ... | Read plugin-ACL configuration from VAT | ${node} | AND
| | ... | TCP | ${src_port} | ${dst_port}
| | And Send TCP Or UDP Packet | ${tg_node}
| | ... | ${classify_dst} | ${classify_src}
| | ... | TCP | ${src_port} | ${dst_port}
| | And Send TCP Or UDP 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}
| | ... | ${classify_src} | ${classify_dst}
| | ... | TCP | ${dst_port} | ${src_port}
| | And Send TCP Or UDP Packet | ${tg_node}
| | ... | ${classify_src} | ${classify_dst}
| | ... | [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.
| | ... | [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.
| | 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
| | 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
| | ... | 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
| | ... | 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
| | Given Path for 2-node testing is set
| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']}
| | And Import Variables | resources/test_data/honeycomb/plugin_acl.py
| | Given Path for 2-node testing is set
| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']}
| | And Import Variables | resources/test_data/honeycomb/plugin_acl.py
| | ... | [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.
| | ... | [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.
| | Given Setup Interface IPs And Routes For IPv4 plugin-acl Test
| | ... | L4 | ${acl_name_l4}
| | When Honeycomb Creates ACL Chain Through ACL plugin
| | 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.
| | ... | [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.
| | Given Setup Interface IPs And Routes For IPv4 plugin-acl Test
| | ... | mixed | ${acl_name_mixed}
| | When Honeycomb Creates ACL Chain Through ACL plugin
| | 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.
| | ... | [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.
| | Given Setup Interface IPs And Routes For IPv4 plugin-acl Test
| | ... | icmp | ${acl_name_icmp}
| | When Honeycomb Creates ACL Chain Through ACL plugin
| | Given Setup Interface IPs And Routes For IPv4 plugin-acl Test
| | ... | icmp | ${acl_name_icmp}
| | When Honeycomb Creates ACL Chain Through ACL plugin
| | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac}
| | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac}
| | ... | ${classify_type} | ${icmp_code}
| | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac}
| | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac}
| | ... | ${classify_type} | ${icmp_code}
| | ... | Send ICMP packet with type and code | ${tg_node}
| | ... | ${src_ip} | ${dst_ip}
| | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac}
| | ... | Send ICMP packet with type and code | ${tg_node}
| | ... | ${src_ip} | ${dst_ip}
| | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac}
| | ... | to the other, using different codes and types. Receive all packets\
| | ... | except those with the filtered type and code.
| | [Tags] | EXPECTED_FAILING
| | ... | to the other, using different codes and types. Receive all packets\
| | ... | except those with the filtered type and code.
| | [Tags] | EXPECTED_FAILING
| | Given Path for 2-node testing is set
| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']}
| | And Import Variables | resources/test_data/honeycomb/plugin_acl.py
| | Given Path for 2-node testing is set
| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']}
| | And Import Variables | resources/test_data/honeycomb/plugin_acl.py
| | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac}
| | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac}
| | ... | ${classify_type} | ${icmp_code}
| | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac}
| | ... | ${tg_to_dut_if2} | ${dut_to_tg_if1_mac}
| | ... | ${classify_type} | ${icmp_code}
| | ... | Send ICMP packet with type and code | ${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}
| | ... | Send ICMP packet with type and code | ${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}
| | ... | 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.
| | ... | 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.
| | ... | TCP | ${src_port} | ${dst_port}
| | And Send TCP Or UDP Packet | ${tg_node}
| | ... | ${classify_dst} | ${classify_src}
| | ... | TCP | ${src_port} | ${dst_port}
| | And Send TCP Or UDP 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}
| | ... | ${classify_src} | ${classify_dst}
| | ... | TCP | ${dst_port} | ${src_port}
| | And Send TCP Or UDP Packet | ${tg_node}
| | ... | ${classify_src} | ${classify_dst}