-| | ${duts}= | Get Matches | ${nodes} | DUT*
-| | FOR | ${dut} | IN | @{duts}
-| | | Append Node | ${nodes['${dut}']} | filter_list=${nic_model_list}
-| | END
-| | Append Node | ${nodes['@{duts}[0]']} | filter_list=${nic_model_list}
-| | Compute Path | always_same_link=${TRUE}
-| | FOR | ${i} | IN RANGE | 1 | ${DATAPATH_INTERFACES_MAX}
-| | | ${dutx_if} | ${dutx}= | Next Interface
-| | | Run Keyword If | '${dutx_if}' == 'None' | EXIT FOR LOOP
-| | | ${dutx_if_mac}= | Get Interface MAC | ${dutx} | ${dutx_if}
-| | | ${dutx_if_ip4_addr}= | Get Interface Ip4 | ${dutx} | ${dutx_if}
-| | | ${dutx_if_ip4_prefix_length}= | Get Interface Ip4 Prefix Length
-| | | ... | ${dutx} | ${dutx_if}
-| | | ${dut_str}= | Get Keyname For DUT | ${dutx} | ${duts}
-| | | ${if1_status} | ${value}= | Run Keyword And Ignore Error
-| | | ... | Variable Should Exist | ${${dut_str}_if1}
-| | | ${if_name}= | Set Variable If | '${if1_status}' == 'PASS'
-| | | ... | if2 | if1
-| | | Set Suite Variable | ${${dut_str}} | ${dutx}
-| | | Set Suite Variable | ${${dut_str}_${if_name}} | ${dutx_if}
-| | | Set Suite Variable | ${${dut_str}_${if_name}_mac} | ${dutx_if_mac}
-| | | Set Suite Variable | ${${dut_str}_${if_name}_ip4_addr}
-| | | ... | ${dutx_if_ip4_addr}
-| | | Set Suite Variable | ${${dut_str}_${if_name}_ip4_prefix}
-| | | ... | ${dutx_if_ip4_prefix_length}
-| | END
-| | Run Keyword If | ${i}>${DATAPATH_INTERFACES_MAX}
-| | ... | Fatal Error | Datapath length exceeded
-| | ${duts_count}= | Get Length | ${duts}
-| | Set Suite Variable | ${duts}
-| | Set Suite Variable | ${duts_count}
-| | FOR | ${action} | IN | @{actions}
-| | | Run Keyword | Additional Suite setup Action For ${action}
-| | END
+| | &{info}= | Compute Circular Topology
+| | ... | ${nodes} | filter_list=${nic_model_list} | nic_pfs=${nic_pfs}
+| | ... | always_same_link=${True} | topo_has_tg=${False}
+| | Set suite variable | &{topology_info} | &{info}
+| | Create suite topology variables | @{actions}