From: Lingli Chen <linglix.chen@intel.com>
To: dts@dpdk.org
Cc: xingguang.he@intel.com, Lingli Chen <linglix.chen@intel.com>
Subject: [dts][PATCH V1 1/2] test_plans/vm2vm_virtio_user: modify test plan to coverage more test point
Date: Thu, 10 Feb 2022 14:13:08 +0800 [thread overview]
Message-ID: <20220210061309.3928461-1-linglix.chen@intel.com> (raw)
1.To cover all paths, four cases related to split ring (test cases 14, 15, 16, 17) and four cases related to packed ring (test cases 20, 21, 22, 23) are added.
2.Cbdma related cases(case 12, 13, 18, 19), the iova = PA step is added.
3.Case 24: to test the indirect feature when choose packed vectorized-tx path, and we have no relevant cases before.
Signed-off-by: Lingli Chen <linglix.chen@intel.com>
---
test_plans/vm2vm_virtio_user_test_plan.rst | 731 ++++++++++++++++++++-
1 file changed, 701 insertions(+), 30 deletions(-)
diff --git a/test_plans/vm2vm_virtio_user_test_plan.rst b/test_plans/vm2vm_virtio_user_test_plan.rst
index f35cd831..c51d4ced 100644
--- a/test_plans/vm2vm_virtio_user_test_plan.rst
+++ b/test_plans/vm2vm_virtio_user_test_plan.rst
@@ -41,6 +41,8 @@ This test plan test several features in VM2VM topo:
1. Split virtqueue vm2vm in-order mergeable, in-order non-mergeable, mergeable, non-mergeable, vector_rx path test.
2. Packed virtqueue vm2vm in-order mergeable, in-order non-mergeable, mergeable, non-mergeable, vectorized path (ringsize not powerof 2) test.
3. Split ring and packed ring vm2vm test when vhost enqueue operation with multi-CBDMA channels.
+4. Test indirect descriptor feature. For example, the split ring mergeable inorder path use non-indirect descriptor, the 2000,2000,2000,2000 chain packets will need 4 consequent ring, still need one ring put header.
+the split ring mergeable path use indirect descriptor, the 2000,2000,2000,2000 chain packets will only occupy one ring.
Test flow
=========
@@ -270,7 +272,7 @@ Test Case 4: packed virtqueue vm2vm inorder non-mergeable path test
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \
--no-pci --file-prefix=virtio1 \
- --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=1,packed_vq=1,mrg_rxbuf=0,in_order=1,packed_vec=1 \
+ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=1,packed_vq=1,mrg_rxbuf=0,in_order=1,vectorized=1 \
-- -i --rx-offloads=0x10 --nb-cores=1 --txd=256 --rxd=256
testpmd>set fwd rxonly
testpmd>start
@@ -792,13 +794,13 @@ Test Case 11: packed virtqueue vm2vm vectorized path test with ring size is not
9. Quit pdump,vhost received packets in pdump-vhost-rx.pcap,check headers and payload of all packets in pdump-virtio-rx.pcap and pdump-vhost-rx.pcap and ensure the content are same.
Test Case 12: split virtqueue vm2vm non-mergeable path multi-queues payload check with cbdma enabled
-========================================================================================================
+====================================================================================================
-1. Launch vhost by below command::
+1. bind 4 cbdma port to vfio-pci and launch vhost by below command::
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
- --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@80:04.0;txq1@80:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@80:04.2;txq1@80:04.3]' -- \
- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:80:04.0;txq1@0000:80:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:80:04.2;txq1@0000:80:04.3]' \
+ --iova=va -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
testpmd>vhost enable tx all
2. Launch virtio-user1 by below command::
@@ -806,16 +808,46 @@ Test Case 12: split virtqueue vm2vm non-mergeable path multi-queues payload chec
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \
--no-pci --file-prefix=virtio1 \
--vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,packed_vq=0,mrg_rxbuf=0,in_order=0,queue_size=4096 \
- -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
+ -- -i --enable-hw-vlan-strip --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
testpmd>set fwd rxonly
testpmd>start
-3. Launch virtio-user0 and send packets::
+3. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+4. Launch virtio-user0 and send packets::
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \
--no-pci --file-prefix=virtio \
--vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,server=1,packed_vq=0,mrg_rxbuf=0,in_order=0,queue_size=4096 \
- -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
+ -- -i --enable-hw-vlan-strip --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
+ testpmd>set burst 1
+ testpmd>set txpkts 64,128,256,512
+ testpmd>start tx_first 27
+ testpmd>stop
+ testpmd>set burst 32
+ testpmd>start tx_first 7
+ testpmd>stop
+ testpmd>set txpkts 64
+ testpmd>start tx_first 1
+ testpmd>stop
+
+5. Start vhost testpmd, check virtio-user1 RX-packets is 566 and RX-bytes is 486016, 502 packets with 960 length and 64 packets with 64 length in pdump-virtio-rx.pcap.
+
+6. Quit and relaunch vhost with iova=pa by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:80:04.0;txq1@0000:80:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:80:04.2;txq1@0000:80:04.3]' \
+ --iova=pa -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+7. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+8. Virtio-user0 send packets::
+
testpmd>set burst 1
testpmd>set txpkts 64,128,256,512
testpmd>start tx_first 27
@@ -825,8 +857,13 @@ Test Case 12: split virtqueue vm2vm non-mergeable path multi-queues payload chec
testpmd>stop
testpmd>set txpkts 64
testpmd>start tx_first 1
+ testpmd>stop
+
+9. Clear virtio-user1 port stats::
+
+ testpmd>clear port stats all
-4. Start vhost testpmd, check virtio-user1 RX-packets is 566 and RX-bytes is 486016.
+10. Rerun step 5.
Test Case 13: split virtqueue vm2vm mergeable path multi-queues payload check with cbdma enabled
================================================================================================
@@ -834,8 +871,8 @@ Test Case 13: split virtqueue vm2vm mergeable path multi-queues payload check wi
1. Launch vhost by below command::
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
- --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@00:04.0;txq1@00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@00:04.2;txq1@00:04.3]' -- \
- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=va -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
testpmd>vhost enable tx all
2. Launch virtio-user1 by below command::
@@ -851,7 +888,7 @@ Test Case 13: split virtqueue vm2vm mergeable path multi-queues payload check wi
./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
-4. Launch virtio-user0 and send 8k length packets::
+4. Launch virtio-user0 and send packets::
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \
--no-pci --file-prefix=virtio \
@@ -864,61 +901,289 @@ Test Case 13: split virtqueue vm2vm mergeable path multi-queues payload check wi
testpmd>set burst 32
testpmd>set txpkts 64
testpmd>start tx_first 7
+ testpmd>stop
-5. Start vhost testpmd, check 502 packets received by virtio-user1 and 54 packets with 4640 length and 448 packets with 64 length in pdump-virtio-rx.pcap.
+5. Start vhost testpmd, check 502 packets and 279232 bytes received by virtio-user1 and 54 packets with 4640 length and 448 packets with 64 length in pdump-virtio-rx.pcap.
-Test Case 14: packed virtqueue vm2vm non-mergeable path multi-queues payload check with cbdma enabled
-=========================================================================================================
+6. Quit and relaunch vhost with iova=pa by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=pa -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+7. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+8. Virtio-user0 send packets::
+
+ testpmd>set burst 1
+ testpmd>set txpkts 64,256,2000,64,256,2000
+ testpmd>start tx_first 27
+ testpmd>stop
+ testpmd>set burst 32
+ testpmd>set txpkts 64
+ testpmd>start tx_first 7
+ testpmd>stop
+
+9. Clear virtio-user1 port stats::
+
+ testpmd>clear port stats all
+
+10. Rerun step 5.
+
+Test Case 14: split virtqueue vm2vm inorder non-mergeable path multi-queues payload check with cbdma enabled
+============================================================================================================
1. Launch vhost by below command::
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
- --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@80:04.0;txq1@80:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@80:04.2;txq1@80:04.3]' -- \
- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=va -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
testpmd>vhost enable tx all
2. Launch virtio-user1 by below command::
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \
--no-pci --file-prefix=virtio1 \
- --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,packed_vq=1,mrg_rxbuf=0,in_order=0,queue_size=4096 \
+ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,packed_vq=0,mrg_rxbuf=0,in_order=1,queue_size=4096 \
-- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
testpmd>set fwd rxonly
testpmd>start
-3. Launch virtio-user0 and send packets::
+3. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+4. Launch virtio-user0 and send packets::
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \
--no-pci --file-prefix=virtio \
- --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,server=1,packed_vq=1,mrg_rxbuf=0,in_order=0,queue_size=4096 \
+ --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,server=1,packed_vq=0,mrg_rxbuf=0,in_order=1,queue_size=4096 \
-- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
testpmd>set burst 1
- testpmd>set txpkts 64,128,256,512
+ testpmd>set txpkts 64,256,2000,64,256,2000
testpmd>start tx_first 27
testpmd>stop
testpmd>set burst 32
+ testpmd>set txpkts 64
+ testpmd>start tx_first 7
+ testpmd>stop
+
+5. Start vhost testpmd, check 448 packets and 28672 bytes received by virtio-user1 and 448 packets with 64 length in pdump-virtio-rx.pcap.
+
+6. Quit and relaunch vhost with iova=pa by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=pa -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+7. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+8. Virtio-user0 send packets::
+
+ testpmd>set burst 1
+ testpmd>set txpkts 64,256,2000,64,256,2000
+ testpmd>start tx_first 27
+ testpmd>stop
+ testpmd>set burst 32
+ testpmd>set txpkts 64
+ testpmd>start tx_first 7
+ testpmd>stop
+
+9. Clear virtio-user1 port stats::
+
+ testpmd>clear port stats all
+
+10. Rerun step 5.
+
+Test Case 15: split virtqueue vm2vm vectorized path multi-queues payload check with cbdma enabled
+==================================================================================================
+
+1. Launch vhost by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=va -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+2. Launch virtio-user1 by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 --no-pci --file-prefix=virtio1 \
+ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,mrg_rxbuf=0,in_order=0,vectorized=1,queue_size=4096 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
+ testpmd>set fwd rxonly
+ testpmd>start
+
+3. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+4. Launch virtio-user0 and send packets::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 --no-pci --file-prefix=virtio \
+ --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,server=1,packed_vq=0,mrg_rxbuf=0,in_order=0,queue_size=4096 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
+ testpmd>set burst 32
+ testpmd>set txpkts 64
testpmd>start tx_first 7
testpmd>stop
+ testpmd>set burst 1
+ testpmd>set txpkts 64,256,2000,64,256,2000
+ testpmd>start tx_first 27
+ testpmd>stop
+
+5. Start vhost testpmd, check 448 packets and 28672 bytes received by virtio-user1 and 448 packets with 64 length in pdump-virtio-rx.pcap.
+
+6. Quit and relaunch vhost with iova=pa by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=pa -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+7. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+8. Virtio-user0 send packets::
+
+ testpmd>set burst 32
testpmd>set txpkts 64
+ testpmd>start tx_first 7
+ testpmd>stop
+ testpmd>set burst 1
+ testpmd>set txpkts 64,256,2000,64,256,2000
+ testpmd>start tx_first 27
+ testpmd>stop
+
+9. Clear virtio-user1 port stats::
+
+ testpmd>clear port stats all
+
+10. Rerun step 5.
+
+Test Case 16: Split virtqueue vm2vm inorder mergeable path test non-indirect descriptor with cbdma enable
+=========================================================================================================
+
+1. Launch testpmd by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=va -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=256 --rxd=256 --no-flush-rx
+ testpmd>vhost enable tx all
+
+2. Launch virtio-user1 by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \
+ --no-pci --file-prefix=virtio1 \
+ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,packed_vq=0,mrg_rxbuf=1,in_order=1,queue_size=256 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=256 --rxd=256
+ testpmd>set fwd rxonly
+ testpmd>start
+
+3. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+4. Launch virtio-user0 and send packets(include 251 small packets and 32 8K packets)::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \
+ --no-pci --file-prefix=virtio \
+ --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,server=1,packed_vq=0,mrg_rxbuf=1,in_order=1,queue_size=256 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=256 --rxd=256
+ testpmd>set burst 1
+ testpmd>start tx_first 27
+ testpmd>stop
+ testpmd>set burst 32
+ testpmd>start tx_first 7
+ testpmd>stop
+ testpmd>set txpkts 2000,2000,2000,2000
testpmd>start tx_first 1
+ testpmd>stop
-4. Start vhost testpmd, check virtio-user1 RX-packets is 566 and RX-bytes is 486016.
+5. Start vhost, then quit pdump and three testpmd, about split virtqueue inorder mergeable path, it use the non-indirect descriptors, the 8k length pkt will occupies 5 ring:2000,2000,2000,2000 will need 4 consequent ring,
+still need one ring put header. So check 504 packets and 48128 bytes received by virtio-user1 and 502 packets with 64 length and 2 packets with 8K length in pdump-virtio-rx.pcap.
-Test Case 15: packed virtqueue vm2vm mergeable path multi-queues payload check with cbdma enabled
-=================================================================================================
+6. Relaunch vhost with iova=pa by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=pa -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=256 --rxd=256 --no-flush-rx
+ testpmd>vhost enable tx all
+
+7. Rerun step 2-5.
+
+Test Case 17: Split virtqueue vm2vm mergeable path test indirect descriptor with cbdma enable
+=============================================================================================
+
+1. Launch testpmd by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=va -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=256 --rxd=256 --no-flush-rx
+ testpmd>vhost enable tx all
+
+2. Launch virtio-user1 by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \
+ --no-pci --file-prefix=virtio1 \
+ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,packed_vq=0,mrg_rxbuf=1,in_order=0,queue_size=256 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=256 --rxd=256
+ testpmd>set fwd rxonly
+ testpmd>start
+
+3. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+4. Launch virtio-user0 and send packets(include 251 small packets and 32 8K packets)::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \
+ --no-pci --file-prefix=virtio \
+ --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,server=1,packed_vq=0,mrg_rxbuf=1,in_order=0,queue_size=256 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=256 --rxd=256
+ testpmd>set burst 1
+ testpmd>start tx_first 27
+ testpmd>stop
+ testpmd>set burst 32
+ testpmd>start tx_first 7
+ testpmd>stop
+ testpmd>set txpkts 2000,2000,2000,2000
+ testpmd>start tx_first 1
+ testpmd>stop
+
+5. Start vhost, then quit pdump and three testpmd, about split virtqueue mergeable path, it use the indirect descriptors, the 8k length pkt will just occupies one ring.
+So check 512 packets and 112128 bytes received by virtio-user1 and 502 packets with 64 length and 10 packets with 8K length in pdump-virtio-rx.pcap.
+
+6. Relaunch vhost with iova=pa by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=pa -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=256 --rxd=256 --no-flush-rx
+ testpmd>vhost enable tx all
+
+7. Rerun step 2-5.
+
+Test Case 18: packed virtqueue vm2vm non-mergeable path multi-queues payload check with cbdma enabled
+=====================================================================================================
1. Launch vhost by below command::
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
- --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@00:04.0;txq1@00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@00:04.2;txq1@00:04.3]' -- \
- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:80:04.0;txq1@0000:80:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:80:04.2;txq1@0000:80:04.3]' \
+ --iova=va -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
testpmd>vhost enable tx all
2. Launch virtio-user1 by below command::
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \
--no-pci --file-prefix=virtio1 \
- --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,packed_vq=1,mrg_rxbuf=1,in_order=0,queue_size=4096 \
+ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,packed_vq=1,mrg_rxbuf=0,in_order=0,queue_size=4096 \
-- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
testpmd>set fwd rxonly
testpmd>start
@@ -927,18 +1192,424 @@ Test Case 15: packed virtqueue vm2vm mergeable path multi-queues payload check w
./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
-4. Launch virtio-user0 and send 8k length packets::
+4. Launch virtio-user0 and send packets::
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \
--no-pci --file-prefix=virtio \
- --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,server=1,packed_vq=1,mrg_rxbuf=1,in_order=0,queue_size=4096 \
+ --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,server=1,packed_vq=1,mrg_rxbuf=0,in_order=0,queue_size=4096 \
-- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
+ testpmd>set burst 32
+ testpmd>set txpkts 64
+ testpmd>start tx_first 7
+ testpmd>stop
testpmd>set burst 1
testpmd>set txpkts 64,256,2000,64,256,2000
testpmd>start tx_first 27
testpmd>stop
+
+5. Start vhost testpmd, check virtio-user1 RX-packets is 448 and RX-bytes is 28672, 448 packets with 64 length in pdump-virtio-rx.pcap.
+
+6. Quit and relaunch vhost with iova=pa by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:80:04.0;txq1@0000:80:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:80:04.2;txq1@0000:80:04.3]' \
+ --iova=pa -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+7. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+8. Virtio-user0 send packets::
+
testpmd>set burst 32
testpmd>set txpkts 64
testpmd>start tx_first 7
+ testpmd>stop
+ testpmd>set burst 1
+ testpmd>set txpkts 64,256,2000,64,256,2000
+ testpmd>start tx_first 27
+ testpmd>stop
+
+9. Clear virtio-user1 port stats::
+
+ testpmd>clear port stats all
+
+10. Rerun step 5.
+
+Test Case 19: packed virtqueue vm2vm mergeable path multi-queues payload check with cbdma enabled
+=================================================================================================
+
+1. Launch vhost by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=va -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+2. Launch virtio-user1 by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \
+ --no-pci --file-prefix=virtio1 \
+ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,packed_vq=1,mrg_rxbuf=1,in_order=0,queue_size=4096 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
+ testpmd>set fwd rxonly
+ testpmd>start
+
+3. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+4. Launch virtio-user0 and send packets::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \
+ --no-pci --file-prefix=virtio \
+ --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,server=1,packed_vq=1,mrg_rxbuf=1,in_order=0,queue_size=4096 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
+ testpmd>set burst 1
+ testpmd>set txpkts 64,256,2000,64,256,2000
+ testpmd>start tx_first 27
+ testpmd>stop
+ testpmd>set burst 32
+ testpmd>set txpkts 64
+ testpmd>start tx_first 7
+ testpmd>stop
+
+5. Start vhost testpmd, then quit pdump, check 502 packets and 279232 bytes received by virtio-user1 and 54 packets with 4640 length and 448 packets with 64 length in pdump-virtio-rx.pcap.
+
+6. Quit and relaunch vhost with iova=pa by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=pa -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+7. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+8. Virtio-user0 send packets::
+
+ testpmd>set burst 1
+ testpmd>set txpkts 64,256,2000,64,256,2000
+ testpmd>start tx_first 27
+ testpmd>stop
+ testpmd>set burst 32
+ testpmd>set txpkts 64
+ testpmd>start tx_first 7
+ testpmd>stop
+
+9. Clear virtio-user1 port stats::
+
+ testpmd>clear port stats all
+
+10. Rerun step 5.
+
+Test Case 20: packed virtqueue vm2vm inorder mergeable path multi-queues payload check with cbdma enabled
+=========================================================================================================
+
+1. Launch vhost by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=va -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+2. Launch virtio-user1 by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \
+ --no-pci --file-prefix=virtio1 \
+ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,packed_vq=1,mrg_rxbuf=1,in_order=1,queue_size=4096 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
+ testpmd>set fwd rxonly
+ testpmd>start
+
+3. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+4. Launch virtio-user0 and send packets::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \
+ --no-pci --file-prefix=virtio \
+ --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,server=1,packed_vq=1,mrg_rxbuf=1,in_order=1,queue_size=4096 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
+ testpmd>set burst 1
+ testpmd>set txpkts 64,256,2000,64,256,2000
+ testpmd>start tx_first 27
+ testpmd>stop
+ testpmd>set burst 32
+ testpmd>set txpkts 64
+ testpmd>start tx_first 7
+ testpmd>stop
+
+5. Start vhost testpmd, then quit pdump, check 502 packets and 279232 bytes received by virtio-user1 and 54 packets with 4640 length and 448 packets with 64 length in pdump-virtio-rx.pcap.
+
+6. Quit and relaunch vhost with iova=pa by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=pa -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+7. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+8. Virtio-user0 send packets::
+
+ testpmd>set burst 1
+ testpmd>set txpkts 64,256,2000,64,256,2000
+ testpmd>start tx_first 27
+ testpmd>stop
+ testpmd>set burst 32
+ testpmd>set txpkts 64
+ testpmd>start tx_first 7
+ testpmd>stop
+
+9. Clear virtio-user1 port stats::
+
+ testpmd>clear port stats all
+
+10. Rerun step 5.
+
+Test Case 21: packed virtqueue vm2vm inorder non-mergeable path multi-queues payload check with cbdma enabled
+=============================================================================================================
+
+1. Launch vhost by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=va -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+2. Launch virtio-user1 by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \
+ --no-pci --file-prefix=virtio1 \
+ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,packed_vq=1,mrg_rxbuf=0,in_order=1,queue_size=4096 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
+ testpmd>set fwd rxonly
+ testpmd>start
+
+3. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+4. Launch virtio-user0 and send 8k length packets::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \
+ --no-pci --file-prefix=virtio \
+ --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,server=1,packed_vq=1,mrg_rxbuf=0,in_order=1,queue_size=4096 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
+
+ testpmd>set burst 32
+ testpmd>set txpkts 64
+ testpmd>start tx_first 7
+ testpmd>stop
+ testpmd>set burst 1
+ testpmd>set txpkts 64,256,2000,64,256,2000
+ testpmd>start tx_first 27
+ testpmd>stop
+
+5. Start vhost testpmd, then quit pdump, check 448 packets and 28672 bytes received by virtio-user1 and 448 packets with 64 length in pdump-virtio-rx.pcap.
+
+6. Quit and relaunch vhost with iova=pa by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=pa -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+7. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+8. Virtio-user0 send packets::
+
+ testpmd>set burst 32
+ testpmd>set txpkts 64
+ testpmd>start tx_first 7
+ testpmd>stop
+ testpmd>set burst 1
+ testpmd>set txpkts 64,256,2000,64,256,2000
+ testpmd>start tx_first 27
+ testpmd>stop
+
+9. Clear virtio-user1 port stats::
+
+ testpmd>clear port stats all
+
+10. Rerun step 5.
+
+Test Case 22: packed virtqueue vm2vm vectorized path multi-queues payload check with cbdma enabled
+===================================================================================================
+
+1. Launch vhost by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=va -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+2. Launch virtio-user1 by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 --no-pci --file-prefix=virtio1 --force-max-simd-bitwidth=512 \
+ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,packed_vq=1,mrg_rxbuf=0,in_order=1,vectorized=1,queue_size=4096 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
+ testpmd>set fwd rxonly
+ testpmd>start
+
+3. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+4. Launch virtio-user0 and send 8k length packets::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 --force-max-simd-bitwidth=512 --no-pci --file-prefix=virtio \
+ --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,server=1,packed_vq=1,mrg_rxbuf=0,in_order=1,vectorized=1,queue_size=4096 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096
+ testpmd>set burst 32
+ testpmd>set txpkts 64
+ testpmd>start tx_first 7
+ testpmd>stop
+ testpmd>set burst 1
+ testpmd>set txpkts 64,256,2000,64,256,2000
+ testpmd>start tx_first 27
+ testpmd>stop
+
+5. Start vhost testpmd, then quit pdump, check 448 packets and 28672 bytes received by virtio-user1 and 448 packets with 64 length in pdump-virtio-rx.pcap.
+
+6. Quit and relaunch vhost with iova=pa by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=pa -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+7. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+8. Virtio-user0 send packets::
+
+ testpmd>set burst 32
+ testpmd>set txpkts 64
+ testpmd>start tx_first 7
+ testpmd>stop
+ testpmd>set burst 1
+ testpmd>set txpkts 64,256,2000,64,256,2000
+ testpmd>start tx_first 27
+ testpmd>stop
+
+9. Clear virtio-user1 port stats::
+
+ testpmd>clear port stats all
+
+10. Rerun step 5.
+
+Test Case 23: packed virtqueue vm2vm vectorized path multi-queues payload check with ring size is not power of 2 and cbdma enabled
+==================================================================================================================================
+
+1. Launch vhost by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=va -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+2. Launch virtio-user1 by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 --force-max-simd-bitwidth=512 --no-pci --file-prefix=virtio1 \
+ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,packed_vq=1,mrg_rxbuf=0,in_order=1,vectorized=1,queue_size=4097 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4097 --rxd=4097
+ testpmd>set fwd rxonly
+ testpmd>start
+
+3. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+4. Launch virtio-user0 and send 8k length packets::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 --force-max-simd-bitwidth=512 --no-pci --file-prefix=virtio \
+ --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,server=1,packed_vq=1,mrg_rxbuf=0,in_order=1,vectorized=1,queue_size=4097 \
+ -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4097 --rxd=4097
+ testpmd>set burst 32
+ testpmd>set txpkts 64
+ testpmd>start tx_first 7
+ testpmd>stop
+ testpmd>set burst 1
+ testpmd>set txpkts 64,256,2000,64,256,2000
+ testpmd>start tx_first 27
+ testpmd>stop
+
+5. Start vhost testpmd, then quit pdump, check 448 packets and 28672 bytes received by virtio-user1 and 448 packets with 64 length in pdump-virtio-rx.pcap.
+
+6. Quit and relaunch vhost with iova=pa by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@0000:00:04.0;txq1@0000:00:04.1]' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@0000:00:04.2;txq1@0000:00:04.3]' \
+ --iova=pa -- -i --nb-cores=1 --rxq=2 --txq=2 --txd=4096 --rxd=4096 --no-flush-rx
+ testpmd>vhost enable tx all
+
+7. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+8. Virtio-user0 send packets::
+
+ testpmd>set burst 32
+ testpmd>set txpkts 64
+ testpmd>start tx_first 7
+ testpmd>stop
+ testpmd>set burst 1
+ testpmd>set txpkts 64,256,2000,64,256,2000
+ testpmd>start tx_first 27
+ testpmd>stop
+
+9. Clear virtio-user1 port stats::
+
+ testpmd>clear port stats all
+
+10. Rerun step 5.
+
+Test Case 24: packed virtqueue vm2vm vectorized-tx path multi-queues test indirect descriptor
+=============================================================================================
+
+1. Launch vhost by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/testpmd -l 1-2 -n 4 --no-pci \
+ --vdev 'eth_vhost0,iface=vhost-net,queues=1' --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- \
+ -i --nb-cores=1 --no-flush-rx
+
+2. Launch virtio-user1 by below command::
+
+ ./x86_64-native-linuxapp-gcc/app/testpmd -n 4 -l 7-8 --no-pci --file-prefix=virtio1 --force-max-simd-bitwidth=512 \
+ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=1,packed_vq=1,mrg_rxbuf=1,in_order=1,vectorized=1,queue_size=256 \
+ -- -i --nb-cores=1 --txd=256 --rxd=256
+ testpmd>set fwd rxonly
+ testpmd>start
+
+3. Attach pdump secondary process to primary process by same file-prefix::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio1 -- --pdump 'device_id=net_virtio_user1,queue=*,rx-dev=./pdump-virtio-rx.pcap,mbuf-size=8000'
+
+4. Launch virtio-user0 and send 8k length packets::
+
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 --force-max-simd-bitwidth=512 --no-pci --file-prefix=virtio \
+ --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=1,packed_vq=1,mrg_rxbuf=1,in_order=1,vectorized=1,queue_size=256 \
+ -- -i --nb-cores=1 --txd=256 --rxd=256
+
+ testpmd>set burst 1
+ testpmd>start tx_first 27
+ testpmd>stop
+ testpmd>set burst 32
+ testpmd>start tx_first 7
+ testpmd>stop
+ testpmd>set txpkts 2000,2000,2000,2000
+ testpmd>start tx_first 1
+ testpmd>stop
-5. Start vhost testpmd, then quit pdump, check 502 packets received by virtio-user1 and 54 packets with 4640 length and 448 packets with 64 length in pdump-virtio-rx.pcap.
+5. Start vhost, then quit pdump and three testpmd, about packed virtqueue vectorized-tx path, it use the indirect descriptors, the 8k length pkt will just occupies one ring.
+So check 256 packets and 56064 bytes received by virtio-user1 and 251 packets with 64 length and 5 packets with 8K length in pdump-virtio-rx.pcap.
--
2.25.1
next reply other threads:[~2022-02-10 7:37 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-10 6:13 Lingli Chen [this message]
2022-02-10 6:13 ` [dts][PATCH V1 2/2] tests/vm2vm_virtio_user: Modify case sync with testplan Lingli Chen
2022-02-10 7:47 [dts][PATCH V1 1/2] test_plans/vm2vm_virtio_user: Modify test plan to coverage more test point Wei Ling
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220210061309.3928461-1-linglix.chen@intel.com \
--to=linglix.chen@intel.com \
--cc=dts@dpdk.org \
--cc=xingguang.he@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).