From patchwork Sat Apr 2 06:34:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ling, WeiX" X-Patchwork-Id: 109090 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 47E8CA0501; Sat, 2 Apr 2022 08:34:13 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 418ED4068F; Sat, 2 Apr 2022 08:34:13 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mails.dpdk.org (Postfix) with ESMTP id 5330740143 for ; Sat, 2 Apr 2022 08:34:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1648881250; x=1680417250; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=nd9waGYIn15M552iuknY0yTIFjWJmHP1ZPELU8vLNyU=; b=XQoJGhqS8Ky/A9ZcG6I+JfGs2BFFyOr8CMvdcUV2M2mm6M6mlDqY3Lqk SunwT6YdSSel0x48NjU731nLS6iScQa7aof1FxkuKjKvWknlCAX2vFINP u1I/HssFu0cnR9gaXSvUpmJmg23rPjbLF9n/Ly3wYGpYygaDoTsz7goo6 WlMTE1fzdIocDDW5KG+1U1wl/2zuxVGUGogwafewN+r1FCdWhaoDAnVUy wWv1jW9tEPAPKg0jmaOG8to0cU/Gps3J3q/m0B8oyya38MALvbpyQNff1 pPw61Qzur6zVDZcKkXBwdkO00sJ38t19KcqaWBTYrhx0ZX1UTqx1pVXOe w==; X-IronPort-AV: E=McAfee;i="6200,9189,10304"; a="259109992" X-IronPort-AV: E=Sophos;i="5.90,229,1643702400"; d="scan'208";a="259109992" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Apr 2022 23:34:09 -0700 X-IronPort-AV: E=Sophos;i="5.90,229,1643702400"; d="scan'208";a="548073701" Received: from unknown (HELO localhost.localdomain) ([10.239.251.222]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Apr 2022 23:34:06 -0700 From: Wei Ling To: dts@dpdk.org Cc: Wei Ling Subject: [PATCH V1 1/5] test_plans/vm2vm_virtio_user_test_plan: delete case 12-23 Date: Sat, 2 Apr 2022 14:34:02 +0800 Message-Id: <20220402063402.474760-1-weix.ling@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org As commit 53d3f4778c(vhost: integrate dmadev in asynchronous data-path), delete cbdma related case 12-23 form tests/vm2vm_virtio_user_test_plan. Signed-off-by: Wei Ling --- test_plans/vm2vm_virtio_user_test_plan.rst | 1145 ++++---------------- 1 file changed, 193 insertions(+), 952 deletions(-) diff --git a/test_plans/vm2vm_virtio_user_test_plan.rst b/test_plans/vm2vm_virtio_user_test_plan.rst index c3aa328e..ca58b13f 100644 --- a/test_plans/vm2vm_virtio_user_test_plan.rst +++ b/test_plans/vm2vm_virtio_user_test_plan.rst @@ -41,39 +41,80 @@ 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. +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 +For more about dpdk-testpmd sample, please refer to the DPDK docments: +https://doc.dpdk.org/guides/testpmd_app_ug/run_app.html + +For virtio-user vdev parameter, you can refer to the DPDK docments: +https://doc.dpdk.org/guides/nics/virtio.html#virtio-paths-selection-and-usage + +Prerequisites +============= + +Topology +-------- +Test flow: Virtio-user-->Vhost-user-->Testpmd-->Vhost-user-->Virtio-user + +Hardware +-------- +Supportted NICs: ALL + +Software +-------- +Trex: http://trex-tgn.cisco.com/trex/release/v2.26.tar.gz + +General set up +-------------- +1. Compile DPDK:: + + # CC=gcc meson --werror -Denable_kmods=True -Dlibdir=lib -Dexamples=all --default-library= + # ninja -C -j 110 + +2. Get the PCI device ID and DMA device ID of DUT, for example, 0000:18:00.0 is PCI device ID:: + + # ./usertools/dpdk-devbind.py -s + + Network devices using kernel driver + =================================== + 0000:18:00.0 'Device 159b' if=ens785f0 drv=ice unused=vfio-pci + +Test case ========= -Virtio-user <-> Vhost-user <-> Testpmd <-> Vhost-user <-> Virtio-user + +Common steps +------------ +1. 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' + Test Case 1: packed virtqueue vm2vm mergeable path test -======================================================= +------------------------------------------------------- +This case uses testpmd and pdump to test of 2 virtio-user with packed ring mergeable path forward packets. 1. Launch vhost by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-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/dpdk-testpmd -n 4 -l 7-8 \ - --no-pci --file-prefix=virtio1 \ + # ./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=1,in_order=0 \ -- -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' +3. Start pdump to capture virtio-user1 packets, as common step 1. 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 \ + # ./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=1,packed_vq=1,mrg_rxbuf=1,in_order=0 \ -- -i --nb-cores=1 --txd=256 --rxd=256 testpmd>set burst 1 @@ -95,19 +136,19 @@ Test Case 1: packed virtqueue vm2vm mergeable path test 7. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ - --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- \ - -i --nb-cores=1 --no-flush-rx + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ + --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- -i --nb-cores=1 --no-flush-rx testpmd>set fwd rxonly testpmd>start 8. Attach pdump secondary process to primary process by same file-prefix:: - ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' + # ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost \ + -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' 9. Launch virtio-user1 by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 --no-pci \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 --no-pci \ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=1,packed_vq=1,mrg_rxbuf=1,in_order=0 \ -- -i --nb-cores=1 --txd=256 --rxd=256 testpmd>set burst 1 @@ -124,33 +165,32 @@ Test Case 1: packed virtqueue vm2vm mergeable path test testpmd>set txpkts 2000 testpmd>start tx_first 1 -10. 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. +10. 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 2: packed virtqueue vm2vm inorder mergeable path test -=============================================================== +--------------------------------------------------------------- +This case uses testpmd and pdump to test of 2 virtio-user with packed ring inorder mergeable path forward packets. 1. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-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/dpdk-testpmd -n 4 -l 7-8 \ - --no-pci --file-prefix=virtio1 \ + # ./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=1,in_order=1 \ -- -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=/root/pdump-rx.pcap,mbuf-size=8000' +3. Start pdump to capture virtio-user1 packets, as common step 1. 4. Launch virtio-user0 and send 8k length packets:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \ + # ./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=1,packed_vq=1,mrg_rxbuf=1,in_order=1 \ -- -i --nb-cores=1 --txd=256 --rxd=256 @@ -168,19 +208,19 @@ Test Case 2: packed virtqueue vm2vm inorder mergeable path test 6. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ - --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- \ - -i --nb-cores=1 --no-flush-rx + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ + --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- -i --nb-cores=1 --no-flush-rx testpmd>set fwd rxonly testpmd>start 7. Attach pdump secondary process to primary process by same file-prefix:: - ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' + # ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost \ + -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' 8. Launch virtio-user1 by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ --no-pci \ --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 \ -- -i --nb-cores=1 --txd=256 --rxd=256 @@ -194,31 +234,31 @@ Test Case 2: packed virtqueue vm2vm inorder mergeable path test testpmd>set txpkts 2000,2000,2000,2000 testpmd>start tx_first 1 -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. +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 3: packed virtqueue vm2vm non-mergeable path test -=========================================================== +----------------------------------------------------------- +This case uses testpmd and pdump to test of 2 virtio-user with packed ring non-mergeable path forward packets. 1. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-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/dpdk-testpmd -n 4 -l 7-8 \ + # ./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=0 \ -- -i --nb-cores=1 --txd=256 --rxd=256 -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=/root/pdump-rx.pcap,mbuf-size=8000' +3. Start pdump to capture virtio-user1 packets, as common step 1. 4. Launch virtio-user0 and send 8k length packets:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \ + # ./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=1,packed_vq=1,mrg_rxbuf=0,in_order=0 \ -- -i --nb-cores=1 --txd=256 --rxd=256 @@ -235,7 +275,7 @@ Test Case 3: packed virtqueue vm2vm non-mergeable path test 6. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- \ -i --nb-cores=1 --no-flush-rx testpmd>set fwd rxonly @@ -243,11 +283,12 @@ Test Case 3: packed virtqueue vm2vm non-mergeable path test 7. Attach pdump secondary process to primary process by same file-prefix:: - ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' + # ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost \ + -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' 8. Launch virtio-user1 by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ --no-pci \ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=1,packed_vq=1,mrg_rxbuf=0,in_order=0 \ -- -i --nb-cores=1 --txd=256 --rxd=256 @@ -257,33 +298,33 @@ Test Case 3: packed virtqueue vm2vm non-mergeable path test testpmd>set burst 32 testpmd>start tx_first 7 -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. +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 4: packed virtqueue vm2vm inorder non-mergeable path test -=================================================================== +------------------------------------------------------------------- +This case uses testpmd and pdump to test of 2 virtio-user with packed ring inorder non-mergeable path forward packets. 1. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-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/dpdk-testpmd -n 4 -l 7-8 \ + # ./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,vectorized=1 \ -- -i --rx-offloads=0x10 --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=/root/pdump-rx.pcap,mbuf-size=8000' +3. Start pdump to capture virtio-user1 packets, as common step 1. 4. Launch virtio-user0 and send 8k length packets:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \ + # ./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=1,packed_vq=1,mrg_rxbuf=0,in_order=1,packed_vec=1 \ -- -i --rx-offloads=0x10 --nb-cores=1 --txd=256 --rxd=256 @@ -300,7 +341,7 @@ Test Case 4: packed virtqueue vm2vm inorder non-mergeable path test 6. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- \ -i --nb-cores=1 --no-flush-rx testpmd>set fwd rxonly @@ -308,11 +349,12 @@ Test Case 4: packed virtqueue vm2vm inorder non-mergeable path test 7. Attach pdump secondary process to primary process by same file-prefix:: - ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' + # ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost \ + -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' 8. Launch virtio-user1 by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ --no-pci \ --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 \ -- -i --rx-offloads=0x10 --nb-cores=1 --txd=256 --rxd=256 @@ -322,33 +364,33 @@ Test Case 4: packed virtqueue vm2vm inorder non-mergeable path test testpmd>set burst 32 testpmd>start tx_first 7 -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. +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 5: split virtqueue vm2vm mergeable path test -====================================================== +------------------------------------------------------ +This case uses testpmd and pdump to test of 2 virtio-user with split ring mergeable path forward packets. 1. Launch vhost by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-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/dpdk-testpmd -n 4 -l 7-8 \ + # ./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=0,mrg_rxbuf=1,in_order=0 \ -- -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' +3. Start pdump to capture virtio-user1 packets, as common step 1. 4. Launch virtio-user0 and send 8k length packets:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \ + # ./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=1,packed_vq=0,mrg_rxbuf=1,in_order=0 \ -- -i --nb-cores=1 --txd=256 --rxd=256 @@ -371,7 +413,7 @@ Test Case 5: split virtqueue vm2vm mergeable path test 7. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- \ -i --nb-cores=1 --no-flush-rx testpmd>set fwd rxonly @@ -379,11 +421,12 @@ Test Case 5: split virtqueue vm2vm mergeable path test 8. Attach pdump secondary process to primary process by same file-prefix:: - ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' + # ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost \ + -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' 9. Launch virtio-user1 by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ --no-pci \ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=1,packed_vq=0,mrg_rxbuf=1,in_order=0 \ -- -i --nb-cores=1 --txd=256 --rxd=256 @@ -401,33 +444,33 @@ Test Case 5: split virtqueue vm2vm mergeable path test testpmd>set txpkts 2000 testpmd>start tx_first 1 -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. +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 6: split virtqueue vm2vm inorder mergeable path test -============================================================== +-------------------------------------------------------------- +This case uses testpmd and pdump to test of 2 virtio-user with split ring inorder mergeable path forward packets. 1. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-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/dpdk-testpmd -n 4 -l 7-8 \ + # ./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=0,mrg_rxbuf=1,in_order=1 \ -- -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=/root/pdump-rx.pcap,mbuf-size=8000' +3. Start pdump to capture virtio-user1 packets, as common step 1. 4. Launch virtio-user0 and send 8k length packets:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \ + # ./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=1,packed_vq=0,mrg_rxbuf=1,in_order=1 \ -- -i --nb-cores=1 --txd=256 --rxd=256 @@ -444,7 +487,7 @@ Test Case 6: split virtqueue vm2vm inorder mergeable path test 6. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- \ -i --nb-cores=1 --no-flush-rx testpmd>set fwd rxonly @@ -452,11 +495,12 @@ Test Case 6: split virtqueue vm2vm inorder mergeable path test 7. Attach pdump secondary process to primary process by same file-prefix:: - ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' + # ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost \ + -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' 8. Launch virtio-user1 by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ --no-pci \ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=1,packed_vq=0,mrg_rxbuf=1,in_order=1 \ -- -i --nb-cores=1 --txd=256 --rxd=256 @@ -470,31 +514,31 @@ Test Case 6: split virtqueue vm2vm inorder mergeable path test testpmd>set txpkts 2000,2000,2000,2000 testpmd>start tx_first 1 -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. +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 7: split virtqueue vm2vm non-mergeable path test -========================================================== +---------------------------------------------------------- +This case uses testpmd and pdump to test of 2 virtio-user with split ring non-mergeable path forward packets. 1. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-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/dpdk-testpmd -n 4 -l 7-8 \ + # ./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=0,mrg_rxbuf=0,in_order=0 \ -- -i --nb-cores=1 --txd=256 --rxd=256 --enable-hw-vlan-strip -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=/root/pdump-rx.pcap,mbuf-size=8000' +3. Start pdump to capture virtio-user1 packets, as common step 1. 4. Launch virtio-user0 and send 8k length packets:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \ + # ./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=1,packed_vq=0,mrg_rxbuf=0,in_order=0 \ -- -i --nb-cores=1 --txd=256 --rxd=256 --enable-hw-vlan-strip @@ -511,19 +555,19 @@ Test Case 7: split virtqueue vm2vm non-mergeable path test 6. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ - --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- \ - -i --nb-cores=1 --no-flush-rx + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ + --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- -i --nb-cores=1 --no-flush-rx testpmd>set fwd rxonly testpmd>start 7. Attach pdump secondary process to primary process by same file-prefix:: - ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' + # ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost \ + -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' 8. Launch virtio-user1 by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ --no-pci \ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=1,packed_vq=0,mrg_rxbuf=0,in_order=0 \ -- -i --nb-cores=1 --txd=256 --rxd=256 --enable-hw-vlan-strip @@ -533,33 +577,33 @@ Test Case 7: split virtqueue vm2vm non-mergeable path test testpmd>set burst 32 testpmd>start tx_first 7 -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. +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 8: split virtqueue vm2vm inorder non-mergeable path test -================================================================== +------------------------------------------------------------------ +This case uses testpmd and pdump to test of 2 virtio-user with split ring inorder non-mergeable path forward packets 1. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-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/dpdk-testpmd -n 4 -l 7-8 \ + # ./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=0,mrg_rxbuf=0,in_order=1 \ -- -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=/root/pdump-rx.pcap,mbuf-size=8000' +3. Start pdump to capture virtio-user1 packets, as common step 1. 4. Launch virtio-user0 and send 8k length packets:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \ + # ./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=1,packed_vq=0,mrg_rxbuf=0,in_order=1 \ -- -i --nb-cores=1 --txd=256 --rxd=256 @@ -576,7 +620,7 @@ Test Case 8: split virtqueue vm2vm inorder non-mergeable path test 6. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- \ -i --nb-cores=1 --no-flush-rx testpmd>set fwd rxonly @@ -584,11 +628,12 @@ Test Case 8: split virtqueue vm2vm inorder non-mergeable path test 7. Attach pdump secondary process to primary process by same file-prefix:: - ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' + # ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost \ + -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' 8. Launch virtio-user1 by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ --no-pci \ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=1,packed_vq=0,mrg_rxbuf=0,in_order=1 \ -- -i --nb-cores=1 --txd=256 --rxd=256 @@ -598,32 +643,30 @@ Test Case 8: split virtqueue vm2vm inorder non-mergeable path test testpmd>set burst 32 testpmd>start tx_first 7 -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. +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 9: split virtqueue vm2vm vector_rx path test -====================================================== +------------------------------------------------------ +This case uses testpmd and pdump to test of 2 virtio-user with split ring vector_rx path forward packets. 1. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-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/dpdk-testpmd -n 4 -l 7-8 \ - --no-pci --file-prefix=virtio1 \ + # ./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=0,mrg_rxbuf=0,in_order=0,vectorized=1,queue_size=256 \ -- -i --nb-cores=1 --txd=256 --rxd=256 -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=/root/pdump-rx.pcap,mbuf-size=8000' +3. Start pdump to capture virtio-user1 packets, as common step 1. 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 \ + # ./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=1,packed_vq=0,mrg_rxbuf=0,in_order=0,vectorized=1,queue_size=256 \ -- -i --nb-cores=1 --txd=256 --rxd=256 testpmd>set burst 1 @@ -639,20 +682,19 @@ Test Case 9: split virtqueue vm2vm vector_rx path test 6. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ - --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- \ - -i --nb-cores=1 --no-flush-rx + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ + --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- -i --nb-cores=1 --no-flush-rx testpmd>set fwd rxonly testpmd>start 7. Attach pdump secondary process to primary process by same file-prefix:: - ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' + # ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost \ + -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' 8. Launch virtio-user1 by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ - --no-pci \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 --no-pci \ --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=1,packed_vq=0,mrg_rxbuf=0,in_order=0,vectorized=1,queue_size=256 \ -- -i --nb-cores=1 --txd=256 --rxd=256 testpmd>set burst 1 @@ -661,33 +703,33 @@ Test Case 9: split virtqueue vm2vm vector_rx path test testpmd>set burst 32 testpmd>start tx_first 7 -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. +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 10: packed virtqueue vm2vm vectorized path test -========================================================= +--------------------------------------------------------- +This case uses testpmd and pdump to test of 2 virtio-user with packed ring vectorized path forward packets. 1. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-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/dpdk-testpmd -n 4 -l 7-8 \ + # ./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=1,packed_vq=1,mrg_rxbuf=0,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=/root/pdump-rx.pcap,mbuf-size=8000' +3. Start pdump to capture virtio-user1 packets, as common step 1. 4. Launch virtio-user0 and send 8k length packets:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \ --no-pci --file-prefix=virtio --force-max-simd-bitwidth=512 \ --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=1,packed_vq=1,mrg_rxbuf=0,in_order=1,vectorized=1,queue_size=256 \ -- -i --nb-cores=1 --txd=256 --rxd=256 @@ -704,19 +746,19 @@ Test Case 10: packed virtqueue vm2vm vectorized path test 6. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ - --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- \ - -i --nb-cores=1 --no-flush-rx + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ + --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- -i --nb-cores=1 --no-flush-rx testpmd>set fwd rxonly testpmd>start 7. Attach pdump secondary process to primary process by same file-prefix:: - ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' + # ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost \ + -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' 8. Launch virtio-user1 by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ --no-pci --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=0,in_order=1,vectorized=1,queue_size=256 \ -- -i --nb-cores=1 --txd=256 --rxd=256 @@ -726,33 +768,33 @@ Test Case 10: packed virtqueue vm2vm vectorized path test testpmd>set burst 32 testpmd>start tx_first 7 -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. +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 11: packed virtqueue vm2vm vectorized path test with ring size is not power of 2 -========================================================================================== +------------------------------------------------------------------------------------------ +This case uses testpmd and pdump to test of 2 virtio-user with packed ring vectorized path with ring size is not power of 2 forward packets. 1. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-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/dpdk-testpmd -n 4 -l 7-8 \ + # ./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=1,packed_vq=1,mrg_rxbuf=0,in_order=1,vectorized=1,queue_size=255 \ -- -i --nb-cores=1 --txd=255 --rxd=255 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=/root/pdump-rx.pcap,mbuf-size=8000' +3. Start pdump to capture virtio-user1 packets, as common step 1. 4. Launch virtio-user0 and send 8k length packets:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \ --no-pci --file-prefix=virtio --force-max-simd-bitwidth=512 \ --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=1,packed_vq=1,mrg_rxbuf=0,in_order=1,vectorized=1,queue_size=255 \ -- -i --nb-cores=1 --txd=255 --rxd=255 @@ -769,20 +811,19 @@ Test Case 11: packed virtqueue vm2vm vectorized path test with ring size is not 6. Launch testpmd by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ - --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- \ - -i --nb-cores=1 --no-flush-rx + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 --no-pci --file-prefix=vhost \ + --vdev 'eth_vhost1,iface=vhost-net1,queues=1' -- -i --nb-cores=1 --no-flush-rx testpmd>set fwd rxonly testpmd>start 7. Attach pdump secondary process to primary process by same file-prefix:: - ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' + # ./x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=vhost \ + -- --pdump 'port=0,queue=*,rx-dev=/root/pdump-vhost-rx.pcap,mbuf-size=8000' 8. Launch virtio-user1 by below command:: - ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \ - --no-pci --force-max-simd-bitwidth=512 \ + # ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 --no-pci --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=0,in_order=1,vectorized=1,queue_size=255 \ -- -i --nb-cores=1 --txd=255 --rxd=255 testpmd>set burst 1 @@ -791,811 +832,12 @@ Test Case 11: packed virtqueue vm2vm vectorized path test with ring size is not testpmd>set burst 32 testpmd>start tx_first 7 -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. 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@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=0,mrg_rxbuf=0,in_order=0,queue_size=4096 \ - -- -i --enable-hw-vlan-strip --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 --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. Clear virtio-user1 port stats:: - - testpmd>stop - testpmd>clear port stats all - testpmd>start - -7. 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 - -8. 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' - -9. Virtio-user0 send packets:: - - 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 - -10. Rerun step 5. - -Test Case 13: split 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=0,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=0,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, 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. Clear virtio-user1 port stats:: - - testpmd>stop - testpmd>clear port stats all - testpmd>start - -7. 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 - -8. 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' - -9. 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 - -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@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=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. 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=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, check 448 packets and 28672 bytes received by virtio-user1 and 448 packets with 64 length in pdump-virtio-rx.pcap. - -6. Clear virtio-user1 port stats:: - - testpmd>stop - testpmd>clear port stats all - testpmd>start - -7. 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 - -8. 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' - -9. 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 - -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. Clear virtio-user1 port stats:: - - testpmd>stop - testpmd>clear port stats all - testpmd>start - -7. 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 - -8. 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' - -9. 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 - -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 - -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. - -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@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=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 - -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 \ - -- -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. Clear virtio-user1 port stats:: - - testpmd>stop - testpmd>clear port stats all - testpmd>start - -7. 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 - -8. 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' - -9. 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 - -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. Clear virtio-user1 port stats:: - - testpmd>stop - testpmd>clear port stats all - testpmd>start - -7. 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 - -8. 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' - -9. 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 - -10. Rerun step 5. +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 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. Clear virtio-user1 port stats:: - - testpmd>stop - testpmd>clear port stats all - testpmd>start - -7. 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 - -8. 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' - -9. 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 - -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. Clear virtio-user1 port stats:: - - testpmd>stop - testpmd>clear port stats all - testpmd>start - -7. 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 - -8. 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' - -9. 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 - -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. Clear virtio-user1 port stats:: - - testpmd>stop - testpmd>clear port stats all - testpmd>start - -7. 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 - -8. 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' - -9. 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 - -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. Clear virtio-user1 port stats:: - - testpmd>stop - testpmd>clear port stats all - testpmd>start - -7. 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 - -8. 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' - -9. 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 - -10. Rerun step 5. - -Test Case 24: packed virtqueue vm2vm vectorized-tx path multi-queues test indirect descriptor -============================================================================================= +Test Case 12: packed virtqueue vm2vm vectorized-tx path multi-queues test indirect descriptor +--------------------------------------------------------------------------------------------- +This case uses testpmd and pdump to test of 2 virtio-user with packed ring vectorized-tx path with multi-queues indirect descriptor forward packets. 1. Launch vhost by below command:: @@ -1611,13 +853,11 @@ Test Case 24: packed virtqueue vm2vm vectorized-tx path multi-queues test indire 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' +3. Start pdump to capture virtio-user1 packets, as common step 1. 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 \ + # ./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 @@ -1631,5 +871,6 @@ Test Case 24: packed virtqueue vm2vm vectorized-tx path multi-queues test indire testpmd>start tx_first 1 testpmd>stop -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. +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.