-| | ${nb_cores}= | Set Variable | ${cpu_count_int}
-| | ${duts}= | Get Matches | ${nodes} | DUT*
-| | :FOR | ${dut} | IN | @{duts}
-| | | ${numa}= | Get interfaces numa node | ${nodes['${dut}']}
-| | | ... | ${${dut}_if1} | ${${dut}_if2}
-| | | ${smt_used}= | Is SMT enabled | ${nodes['${dut}']['cpuinfo']}
-| | | ${cpus}= | Cpu List Per Node Str | ${nodes['${dut}']} | ${numa}
-| | | ... | skip_cnt=${1} | cpu_cnt=${nb_cores} | smt_used=${smt_used}
-| | | Start the l3fwd test | ${nodes} | ${nodes['${dut}']} | ${${dut}_if1}
-| | | ... | ${${dut}_if2} | ${nb_cores} | ${cpus} | ${rxqueues}
-| | | ... | ${jumbo_frames}
-| | | ${thr_count_int}= | Run keyword if | ${smt_used} |
-| | | ... | Evaluate | int(${cpu_count_int}*2) | ELSE | Set variable
-| | | ... | ${thr_count_int}
-| | | Run keyword if | ${thr_count_int} > 1
-| | | ... | Set Tags | MTHREAD | ELSE | Set Tags | STHREAD
-| | | Set Tags | ${thr_count_int}T${cpu_count_int}C
\ No newline at end of file
+| | FOR | ${dut} | IN | @{duts}
+| | | &{compute_resource_info}= | Get Affinity Vswitch
+| | | ... | ${nodes} | ${dut} | ${phy_cores} | rx_queues=${rx_queues}
+| | | ... | rxd=${rxd} | txd=${txd}
+| | | Set Test Variable | &{compute_resource_info}
+| | | Create compute resources variables
+| | | Start l3fwd
+| | | ... | ${nodes} | ${nodes['${dut}']} | ${${dut}_pf1}[0] | ${${dut}_pf2}[0]
+| | | ... | ${cpu_dp} | ${dp_count_int} | ${rxq_count_int} | ${jumbo_frames}
+| | FOR | ${dut} | IN | @{duts}
+| | | Check l3fwd
+| | | ... | ${nodes['${dut}']}
+| | END