X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=tests%2Fsuites%2Fvxlan%2Fvxlan_bd_untagged.robot;h=63328b3e01d4f42a9b0bd0bee6bcd4314516b7fa;hp=1eea3e90fa50c43af05312e4b07cf0ae7fc17b2a;hb=8f328d362ff6572ed0cb9692abf5d02c4d4d62fb;hpb=6d9fe9bb4bd353b1d4fec3b2569bcd743f87fc4a;ds=sidebyside diff --git a/tests/suites/vxlan/vxlan_bd_untagged.robot b/tests/suites/vxlan/vxlan_bd_untagged.robot index 1eea3e90fa..63328b3e01 100644 --- a/tests/suites/vxlan/vxlan_bd_untagged.robot +++ b/tests/suites/vxlan/vxlan_bd_untagged.robot @@ -14,6 +14,7 @@ *** Settings *** | Documentation | VXLAN tunnel over untagged IPv4 traffic tests using bridge domain. | Resource | resources/libraries/robot/default.robot +| Resource | resources/libraries/robot/testing_path.robot | Resource | resources/libraries/robot/vxlan.robot | Resource | resources/libraries/robot/l2_traffic.robot | Library | resources.libraries.python.Trace @@ -23,23 +24,341 @@ | Test Teardown | Show Packet Trace on All DUTs | ${nodes} *** Variables *** -| ${VNI}= | 23 -| ${BID}= | 23 +| ${vni_1}= | 23 +| ${vni_2}= | 35 + +| ${bd_id1}= | 10 +| ${bd_id2}= | 20 +| ${bd_id3}= | 30 +| ${shg1}= | 1 +| ${shg2}= | 2 + +| ${ip4_addr1}= | 172.16.0.1 +| ${ip4_addr2}= | 172.16.0.2 +| ${ip4_prefix}= | 24 + +| ${ip6_addr1}= | 3ffe:64::1 +| ${ip6_addr2}= | 3ffe:64::2 +| ${ip6_prefix}= | 64 *** Test Cases *** -| VPP can pass IPv4 bidirectionally through VXLAN -| | Given Path for VXLAN testing is set -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} -| | And Interfaces in path are up -| | And IP addresses are set on interfaces | ${dut1} | ${dut1s_to_dut2} | ${NONE} -| | ... | ${dut2} | ${dut2s_to_dut1} | ${NONE} -| | ${dut1s_vxlan}= | When Create VXLAN interface | ${dut1} | ${VNI} -| | | ... | ${dut1s_ip_address} | ${dut2s_ip_address} -| | And Interfaces are added to BD | ${dut1} | ${BID} -| | ... | ${dut1s_to_tg} | ${dut1s_vxlan} -| | ${dut2s_vxlan}= | And Create VXLAN interface | ${dut2} | ${VNI} -| | | ... | ${dut2s_ip_address} | ${dut1s_ip_address} -| | And Interfaces are added to BD | ${dut2} | ${BID} -| | ... | ${dut2s_to_tg} | ${dut2s_vxlan} +| VPP can pass IPv4 bidirectionally through VXLAN using bridge domain +| | [Documentation] | Create VXLAN interface on both VPP nodes. Create one +| | ... | bridge domain (learning enabled) on both VPP nodes, add +| | ... | VXLAN interface and interface toward TG to bridge domains +| | ... | and check traffic bidirectionally. +| | Given Path for 3-node testing is set +| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} +| | And Interfaces in 3-node path are up +| | And IP addresses are set on interfaces | ${dut1_node} | ${dut1_to_dut2} | ${NONE} +| | ... | ${dut2_node} | ${dut2_to_dut1} | ${NONE} +| | ${dut1s_vxlan}= | When Create VXLAN interface | ${dut1_node} | ${vni_1} +| | | ... | ${dut1s_ip_address} | ${dut2s_ip_address} +| | And Interfaces are added to BD | ${dut1_node} | ${bd_id1} +| | ... | ${dut1_to_tg} | ${dut1s_vxlan} +| | ${dut2s_vxlan}= | And Create VXLAN interface | ${dut2_node} | ${vni_1} +| | | ... | ${dut2s_ip_address} | ${dut1s_ip_address} +| | And Interfaces are added to BD | ${dut2_node} | ${bd_id1} +| | ... | ${dut2_to_tg} | ${dut2s_vxlan} | | Then Send and receive ICMPv4 bidirectionally -| | ... | ${tg} | ${tgs_to_dut1} | ${tgs_to_dut2} +| | ... | ${tg_node} | ${tg_to_dut1} | ${tg_to_dut2} + +| Vpp forwards ICMPv4 packets through VXLAN tunnels in the same split-horizon group of one L2 bridge domain +| | [Documentation] | Create two VXLAN interfaces on both VPP nodes. Create one +| | ... | bridge domain (learning enabled) on the first VPP node, +| | ... | add VXLAN interfaces to the same split-horizon group of +| | ... | the bridge domain where interfaces toward TG are added to. +| | ... | Create two bridge domains (learning enabled) on the second +| | ... | VPP node and add one VXLAN interface and one interface +| | ... | toward TG to each of them. Check traffic bidirectionally. +| | [Tags] | 3_NODE_DOUBLE_LINK_TOPO +| | Given Path for 3-node BD-SHG testing is set | ${nodes['TG']} +| | ... | ${nodes['DUT1']} +| | ... | ${nodes['DUT2']} +| | And Interfaces in 3-node BD-SHG testing are up +| | And Set Interface Address | ${dut1_node} | ${dut1_to_dut2} | ${ip4_addr1} +| | ... | ${ip4_prefix} +| | And Set Interface Address | ${dut2_node} | ${dut2_to_dut1} | ${ip4_addr2} +| | ... | ${ip4_prefix} +| | And VPP IP Probe | ${dut1_node} | ${dut1_to_dut2} | ${ip4_addr2} +| | And VPP IP Probe | ${dut2_node} | ${dut2_to_dut1} | ${ip4_addr1} +| | ${dut1s_vxlan1}= | When Create VXLAN interface | ${dut1_node} | ${vni_1} +| | | ... | ${ip4_addr1} | ${ip4_addr2} +| | ${dut1s_vxlan2}= | And Create VXLAN interface | ${dut1_node} | ${vni_2} +| | | ... | ${ip4_addr1} | ${ip4_addr2} +| | ${dut2s_vxlan1}= | And Create VXLAN interface | ${dut2_node} | ${vni_1} +| | | ... | ${ip4_addr2} | ${ip4_addr1} +| | ${dut2s_vxlan2}= | And Create VXLAN interface | ${dut2_node} | ${vni_2} +| | | ... | ${ip4_addr2} | ${ip4_addr1} +| | And Set Interface State | ${dut1_node} | ${dut1s_vxlan1} | up +| | And Set Interface State | ${dut1_node} | ${dut1s_vxlan2} | up +| | And Set Interface State | ${dut2_node} | ${dut2s_vxlan1} | up +| | And Set Interface State | ${dut2_node} | ${dut2s_vxlan2} | up +| | And Vpp Node Interfaces Ready Wait | ${dut1_node} +| | And Vpp Node Interfaces Ready Wait | ${dut2_node} +| | And Bridge domain on DUT node is created | ${dut1_node} | ${bd_id1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1_to_tg_if1} +| | ... | ${bd_id1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1_to_tg_if2} +| | ... | ${bd_id1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1s_vxlan1} +| | ... | ${bd_id1} | ${shg1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1s_vxlan2} +| | ... | ${bd_id1} | ${shg1} +| | And Bridge domain on DUT node is created | ${dut2_node} | ${bd_id2} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2_to_tg_if1} +| | ... | ${bd_id2} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2s_vxlan1} +| | ... | ${bd_id2} +| | And Bridge domain on DUT node is created | ${dut2_node} | ${bd_id3} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2_to_tg_if2} +| | ... | ${bd_id3} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2s_vxlan2} +| | ... | ${bd_id3} +| | Then Send and receive ICMPv4 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if1} +| | ... | ${tg_to_dut2_if1} +| | And Send and receive ICMPv4 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if1} +| | ... | ${tg_to_dut2_if2} +| | And Send and receive ICMPv4 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if2} +| | ... | ${tg_to_dut2_if1} +| | And Send and receive ICMPv4 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if2} +| | ... | ${tg_to_dut2_if2} +| | And Run Keyword And Expect Error | ICMP echo Rx timeout +| | ... | Send and receive ICMPv4 bidirectionally +| | | ... | ${tg_node} | ${tg_to_dut2_if1} +| | | ... | ${tg_to_dut2_if2} + +| Vpp forwards ICMPv4 packets through VXLAN tunnels in different split-horizon groups of one L2 bridge domain +| | [Documentation] | Create two VXLAN interfaces on both VPP nodes. Create one +| | ... | bridge domain (learning enabled) on the first VPP node, +| | ... | add VXLAN interfaces to different split-horizon groups of +| | ... | the bridge domain where interfaces toward TG are added to. +| | ... | Create two bridge domains (learning enabled) on the second +| | ... | VPP node and add one VXLAN interface and one interface +| | ... | toward TG to each of them. Check traffic bidirectionally. +| | [Tags] | 3_NODE_DOUBLE_LINK_TOPO +| | Given Path for 3-node BD-SHG testing is set | ${nodes['TG']} +| | ... | ${nodes['DUT1']} +| | ... | ${nodes['DUT2']} +| | And Interfaces in 3-node BD-SHG testing are up +| | And Set Interface Address | ${dut1_node} | ${dut1_to_dut2} | ${ip4_addr1} +| | ... | ${ip4_prefix} +| | And Set Interface Address | ${dut2_node} | ${dut2_to_dut1} | ${ip4_addr2} +| | ... | ${ip4_prefix} +| | And VPP IP Probe | ${dut1_node} | ${dut1_to_dut2} | ${ip4_addr2} +| | And VPP IP Probe | ${dut2_node} | ${dut2_to_dut1} | ${ip4_addr1} +| | ${dut1s_vxlan1}= | When Create VXLAN interface | ${dut1_node} | ${vni_1} +| | | ... | ${ip4_addr1} | ${ip4_addr2} +| | ${dut1s_vxlan2}= | And Create VXLAN interface | ${dut1_node} | ${vni_2} +| | | ... | ${ip4_addr1} | ${ip4_addr2} +| | ${dut2s_vxlan1}= | And Create VXLAN interface | ${dut2_node} | ${vni_1} +| | | ... | ${ip4_addr2} | ${ip4_addr1} +| | ${dut2s_vxlan2}= | And Create VXLAN interface | ${dut2_node} | ${vni_2} +| | | ... | ${ip4_addr2} | ${ip4_addr1} +| | And Set Interface State | ${dut1_node} | ${dut1s_vxlan1} | up +| | And Set Interface State | ${dut1_node} | ${dut1s_vxlan2} | up +| | And Set Interface State | ${dut2_node} | ${dut2s_vxlan1} | up +| | And Set Interface State | ${dut2_node} | ${dut2s_vxlan2} | up +| | And Vpp Node Interfaces Ready Wait | ${dut1_node} +| | And Vpp Node Interfaces Ready Wait | ${dut2_node} +| | And Bridge domain on DUT node is created | ${dut1_node} | ${bd_id1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1_to_tg_if1} +| | ... | ${bd_id1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1_to_tg_if2} +| | ... | ${bd_id1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1s_vxlan1} +| | ... | ${bd_id1} | ${shg1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1s_vxlan2} +| | ... | ${bd_id1} | ${shg2} +| | And Bridge domain on DUT node is created | ${dut2_node} | ${bd_id2} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2_to_tg_if1} +| | ... | ${bd_id2} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2s_vxlan1} +| | ... | ${bd_id2} +| | And Bridge domain on DUT node is created | ${dut2_node} | ${bd_id3} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2_to_tg_if2} +| | ... | ${bd_id3} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2s_vxlan2} +| | ... | ${bd_id3} +| | Then Send and receive ICMPv4 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if1} +| | ... | ${tg_to_dut2_if1} +| | And Send and receive ICMPv4 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if1} +| | ... | ${tg_to_dut2_if2} +| | And Send and receive ICMPv4 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if2} +| | ... | ${tg_to_dut2_if1} +| | And Send and receive ICMPv4 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if2} +| | ... | ${tg_to_dut2_if2} +| | And Send and receive ICMPv4 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut2_if1} +| | ... | ${tg_to_dut2_if2} + +| VPP can pass IPv6 bidirectionally through VXLAN using bridge domain +| | [Documentation] | Create VXLAN interface on both VPP nodes. Create one +| | ... | bridge domain (learning enabled) on both VPP nodes, add +| | ... | VXLAN interface and interface toward TG to bridge domains +| | ... | and check traffic bidirectionally. +| | [Tags] | 3_NODE_DOUBLE_LINK_TOPO +| | Given Path for 3-node testing is set +| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} +| | And Interfaces in 3-node path are up +| | And Set Interface Address | ${dut1_node} | ${dut1_to_dut2} | ${ip6_addr1} +| | ... | ${ip6_prefix} +| | And Set Interface Address | ${dut2_node} | ${dut2_to_dut1} | ${ip6_addr2} +| | ... | ${ip6_prefix} +| | And VPP IP Probe | ${dut1_node} | ${dut1_to_dut2} | ${ip6_addr2} +| | And VPP IP Probe | ${dut2_node} | ${dut2_to_dut1} | ${ip6_addr1} +| | ${dut1s_vxlan}= | When Create VXLAN interface | ${dut1_node} | ${vni_1} +| | | ... | ${ip6_addr1} | ${ip6_addr2} +| | And Interfaces are added to BD | ${dut1_node} | ${bd_id1} +| | ... | ${dut1_to_tg} | ${dut1s_vxlan} +| | ${dut2s_vxlan}= | And Create VXLAN interface | ${dut2_node} | ${vni_1} +| | | ... | ${ip6_addr2} | ${ip6_addr1} +| | And Interfaces are added to BD | ${dut2_node} | ${bd_id1} +| | ... | ${dut2_to_tg} | ${dut2s_vxlan} +| | Then Send and receive ICMPv6 bidirectionally +| | ... | ${tg_node} | ${tg_to_dut1} | ${tg_to_dut2} + +| Vpp forwards ICMPv6 packets through VXLAN tunnels in the same split-horizon group of one L2 bridge domain +| | [Documentation] | Create two VXLAN interfaces on both VPP nodes. Create one +| | ... | bridge domain (learning enabled) on the first VPP node, +| | ... | add VXLAN interfaces to the same split-horizon group of +| | ... | the bridge domain where interfaces toward TG are added to. +| | ... | Create two bridge domains (learning enabled) on the second +| | ... | VPP node and add one VXLAN interface and one interface +| | ... | toward TG to each of them. Check traffic bidirectionally. +| | [Tags] | 3_NODE_DOUBLE_LINK_TOPO +| | Given Path for 3-node BD-SHG testing is set | ${nodes['TG']} +| | ... | ${nodes['DUT1']} +| | ... | ${nodes['DUT2']} +| | And Interfaces in 3-node BD-SHG testing are up +| | And Set Interface Address | ${dut1_node} | ${dut1_to_dut2} | ${ip6_addr1} +| | ... | ${ip6_prefix} +| | And Set Interface Address | ${dut2_node} | ${dut2_to_dut1} | ${ip6_addr2} +| | ... | ${ip6_prefix} +| | And VPP IP Probe | ${dut1_node} | ${dut1_to_dut2} | ${ip6_addr2} +| | And VPP IP Probe | ${dut2_node} | ${dut2_to_dut1} | ${ip6_addr1} +| | ${dut1s_vxlan1}= | When Create VXLAN interface | ${dut1_node} | ${vni_1} +| | | ... | ${ip6_addr1} | ${ip6_addr2} +| | ${dut1s_vxlan2}= | And Create VXLAN interface | ${dut1_node} | ${vni_2} +| | | ... | ${ip6_addr1} | ${ip6_addr2} +| | ${dut2s_vxlan1}= | And Create VXLAN interface | ${dut2_node} | ${vni_1} +| | | ... | ${ip6_addr2} | ${ip6_addr1} +| | ${dut2s_vxlan2}= | And Create VXLAN interface | ${dut2_node} | ${vni_2} +| | | ... | ${ip6_addr2} | ${ip6_addr1} +| | And Set Interface State | ${dut1_node} | ${dut1s_vxlan1} | up +| | And Set Interface State | ${dut1_node} | ${dut1s_vxlan2} | up +| | And Set Interface State | ${dut2_node} | ${dut2s_vxlan1} | up +| | And Set Interface State | ${dut2_node} | ${dut2s_vxlan2} | up +| | And Vpp Node Interfaces Ready Wait | ${dut1_node} +| | And Vpp Node Interfaces Ready Wait | ${dut2_node} +| | And Bridge domain on DUT node is created | ${dut1_node} | ${bd_id1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1_to_tg_if1} +| | ... | ${bd_id1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1_to_tg_if2} +| | ... | ${bd_id1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1s_vxlan1} +| | ... | ${bd_id1} | ${shg1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1s_vxlan2} +| | ... | ${bd_id1} | ${shg1} +| | And Bridge domain on DUT node is created | ${dut2_node} | ${bd_id2} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2_to_tg_if1} +| | ... | ${bd_id2} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2s_vxlan1} +| | ... | ${bd_id2} +| | And Bridge domain on DUT node is created | ${dut2_node} | ${bd_id3} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2_to_tg_if2} +| | ... | ${bd_id3} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2s_vxlan2} +| | ... | ${bd_id3} +| | Then Send and receive ICMPv6 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if1} +| | ... | ${tg_to_dut2_if1} +| | And Send and receive ICMPv6 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if1} +| | ... | ${tg_to_dut2_if2} +| | And Send and receive ICMPv6 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if2} +| | ... | ${tg_to_dut2_if1} +| | And Send and receive ICMPv6 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if2} +| | ... | ${tg_to_dut2_if2} +| | And Run Keyword And Expect Error | ICMP echo Rx timeout +| | ... | Send and receive ICMPv6 bidirectionally +| | | ... | ${tg_node} | ${tg_to_dut2_if1} +| | | ... | ${tg_to_dut2_if2} + +| Vpp forwards ICMPv6 packets through VXLAN tunnels in different split-horizon groups of one L2 bridge domain +| | [Documentation] | Create two VXLAN interfaces on both VPP nodes. Create one +| | ... | bridge domain (learning enabled) on the first VPP node, +| | ... | add VXLAN interfaces to different split-horizon groups of +| | ... | the bridge domain where interfaces toward TG are added to. +| | ... | Create two bridge domains (learning enabled) on the second +| | ... | VPP node and add one VXLAN interface and one interface +| | ... | toward TG to each of them. Check traffic bidirectionally. +| | [Tags] | 3_NODE_DOUBLE_LINK_TOPO +| | Given Path for 3-node BD-SHG testing is set | ${nodes['TG']} +| | ... | ${nodes['DUT1']} +| | ... | ${nodes['DUT2']} +| | And Interfaces in 3-node BD-SHG testing are up +| | And Set Interface Address | ${dut1_node} | ${dut1_to_dut2} | ${ip6_addr1} +| | ... | ${ip6_prefix} +| | And Set Interface Address | ${dut2_node} | ${dut2_to_dut1} | ${ip6_addr2} +| | ... | ${ip6_prefix} +| | And VPP IP Probe | ${dut1_node} | ${dut1_to_dut2} | ${ip6_addr2} +| | And VPP IP Probe | ${dut2_node} | ${dut2_to_dut1} | ${ip6_addr1} +| | ${dut1s_vxlan1}= | When Create VXLAN interface | ${dut1_node} | ${vni_1} +| | | ... | ${ip6_addr1} | ${ip6_addr2} +| | ${dut1s_vxlan2}= | And Create VXLAN interface | ${dut1_node} | ${vni_2} +| | | ... | ${ip6_addr1} | ${ip6_addr2} +| | ${dut2s_vxlan1}= | And Create VXLAN interface | ${dut2_node} | ${vni_1} +| | | ... | ${ip6_addr2} | ${ip6_addr1} +| | ${dut2s_vxlan2}= | And Create VXLAN interface | ${dut2_node} | ${vni_2} +| | | ... | ${ip6_addr2} | ${ip6_addr1} +| | And Set Interface State | ${dut1_node} | ${dut1s_vxlan1} | up +| | And Set Interface State | ${dut1_node} | ${dut1s_vxlan2} | up +| | And Set Interface State | ${dut2_node} | ${dut2s_vxlan1} | up +| | And Set Interface State | ${dut2_node} | ${dut2s_vxlan2} | up +| | And Vpp Node Interfaces Ready Wait | ${dut1_node} +| | And Vpp Node Interfaces Ready Wait | ${dut2_node} +| | And Bridge domain on DUT node is created | ${dut1_node} | ${bd_id1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1_to_tg_if1} +| | ... | ${bd_id1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1_to_tg_if2} +| | ... | ${bd_id1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1s_vxlan1} +| | ... | ${bd_id1} | ${shg1} +| | And Interface is added to bridge domain | ${dut1_node} | ${dut1s_vxlan2} +| | ... | ${bd_id1} | ${shg2} +| | And Bridge domain on DUT node is created | ${dut2_node} | ${bd_id2} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2_to_tg_if1} +| | ... | ${bd_id2} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2s_vxlan1} +| | ... | ${bd_id2} +| | And Bridge domain on DUT node is created | ${dut2_node} | ${bd_id3} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2_to_tg_if2} +| | ... | ${bd_id3} +| | And Interface is added to bridge domain | ${dut2_node} | ${dut2s_vxlan2} +| | ... | ${bd_id3} +| | Then Send and receive ICMPv6 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if1} +| | ... | ${tg_to_dut2_if1} +| | And Send and receive ICMPv6 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if1} +| | ... | ${tg_to_dut2_if2} +| | And Send and receive ICMPv6 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if2} +| | ... | ${tg_to_dut2_if1} +| | And Send and receive ICMPv6 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut1_if2} +| | ... | ${tg_to_dut2_if2} +| | And Send and receive ICMPv6 bidirectionally | ${tg_node} +| | ... | ${tg_to_dut2_if1} +| | ... | ${tg_to_dut2_if2}