[dts] [PATCH v3] test_plans: add case for vm2vm vhost-user/virtio-net larg packet payload check

Tu, Lijuan lijuan.tu at intel.com
Wed Jun 26 09:23:19 CEST 2019


Applied, thanks

> -----Original Message-----
> From: dts [mailto:dts-bounces at dpdk.org] On Behalf Of Yinan
> Sent: Wednesday, June 19, 2019 4:27 AM
> To: dts at dpdk.org
> Cc: Wang, Yinan <yinan.wang at intel.com>
> Subject: [dts] [PATCH v3] test_plans: add case for vm2vm vhost-user/virtio-
> net larg packet payload check
> 
> From: Wang Yinan <yinan.wang at intel.com>
> 
> Signed-off-by: Wang Yinan <yinan.wang at intel.com>
> ---
>  .../vm2vm_virtio_net_perf_test_plan.rst       | 98 +++++++++++++------
>  1 file changed, 67 insertions(+), 31 deletions(-)
> 
> diff --git a/test_plans/vm2vm_virtio_net_perf_test_plan.rst
> b/test_plans/vm2vm_virtio_net_perf_test_plan.rst
> index 57bba34..77930dc 100644
> --- a/test_plans/vm2vm_virtio_net_perf_test_plan.rst
> +++ b/test_plans/vm2vm_virtio_net_perf_test_plan.rst
> @@ -8,7 +8,7 @@
>     - Redistributions of source code must retain the above copyright
>       notice, this list of conditions and the following disclaimer.
> 
> -   - Redistributions in binary form must reproduce the above copyright
> +   - Redistributions in binary forim must reproduce the above copyright
>       notice, this list of conditions and the following disclaimer in
>       the documentation and/or other materials provided with the
>       distribution.
> @@ -32,26 +32,26 @@
> 
> 
>  =====================================
> -vhost-user/virtio-net VM2VM test plan
> +vm2vm vhost-user/virtio-net test plan
>  =====================================
> 
>  Description
>  ===========
> 
> -Test cases for vhost-user + virtio-net vm2vm tso/tso zero-copy/ufo/tso_ufo
> capability check.
> +The feature enabled the DPDK Vhost TX offload (TSO and UFO). The feature
> added the negotiation between DPDK user space vhost and virtio-net, so we
> will verify the TSO/cksum in the TCP/IP stack enabled environment and
> UFO/cksum in the UDP/IP stack enabled environment with vm2vm vhost-
> user/virtio-net normal path. Also add case to check the payload of large
> packet is valid by scp with vm2vm vhost-user/virtio-net mergeable path test.
> 
>  Test flow
>  =========
> 
>  Virtio-net <-> Vhost <-> Testpmd <-> Vhost <-> Virtio-net
> 
> -Test Case 1: vhost-user + virtio-net VM2VM with tcp traffic -
> ===========================================================
> +Test Case 1: VM2VM vhost-user/virtio-net test with tcp traffic
> +==============================================================
> 
>  1. Launch the Vhost sample by below commands::
> 
>      rm -rf vhost-net*
> -    ./testpmd -c 0xF0000000 -n 4 --socket-mem 2048,2048 --legacy-mem --no-
> pci --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net0,queues=1' --vdev
> 'net_vhost1,iface=vhost-net1,queues=1'  -- -i --nb-cores=1 --txd=1024 --
> rxd=1024 --txfreet=992
> +    ./testpmd -c 0xF0000000 -n 4 --socket-mem 2048,2048 --legacy-mem
> + --no-pci --file-prefix=vhost --vdev
> + 'net_vhost0,iface=vhost-net0,queues=1' --vdev
> + 'net_vhost1,iface=vhost-net1,queues=1'  -- -i --nb-cores=1 --txd=1024
> + --rxd=1024
>      testpmd>start
> 
>  2. Launch VM1 and VM2::
> @@ -62,7 +62,7 @@ Test Case 1: vhost-user + virtio-net VM2VM with tcp
> traffic
>       -smp cores=2,sockets=1 -drive file=/home/osimg/ubuntu16-1.img  \
>       -monitor unix:/tmp/vm2_monitor.sock,server,nowait -net
> nic,vlan=2,macaddr=00:00:00:08:e8:aa,addr=1f -net
> user,vlan=2,hostfwd=tcp:127.0.0.1:6004-:22 \
>       -chardev socket,id=char0,path=./vhost-net0 -netdev type=vhost-
> user,id=mynet1,chardev=char0,vhostforce \
> -     -device virtio-net-
> pci,mac=52:54:00:00:00:01,netdev=mynet1,mrg_rxbuf=on,csum=on,gso=on,g
> uest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on \
> +     -device
> + virtio-net-pci,mac=52:54:00:00:00:01,netdev=mynet1,mrg_rxbuf=off,csum=
> + on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on \
>       -vnc :12 -daemonize
> 
>      taskset -c 34-35 \
> @@ -71,15 +71,15 @@ Test Case 1: vhost-user + virtio-net VM2VM with tcp
> traffic
>       -smp cores=2,sockets=1 -drive file=/home/osimg/ubuntu16-2.img \
>       -monitor unix:/tmp/vm2_monitor.sock,server,nowait -net
> nic,vlan=2,macaddr=00:00:00:08:e8:aa,addr=1f -net
> user,vlan=2,hostfwd=tcp:127.0.0.1:6005-:22 \
>       -chardev socket,id=char1,path=./vhost-net1 -netdev type=vhost-
> user,id=mynet2,chardev=char1,vhostforce \
> -     -device virtio-net-
> pci,mac=52:54:00:00:00:02,netdev=mynet2,mrg_rxbuf=on,csum=on,gso=on,g
> uest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on  \
> +     -device
> + virtio-net-pci,mac=52:54:00:00:00:02,netdev=mynet2,mrg_rxbuf=off,csum=
> + on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on \
>       -vnc :11 -daemonize
> 
> -3. On VM1, set virtio device IP and run arp protocol::
> +3. On VM1, set virtio device IP and run arp protocal::
> 
>      ifconfig ens3 1.1.1.2
>      arp -s 1.1.1.8 52:54:00:00:00:02
> 
> -4. On VM2, set virtio device IP and run arp protocol::
> +4. On VM2, set virtio device IP and run arp protocal::
> 
>      ifconfig ens3 1.1.1.8
>      arp -s 1.1.1.2 52:54:00:00:00:01
> @@ -95,8 +95,8 @@ Test Case 1: vhost-user + virtio-net VM2VM with tcp
> traffic
>      Port 0 should have tx packets above 1522
>      Port 1 should have rx packets above 1522
> 
> -Test Case 2: vhost-user + virtio-net VM2VM zero-copy with tcp traffic -
> ================================================================
> =====
> +Test Case 2: VM2VM vhost-user/virtio-net zero-copy test with tcp
> +traffic
> +===============================================================
> ========
> +=
> 
>  1. Launch the Vhost sample by below commands::
> 
> @@ -112,7 +112,7 @@ Test Case 2: vhost-user + virtio-net VM2VM zero-copy
> with tcp traffic
>       -smp cores=2,sockets=1 -drive file=/home/osimg/ubuntu16-1.img  \
>       -monitor unix:/tmp/vm2_monitor.sock,server,nowait -net
> nic,vlan=2,macaddr=00:00:00:08:e8:aa,addr=1f -net
> user,vlan=2,hostfwd=tcp:127.0.0.1:6004-:22 \
>       -chardev socket,id=char0,path=./vhost-net0 -netdev type=vhost-
> user,id=mynet1,chardev=char0,vhostforce \
> -     -device virtio-net-
> pci,mac=52:54:00:00:00:01,netdev=mynet1,mrg_rxbuf=on,csum=on,gso=on,g
> uest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on \
> +     -device
> + virtio-net-pci,mac=52:54:00:00:00:01,netdev=mynet1,mrg_rxbuf=off,csum=
> + on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on \
>       -vnc :10 -daemonize
> 
>      taskset -c 34-35 \
> @@ -121,15 +121,15 @@ Test Case 2: vhost-user + virtio-net VM2VM zero-
> copy with tcp traffic
>       -smp cores=2,sockets=1 -drive file=/home/osimg/ubuntu16-2.img \
>       -monitor unix:/tmp/vm2_monitor.sock,server,nowait -net
> nic,vlan=2,macaddr=00:00:00:08:e8:aa,addr=1f -net
> user,vlan=2,hostfwd=tcp:127.0.0.1:6005-:22 \
>       -chardev socket,id=char1,path=./vhost-net1 -netdev type=vhost-
> user,id=mynet2,chardev=char1,vhostforce \
> -     -device virtio-net-
> pci,mac=52:54:00:00:00:02,netdev=mynet2,mrg_rxbuf=on,csum=on,gso=on,g
> uest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on  \
> +     -device
> + virtio-net-pci,mac=52:54:00:00:00:02,netdev=mynet2,mrg_rxbuf=off,csum=
> + on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on \
>       -vnc :11 -daemonize
> 
> -3. On VM1, set virtio device IP and run arp protocol::
> +3. On VM1, set virtio device IP and run arp protocal::
> 
>      ifconfig ens3 1.1.1.2
>      arp -s 1.1.1.8 52:54:00:00:00:02
> 
> -4. On VM2, set virtio device IP and run arp protocol::
> +4. On VM2, set virtio device IP and run arp protocal::
> 
>      ifconfig ens3 1.1.1.8
>      arp -s 1.1.1.2 52:54:00:00:00:01
> @@ -145,13 +145,12 @@ Test Case 2: vhost-user + virtio-net VM2VM zero-
> copy with tcp traffic
>      Port 0 should have tx packets above 1522
>      Port 1 should have rx packets above 1522
> 
> -Test Case 3: vhost-user + virtio-net VM2VM with udp traffic -
> ===========================================================
> -
> +Test Case 3: VM2VM vhost-user/virtio-net test with udp traffic
> +==============================================================
>  1. Launch the Vhost sample by below commands::
> 
>      rm -rf vhost-net*
> -    testpmd>./testpmd -c 0xF0000000 -n 4 --socket-mem 2048,2048 --legacy-
> mem --no-pci --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-
> net0,queues=1' --vdev 'net_vhost1,iface=vhost-net1,queues=1'  -- -i --nb-
> cores=1 --txd=1024 --rxd=1024 --txfreet=992
> +    testpmd>./testpmd -c 0xF0000000 -n 4 --socket-mem 2048,2048
> + --legacy-mem --no-pci --file-prefix=vhost --vdev
> + 'net_vhost0,iface=vhost-net0,queues=1' --vdev
> + 'net_vhost1,iface=vhost-net1,queues=1'  -- -i --nb-cores=1 --txd=1024
> + --rxd=1024
>      testpmd>start
> 
>  2. Launch VM1 and VM2::
> @@ -162,8 +161,7 @@ Test Case 3: vhost-user + virtio-net VM2VM with udp
> traffic
>       -smp cores=2,sockets=1 -drive file=/home/osimg/ubuntu16-1.img  \
>       -monitor unix:/tmp/vm2_monitor.sock,server,nowait -net
> nic,vlan=2,macaddr=00:00:00:08:e8:aa,addr=1f -net
> user,vlan=2,hostfwd=tcp:127.0.0.1:6004-:22 \
>       -chardev socket,id=char0,path=./vhost-net0 -netdev type=vhost-
> user,id=mynet1,chardev=char0,vhostforce \
> -     -device virtio-net-
> pci,mac=52:54:00:00:00:01,netdev=mynet1,mrg_rxbuf=on,csum=on,guest_csu
> m=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,host_ufo=o
> n \
> -     -vnc :10 -daemonize
> +     -device
> + virtio-net-pci,mac=52:54:00:00:00:01,netdev=mynet1,mrg_rxbuf=off,csum=
> +
> on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,
> + host_ufo=on -vnc :10 -daemonize
> 
>      taskset -c 34-35 \
>      qemu-system-x86_64 -name us-vhost-vm2 \ @@ -171,15 +169,14 @@
> Test Case 3: vhost-user + virtio-net VM2VM with udp traffic
>       -smp cores=2,sockets=1 -drive file=/home/osimg/ubuntu16-2.img \
>       -monitor unix:/tmp/vm2_monitor.sock,server,nowait -net
> nic,vlan=2,macaddr=00:00:00:08:e8:aa,addr=1f -net
> user,vlan=2,hostfwd=tcp:127.0.0.1:6005-:22 \
>       -chardev socket,id=char1,path=./vhost-net1 -netdev type=vhost-
> user,id=mynet2,chardev=char1,vhostforce \
> -     -device virtio-net-
> pci,mac=52:54:00:00:00:02,netdev=mynet2,mrg_rxbuf=on,csum=on,guest_csu
> m=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,host_ufo=o
> n \
> -     -vnc :11 -daemonize
> +     -device
> + virtio-net-pci,mac=52:54:00:00:00:02,netdev=mynet2,mrg_rxbuf=off,csum=
> +
> on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,
> + host_ufo=on -vnc :11 -daemonize
> 
> -3. On VM1, set virtio device IP and run arp protocol::
> +3. On VM1, set virtio device IP and run arp protocal::
> 
>      ifconfig ens3 1.1.1.2
>      arp -s 1.1.1.8 52:54:00:00:00:02
> 
> -4. On VM2, set virtio device IP and run arp protocol::
> +4. On VM2, set virtio device IP and run arp protocal::
> 
>      ifconfig ens3 1.1.1.8
>      arp -s 1.1.1.2 52:54:00:00:00:01
> @@ -202,7 +199,7 @@ Test Case 4: Check virtio-net device capability  1.
> Launch the Vhost sample by below commands::
> 
>      rm -rf vhost-net*
> -    testpmd>./testpmd -c 0xF0000000 -n 4 --socket-mem 2048,2048 --legacy-
> mem --no-pci --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-
> net0,queues=1' --vdev 'net_vhost1,iface=vhost-net1,queues=1'  -- -i --nb-
> cores=1 --txd=1024 --rxd=1024 --txfreet=992
> +    testpmd>./testpmd -c 0xF0000000 -n 4 --socket-mem 2048,2048
> + --legacy-mem --no-pci --file-prefix=vhost --vdev
> + 'net_vhost0,iface=vhost-net0,queues=1' --vdev
> + 'net_vhost1,iface=vhost-net1,queues=1'  -- -i --nb-cores=1 --txd=1024
> + --rxd=1024
>      testpmd>start
> 
>  2. Launch VM1 and VM2,set TSO and UFO on in qemu command::
> @@ -213,8 +210,7 @@ Test Case 4: Check virtio-net device capability
>       -smp cores=2,sockets=1 -drive file=/home/osimg/ubuntu16-1.img  \
>       -monitor unix:/tmp/vm2_monitor.sock,server,nowait -net
> nic,vlan=2,macaddr=00:00:00:08:e8:aa,addr=1f -net
> user,vlan=2,hostfwd=tcp:127.0.0.1:6004-:22 \
>       -chardev socket,id=char0,path=./vhost-net0 -netdev type=vhost-
> user,id=mynet1,chardev=char0,vhostforce \
> -     -device virtio-net-
> pci,mac=52:54:00:00:00:01,netdev=mynet1,mrg_rxbuf=on,csum=on,guest_csu
> m=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,host_ufo=o
> n \
> -     -vnc :10 -daemonize
> +     -device
> + virtio-net-pci,mac=52:54:00:00:00:01,netdev=mynet1,mrg_rxbuf=off,csum=
> +
> on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,
> + host_ufo=on -vnc :10 -daemonize
> 
>      taskset -c 34-35 \
>      qemu-system-x86_64 -name us-vhost-vm2 \ @@ -222,8 +218,7 @@ Test
> Case 4: Check virtio-net device capability
>       -smp cores=2,sockets=1 -drive file=/home/osimg/ubuntu16-2.img \
>       -monitor unix:/tmp/vm2_monitor.sock,server,nowait -net
> nic,vlan=2,macaddr=00:00:00:08:e8:aa,addr=1f -net
> user,vlan=2,hostfwd=tcp:127.0.0.1:6005-:22 \
>       -chardev socket,id=char1,path=./vhost-net1 -netdev type=vhost-
> user,id=mynet2,chardev=char1,vhostforce \
> -     -device virtio-net-
> pci,mac=52:54:00:00:00:02,netdev=mynet2,mrg_rxbuf=on,csum=on,guest_csu
> m=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,host_ufo=o
> n \
> -     -vnc :11 -daemonize
> +     -device
> + virtio-net-pci,mac=52:54:00:00:00:02,netdev=mynet2,mrg_rxbuf=off,csum=
> +
> on,guest_csum=on,host_tso4=on,guest_tso4=on,guest_ecn=on,guest_ufo=on,
> + host_ufo=on -vnc :11 -daemonize
> 
>  3. Check UFO and TSO offload status on for the Virtio-net driver on VM1 and
> VM2::
> 
> @@ -238,3 +233,44 @@ Test Case 4: Check virtio-net device capability
>      tx-tcp-segmentation: on
>      tx-tcp-ecn-segmentation: on
>      tx-tcp6-segmentation: on
> +
> +Test Case 5: VM2VM vhost-user/virtio-net test with large packet payload
> +valid check
> +===============================================================
> ========
> +============
> +
> +1. Launch the Vhost sample by below commands::
> +
> +    rm -rf vhost-net*
> +    ./testpmd -c 0xF0000000 -n 4 --socket-mem 2048,2048 --legacy-mem --no-
> pci --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net0,queues=1' --vdev
> 'net_vhost1,iface=vhost-net1,queues=1'  -- -i --nb-cores=1 --txd=1024 --
> rxd=1024
> +    testpmd>start
> +
> +2. Launch VM1 and VM2::
> +
> +    qemu-system-x86_64 -name us-vhost-vm1 \
> +     -cpu host -enable-kvm -m 2048 -object memory-backend-
> file,id=mem,size=2048M,mem-path=/mnt/huge,share=on -numa
> node,memdev=mem -mem-prealloc \
> +     -smp cores=2,sockets=1 -drive file=/home/osimg/ubuntu16-1.img  \
> +     -monitor unix:/tmp/vm2_monitor.sock,server,nowait -net
> nic,vlan=2,macaddr=00:00:00:08:e8:aa,addr=1f -net
> user,vlan=2,hostfwd=tcp:127.0.0.1:6004-:22 \
> +     -chardev socket,id=char0,path=./vhost-net0 -netdev type=vhost-
> user,id=mynet1,chardev=char0,vhostforce \
> +     -device virtio-net-
> pci,mac=52:54:00:00:00:01,netdev=mynet1,mrg_rxbuf=on \
> +     -vnc :12 -daemonize
> +
> +    qemu-system-x86_64 -name us-vhost-vm2 \
> +     -cpu host -enable-kvm -m 2048 -object memory-backend-
> file,id=mem,size=2048M,mem-path=/mnt/huge,share=on -numa
> node,memdev=mem -mem-prealloc \
> +     -smp cores=2,sockets=1 -drive file=/home/osimg/ubuntu16-2.img \
> +     -monitor unix:/tmp/vm2_monitor.sock,server,nowait -net
> nic,vlan=2,macaddr=00:00:00:08:e8:aa,addr=1f -net
> user,vlan=2,hostfwd=tcp:127.0.0.1:6005-:22 \
> +     -chardev socket,id=char1,path=./vhost-net1 -netdev type=vhost-
> user,id=mynet2,chardev=char1,vhostforce \
> +     -device virtio-net-
> pci,mac=52:54:00:00:00:02,netdev=mynet2,mrg_rxbuf=on  \
> +     -vnc :11 -daemonize
> +
> +3. On VM1, set virtio device IP and run arp protocal::
> +
> +    ifconfig ens3 1.1.1.2
> +    arp -s 1.1.1.8 52:54:00:00:00:02
> +
> +4. On VM2, set virtio device IP and run arp protocal::
> +
> +    ifconfig ens3 1.1.1.8
> +    arp -s 1.1.1.2 52:54:00:00:00:01
> +
> +5. Scp 64KB file form VM1 to VM2::
> +
> +    Under VM1, run: `scp [xxx] root at 1.1.1.8:/`   [xxx] is the file name
> \ No newline at end of file
> --
> 2.17.1



More information about the dts mailing list