*** Settings ***
| Resource | resources/libraries/robot/default.robot
| Resource | resources/libraries/robot/bridge_domain.robot
*** Settings ***
| Resource | resources/libraries/robot/default.robot
| Resource | resources/libraries/robot/bridge_domain.robot
| Resource | resources/libraries/robot/qemu.robot
| Library | resources.libraries.python.Trace
| Force Tags | HW_ENV | VM_ENV
| Resource | resources/libraries/robot/qemu.robot
| Library | resources.libraries.python.Trace
| Force Tags | HW_ENV | VM_ENV
| | ... | add there two interfaces and check traffic
| | ... | bidirectionally.
| | [Tags] | 3_NODE_DOUBLE_LINK_TOPO
| | ... | add there two interfaces and check traffic
| | ... | bidirectionally.
| | [Tags] | 3_NODE_DOUBLE_LINK_TOPO
-| | Given Path for 2-node BD testing is set | ${nodes['TG']} | ${nodes['DUT1']}
+| | Given Path for 2-node testing is set
+| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']}
+| | And Interfaces in 2-node path are up
| | When Bridge domain on DUT node is created | ${dut_node} | ${bd_id1}
| | And Interface is added to bridge domain | ${dut_node} | ${dut_to_tg_if1}
| | ... | ${bd_id1}
| | And Interface is added to bridge domain | ${dut_node} | ${dut_to_tg_if2}
| | ... | ${bd_id1}
| | When Bridge domain on DUT node is created | ${dut_node} | ${bd_id1}
| | And Interface is added to bridge domain | ${dut_node} | ${dut_to_tg_if1}
| | ... | ${bd_id1}
| | And Interface is added to bridge domain | ${dut_node} | ${dut_to_tg_if2}
| | ... | ${bd_id1}
| | Then Send and receive ICMPv4 bidirectionally | ${tg_node} | ${tg_to_dut_if1}
| | ... | ${tg_to_dut_if2}
| | Then Send and receive ICMPv4 bidirectionally | ${tg_node} | ${tg_to_dut_if1}
| | ... | ${tg_to_dut_if2}
| | ... | add two interfaces to each bridge domain and check traffic
| | ... | bidirectionally.
| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
| | ... | add two interfaces to each bridge domain and check traffic
| | ... | bidirectionally.
| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
-| | Given Path for 3-node BD testing is set | ${nodes['TG']} | ${nodes['DUT1']}
-| | ... | ${nodes['DUT2']}
+| | Given Path for 3-node testing is set
+| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']}
+| | And Interfaces in 3-node path are up
| | When Bridge domain on DUT node is created | ${dut1_node} | ${bd_id1}
| | And Interface is added to bridge domain | ${dut1_node} | ${dut1_to_tg}
| | ... | ${bd_id1}
| | When Bridge domain on DUT node is created | ${dut1_node} | ${bd_id1}
| | And Interface is added to bridge domain | ${dut1_node} | ${dut1_to_tg}
| | ... | ${bd_id1}
| | ... | static L2FIB entry on each interface and check traffic
| | ... | bidirectionally.
| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
| | ... | static L2FIB entry on each interface and check traffic
| | ... | bidirectionally.
| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
-| | Given Path for 3-node BD testing is set | ${nodes['TG']} | ${nodes['DUT1']}
-| | ... | ${nodes['DUT2']}
+| | Given Path for 3-node testing is set
+| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']}
+| | And Interfaces in 3-node path are up
| | When Bridge domain on DUT node is created | ${dut1_node} | ${bd_id1}
| | ... | learn=${FALSE}
| | And Interface is added to bridge domain | ${dut1_node} | ${dut1_to_tg}
| | When Bridge domain on DUT node is created | ${dut1_node} | ${bd_id1}
| | ... | learn=${FALSE}
| | And Interface is added to bridge domain | ${dut1_node} | ${dut1_to_tg}
| | Given Path for 3-node BD-SHG testing is set | ${nodes['TG']}
| | ... | ${nodes['DUT1']}
| | ... | ${nodes['DUT2']}
| | Given Path for 3-node BD-SHG testing is set | ${nodes['TG']}
| | ... | ${nodes['DUT1']}
| | ... | ${nodes['DUT2']}
| | When 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} | ${shg1}
| | When 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} | ${shg1}
| | ... | ${bd_id2} | ${shg2}
| | And Interface is added to bridge domain | ${dut2_node} | ${dut2_to_dut1}
| | ... | ${bd_id2}
| | ... | ${bd_id2} | ${shg2}
| | And Interface is added to bridge domain | ${dut2_node} | ${dut2_to_dut1}
| | ... | ${bd_id2}
| | Then Send and receive ICMPv4 bidirectionally | ${tg_node}
| | ... | ${tg_to_dut1_if1}
| | ... | ${tg_to_dut2_if1}
| | Then Send and receive ICMPv4 bidirectionally | ${tg_node}
| | ... | ${tg_to_dut1_if1}
| | ... | ${tg_to_dut2_if1}
| | ... | interfaces and check packet forwarding through VM via two
| | ... | L2 bridge domains with learning enabled.
| | [Tags] | 3_NODE_DOUBLE_LINK_TOPO | VPP_VM_ENV
| | ... | interfaces and check packet forwarding through VM via two
| | ... | L2 bridge domains with learning enabled.
| | [Tags] | 3_NODE_DOUBLE_LINK_TOPO | VPP_VM_ENV
-| | Given Path for 2-node BD testing is set | ${nodes['TG']} | ${nodes['DUT1']}
+| | Given Path for 2-node testing is set
+| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']}
+| | And Interfaces in 2-node path are up
| | And VM for Vhost L2BD forwarding is setup | ${dut_node} | ${sock1}
| | ... | ${sock2}
| | Then Send and receive ICMPv4 bidirectionally | ${tg_node} | ${tg_to_dut_if1}
| | And VM for Vhost L2BD forwarding is setup | ${dut_node} | ${sock1}
| | ... | ${sock2}
| | Then Send and receive ICMPv4 bidirectionally | ${tg_node} | ${tg_to_dut_if1}
| | ... | L2 bridge domains with learning disabled (static L2BFIB
| | ... | entries).
| | [Tags] | 3_NODE_DOUBLE_LINK_TOPO | VPP_VM_ENV
| | ... | L2 bridge domains with learning disabled (static L2BFIB
| | ... | entries).
| | [Tags] | 3_NODE_DOUBLE_LINK_TOPO | VPP_VM_ENV
-| | Given Path for 2-node BD testing is set | ${nodes['TG']} | ${nodes['DUT1']}
+| | Given Path for 2-node testing is set
+| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']}
+| | And Interfaces in 2-node path are up