[dts] [PATCH V1] Add test plan about vhost qemu mtu

Liu, Yong yong.liu at intel.com
Wed Apr 4 07:15:25 CEST 2018


Lihong,
Some comments are inline.

Thanks,
Marvin

> -----Original Message-----
> From: dts [mailto:dts-bounces at dpdk.org] On Behalf Of lihong
> Sent: Thursday, March 29, 2018 8:49 AM
> To: dts at dpdk.org
> Cc: Ma, LihongX <lihongx.ma at intel.com>
> Subject: [dts] [PATCH V1] Add test plan about vhost qemu mtu
> 
> Signed-off-by: lihong <lihongx.ma at intel.com>
> ---
>  test_plans/vhost_qemu_mtu_test_plan.rst | 139
> ++++++++++++++++++++++++++++++++
>  1 file changed, 139 insertions(+)
>  create mode 100644 test_plans/vhost_qemu_mtu_test_plan.rst
> 
> diff --git a/test_plans/vhost_qemu_mtu_test_plan.rst
> b/test_plans/vhost_qemu_mtu_test_plan.rst
> new file mode 100644
> index 0000000..26300b7
> --- /dev/null
> +++ b/test_plans/vhost_qemu_mtu_test_plan.rst
> @@ -0,0 +1,139 @@
> +.. Copyright (c) <2018>, Intel Corporation
> +   All rights reserved.
> +
> +   Redistribution and use in source and binary forms, with or without
> +   modification, are permitted provided that the following conditions
> +   are met:
> +
> +   - 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
> +     notice, this list of conditions and the following disclaimer in
> +     the documentation and/or other materials provided with the
> +     distribution.
> +
> +   - Neither the name of Intel Corporation nor the names of its
> +     contributors may be used to endorse or promote products derived
> +     from this software without specific prior written permission.
> +
> +   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> +   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> +   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
> +   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
> +   COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
> +   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
> +   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
> +   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> +   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
> +   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> +   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
> +   OF THE POSSIBILITY OF SUCH DAMAGE.
> +
> +===================
> +Vhost TSO Test Plan
> +===================

Why here is TSO? 

> +
> +The feature test the setting of MTU value of virtio-net and kernel driver.
> +
> +Prerequisites:
> +==============
> +
> +The guests kernel should grand than 4.10
> +The qemu version should greater or equal to 2.9
> +
> +Test Case: Test the MTU in virtio-net
> +=====================================
> +1. Launch the tetspmd by below commands on host::

Typo here. 

> +
> +    ./testpmd -c 0xc -n 4 --socket-mem 2048,2048 \
> +    --vdev 'net_vhost0,iface=vhost-net,queues=1' \
> +    -- -i --txd=512 --rxd=128 --nb-cores=1 --port-topology=chained
> +    testpmd> set fwd mac
> +    testpmd> start

Should MTU value setting command be here?

> +
> +2. Launch VM::
> +
> +    Use the qemu_2.9 or qemu 2.10 to start the VM and the VM kernel
> should
> +    grand than 4.10, set the mtu value to 1472
> +
> +    taskset -c 4,5 qemu-system-x86_64  -name vm0 -enable-kvm \
> +    -chardev socket,path=/tmp/vm0_qga0.sock,server,nowait,id=vm0_qga0 \
> +    -device virtio-serial -device
> virtserialport,chardev=vm0_qga0,name=org.qemu.guest_agent.0 \
> +    -daemonize -monitor unix:/tmp/vm0_monitor.sock,server,nowait \
> +    -chardev socket,id=char0,path=./vhost-net -netdev type=vhost-
> user,id=netdev0,chardev=char0,vhostforce \
> +    -device virtio-net-
> pci,netdev=netdev0,mac=52:54:00:00:00:01,mrg_rxbuf=on,host_mtu=1472 \
> +    -cpu host -smp 4 -m 2048 -object memory-backend-
> file,id=mem,size=2048M,mem-path=/mnt/huge,share=on \
> +    -numa node,memdev=mem -mem-prealloc -drive file=/home/osimg/ubuntu-
> ker-410.img -vnc :4

Do not need to attach command here, just few import information is enough like:

qemu-system-x86_64 \
-chardev socket,id=char0,path=./vhost-net \
-netdev type=vhost-user,id=netdev0,chardev=char0,vhostforce \
-device virtio-net- pci,netdev=netdev0,mrg_rxbuf=on,host_mtu=$MTU


> +
> +3. Check the MTU value in VM::
> +
> +    Use the ifconfig command to check the MTU value of
> +    virtio kernel driver is 1472 in VM.
> +

Please also do function check here. I think two cases in this test plan is enough.

One is MTU with virtio user pmd.
Another is MTU with virtio net driver. 

> +Test Case: Test the MTU in pmd
> +==============================
> +1. Continue use the VM in Test Case1, bind the kernel driver to igb_uio::
> +
> +2. Launch testpmd in VM::
> +
> +    ./testpmd -c 0x03 -n 3 \
> +    -- -i --txd=512 --rxd=128 --tx-offloads=0x0 --enable-hw-vlan-strip
> +    testpmd> set fwd mac
> +    testpmd> start
> +
> +3. Run `show port info 0` in VM, and check the MTU value is equal to 1472.
> +
> +Test Case: Test the function about MTU
> +======================================
> +This case is to check if the testpmd can receive and forward the packet
> after
> +change the mtu value. Send the IP packet and the packet size smaller than
> MTU
> +value, equal to MTU value, greater than MTU value, check the testpmd can
> receive	
> +and forward all the packet.
> +
> +1. Continue use the VM in Test Case2.
> +
> +2. Send a IP packet with size 1470, samller than MTU value::

Typo here.
MTU is not the concept of packet length, it is the length of Ether content. 
Packet length should be 1470 + 18.

> +    testpmd> clear port stats all
> +    testpmd> show port stats 0
> +
> +    ######################## NIC statistics for port 0
> #######################
> +      RX-packets: 1          RX-missed: 0          RX-bytes:  1470
> +      RX-errors: 0
> +      RX-nombuf:  0
> +      TX-packets: 1          TX-errors: 0          TX-bytes:  1470
> +
> +      Throughput (since last show)
> +      Rx-pps:            0
> +      Tx-pps:            0
> +
> ##########################################################################
> #
> +
> +3. Send a IP packet with size 1472, equal to MTU value::
> +    testpmd> clear port stats all
> +    testpmd> show port stats 0
> +
> +    ######################## NIC statistics for port 0
> #######################
> +      RX-packets: 1          RX-missed: 0          RX-bytes:  1472
> +      RX-errors: 0
> +      RX-nombuf:  0
> +      RX-packets: 1          TX-errors: 0          TX-bytes:  1472
> +
> +      Throughput (since last show)
> +      Rx-pps:            0
> +      Tx-pps:            0
> +
> ##########################################################################
> #
> +
> +4. Send a IP packet with size 1500, greater than MTU value::
> +    testpmd> clear port stats all
> +    testpmd> show port stats 0
> +
> +    ######################## NIC statistics for port 0
> #######################
> +      RX-packets: 1          RX-missed: 0          RX-bytes:  1500
> +      RX-errors: 0
> +      RX-nombuf:  0
> +      TX-packets: 1          TX-errors: 0          TX-bytes:  1500
> +
> +      Throughput (since last show)
> +      Rx-pps:            0
> +      Tx-pps:            0
> +
> ##########################################################################
> #

When packet size is over MTU, still can receive packet? I think that's not the concept of MTU, please check it.

> --
> 2.7.4



More information about the dts mailing list