+| | ${qemu_cpus}= | Cpu slice of list per node | ${dut_node} | ${dut_numa}
+| | ... | skip_cnt=${skip} | cpu_cnt=${count} | smt_used=${False}
+| | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock1}
+| | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock2}
+| | Run keyword | ${vm_name}.Qemu Set Node | ${dut_node}
+| | Run keyword | ${vm_name}.Qemu Set Smp | ${count} | ${count} | 1 | 1
+| | Run keyword | ${vm_name}.Qemu Set Mem Size | 2048
+| | Run keyword | ${vm_name}.Qemu Set Disk Image | ${glob_vm_image}
+| | ${vm}= | Run keyword | ${vm_name}.Qemu Start
+| | Run keyword | ${vm_name}.Qemu Set Affinity | @{qemu_cpus}
+| | Run keyword | ${vm_name}.Qemu Set Scheduler Policy
+| | Dpdk Testpmd Start | ${vm} | eal_coremask=0x1f
+| | ... | eal_mem_channels=4 | pmd_fwd_mode=mac | pmd_eth_peer_0=0,${eth0_mac}
+| | ... | pmd_eth_peer_1=1,${eth1_mac} | pmd_disable_hw_vlan=${True}
+| | Return From Keyword | ${vm}
+
+| Guest VM with dpdk-testpmd-mac using SMT connected via vhost-user is setup
+| | [Documentation]
+| | ... | Start QEMU guest with two vhost-user interfaces and interconnecting
+| | ... | DPDK testpmd. Qemu Guest uses by default 5 cores and 2048M. Testpmd
+| | ... | uses 5 cores (1 main core and 4 cores dedicated to io) mem-channel=4,
+| | ... | txq/rxq=256, burst=64, disable-hw-vlan, disable-rss,
+| | ... | driver usr/lib/librte_pmd_virtio.so and fwd mode is mac rewrite.
+| | ...
+| | ... | *Arguments:*
+| | ... | - dut_node - DUT node to start guest VM on. Type: dictionary
+| | ... | - sock1 - Socket path for first Vhost-User interface. Type: string
+| | ... | - sock2 - Socket path for second Vhost-User interface. Type: string
+| | ... | - vm_name - QemuUtil instance name. Type: string
+| | ... | - eth0_mac - MAC address of first Vhost interface. Type: string
+| | ... | - eth1_mac - MAC address of second Vhost interface. Type: string
+| | ... | - skip - number of cpus which will be skipped. Type: int
+| | ... | - count - number of cpus which will be allocated for qemu. Type: int
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Guest VM with dpdk-testpmd-mac using SMT connected via vhost-user \
+| | ... | is setup \| ${nodes['DUT1']} \| /tmp/sock1 \| /tmp/sock2 \| DUT1_VM \
+| | ... | \| 00:00:00:00:00:01 \| 00:00:00:00:00:02 \| ${6} \| ${5} \|
+| | ...
+| | [Arguments] | ${dut_node} | ${sock1} | ${sock2} | ${vm_name}
+| | ... | ${eth0_mac} | ${eth1_mac} | ${skip}=${6} | ${count}=${5}
+| | ...
+| | Import Library | resources.libraries.python.QemuUtils
+| | ... | WITH NAME | ${vm_name}
+| | ${dut_numa}= | Get interfaces numa node | ${dut_node}
+| | ... | ${dut1_if1} | ${dut1_if2}
+| | ${qemu_cpus}= | Cpu slice of list per node | ${dut_node} | ${dut_numa}
+| | ... | skip_cnt=${skip} | cpu_cnt=${count} | smt_used=${True}