| Resource | resources/libraries/robot/testing_path.robot
| Resource | resources/libraries/robot/double_qemu_setup.robot
| Resource | resources/libraries/robot/qemu.robot
+| Resource | resources/libraries/robot/fds/default.robot
| Library | resources.libraries.python.Trace
+| ...
| Force Tags | HW_ENV | VM_ENV | SKIP_PATCH
-| Test Setup | Run Keywords | Setup all DUTs before test
-| ... | AND | Save VPP PIDs
-| ... | AND | Setup all TGs before traffic script
-| ... | AND | Reset VAT History On All DUTs | ${nodes}
-| Test Teardown | Run Keywords | Show Packet Trace on All DUTs | ${nodes}
-| ... | AND | Show VAT History On All DUTs | ${nodes}
-| ... | AND | Qemu Teardown | ${dut1_node} | ${qemu_node1}
-| ... | qemu_node1
-| ... | AND | Qemu Teardown | ${dut2_node} | ${qemu_node2}
-| ... | qemu_node2
-| ... | AND | Check VPP PID in Teardown
+| ...
+| Test Setup | Set up FDS functional test | ${nodes}
+| ...
+| Test Teardown | Tear down FDS functional test | ${nodes}
+| ... | ${dut1_node} | ${qemu_node1} | ${dut2_node} | ${qemu_node2}
+| ...
| Documentation | *Provider network FDS related.*
| ...
| ... | Test suite uses 3-node topology TG - DUT1 - DUT2 - TG
*** Test Cases ***
| Provider network test cases with provider physical networks (VLAN)
| | [Documentation] | Ping among all ports inside the same network should pass.
-| | ... | a) test l2 connectivity inside every network
-| | ... | b) test l2 connectivity between networks
+| | ... | a) test l2 connectivity inside every network
+| | ... | b) test l2 connectivity between networks
| | [Tags] | 3_NODE_DOUBLE_LINK_TOPO | VPP_VM_ENV
-| | Given Path for 3-node testing is set | ${nodes['TG']} | ${nodes['DUT1']}
-| | ... | ${nodes['DUT2']} | ${nodes['TG']}
+| | Given Configure path in 3-node circular topology | ${nodes['TG']}
+| | ... | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']}
| | And Set Interface Address | ${dut1_node} | ${dut1_to_dut2} | ${dut1_if_ip}
| | ... | ${prefix_length}
| | And Set Interface Address | ${dut2_node} | ${dut2_to_dut1} | ${dut2_if_ip}
| | ... | ${dut2_node} | ${sock4}
| | ${dut2_vhosts}= | And Create List | ${vhost_if1_DUT2} | ${vhost_if2_DUT2}
| | ... | ${vhost_if3_DUT2} | ${vhost_if4_DUT2}
-| | When Setup QEMU Vhost and Run | ${dut1_node}
-| | ... | ${sock1}
-| | ... | ${sock2}
-| | ... | ${sock3}
-| | ... | ${sock4}
-| | ... | ${dut1_blue1}
-| | ... | ${dut1_blue2}
-| | ... | ${dut1_red1}
-| | ... | ${dut1_red2}
-| | ... | ${prefix_length}
-| | ... | qemu_node1
-| | ... | 04
-| | And Setup QEMU Vhost and Run | ${dut2_node}
-| | ... | ${sock1}
-| | ... | ${sock2}
-| | ... | ${sock3}
-| | ... | ${sock4}
-| | ... | ${dut2_blue1}
-| | ... | ${dut2_blue2}
-| | ... | ${dut2_red1}
-| | ... | ${dut2_red2}
-| | ... | ${prefix_length}
-| | ... | qemu_node2
-| | ... | 06
+| | When Configure QEMU vhost and run it | ${dut1_node}
+| | ... | ${sock1}
+| | ... | ${sock2}
+| | ... | ${sock3}
+| | ... | ${sock4}
+| | ... | ${dut1_blue1}
+| | ... | ${dut1_blue2}
+| | ... | ${dut1_red1}
+| | ... | ${dut1_red2}
+| | ... | ${prefix_length}
+| | ... | qemu_node1
+| | ... | 04
+| | And Configure QEMU vhost and run it | ${dut2_node}
+| | ... | ${sock1}
+| | ... | ${sock2}
+| | ... | ${sock3}
+| | ... | ${sock4}
+| | ... | ${dut2_blue1}
+| | ... | ${dut2_blue2}
+| | ... | ${dut2_red1}
+| | ... | ${dut2_red2}
+| | ... | ${prefix_length}
+| | ... | qemu_node2
+| | ... | 06
| | And Setup VLAN and BD on Dut | ${dut1_node} | ${dut1_to_dut2}
| | ... | @{dut1_vhosts}
| | And Setup VLAN and BD on Dut | ${dut2_node} | ${dut2_to_dut1}
*** Keywords ***
| Setup VLAN and BD on Dut
| | [Documentation] | Setup VLAN and bridge domain on specific DUT and
-| | ... | subsequently interconnect them properly. Also set VLAN tag
-| | ... | rewrite on vhosts.
+| | ... | subsequently interconnect them properly. Also set VLAN tag
+| | ... | rewrite on vhosts.
| | ...
| | ... | *Arguments:*
| | ... | - dut_node - Node where to setup VLAN and BD. Type: dict
| | ... | - interface - Interface where to create VLAN sub-interface.
-| | ... | Type: string
+| | ... | Type: string
| | ... | - vhosts - List containing vhost interfaces.
| | ...
| | ... | *Example:*
| | ... | \| @{vhosts} \|
| | ...
| | [Arguments] | ${dut_node} | ${interface} | @{vhosts}
-| | Bridge domain on DUT node is created | ${dut_node} | ${bid_b} | learn=${TRUE}
-| | Bridge domain on DUT node is created | ${dut_node} | ${bid_r} | learn=${TRUE}
+| | Create bridge domain | ${dut_node} | ${bid_b} | learn=${TRUE}
+| | Create bridge domain | ${dut_node} | ${bid_r} | learn=${TRUE}
| | ${interface_name}= | Get interface name | ${dut_node} | ${interface}
| | ${vlan1_name} | ${vlan1_index}= | Create Vlan Subinterface
| | ... | ${dut_node} | ${interface_name} | ${vlan_blue}
| | ... | tag1_id=${vlan_red}
| | L2 Vlan Tag Rewrite | ${dut_node} | @{vhosts}[3] | push-1
| | ... | tag1_id=${vlan_red}
-| | Interface is added to bridge domain | ${dut_node}
+| | Add interface to bridge domain | ${dut_node}
| | ... | ${vlan1_index} | ${bid_b} | 0
-| | Interface is added to bridge domain | ${dut_node}
+| | Add interface to bridge domain | ${dut_node}
| | ... | @{vhosts}[0] | ${bid_b} | 0
-| | Interface is added to bridge domain | ${dut_node}
+| | Add interface to bridge domain | ${dut_node}
| | ... | @{vhosts}[1] | ${bid_b} | 0
-| | Interface is added to bridge domain | ${dut_node}
+| | Add interface to bridge domain | ${dut_node}
| | ... | ${vlan2_index} | ${bid_r} | 0
-| | Interface is added to bridge domain | ${dut_node}
+| | Add interface to bridge domain | ${dut_node}
| | ... | @{vhosts}[2] | ${bid_r} | 0
-| | Interface is added to bridge domain | ${dut_node}
+| | Add interface to bridge domain | ${dut_node}
| | ... | @{vhosts}[3] | ${bid_r} | 0
| Positive Scenario Ping From DUT1 - Intra network
| | [Documentation] | Send ping packets from specified namespaces to other in
-| | ... | order to test connectivity.
+| | ... | order to test connectivity.
| | Send Ping From Node To Dst | ${qemu_node1} | ${dut1_blue2} | ${namespace1}
| | Send Ping From Node To Dst | ${qemu_node1} | ${dut1_blue1} | ${namespace2}
| | Send Ping From Node To Dst | ${qemu_node1} | ${dut1_red2} | ${namespace3}
| Positive Scenario Ping From DUT1 - Inter network
| | [Documentation] | Send ping packets from specified namespaces to other in
-| | ... | order to test connectivity.
+| | ... | order to test connectivity.
| | Send Ping From Node To Dst | ${qemu_node1} | ${dut2_blue1} | ${namespace1}
| | Send Ping From Node To Dst | ${qemu_node1} | ${dut2_blue2} | ${namespace1}
| | Send Ping From Node To Dst | ${qemu_node1} | ${dut2_blue1} | ${namespace2}
| Positive Scenario Ping From DUT2 - Intra network
| | [Documentation] | Send ping packets from specified namespaces to other in
-| | ... | order to test connectivity.
+| | ... | order to test connectivity.
| | Send Ping From Node To Dst | ${qemu_node2} | ${dut2_blue2} | ${namespace1}
| | Send Ping From Node To Dst | ${qemu_node2} | ${dut2_blue1} | ${namespace2}
| | Send Ping From Node To Dst | ${qemu_node2} | ${dut2_red2} | ${namespace3}
| Positive Scenario Ping From DUT2 - Inter network
| | [Documentation] | Send ping packets from specified namespaces to other in
-| | ... | order to test connectivity.
+| | ... | order to test connectivity.
| | Send Ping From Node To Dst | ${qemu_node2} | ${dut1_blue1} | ${namespace1}
| | Send Ping From Node To Dst | ${qemu_node2} | ${dut1_blue2} | ${namespace1}
| | Send Ping From Node To Dst | ${qemu_node2} | ${dut1_blue1} | ${namespace2}
| Negative Scenario Ping From DUT1 - Intra network
| | [Documentation] | Send ping packets from specified namespaces to other in
-| | ... | order to test unreachability of namespaces.
+| | ... | order to test unreachability of namespaces.
| | Run keyword and expect error | Ping Not Successful
| | ... | Send Ping From Node To Dst | ${qemu_node1} | ${dut1_red1}
| | ... | ${namespace1}
| Negative Scenario Ping From DUT1 - Inter network
| | [Documentation] | Send ping packets from specified namespaces to other in
-| | ... | order to test unreachability of namespaces.
+| | ... | order to test unreachability of namespaces.
| | Run keyword and expect error | Ping Not Successful
| | ... | Send Ping From Node To Dst | ${qemu_node1} | ${dut2_red1}
| | ... | ${namespace1}
| Negative Scenario Ping From DUT2 - Intra network
| | [Documentation] | Send ping packets from specified namespaces to other in
-| | ... | order to test unreachability of namespaces.
+| | ... | order to test unreachability of namespaces.
| | Run keyword and expect error | Ping Not Successful
| | ... | Send Ping From Node To Dst | ${qemu_node2} | ${dut2_red1}
| | ... | ${namespace1}
| Negative Scenario Ping From DUT2 - Inter network
| | [Documentation] | Send ping packets from specified namespaces to other in
-| | ... | order to test unreachability of namespaces.
+| | ... | order to test unreachability of namespaces.
| | Run keyword and expect error | Ping Not Successful
| | ... | Send Ping From Node To Dst | ${qemu_node2} | ${dut1_red1}
| | ... | ${namespace1}