| | L2 setup xconnect on DUT | ${dut2} | ${dut2_if2} | ${vhost_if2}
| | All Vpp Interfaces Ready Wait | ${nodes}
+| L2 xconnect with Vhost-User for '${nr}' initialized in a 3-node circular topology
+| | [Documentation]
+| | ... | Create pairs of Vhost-User interfaces on all defined VPP nodes. Cross
+| | ... | connect each Vhost interface with one physical interface or virtual
+| | ... | interface to create a chain accross DUT node.
+| | ...
+| | ... | *Arguments:*
+| | ... | _None_
+| | ...
+| | ... | *Note:*
+| | ... | Socket paths for VM are defined in following format:
+| | ... | - /tmp/sock-${VM_ID}-1
+| | ... | - /tmp/sock-${VM_ID}-2
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| L2 xconnect with Vhost-User for '2' initialized in a 3-node \
+| | ... | circular topology \|
+| | ...
+| | :FOR | ${number} | IN RANGE | 1 | ${nr}+1
+| | | ${sock1}= | Set Variable | /tmp/sock-${number}-1
+| | | ${sock2}= | Set Variable | /tmp/sock-${number}-2
+| | | ${prev_index}= | Evaluate | ${number}-1
+| | | VPP Vhost interfaces for L2BD forwarding are setup | ${dut1}
+| | | ... | ${sock1} | ${sock2} | dut1-vhost-${number}-if1
+| | | ... | dut1-vhost-${number}-if2
+| | | ${dut1_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut1_if1}
+| | | ... | ${dut1-vhost-${prev_index}-if2}
+| | | L2 setup xconnect on DUT | ${dut1} | ${dut1_xconnect_if1}
+| | | ... | ${dut1-vhost-${number}-if1}
+| | | VPP Vhost interfaces for L2BD forwarding are setup | ${dut2}
+| | | ... | ${sock1} | ${sock2} | dut2-vhost-${number}-if1
+| | | ... | dut2-vhost-${number}-if2
+| | | ${dut2_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut2_if1}
+| | | ... | ${dut2-vhost-${prev_index}-if2}
+| | | L2 setup xconnect on DUT | ${dut2} | ${dut2_xconnect_if1}
+| | | ... | ${dut2-vhost-${number}-if1}
+| | | Run Keyword If | ${number}==${nr} | L2 setup xconnect on DUT
+| | | ... | ${dut1} | ${dut1-vhost-${number}-if2} | ${dut1_if2}
+| | | Run Keyword If | ${number}==${nr} | L2 setup xconnect on DUT
+| | | ... | ${dut2} | ${dut2-vhost-${number}-if2} | ${dut2_if2}
+
| L2 xconnect with Vhost-User and VLAN initialized in a 3-node circular topology
| | [Documentation]
| | ... | Create two Vhost-User interfaces on all defined VPP nodes. Cross
| | 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=io | pmd_disable_hw_vlan=${True}
+| | ... | pmd_fwd_mode=io | pmd_disable_hw_vlan=${True} | pmd_txd=${256}
+| | ... | pmd_rxd=${256}
| | Return From Keyword | ${vm}
| '${nr}' Guest VMs with dpdk-testpmd connected via vhost-user is setup in a 3-node circular topology
| | 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=io | pmd_disable_hw_vlan=${True}
+| | ... | pmd_fwd_mode=io | pmd_disable_hw_vlan=${True} | pmd_txd=${256}
+| | ... | pmd_rxd=${256}
| | Return From Keyword | ${vm}
| Guest VM with dpdk-testpmd-mac connected via vhost-user is setup
| | 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}
+| | ... | pmd_txd=${256} | pmd_rxd=${256}
| | Return From Keyword | ${vm}
| '${nr}' Guest VMs with dpdk-testpmd-mac connected via vhost-user is setup in a 3-node circular topology
| | 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}
+| | ... | pmd_txd=${256} | pmd_rxd=${256}
| | Return From Keyword | ${vm}
| Guest VM with Linux Bridge connected via vhost-user is setup