test suite reviews and discussions
 help / color / mirror / Atom feed
* [dts] [PATCH] add iavf test plan
@ 2019-04-17  8:53 xuyanjie
  2019-04-23 21:05 ` Tu, Lijuan
  0 siblings, 1 reply; 6+ messages in thread
From: xuyanjie @ 2019-04-17  8:53 UTC (permalink / raw)
  To: dts; +Cc: xuyanjie

Signed-off-by: xuyanjie <yanjie.xu@intel.com>

diff --git a/test_plans/iavf_test_plan.rst b/test_plans/iavf_test_plan.rst
new file mode 100644
index 0000000..cec1de2
--- /dev/null
+++ b/test_plans/iavf_test_plan.rst
@@ -0,0 +1,465 @@
+ BSD LICENSE
+
+ Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
+ 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.
+
+======================
+DPDK iavf API Tests
+======================
+
+intel Adaptive Virtual Function(IAVF)
+
+Hardwares::
+------------
+I40E driver NIC (Fortville XXV710, Fortville Spirit, Fortville Eagle)
+
+Prerequisites
+=============
+1.Modify DPDK source code to enable AVF function for I40E NIC::
+
+    sed -i -e '/AVF_DEV_ID_ADAPTIVE_VF/s/0x1889/0x154c/g' drivers/net/avf/base/avf_devids.h
+    sed -i -e '/I40E_DEV_ID_VF/s/0x154C/0x164C/g'  drivers/net/i40e/base/i40e_devids.h
+
+    make install RTE_SDK=`pwd` T=x86_64-native-linuxapp-gcc
+
+2. Configiure PF and VF::
+
+    modprobe uio;
+    insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko;
+
+    ./usertools/dpdk-devbind.py --bind=igb_uio 18:00.0 18:00.1;
+
+    echo 1 > /sys/bus/pci/devices/0000\:18\:00.0/max_vfs
+    echo 1 > /sys/bus/pci/devices/0000\:18\:00.1/max_vfs
+
+    ./usertools/dpdk-devbind.py --bind=vfio-pci 18:02.0 18:0a.0
+    or
+    (./usertools/dpdk-devbind.py --bind=igb_uio 18:02.0 18:0a.0)
+
+3. Set PF ports up and congiure VF ports' mac::
+
+    ./app/testpmd -l 1-5 -n 4 --socket-mem=1024,1024 --file-prefix=pf -w 18:00.1 -w 18:00.0 -- -i
+
+4. Start up VF ports::
+   ./testpmd -l 6-10 -n 4 --master-lcore=6  --socket-mem=1024,1024 --file-prefix=vf  -w 18:0a.0 -w 18:02.0 -- -i --txq=4 --rxq=4  --nb-cores=4
+
+Test case: VF basic RX/TX
+==================================================================
+
+1. Start testpmd::
+
+      $ ./testpmd -l 6-10 -n 4 --master-lcore=6  --socket-mem=1024,1024 --file-prefix=vf  -w 18:0a.0 -w 18:02.0 -- -i --txq=4 --rxq=4  --nb-cores=4
+      run "start"
+2. Check and verified packets which received and forwarded
+
+Test cases: VF mac filter
+==================================================================
+
+Test Case: unicast test::
+
+    testpmd>set promisc all off
+    testpmd>set allmulti all off
+    testpmd>start
+
+    testpmd>mac_addr set 0 00:12:34:56:78:03
+
+    disable promisc mode, verify VF packet rx/tx can work fine with the specific mac addr.
+
+Test Case: multicast test::
+
+    testpmd>set promisc all off
+    testpmd>set allmulti all off
+    testpmd>start
+
+    Send packet with multicast MAC 01:80:C2:00:00:08, and check VF can not receive the packet.
+
+    testpmd>set allmulti all on
+
+    Send packet with multicast MAC 01:80:C2:00:00:08, and check VF can receive the packet.
+
+Test Case: broadcast test::
+
+    testpmd>set promisc all off
+    testpmd>start
+
+    Send packets with broadcast address ff:ff:ff:ff:ff:ff, and check VF can receive the packet
+
+Test Case: promiscuous mode::
+
+    testpmd>set promisc all on
+    testpmd>start
+
+    Send packet that different with vf mac, check packets can be received.
+
+Test Cases: VF VLAN feature vlan filter only work with promisc mode off
+===========================================================================
+
+Test Case: vlan filter ::
+
+    testpmd>port stop all
+    testpmd>set promisc all off
+    testpmd>vlan set filter off 0
+    testpmd>vlan set filter off 1
+    testpmd>vlan set strip off 0
+    testpmd>vlan set strip off 1
+
+    testpmd>vlan set filter on 0
+    testpmd>set fwd mac
+    testpmd>port start all
+    testpmd>start
+
+    packet with vlan can not be received, packet without vlan packet can be received.
+
+Test Case: rx_vlan ::
+
+    testpmd>port stop all
+    testpmd>set promisc all off
+    testpmd>vlan set filter off 0
+    testpmd>vlan set filter off 1
+    testpmd>vlan set strip off 0
+    testpmd>vlan set strip off 1
+
+    testpmd>vlan set filter on 0
+    testpmd>rx_vlan add 20 0
+    testpmd>set fwd mac
+    testpmd>port start all
+    testpmd>start
+
+Test Case: tx_vlan ::
+
+    setup VF vlan like the follow command, verify packet
+    that out from VF contain the vlan tag.
+
+    testpmd>port stop all
+    testpmd>set promisc all on
+    testpmd>set fwd mac
+    testpmd>vlan set filter off 0
+    testpmd>vlan set filter off 1
+    testpmd>vlan set strip off 0
+    testpmd>vlan set strip off 1
+    testpmd>tx_vlan set 1 20
+    testpmd>port start all
+    testpmd>start
+
+Test Case: vlan strip ::
+
+    setup strip on, vlan promisc on, verify vlan_id
+    was stripped by VF when it forward the packet to other vf port.
+
+    testpmd>port stop all
+    testpmd>set promisc all on
+    testpmd>set fwd mac
+    testpmd>vlan set filter off 0
+    testpmd>vlan set filter off 1
+    testpmd>vlan set strip off 0
+    testpmd>vlan set strip off 1
+    testpmd>vlan set strip on 0
+    testpmd>port start all
+    testpmd>start
+
+Test Case: vlan promisc mode ::
+
+    testpmd>port stop all
+    testpmd>vlan set filter off 0
+    testpmd>vlan set filter off 1
+    testpmd>vlan set strip off 0
+    testpmd>vlan set strip off 1
+
+    testpmd>set promisc all on
+    testpmd>set fwd mac
+    testpmd>port start all
+    testpmd>start
+
+    send packet with vlan or without vlan, both can be received and forwarded.
+
+Test Cases: VF jumboframe
+===================================================================
+
+Ensure Tester's ports support sending jumboframe::
+    ifconfig 'tester interface' mtu 9000
+
+Test Case: Check that no jumbo frame support ::
+
+       Launch testpmd for VF ports without enabling jumboframe option
+
+       ./app/testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-prefix=vf \
+                                       -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
+        testpmd>set fwd mac
+        testpmd>start
+        testpmd> stop
+	   Telling cores to stop
+		Waiting for lcores to finish...
+
+		  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 1/Queue= 0 -------
+		  RX-packets: 2              TX-packets: 2              TX-dropped: 0
+		  ---------------------- Forward statistics for port 0  ----------------------
+		  RX-packets: 5              RX-dropped: 0             RX-total: 5
+		  TX-packets: 0              TX-dropped: 0             TX-total: 0
+		  ----------------------------------------------------------------------------
+
+		  ---------------------- Forward statistics for port 1  ----------------------
+		  RX-packets: 0              RX-dropped: 0             RX-total: 0
+		  TX-packets: 2              TX-dropped: 0             TX-total: 2
+		  ---------------------------------------------------------------------------
+		  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+		  RX-packets: 5              RX-dropped: 0             RX-total: 5
+		  TX-packets: 2              TX-dropped: 0             TX-total: 2
+		  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+        check packet less than the standard maximum frame (1518) can be received.
+        packet more than the standard maximum frame (1518) can not be received.
+
+Test Case: Check that with Jumbo Frames support::
+
+    packet lengths greater than the standard maximum frame (1518) and
+    lower or equal to the maximum frame length can be received. check
+    that packets larger than the configured maximum packet length
+    are dropped by the hardware.
+
+    Launch testpmd for VF ports with jumboframe option
+    $ ./testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-prefix=vf
+      -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
+    $ ./testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-prefix=vf
+      18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4 --max-pkt-len=3000 --tx-offloads=0x8000
+
+    testpmd>set fwd mac
+    testpmd>start
+
+2.packet size > 9001,  not forward , but RX-packets: counter increased
+
+Test Cases:VF rss
+====================================================================
+
+Test Case: VF RSS
+
+   $ ./testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-prefix=vf -w 18:02.0 -w 018:0a.0
+      -- -i --txq=4 --rxq=4  --nb-cores=4 --txqflags=0
+
+Test Case: test redirection Table Config ::
+   config hash reta table, send different flow type packet to VF port,
+   check packet received by different queue.
+
+   testpmd>port config 0 rss reta (0,0)
+   testpmd>port config 0 rss reta (1,1)
+   testpmd>port config 0 rss reta (2,2)
+   testpmd>port config 0 rss reta (3,3)
+   testpmd>port config 0 rss reta (60,0)
+   testpmd>port config 0 rss reta (61,1)
+   testpmd>port config 0 rss reta (62,2)
+   testpmd>port config 0 rss reta (63,3)
+
+   testpmd> port config all rss (all|ip|tcp|udp|sctp|ether|port|vxlan|geneve|nvgre|none)
+
+
+Test Cases:VF offload for checksum and tso
+====================================================================
+
+Test Case: enable HW checksum offload ::
+
+  Send packets with incorrect checksum to vf port, verify that the packets
+   can be received by VF port and checksum error reported,
+   the packets forwarded by VF port have the correct checksum value.
+
+   $ ./x86_64-native-linuxapp-gcc/app/testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024
+      --file-prefix=vf  -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
+
+    testpmd>port stop all
+
+    testpmd>csum set ip hw 0
+    testpmd>csum set udp hw 0
+    testpmd>csum set tcp hw 0
+    testpmd>csum set sctp hw 0
+
+    testpmd>csum set ip hw 1
+    testpmd>csum set udp hw 1
+    testpmd>csum set tcp hw 1
+    testpmd>csum set sctp hw 1
+
+    testpmd>set fwd csum
+    testpmd>set verbose 1
+
+    testpmd>port start all
+    testpmd>start
+
+Test Case: SW checksum, disable HW checksum offload ::
+
+   Send packets with incorrect checksum to vf port, verify that the packets
+   can be received by VF port and checksum error reported, the packets
+   forwarded by VF port have the correct checksum value.
+
+   $ ./x86_64-native-linuxapp-gcc/app/testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-prefix=vf\
+     -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
+
+    testpmd>port stop all
+    testpmd>csum set ip sw 0
+    testpmd>csum set udp sw 0
+    testpmd>csum set tcp sw 0
+    testpmd>csum set sctp sw 0
+
+    testpmd>csum set ip sw 1
+    testpmd>csum set udp sw 1
+    testpmd>csum set tcp sw 1
+    testpmd>csum set sctp sw 1
+
+    testpmd>set fwd csum
+    testpmd>set verbose 1
+    testpmd>port start all
+    testpmd>start
+
+Test Case: tso ::
+
+    enable tso on VF port, verify tcp packets that send out by
+    VF port was splitted according to tso size.
+
+    testpmd>port stop all
+    testpmd>set verbose 1
+    testpmd>csum set ip hw 0
+    testpmd>csum set udp hw 0
+    testpmd>csum set tcp hw 0
+    testpmd>csum set sctp hw 0
+
+    testpmd>csum set ip hw 1
+    testpmd>csum set udp hw 1
+    testpmd>csum set tcp hw 1
+    testpmd>csum set sctp hw 1
+
+    testpmd>tso set 800 1
+    testpmd>set fwd csum
+    testpmd>port start all
+    testpmd>start
+
+Test Cases:  Rx interrupt
+====================================================================
+
+Test case: rx interrupt
+
+1. build build l3fwd power
+    make -C examples/l3fwd-power RTE_SDK=`pwd` T=x86_64-native-linuxapp-gcc
+
+2. build two VFs with igb_uio
+   modprobe uio;
+   insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko;
+   # ./usertools/dpdk-devbind.py --bind=igb_uio 18:02.0 18:0a.0
+
+   if in VM, enable vfio noiommu
+
+   modprobe -r vfio_iommu_type1
+   modprobe -r vfio
+   modprobe  vfio enable_unsafe_noiommu_mode=1
+   cat /sys/module/vfio/parameters/enable_unsafe_noiommu_mode
+   modprobe vfio-pci
+
+3. start l3fwd power with one queue per port.
+   $ ./examples/l3fwd-power/build/l3fwd-power -l 6,7 -n 4 -w 18:02.0 -w 18:0a.0 -- -p 0x3 --config '(0,0,6),(1,0,7)'
+
+   Send one packet to VF0 and VF1, check that thread on core6 and core7 waked up::
+
+   $ L3FWD_POWER: lcore 6 is waked up from rx interrupt on port 0 queue 0
+   $  L3FWD_POWER: lcore 7 is waked up from rx interrupt on port 0 queue 0
+
+    Check the packet has been normally forwarded.
+
+   After the packet forwarded, thread on core6 and core 7 will return to sleep::
+
+   $ L3FWD_POWER: lcore 6 sleeps until interrupt triggers
+   $ L3FWD_POWER: lcore 7 sleeps until interrupt triggers
+
+   Send packet flows to VF0 and VF1, check that thread on core1 and core2 will
+   keep up awake.
+   Bi-direction packet :
+
+VF veb test case
+====================================================================
+
+Test Case: veb performance ::
+
+    create 2 VFs from 1 PF, start testpmd with 2VFs individually, verify throughput.
+
+1. create 2 VFs from 1 PF, and start PF
+
+      echo 2 > /sys/bus/pci/devices/0000\:05\:00.0/max_vfs;
+      ./usertools/dpdk-devbind.py --bind=vfio-pci 18:02.0 18:0a.1
+
+      ./app/testpmd -l 1,2 -n 4 --socket-mem=1024,1024 --file-prefix=pf -w 18:00.0 -- -i
+
+       testpmd>set vf mac addr 0 0 00:12:34:56:78:01
+       testpmd>set vf mac addr 0 1 00:12:34:56:78:02
+
+2. start testpmd with 2VFs individually
+
+      ./app/testpmd -l 3-5 -n 4 --master-lcore=3 --socket-mem=1024,1024 --file-prefix=vf1 -w 18:02.0\
+        -- -i --txq=2 --rxq=2 --rxd=512 --txd=512 --nb-cores=2 --rss-ip --eth-peer=0,00:12:34:56:78:02
+
+      testpmd>set promisc all off
+      testpmd>set fwd mac
+      testpmd>start
+
+     ./x86_64-native-linuxapp-gcc/app/testpmd -l 6-8 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-prefix=vf2 \
+         -w 18:0.0 -- -i --txq=2 --rxq=2 --rxd=512 --txd=512 --nb-cores=2 --rss-ip
+
+      testpmd>set promisc all off
+      testpmd>set fwd mac
+      testpmd>start
+
+  3). send traffic and verify throughput
+
+
+VF performance
+====================================================================
+
+Test Case: vector vf performance
+
+1.config vector=y in config/common_base, and rebuild dpdk
+
+2. start testpmd for PF
+
+    ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 --socket-mem=1024,1024 --file-prefix=pf  -w 18:00.0 -w 18:00.1 -- -i
+
+    testpmd>set vf mac addr 0 0 00:12:34:56:78:01
+     testpmd>set vf mac addr 1 0 00:12:34:56:78:02
+
+3. start testpmd for VF
+
+    ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x0f8 -n 4 --master-lcore=3 --socket-mem=1024,1024 --file-prefix=vf \
+     -w 18:02.0 -w 18:0a.0 -- -i --txq=2 --rxq=2 --rxd=512 --txd=512 --nb-cores=4 --rss-ip
+
+    testpmd>set promisc all off
+    testpmd>set fwd mac
+    testpmd>start
+
+    send traffic and vefify throughput
+
+Test Csse: scalar/bulk vf performance
+
+1. change CONFIG_RTE_LIBRTE_AVF_INC_VECTOR=n in config/common_base, and rebuild dpdk
+
+2. repeat test steps 2-4 in above test case: vector vf performance.
\ No newline at end of file
-- 
2.7.4


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dts] [PATCH] add iavf test plan
  2019-04-17  8:53 [dts] [PATCH] add iavf test plan xuyanjie
@ 2019-04-23 21:05 ` Tu, Lijuan
  0 siblings, 0 replies; 6+ messages in thread
From: Tu, Lijuan @ 2019-04-23 21:05 UTC (permalink / raw)
  To: Xu, Yanjie, dts; +Cc: Xu, Yanjie

Could you please add version tag, such as , V1, V2, V3, So I can know your patch is a revise version.

> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of xuyanjie
> Sent: Wednesday, April 17, 2019 1:54 AM
> To: dts@dpdk.org
> Cc: Xu, Yanjie <yanjie.xu@intel.com>
> Subject: [dts] [PATCH] add iavf test plan
> 
> Signed-off-by: xuyanjie <yanjie.xu@intel.com>
> 
> diff --git a/test_plans/iavf_test_plan.rst b/test_plans/iavf_test_plan.rst new
> file mode 100644 index 0000000..cec1de2
> --- /dev/null
> +++ b/test_plans/iavf_test_plan.rst
> @@ -0,0 +1,465 @@
> + BSD LICENSE
> +
> + Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
[Lijuan] 2010-2015 should be 2019
> + 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.
> +
> +======================
> +DPDK iavf API Tests
> +======================
[Lijuan] iavf is an acronym, so it should be IAVF
> +
> +intel Adaptive Virtual Function(IAVF)
[Lijuan] intel should be Intel
> +
> +Hardwares::
> +------------
> +I40E driver NIC (Fortville XXV710, Fortville Spirit, Fortville Eagle)
[Lijuan] Also support ICE.
> +
> +Prerequisites
> +=============
> +1.Modify DPDK source code to enable AVF function for I40E NIC::
[Lijuan] and build
> +
> +    sed -i -e '/AVF_DEV_ID_ADAPTIVE_VF/s/0x1889/0x154c/g'
> drivers/net/avf/base/avf_devids.h
> +    sed -i -e '/I40E_DEV_ID_VF/s/0x154C/0x164C/g'
> + drivers/net/i40e/base/i40e_devids.h
> +
> +    make install RTE_SDK=`pwd` T=x86_64-native-linuxapp-gcc
> +
> +2. Configiure PF and VF::
[Lijuan] Configiure -> Configure
> +
> +    modprobe uio;
> +    insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko;
> +
> +    ./usertools/dpdk-devbind.py --bind=igb_uio 18:00.0 18:00.1;
> +
> +    echo 1 > /sys/bus/pci/devices/0000\:18\:00.0/max_vfs
> +    echo 1 > /sys/bus/pci/devices/0000\:18\:00.1/max_vfs
[Lijuan] It's better to generate SRIOV VFs from kernel driver. NOT suggest to let DPDK PF being host driver.
> +
> +    ./usertools/dpdk-devbind.py --bind=vfio-pci 18:02.0 18:0a.0
> +    or
> +    (./usertools/dpdk-devbind.py --bind=igb_uio 18:02.0 18:0a.0)
> +
> +3. Set PF ports up and congiure VF ports' mac::
[Lijuan] typo
> +
> +    ./app/testpmd -l 1-5 -n 4 --socket-mem=1024,1024 --file-prefix=pf
> + -w 18:00.1 -w 18:00.0 -- -i
> +
> +4. Start up VF ports::
> +   ./testpmd -l 6-10 -n 4 --master-lcore=6  --socket-mem=1024,1024
> +--file-prefix=vf  -w 18:0a.0 -w 18:02.0 -- -i --txq=4 --rxq=4
> +--nb-cores=4
> +
> +Test case: VF basic RX/TX
> +===============================================================
> ===
> +
> +1. Start testpmd::
> +
> +      $ ./testpmd -l 6-10 -n 4 --master-lcore=6  --socket-mem=1024,1024 --file-
> prefix=vf  -w 18:0a.0 -w 18:02.0 -- -i --txq=4 --rxq=4  --nb-cores=4
> +      run "start"
> +2. Check and verified packets which received and forwarded
> +
> +Test cases: VF mac filter
> +===============================================================
> ===
> +
> +Test Case: unicast test::
> +
> +    testpmd>set promisc all off
> +    testpmd>set allmulti all off
> +    testpmd>start
> +
> +    testpmd>mac_addr set 0 00:12:34:56:78:03
> +
> +    disable promisc mode, verify VF packet rx/tx can work fine with the
> specific mac addr.
> +
> +Test Case: multicast test::
> +
> +    testpmd>set promisc all off
> +    testpmd>set allmulti all off
> +    testpmd>start
> +
> +    Send packet with multicast MAC 01:80:C2:00:00:08, and check VF can not
> receive the packet.
> +
> +    testpmd>set allmulti all on
> +
> +    Send packet with multicast MAC 01:80:C2:00:00:08, and check VF can
> receive the packet.
> +
> +Test Case: broadcast test::
> +
> +    testpmd>set promisc all off
> +    testpmd>start
> +
> +    Send packets with broadcast address ff:ff:ff:ff:ff:ff, and check VF
> + can receive the packet
> +
> +Test Case: promiscuous mode::
> +
> +    testpmd>set promisc all on
> +    testpmd>start
> +
> +    Send packet that different with vf mac, check packets can be received.
> +
> +Test Cases: VF VLAN feature vlan filter only work with promisc mode off
> +===============================================================
> ========
> +====
> +
> +Test Case: vlan filter ::
[Lijuan] For you subcases, please pay attention to your RST format.
Test Case: vlan filter ::
~~~~~~~~~~~~~~~~~
It's better to add some description to your cases.
> +
> +    testpmd>port stop all
> +    testpmd>set promisc all off
> +    testpmd>vlan set filter off 0
> +    testpmd>vlan set filter off 1
> +    testpmd>vlan set strip off 0
> +    testpmd>vlan set strip off 1
> +
> +    testpmd>vlan set filter on 0
> +    testpmd>set fwd mac
> +    testpmd>port start all
> +    testpmd>start
> +
> +    packet with vlan can not be received, packet without vlan packet can be
> received.
> +
> +Test Case: rx_vlan ::
> +
> +    testpmd>port stop all
> +    testpmd>set promisc all off
> +    testpmd>vlan set filter off 0
> +    testpmd>vlan set filter off 1
> +    testpmd>vlan set strip off 0
> +    testpmd>vlan set strip off 1
> +
> +    testpmd>vlan set filter on 0
> +    testpmd>rx_vlan add 20 0
> +    testpmd>set fwd mac
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Case: tx_vlan ::
> +
> +    setup VF vlan like the follow command, verify packet
> +    that out from VF contain the vlan tag.
> +
> +    testpmd>port stop all
> +    testpmd>set promisc all on
> +    testpmd>set fwd mac
> +    testpmd>vlan set filter off 0
> +    testpmd>vlan set filter off 1
> +    testpmd>vlan set strip off 0
> +    testpmd>vlan set strip off 1
> +    testpmd>tx_vlan set 1 20
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Case: vlan strip ::
> +
> +    setup strip on, vlan promisc on, verify vlan_id
> +    was stripped by VF when it forward the packet to other vf port.
> +
> +    testpmd>port stop all
> +    testpmd>set promisc all on
> +    testpmd>set fwd mac
> +    testpmd>vlan set filter off 0
> +    testpmd>vlan set filter off 1
> +    testpmd>vlan set strip off 0
> +    testpmd>vlan set strip off 1
> +    testpmd>vlan set strip on 0
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Case: vlan promisc mode ::
> +
> +    testpmd>port stop all
> +    testpmd>vlan set filter off 0
> +    testpmd>vlan set filter off 1
> +    testpmd>vlan set strip off 0
> +    testpmd>vlan set strip off 1
> +
> +    testpmd>set promisc all on
> +    testpmd>set fwd mac
> +    testpmd>port start all
> +    testpmd>start
> +
> +    send packet with vlan or without vlan, both can be received and
> forwarded.
> +
> +Test Cases: VF jumboframe
> +===============================================================
> ====
> +
> +Ensure Tester's ports support sending jumboframe::
> +    ifconfig 'tester interface' mtu 9000
> +
> +Test Case: Check that no jumbo frame support ::
> +
> +       Launch testpmd for VF ports without enabling jumboframe option
> +
> +       ./app/testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --
> file-prefix=vf \
> +                                       -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-
> cores=4
> +        testpmd>set fwd mac
> +        testpmd>start
> +        testpmd> stop
> +	   Telling cores to stop
> +		Waiting for lcores to finish...
> +
> +		  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port=
> 1/Queue= 0 -------
> +		  RX-packets: 2              TX-packets: 2              TX-dropped: 0
> +		  ---------------------- Forward statistics for port 0  --------------------
> --
> +		  RX-packets: 5              RX-dropped: 0             RX-total: 5
> +		  TX-packets: 0              TX-dropped: 0             TX-total: 0
> +
> +-----------------------------------------------------------------------
> +-----
> +
> +		  ---------------------- Forward statistics for port 1  --------------------
> --
> +		  RX-packets: 0              RX-dropped: 0             RX-total: 0
> +		  TX-packets: 2              TX-dropped: 0             TX-total: 2
> +		  ---------------------------------------------------------------------------
> +		  +++++++++++++++ Accumulated forward statistics for all
> ports+++++++++++++++
> +		  RX-packets: 5              RX-dropped: 0             RX-total: 5
> +		  TX-packets: 2              TX-dropped: 0             TX-total: 2
> +
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++
> ++++++
> +
> +        check packet less than the standard maximum frame (1518) can be
> received.
> +        packet more than the standard maximum frame (1518) can not be
> received.
> +
> +Test Case: Check that with Jumbo Frames support::
> +
> +    packet lengths greater than the standard maximum frame (1518) and
> +    lower or equal to the maximum frame length can be received. check
> +    that packets larger than the configured maximum packet length
> +    are dropped by the hardware.
> +
> +    Launch testpmd for VF ports with jumboframe option
> +    $ ./testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-
> prefix=vf
> +      -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
> +    $ ./testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-
> prefix=vf
> +      18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
> + --max-pkt-len=3000 --tx-offloads=0x8000
> +
> +    testpmd>set fwd mac
> +    testpmd>start
> +
> +2.packet size > 9001,  not forward , but RX-packets: counter increased
> +
> +Test Cases:VF rss
> +===============================================================
> =====
> +
> +Test Case: VF RSS
> +
> +   $ ./testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-
> prefix=vf -w 18:02.0 -w 018:0a.0
> +      -- -i --txq=4 --rxq=4  --nb-cores=4 --txqflags=0
> +
> +Test Case: test redirection Table Config ::
> +   config hash reta table, send different flow type packet to VF port,
> +   check packet received by different queue.
> +
> +   testpmd>port config 0 rss reta (0,0)
> +   testpmd>port config 0 rss reta (1,1)
> +   testpmd>port config 0 rss reta (2,2)
> +   testpmd>port config 0 rss reta (3,3)
> +   testpmd>port config 0 rss reta (60,0)
> +   testpmd>port config 0 rss reta (61,1)
> +   testpmd>port config 0 rss reta (62,2)
> +   testpmd>port config 0 rss reta (63,3)
> +
> +   testpmd> port config all rss
> + (all|ip|tcp|udp|sctp|ether|port|vxlan|geneve|nvgre|none)
> +
> +
> +Test Cases:VF offload for checksum and tso
> +===============================================================
> =====
> +
> +Test Case: enable HW checksum offload ::
> +
> +  Send packets with incorrect checksum to vf port, verify that the packets
> +   can be received by VF port and checksum error reported,
> +   the packets forwarded by VF port have the correct checksum value.
> +
> +   $ ./x86_64-native-linuxapp-gcc/app/testpmd -l 6-10 -n 4 --master-lcore=6 -
> -socket-mem=1024,1024
> +      --file-prefix=vf  -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4
> + --nb-cores=4
> +
> +    testpmd>port stop all
> +
> +    testpmd>csum set ip hw 0
> +    testpmd>csum set udp hw 0
> +    testpmd>csum set tcp hw 0
> +    testpmd>csum set sctp hw 0
> +
> +    testpmd>csum set ip hw 1
> +    testpmd>csum set udp hw 1
> +    testpmd>csum set tcp hw 1
> +    testpmd>csum set sctp hw 1
> +
> +    testpmd>set fwd csum
> +    testpmd>set verbose 1
> +
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Case: SW checksum, disable HW checksum offload ::
> +
> +   Send packets with incorrect checksum to vf port, verify that the packets
> +   can be received by VF port and checksum error reported, the packets
> +   forwarded by VF port have the correct checksum value.
> +
> +   $ ./x86_64-native-linuxapp-gcc/app/testpmd -l 6-10 -n 4 --master-lcore=6 -
> -socket-mem=1024,1024 --file-prefix=vf\
> +     -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
> +
> +    testpmd>port stop all
> +    testpmd>csum set ip sw 0
> +    testpmd>csum set udp sw 0
> +    testpmd>csum set tcp sw 0
> +    testpmd>csum set sctp sw 0
> +
> +    testpmd>csum set ip sw 1
> +    testpmd>csum set udp sw 1
> +    testpmd>csum set tcp sw 1
> +    testpmd>csum set sctp sw 1
> +
> +    testpmd>set fwd csum
> +    testpmd>set verbose 1
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Case: tso ::
> +
> +    enable tso on VF port, verify tcp packets that send out by
> +    VF port was splitted according to tso size.
> +
> +    testpmd>port stop all
> +    testpmd>set verbose 1
> +    testpmd>csum set ip hw 0
> +    testpmd>csum set udp hw 0
> +    testpmd>csum set tcp hw 0
> +    testpmd>csum set sctp hw 0
> +
> +    testpmd>csum set ip hw 1
> +    testpmd>csum set udp hw 1
> +    testpmd>csum set tcp hw 1
> +    testpmd>csum set sctp hw 1
> +
> +    testpmd>tso set 800 1
> +    testpmd>set fwd csum
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Cases:  Rx interrupt
> +===============================================================
> =====
> +
> +Test case: rx interrupt
> +
> +1. build build l3fwd power
> +    make -C examples/l3fwd-power RTE_SDK=`pwd`
> +T=x86_64-native-linuxapp-gcc
> +
> +2. build two VFs with igb_uio
> +   modprobe uio;
> +   insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko;
> +   # ./usertools/dpdk-devbind.py --bind=igb_uio 18:02.0 18:0a.0
> +
> +   if in VM, enable vfio noiommu
> +
> +   modprobe -r vfio_iommu_type1
> +   modprobe -r vfio
> +   modprobe  vfio enable_unsafe_noiommu_mode=1
> +   cat /sys/module/vfio/parameters/enable_unsafe_noiommu_mode
> +   modprobe vfio-pci
> +
> +3. start l3fwd power with one queue per port.
> +   $ ./examples/l3fwd-power/build/l3fwd-power -l 6,7 -n 4 -w 18:02.0 -w
> 18:0a.0 -- -p 0x3 --config '(0,0,6),(1,0,7)'
> +
> +   Send one packet to VF0 and VF1, check that thread on core6 and core7
> waked up::
> +
> +   $ L3FWD_POWER: lcore 6 is waked up from rx interrupt on port 0 queue 0
> +   $  L3FWD_POWER: lcore 7 is waked up from rx interrupt on port 0
> + queue 0
> +
> +    Check the packet has been normally forwarded.
> +
> +   After the packet forwarded, thread on core6 and core 7 will return to
> sleep::
> +
> +   $ L3FWD_POWER: lcore 6 sleeps until interrupt triggers
> +   $ L3FWD_POWER: lcore 7 sleeps until interrupt triggers
> +
> +   Send packet flows to VF0 and VF1, check that thread on core1 and core2
> will
> +   keep up awake.
> +   Bi-direction packet :
> +
> +VF veb test case
> +===============================================================
> =====
> +
> +Test Case: veb performance ::
> +
> +    create 2 VFs from 1 PF, start testpmd with 2VFs individually, verify
> throughput.
> +
> +1. create 2 VFs from 1 PF, and start PF
> +
> +      echo 2 > /sys/bus/pci/devices/0000\:05\:00.0/max_vfs;
> +      ./usertools/dpdk-devbind.py --bind=vfio-pci 18:02.0 18:0a.1
> +
> +      ./app/testpmd -l 1,2 -n 4 --socket-mem=1024,1024 --file-prefix=pf
> + -w 18:00.0 -- -i
> +
> +       testpmd>set vf mac addr 0 0 00:12:34:56:78:01
> +       testpmd>set vf mac addr 0 1 00:12:34:56:78:02
> +
> +2. start testpmd with 2VFs individually
> +
> +      ./app/testpmd -l 3-5 -n 4 --master-lcore=3 --socket-mem=1024,1024 --
> file-prefix=vf1 -w 18:02.0\
> +        -- -i --txq=2 --rxq=2 --rxd=512 --txd=512 --nb-cores=2 --rss-ip
> + --eth-peer=0,00:12:34:56:78:02
> +
> +      testpmd>set promisc all off
> +      testpmd>set fwd mac
> +      testpmd>start
> +
> +     ./x86_64-native-linuxapp-gcc/app/testpmd -l 6-8 -n 4 --master-lcore=6 --
> socket-mem=1024,1024 --file-prefix=vf2 \
> +         -w 18:0.0 -- -i --txq=2 --rxq=2 --rxd=512 --txd=512
> + --nb-cores=2 --rss-ip
> +
> +      testpmd>set promisc all off
> +      testpmd>set fwd mac
> +      testpmd>start
> +
> +  3). send traffic and verify throughput
> +
> +
> +VF performance
> +===============================================================
> =====
> +
> +Test Case: vector vf performance
> +
> +1.config vector=y in config/common_base, and rebuild dpdk
> +
> +2. start testpmd for PF
> +
> +    ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4
> + --socket-mem=1024,1024 --file-prefix=pf  -w 18:00.0 -w 18:00.1 -- -i
> +
> +    testpmd>set vf mac addr 0 0 00:12:34:56:78:01
> +     testpmd>set vf mac addr 1 0 00:12:34:56:78:02
> +
> +3. start testpmd for VF
> +
> +    ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x0f8 -n 4 --master-lcore=3
> --socket-mem=1024,1024 --file-prefix=vf \
> +     -w 18:02.0 -w 18:0a.0 -- -i --txq=2 --rxq=2 --rxd=512 --txd=512
> + --nb-cores=4 --rss-ip
> +
> +    testpmd>set promisc all off
> +    testpmd>set fwd mac
> +    testpmd>start
> +
> +    send traffic and vefify throughput
> +
> +Test Csse: scalar/bulk vf performance
> +
> +1. change CONFIG_RTE_LIBRTE_AVF_INC_VECTOR=n in
> config/common_base, and
> +rebuild dpdk
> +
> +2. repeat test steps 2-4 in above test case: vector vf performance.
> \ No newline at end of file
> --
> 2.7.4


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dts] [PATCH] add iavf test plan
  2019-04-16 16:11 xuyanjie
  2019-04-16 18:07 ` Tu, Lijuan
  2019-04-16 19:28 ` Rami Rosen
@ 2019-04-17  2:30 ` Lin, Xueqin
  2 siblings, 0 replies; 6+ messages in thread
From: Lin, Xueqin @ 2019-04-17  2:30 UTC (permalink / raw)
  To: Xu, Yanjie, dts; +Cc: Xu, Yanjie

Hi Yanjie,

Add more comments below. 

Best regards,
Xueqin

> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of xuyanjie
> Sent: Wednesday, April 17, 2019 12:11 AM
> To: dts@dpdk.org
> Cc: Xu, Yanjie <yanjie.xu@intel.com>
> Subject: [dts] [PATCH] add iavf test plan
> 
> Signed-off-by: xuyanjie <yanjie.xu@intel.com>
> 
> diff --git a/test_plans/iavf_test_plan.rst b/test_plans/iavf_test_plan.rst new
> file mode 100644 index 0000000..cec1de2
> --- /dev/null
> +++ b/test_plans/iavf_test_plan.rst
> @@ -0,0 +1,465 @@
> + BSD LICENSE
> +
> + Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
> + 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.
> +
> +======================
> +DPDK iavf API Tests
> +======================
> +
> +intel Adaptive Virtual Function(IAVF)
> +
> +Hardwares::
> +------------
> +I40E driver NIC (Fortville XXV710, Fortville Spirit, Fortville Eagle)
> +
> +Prerequisites
> +=============
> +1.Modify DPDK source code to enable AVF function for I40E NIC::
> +
> +    sed -i -e '/AVF_DEV_ID_ADAPTIVE_VF/s/0x1889/0x154c/g'
> drivers/net/avf/base/avf_devids.h
> +    sed -i -e '/I40E_DEV_ID_VF/s/0x154C/0x164C/g'
> + drivers/net/i40e/base/i40e_devids.h
> +
> +    make install RTE_SDK=`pwd` T=x86_64-native-linuxapp-gcc
> +
> +2. Configiure PF and VF::
> +
> +    modprobe uio;
> +    insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko;
> +
> +    ./usertools/dpdk-devbind.py --bind=igb_uio 18:00.0 18:00.1;
> +
> +    echo 1 > /sys/bus/pci/devices/0000\:18\:00.0/max_vfs
> +    echo 1 > /sys/bus/pci/devices/0000\:18\:00.1/max_vfs
> +
> +    ./usertools/dpdk-devbind.py --bind=vfio-pci 18:02.0 18:0a.0
> +    or
> +    (./usertools/dpdk-devbind.py --bind=igb_uio 18:02.0 18:0a.0)
> +
> +3. Set PF ports up and congiure VF ports' mac::

[xueqin]"congiure" should be configure.  How to configure VF mac?

> +
> +    ./app/testpmd -l 1-5 -n 4 --socket-mem=1024,1024 --file-prefix=pf
> + -w 18:00.1 -w 18:00.0 -- -i
> +
> +4. Start up VF ports::
> +   ./testpmd -l 6-10 -n 4 --master-lcore=6  --socket-mem=1024,1024
> +--file-prefix=vf  -w 18:0a.0 -w 18:02.0 -- -i --txq=4 --rxq=4
> +--nb-cores=4
> +
> +Test case: VF basic RX/TX
> +=============================================================
> =====
> +
> +1. Start testpmd::
> +
> +      $ ./testpmd -l 6-10 -n 4 --master-lcore=6  --socket-mem=1024,1024 --file-
> prefix=vf  -w 18:0a.0 -w 18:02.0 -- -i --txq=4 --rxq=4  --nb-cores=4
> +      run "start"
> +2. Check and verified packets which received and forwarded
> +
> +Test cases: VF mac filter
> +=============================================================
> =====
> +
> +Test Case: unicast test::
> +
> +    testpmd>set promisc all off
> +    testpmd>set allmulti all off
> +    testpmd>start
> +
> +    testpmd>mac_addr set 0 00:12:34:56:78:03
> +
> +    disable promisc mode, verify VF packet rx/tx can work fine with the
> specific mac addr.
> +
> +Test Case: multicast test::
> +
> +    testpmd>set promisc all off
> +    testpmd>set allmulti all off
> +    testpmd>start
> +
> +    Send packet with multicast MAC 01:80:C2:00:00:08, and check VF can not
> receive the packet.
> +
> +    testpmd>set allmulti all on
> +
> +    Send packet with multicast MAC 01:80:C2:00:00:08, and check VF can
> receive the packet.
> +
> +Test Case: broadcast test::
> +
> +    testpmd>set promisc all off
> +    testpmd>start
> +
> +    Send packets with broadcast address ff:ff:ff:ff:ff:ff, and check VF
> + can receive the packet
> +
> +Test Case: promiscuous mode::
> +
> +    testpmd>set promisc all on
> +    testpmd>start
> +
> +    Send packet that different with vf mac, check packets can be received.
> +
> +Test Cases: VF VLAN feature vlan filter only work with promisc mode off
> +=============================================================
> ==========
> +====
> +
> +Test Case: vlan filter ::
> +
> +    testpmd>port stop all
> +    testpmd>set promisc all off
> +    testpmd>vlan set filter off 0
> +    testpmd>vlan set filter off 1
> +    testpmd>vlan set strip off 0
> +    testpmd>vlan set strip off 1
> +
> +    testpmd>vlan set filter on 0
> +    testpmd>set fwd mac
> +    testpmd>port start all
> +    testpmd>start
> +
> +    packet with vlan can not be received, packet without vlan packet can be
> received.
> +
> +Test Case: rx_vlan ::
> +
[xueqin]Don't see any description for this case. 
> +    testpmd>port stop all
> +    testpmd>set promisc all off
> +    testpmd>vlan set filter off 0
> +    testpmd>vlan set filter off 1
> +    testpmd>vlan set strip off 0
> +    testpmd>vlan set strip off 1
> +
> +    testpmd>vlan set filter on 0
> +    testpmd>rx_vlan add 20 0
> +    testpmd>set fwd mac
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Case: tx_vlan ::
> +
> +    setup VF vlan like the follow command, verify packet
> +    that out from VF contain the vlan tag.
> +
> +    testpmd>port stop all
> +    testpmd>set promisc all on
> +    testpmd>set fwd mac
> +    testpmd>vlan set filter off 0
> +    testpmd>vlan set filter off 1
> +    testpmd>vlan set strip off 0
> +    testpmd>vlan set strip off 1
> +    testpmd>tx_vlan set 1 20
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Case: vlan strip ::
> +
> +    setup strip on, vlan promisc on, verify vlan_id
> +    was stripped by VF when it forward the packet to other vf port.
> +
> +    testpmd>port stop all
> +    testpmd>set promisc all on
> +    testpmd>set fwd mac
> +    testpmd>vlan set filter off 0
> +    testpmd>vlan set filter off 1
> +    testpmd>vlan set strip off 0
> +    testpmd>vlan set strip off 1
> +    testpmd>vlan set strip on 0
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Case: vlan promisc mode ::
> +
> +    testpmd>port stop all
> +    testpmd>vlan set filter off 0
> +    testpmd>vlan set filter off 1
> +    testpmd>vlan set strip off 0
> +    testpmd>vlan set strip off 1
> +
> +    testpmd>set promisc all on
> +    testpmd>set fwd mac
> +    testpmd>port start all
> +    testpmd>start
> +
> +    send packet with vlan or without vlan, both can be received and
> forwarded.
> +
> +Test Cases: VF jumboframe
> +=============================================================
> ======
> +
> +Ensure Tester's ports support sending jumboframe::
> +    ifconfig 'tester interface' mtu 9000
> +
> +Test Case: Check that no jumbo frame support ::
> +
> +       Launch testpmd for VF ports without enabling jumboframe option
> +
> +       ./app/testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --
> file-prefix=vf \
> +                                       -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
> +        testpmd>set fwd mac
> +        testpmd>start
> +        testpmd> stop
> +	   Telling cores to stop
> +		Waiting for lcores to finish...
> +
> +		  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port=
> 1/Queue= 0 -------
> +		  RX-packets: 2              TX-packets: 2              TX-dropped: 0
> +		  ---------------------- Forward statistics for port 0  ---------------------
> -
> +		  RX-packets: 5              RX-dropped: 0             RX-total: 5
> +		  TX-packets: 0              TX-dropped: 0             TX-total: 0
> +
> +-----------------------------------------------------------------------
> +-----
> +
> +		  ---------------------- Forward statistics for port 1  ---------------------
> -
> +		  RX-packets: 0              RX-dropped: 0             RX-total: 0
> +		  TX-packets: 2              TX-dropped: 0             TX-total: 2
> +		  ---------------------------------------------------------------------------
> +		  +++++++++++++++ Accumulated forward statistics for all
> ports+++++++++++++++
> +		  RX-packets: 5              RX-dropped: 0             RX-total: 5
> +		  TX-packets: 2              TX-dropped: 0             TX-total: 2
> +
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++++
> ++++++
[xueqin] It is not make sense to list such number here, why RX-packets is 5, but TX-packets is 2? 
If want to add the stats, you should add more explanation, such as send how may packet
more than 1518, send how may packet less than 1518, then have such stats.
 
> +
> +        check packet less than the standard maximum frame (1518) can be
> received.
> +        packet more than the standard maximum frame (1518) can not be
> received.
> +
> +Test Case: Check that with Jumbo Frames support::
> +
> +    packet lengths greater than the standard maximum frame (1518) and
> +    lower or equal to the maximum frame length can be received. check
> +    that packets larger than the configured maximum packet length
> +    are dropped by the hardware.
> +
> +    Launch testpmd for VF ports with jumboframe option
> +    $ ./testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-
> prefix=vf
> +      -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
> +    $ ./testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-
> prefix=vf
> +      18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
> + --max-pkt-len=3000 --tx-offloads=0x8000
> +
[Xueqin] why list two cmd here with or without jumbo frame?
> +    testpmd>set fwd mac
> +    testpmd>start
> +
> +2.packet size > 9001,  not forward , but RX-packets: counter increased
> +
> +Test Cases:VF rss
> +=============================================================
> =======
> +
> +Test Case: VF RSS
> +
> +   $ ./testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-
> prefix=vf -w 18:02.0 -w 018:0a.0
> +      -- -i --txq=4 --rxq=4  --nb-cores=4 --txqflags=0
> +
> +Test Case: test redirection Table Config ::
> +   config hash reta table, send different flow type packet to VF port,
> +   check packet received by different queue.
> +
> +   testpmd>port config 0 rss reta (0,0)
> +   testpmd>port config 0 rss reta (1,1)
> +   testpmd>port config 0 rss reta (2,2)
> +   testpmd>port config 0 rss reta (3,3)
> +   testpmd>port config 0 rss reta (60,0)
> +   testpmd>port config 0 rss reta (61,1)
> +   testpmd>port config 0 rss reta (62,2)
> +   testpmd>port config 0 rss reta (63,3)
> +
[xueqin] cmd not include all configure, may add "..."
> +   testpmd> port config all rss
> + (all|ip|tcp|udp|sctp|ether|port|vxlan|geneve|nvgre|none)
> +
> +
> +Test Cases:VF offload for checksum and tso
> +=============================================================
> =======
> +
> +Test Case: enable HW checksum offload ::
> +
> +  Send packets with incorrect checksum to vf port, verify that the packets
> +   can be received by VF port and checksum error reported,
> +   the packets forwarded by VF port have the correct checksum value.
> +
> +   $ ./x86_64-native-linuxapp-gcc/app/testpmd -l 6-10 -n 4 --master-lcore=6 -
> -socket-mem=1024,1024
> +      --file-prefix=vf  -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4
> + --nb-cores=4
> +
> +    testpmd>port stop all
> +
> +    testpmd>csum set ip hw 0
> +    testpmd>csum set udp hw 0
> +    testpmd>csum set tcp hw 0
> +    testpmd>csum set sctp hw 0
> +
> +    testpmd>csum set ip hw 1
> +    testpmd>csum set udp hw 1
> +    testpmd>csum set tcp hw 1
> +    testpmd>csum set sctp hw 1
> +
> +    testpmd>set fwd csum
> +    testpmd>set verbose 1
> +
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Case: SW checksum, disable HW checksum offload ::
> +
> +   Send packets with incorrect checksum to vf port, verify that the packets
> +   can be received by VF port and checksum error reported, the packets
> +   forwarded by VF port have the correct checksum value.
> +
> +   $ ./x86_64-native-linuxapp-gcc/app/testpmd -l 6-10 -n 4 --master-lcore=6 -
> -socket-mem=1024,1024 --file-prefix=vf\
> +     -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
> +
> +    testpmd>port stop all
> +    testpmd>csum set ip sw 0
> +    testpmd>csum set udp sw 0
> +    testpmd>csum set tcp sw 0
> +    testpmd>csum set sctp sw 0
> +
> +    testpmd>csum set ip sw 1
> +    testpmd>csum set udp sw 1
> +    testpmd>csum set tcp sw 1
> +    testpmd>csum set sctp sw 1
> +
> +    testpmd>set fwd csum
> +    testpmd>set verbose 1
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Case: tso ::
> +
> +    enable tso on VF port, verify tcp packets that send out by
> +    VF port was splitted according to tso size.
> +
> +    testpmd>port stop all
> +    testpmd>set verbose 1
> +    testpmd>csum set ip hw 0
> +    testpmd>csum set udp hw 0
> +    testpmd>csum set tcp hw 0
> +    testpmd>csum set sctp hw 0
> +
> +    testpmd>csum set ip hw 1
> +    testpmd>csum set udp hw 1
> +    testpmd>csum set tcp hw 1
> +    testpmd>csum set sctp hw 1
> +
> +    testpmd>tso set 800 1
> +    testpmd>set fwd csum
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Cases:  Rx interrupt
> +=============================================================
> =======
> +
> +Test case: rx interrupt
> +
> +1. build build l3fwd power
> +    make -C examples/l3fwd-power RTE_SDK=`pwd`
> +T=x86_64-native-linuxapp-gcc
> +
> +2. build two VFs with igb_uio
> +   modprobe uio;
> +   insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko;
> +   # ./usertools/dpdk-devbind.py --bind=igb_uio 18:02.0 18:0a.0

[xueqin] why have "#
> +
> +   if in VM, enable vfio noiommu
> +
> +   modprobe -r vfio_iommu_type1
> +   modprobe -r vfio
> +   modprobe  vfio enable_unsafe_noiommu_mode=1
> +   cat /sys/module/vfio/parameters/enable_unsafe_noiommu_mode
> +   modprobe vfio-pci
> +
> +3. start l3fwd power with one queue per port.
> +   $ ./examples/l3fwd-power/build/l3fwd-power -l 6,7 -n 4 -w 18:02.0 -w
> 18:0a.0 -- -p 0x3 --config '(0,0,6),(1,0,7)'
> +
> +   Send one packet to VF0 and VF1, check that thread on core6 and core7
> waked up::
> +
> +   $ L3FWD_POWER: lcore 6 is waked up from rx interrupt on port 0 queue 0
> +   $  L3FWD_POWER: lcore 7 is waked up from rx interrupt on port 0
> + queue 0
> +
> +    Check the packet has been normally forwarded.
> +
> +   After the packet forwarded, thread on core6 and core 7 will return to
> sleep::
> +
> +   $ L3FWD_POWER: lcore 6 sleeps until interrupt triggers
> +   $ L3FWD_POWER: lcore 7 sleeps until interrupt triggers
> +
> +   Send packet flows to VF0 and VF1, check that thread on core1 and core2
> will
> +   keep up awake.
> +   Bi-direction packet :
> +
> +VF veb test case
> +=============================================================
> =======
> +
> +Test Case: veb performance ::
> +
> +    create 2 VFs from 1 PF, start testpmd with 2VFs individually, verify
> throughput.
> +
> +1. create 2 VFs from 1 PF, and start PF
> +
> +      echo 2 > /sys/bus/pci/devices/0000\:05\:00.0/max_vfs;
> +      ./usertools/dpdk-devbind.py --bind=vfio-pci 18:02.0 18:0a.1
> +
> +      ./app/testpmd -l 1,2 -n 4 --socket-mem=1024,1024 --file-prefix=pf
> + -w 18:00.0 -- -i
> +
> +       testpmd>set vf mac addr 0 0 00:12:34:56:78:01
> +       testpmd>set vf mac addr 0 1 00:12:34:56:78:02
> +
> +2. start testpmd with 2VFs individually
> +
> +      ./app/testpmd -l 3-5 -n 4 --master-lcore=3 --socket-mem=1024,1024 --
> file-prefix=vf1 -w 18:02.0\
> +        -- -i --txq=2 --rxq=2 --rxd=512 --txd=512 --nb-cores=2 --rss-ip
> + --eth-peer=0,00:12:34:56:78:02
> +
> +      testpmd>set promisc all off
> +      testpmd>set fwd mac
> +      testpmd>start
> +
> +     ./x86_64-native-linuxapp-gcc/app/testpmd -l 6-8 -n 4 --master-lcore=6 --
> socket-mem=1024,1024 --file-prefix=vf2 \
> +         -w 18:0.0 -- -i --txq=2 --rxq=2 --rxd=512 --txd=512
> + --nb-cores=2 --rss-ip
> +
> +      testpmd>set promisc all off
> +      testpmd>set fwd mac
> +      testpmd>start
> +
> +  3). send traffic and verify throughput
> +
> +
> +VF performance
> +=============================================================
> =======
> +
> +Test Case: vector vf performance
> +
> +1.config vector=y in config/common_base, and rebuild dpdk
> +
> +2. start testpmd for PF
> +
> +    ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4
> + --socket-mem=1024,1024 --file-prefix=pf  -w 18:00.0 -w 18:00.1 -- -i
> +
> +    testpmd>set vf mac addr 0 0 00:12:34:56:78:01
> +     testpmd>set vf mac addr 1 0 00:12:34:56:78:02
> +
> +3. start testpmd for VF
> +
> +    ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x0f8 -n 4 --master-lcore=3
> --socket-mem=1024,1024 --file-prefix=vf \
> +     -w 18:02.0 -w 18:0a.0 -- -i --txq=2 --rxq=2 --rxd=512 --txd=512
> + --nb-cores=4 --rss-ip
> +
> +    testpmd>set promisc all off
> +    testpmd>set fwd mac
> +    testpmd>start
> +
> +    send traffic and vefify throughput
> +
> +Test Csse: scalar/bulk vf performance
> +
> +1. change CONFIG_RTE_LIBRTE_AVF_INC_VECTOR=n in
> config/common_base, and
> +rebuild dpdk
> +
> +2. repeat test steps 2-4 in above test case: vector vf performance.
> \ No newline at end of file
> --
> 2.7.4


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dts] [PATCH] add iavf test plan
  2019-04-16 16:11 xuyanjie
  2019-04-16 18:07 ` Tu, Lijuan
@ 2019-04-16 19:28 ` Rami Rosen
  2019-04-17  2:30 ` Lin, Xueqin
  2 siblings, 0 replies; 6+ messages in thread
From: Rami Rosen @ 2019-04-16 19:28 UTC (permalink / raw)
  To: xuyanjie; +Cc: dts

[-- Attachment #1: Type: text/plain, Size: 853 bytes --]

>
>
>
> +Test Cases:  Rx interrupt
> +====================================================================
> +
> +Test case: rx interrupt
> +
>

[Rami]  no need for two build commands in the following line:

+1. build build l3fwd power
> +    make -C examples/l3fwd-power RTE_SDK=`pwd`
> T=x86_64-native-linuxapp-gcc
> +
> +2. build two VFs with igb_uio
> +   modprobe uio;
> +   insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko;
> +   # ./usertools/dpdk-devbind.py --bind=igb_uio 18:02.0 18:0a.0
> +
>
...
...

[Rami] vefify-> verify

+    send traffic and vefify throughput
> +
> +Test Csse: scalar/bulk vf performance
> +
> +1. change CONFIG_RTE_LIBRTE_AVF_INC_VECTOR=n in config/common_base, and
> rebuild dpdk
> +
> +2. repeat test steps 2-4 in above test case: vector vf performance.
> \ No newline at end of file
> --
>

>
> Regards,
Rami Rosen

[-- Attachment #2: Type: text/html, Size: 2459 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dts] [PATCH] add iavf test plan
  2019-04-16 16:11 xuyanjie
@ 2019-04-16 18:07 ` Tu, Lijuan
  2019-04-16 19:28 ` Rami Rosen
  2019-04-17  2:30 ` Lin, Xueqin
  2 siblings, 0 replies; 6+ messages in thread
From: Tu, Lijuan @ 2019-04-16 18:07 UTC (permalink / raw)
  To: Xu, Yanjie, dts; +Cc: Xu, Yanjie



> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of xuyanjie
> Sent: Tuesday, April 16, 2019 9:11 AM
> To: dts@dpdk.org
> Cc: Xu, Yanjie <yanjie.xu@intel.com>
> Subject: [dts] [PATCH] add iavf test plan
> 
> Signed-off-by: xuyanjie <yanjie.xu@intel.com>
> 
> diff --git a/test_plans/iavf_test_plan.rst b/test_plans/iavf_test_plan.rst new
> file mode 100644 index 0000000..cec1de2
> --- /dev/null
> +++ b/test_plans/iavf_test_plan.rst
> @@ -0,0 +1,465 @@
> + BSD LICENSE
> +
> + Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
[Lijuan] 2010-2015 -> 2019
> + 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.
> +
> +======================
> +DPDK iavf API Tests
> +======================
> +
> +intel Adaptive Virtual Function(IAVF)
[Lijuan] intel should be Intel
> +
> +Hardwares::
> +------------
> +I40E driver NIC (Fortville XXV710, Fortville Spirit, Fortville Eagle)
> +
> +Prerequisites
> +=============
> +1.Modify DPDK source code to enable AVF function for I40E NIC::
> +
> +    sed -i -e '/AVF_DEV_ID_ADAPTIVE_VF/s/0x1889/0x154c/g'
> drivers/net/avf/base/avf_devids.h
> +    sed -i -e '/I40E_DEV_ID_VF/s/0x154C/0x164C/g'
> + drivers/net/i40e/base/i40e_devids.h
> +
> +    make install RTE_SDK=`pwd` T=x86_64-native-linuxapp-gcc
> +
> +2. Configiure PF and VF::
> +
> +    modprobe uio;
> +    insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko;
> +
> +    ./usertools/dpdk-devbind.py --bind=igb_uio 18:00.0 18:00.1;
> +
> +    echo 1 > /sys/bus/pci/devices/0000\:18\:00.0/max_vfs
> +    echo 1 > /sys/bus/pci/devices/0000\:18\:00.1/max_vfs
> +
> +    ./usertools/dpdk-devbind.py --bind=vfio-pci 18:02.0 18:0a.0
> +    or
> +    (./usertools/dpdk-devbind.py --bind=igb_uio 18:02.0 18:0a.0)
> +
> +3. Set PF ports up and congiure VF ports' mac::
> +
> +    ./app/testpmd -l 1-5 -n 4 --socket-mem=1024,1024 --file-prefix=pf
> + -w 18:00.1 -w 18:00.0 -- -i
> +
> +4. Start up VF ports::
> +   ./testpmd -l 6-10 -n 4 --master-lcore=6  --socket-mem=1024,1024
> +--file-prefix=vf  -w 18:0a.0 -w 18:02.0 -- -i --txq=4 --rxq=4
> +--nb-cores=4
> +
> +Test case: VF basic RX/TX
> +===============================================================
> ===
> +
> +1. Start testpmd::
> +
> +      $ ./testpmd -l 6-10 -n 4 --master-lcore=6  --socket-mem=1024,1024 --file-
> prefix=vf  -w 18:0a.0 -w 18:02.0 -- -i --txq=4 --rxq=4  --nb-cores=4
> +      run "start"
> +2. Check and verified packets which received and forwarded
> +
> +Test cases: VF mac filter
> +===============================================================
> ===
> +
> +Test Case: unicast test::
> +
> +    testpmd>set promisc all off
> +    testpmd>set allmulti all off
> +    testpmd>start
> +
> +    testpmd>mac_addr set 0 00:12:34:56:78:03
> +
> +    disable promisc mode, verify VF packet rx/tx can work fine with the
> specific mac addr.
> +
> +Test Case: multicast test::
> +
> +    testpmd>set promisc all off
> +    testpmd>set allmulti all off
> +    testpmd>start
> +
> +    Send packet with multicast MAC 01:80:C2:00:00:08, and check VF can not
> receive the packet.
> +
> +    testpmd>set allmulti all on
> +
> +    Send packet with multicast MAC 01:80:C2:00:00:08, and check VF can
> receive the packet.
> +
> +Test Case: broadcast test::
> +
> +    testpmd>set promisc all off
> +    testpmd>start
> +
> +    Send packets with broadcast address ff:ff:ff:ff:ff:ff, and check VF
> + can receive the packet
> +
> +Test Case: promiscuous mode::
> +
> +    testpmd>set promisc all on
> +    testpmd>start
> +
> +    Send packet that different with vf mac, check packets can be received.
> +
> +Test Cases: VF VLAN feature vlan filter only work with promisc mode off
> +===============================================================
> ========
> +====
> +
> +Test Case: vlan filter ::
> +
> +    testpmd>port stop all
> +    testpmd>set promisc all off
> +    testpmd>vlan set filter off 0
> +    testpmd>vlan set filter off 1
> +    testpmd>vlan set strip off 0
> +    testpmd>vlan set strip off 1
> +
> +    testpmd>vlan set filter on 0
> +    testpmd>set fwd mac
> +    testpmd>port start all
> +    testpmd>start
> +
> +    packet with vlan can not be received, packet without vlan packet can be
> received.
> +
> +Test Case: rx_vlan ::
> +
> +    testpmd>port stop all
> +    testpmd>set promisc all off
> +    testpmd>vlan set filter off 0
> +    testpmd>vlan set filter off 1
> +    testpmd>vlan set strip off 0
> +    testpmd>vlan set strip off 1
> +
> +    testpmd>vlan set filter on 0
> +    testpmd>rx_vlan add 20 0
> +    testpmd>set fwd mac
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Case: tx_vlan ::
> +
> +    setup VF vlan like the follow command, verify packet
> +    that out from VF contain the vlan tag.
> +
> +    testpmd>port stop all
> +    testpmd>set promisc all on
> +    testpmd>set fwd mac
> +    testpmd>vlan set filter off 0
> +    testpmd>vlan set filter off 1
> +    testpmd>vlan set strip off 0
> +    testpmd>vlan set strip off 1
> +    testpmd>tx_vlan set 1 20
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Case: vlan strip ::
> +
> +    setup strip on, vlan promisc on, verify vlan_id
> +    was stripped by VF when it forward the packet to other vf port.
> +
> +    testpmd>port stop all
> +    testpmd>set promisc all on
> +    testpmd>set fwd mac
> +    testpmd>vlan set filter off 0
> +    testpmd>vlan set filter off 1
> +    testpmd>vlan set strip off 0
> +    testpmd>vlan set strip off 1
> +    testpmd>vlan set strip on 0
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Case: vlan promisc mode ::
> +
> +    testpmd>port stop all
> +    testpmd>vlan set filter off 0
> +    testpmd>vlan set filter off 1
> +    testpmd>vlan set strip off 0
> +    testpmd>vlan set strip off 1
> +
> +    testpmd>set promisc all on
> +    testpmd>set fwd mac
> +    testpmd>port start all
> +    testpmd>start
> +
> +    send packet with vlan or without vlan, both can be received and
> forwarded.
> +
> +Test Cases: VF jumboframe
> +===============================================================
> ====
> +
> +Ensure Tester's ports support sending jumboframe::
> +    ifconfig 'tester interface' mtu 9000
> +
> +Test Case: Check that no jumbo frame support ::
> +
> +       Launch testpmd for VF ports without enabling jumboframe option
> +
> +       ./app/testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --
> file-prefix=vf \
> +                                       -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-
> cores=4
> +        testpmd>set fwd mac
> +        testpmd>start
> +        testpmd> stop
> +	   Telling cores to stop
> +		Waiting for lcores to finish...
> +
> +		  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port=
> 1/Queue= 0 -------
> +		  RX-packets: 2              TX-packets: 2              TX-dropped: 0
> +		  ---------------------- Forward statistics for port 0  --------------------
> --
> +		  RX-packets: 5              RX-dropped: 0             RX-total: 5
> +		  TX-packets: 0              TX-dropped: 0             TX-total: 0
> +
> +-----------------------------------------------------------------------
> +-----
> +
> +		  ---------------------- Forward statistics for port 1  --------------------
> --
> +		  RX-packets: 0              RX-dropped: 0             RX-total: 0
> +		  TX-packets: 2              TX-dropped: 0             TX-total: 2
> +		  ---------------------------------------------------------------------------
> +		  +++++++++++++++ Accumulated forward statistics for all
> ports+++++++++++++++
> +		  RX-packets: 5              RX-dropped: 0             RX-total: 5
> +		  TX-packets: 2              TX-dropped: 0             TX-total: 2
> +
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> ++++++++
> ++++++
> +
> +        check packet less than the standard maximum frame (1518) can be
> received.
> +        packet more than the standard maximum frame (1518) can not be
> received.
> +
> +Test Case: Check that with Jumbo Frames support::
> +
> +    packet lengths greater than the standard maximum frame (1518) and
> +    lower or equal to the maximum frame length can be received. check
> +    that packets larger than the configured maximum packet length
> +    are dropped by the hardware.
> +
> +    Launch testpmd for VF ports with jumboframe option
> +    $ ./testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-
> prefix=vf
> +      -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
> +    $ ./testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-
> prefix=vf
> +      18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
> + --max-pkt-len=3000 --tx-offloads=0x8000
> +
> +    testpmd>set fwd mac
> +    testpmd>start
> +
> +2.packet size > 9001,  not forward , but RX-packets: counter increased
> +
> +Test Cases:VF rss
> +===============================================================
> =====
> +
> +Test Case: VF RSS
> +
> +   $ ./testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-
> prefix=vf -w 18:02.0 -w 018:0a.0
> +      -- -i --txq=4 --rxq=4  --nb-cores=4 --txqflags=0
> +
> +Test Case: test redirection Table Config ::
> +   config hash reta table, send different flow type packet to VF port,
> +   check packet received by different queue.
> +
> +   testpmd>port config 0 rss reta (0,0)
> +   testpmd>port config 0 rss reta (1,1)
> +   testpmd>port config 0 rss reta (2,2)
> +   testpmd>port config 0 rss reta (3,3)
> +   testpmd>port config 0 rss reta (60,0)
> +   testpmd>port config 0 rss reta (61,1)
> +   testpmd>port config 0 rss reta (62,2)
> +   testpmd>port config 0 rss reta (63,3)
> +
> +   testpmd> port config all rss
> + (all|ip|tcp|udp|sctp|ether|port|vxlan|geneve|nvgre|none)
> +
> +
> +Test Cases:VF offload for checksum and tso
> +===============================================================
> =====
> +
> +Test Case: enable HW checksum offload ::
> +
> +  Send packets with incorrect checksum to vf port, verify that the packets
> +   can be received by VF port and checksum error reported,
> +   the packets forwarded by VF port have the correct checksum value.
> +
> +   $ ./x86_64-native-linuxapp-gcc/app/testpmd -l 6-10 -n 4 --master-lcore=6 -
> -socket-mem=1024,1024
> +      --file-prefix=vf  -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4
> + --nb-cores=4
> +
> +    testpmd>port stop all
> +
> +    testpmd>csum set ip hw 0
> +    testpmd>csum set udp hw 0
> +    testpmd>csum set tcp hw 0
> +    testpmd>csum set sctp hw 0
> +
> +    testpmd>csum set ip hw 1
> +    testpmd>csum set udp hw 1
> +    testpmd>csum set tcp hw 1
> +    testpmd>csum set sctp hw 1
> +
> +    testpmd>set fwd csum
> +    testpmd>set verbose 1
> +
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Case: SW checksum, disable HW checksum offload ::
> +
> +   Send packets with incorrect checksum to vf port, verify that the packets
> +   can be received by VF port and checksum error reported, the packets
> +   forwarded by VF port have the correct checksum value.
> +
> +   $ ./x86_64-native-linuxapp-gcc/app/testpmd -l 6-10 -n 4 --master-lcore=6 -
> -socket-mem=1024,1024 --file-prefix=vf\
> +     -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
> +
> +    testpmd>port stop all
> +    testpmd>csum set ip sw 0
> +    testpmd>csum set udp sw 0
> +    testpmd>csum set tcp sw 0
> +    testpmd>csum set sctp sw 0
> +
> +    testpmd>csum set ip sw 1
> +    testpmd>csum set udp sw 1
> +    testpmd>csum set tcp sw 1
> +    testpmd>csum set sctp sw 1
> +
> +    testpmd>set fwd csum
> +    testpmd>set verbose 1
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Case: tso ::
> +
> +    enable tso on VF port, verify tcp packets that send out by
> +    VF port was splitted according to tso size.
> +
> +    testpmd>port stop all
> +    testpmd>set verbose 1
> +    testpmd>csum set ip hw 0
> +    testpmd>csum set udp hw 0
> +    testpmd>csum set tcp hw 0
> +    testpmd>csum set sctp hw 0
> +
> +    testpmd>csum set ip hw 1
> +    testpmd>csum set udp hw 1
> +    testpmd>csum set tcp hw 1
> +    testpmd>csum set sctp hw 1
> +
> +    testpmd>tso set 800 1
> +    testpmd>set fwd csum
> +    testpmd>port start all
> +    testpmd>start
> +
> +Test Cases:  Rx interrupt
> +===============================================================
> =====
> +
> +Test case: rx interrupt
> +
> +1. build build l3fwd power
> +    make -C examples/l3fwd-power RTE_SDK=`pwd`
> +T=x86_64-native-linuxapp-gcc
> +
> +2. build two VFs with igb_uio
> +   modprobe uio;
> +   insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko;
> +   # ./usertools/dpdk-devbind.py --bind=igb_uio 18:02.0 18:0a.0
> +
> +   if in VM, enable vfio noiommu
> +
> +   modprobe -r vfio_iommu_type1
> +   modprobe -r vfio
> +   modprobe  vfio enable_unsafe_noiommu_mode=1
> +   cat /sys/module/vfio/parameters/enable_unsafe_noiommu_mode
> +   modprobe vfio-pci
> +
> +3. start l3fwd power with one queue per port.
> +   $ ./examples/l3fwd-power/build/l3fwd-power -l 6,7 -n 4 -w 18:02.0 -w
> 18:0a.0 -- -p 0x3 --config '(0,0,6),(1,0,7)'
> +
> +   Send one packet to VF0 and VF1, check that thread on core6 and core7
> waked up::
> +
> +   $ L3FWD_POWER: lcore 6 is waked up from rx interrupt on port 0 queue 0
> +   $  L3FWD_POWER: lcore 7 is waked up from rx interrupt on port 0
> + queue 0
> +
> +    Check the packet has been normally forwarded.
> +
> +   After the packet forwarded, thread on core6 and core 7 will return to
> sleep::
> +
> +   $ L3FWD_POWER: lcore 6 sleeps until interrupt triggers
> +   $ L3FWD_POWER: lcore 7 sleeps until interrupt triggers
> +
> +   Send packet flows to VF0 and VF1, check that thread on core1 and core2
> will
> +   keep up awake.
> +   Bi-direction packet :
> +
> +VF veb test case
> +===============================================================
> =====
> +
> +Test Case: veb performance ::
> +
> +    create 2 VFs from 1 PF, start testpmd with 2VFs individually, verify
> throughput.
> +
> +1. create 2 VFs from 1 PF, and start PF
> +
> +      echo 2 > /sys/bus/pci/devices/0000\:05\:00.0/max_vfs;
> +      ./usertools/dpdk-devbind.py --bind=vfio-pci 18:02.0 18:0a.1
> +
> +      ./app/testpmd -l 1,2 -n 4 --socket-mem=1024,1024 --file-prefix=pf
> + -w 18:00.0 -- -i
> +
> +       testpmd>set vf mac addr 0 0 00:12:34:56:78:01
> +       testpmd>set vf mac addr 0 1 00:12:34:56:78:02
> +
> +2. start testpmd with 2VFs individually
> +
> +      ./app/testpmd -l 3-5 -n 4 --master-lcore=3 --socket-mem=1024,1024 --
> file-prefix=vf1 -w 18:02.0\
> +        -- -i --txq=2 --rxq=2 --rxd=512 --txd=512 --nb-cores=2 --rss-ip
> + --eth-peer=0,00:12:34:56:78:02
> +
> +      testpmd>set promisc all off
> +      testpmd>set fwd mac
> +      testpmd>start
> +
> +     ./x86_64-native-linuxapp-gcc/app/testpmd -l 6-8 -n 4 --master-lcore=6 --
> socket-mem=1024,1024 --file-prefix=vf2 \
> +         -w 18:0.0 -- -i --txq=2 --rxq=2 --rxd=512 --txd=512
> + --nb-cores=2 --rss-ip
> +
> +      testpmd>set promisc all off
> +      testpmd>set fwd mac
> +      testpmd>start
> +
> +  3). send traffic and verify throughput
> +
> +
> +VF performance
> +===============================================================
> =====
> +
> +Test Case: vector vf performance
> +
> +1.config vector=y in config/common_base, and rebuild dpdk
> +
> +2. start testpmd for PF
> +
> +    ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4
> + --socket-mem=1024,1024 --file-prefix=pf  -w 18:00.0 -w 18:00.1 -- -i
> +
> +    testpmd>set vf mac addr 0 0 00:12:34:56:78:01
> +     testpmd>set vf mac addr 1 0 00:12:34:56:78:02
> +
> +3. start testpmd for VF
> +
> +    ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x0f8 -n 4 --master-lcore=3
> --socket-mem=1024,1024 --file-prefix=vf \
> +     -w 18:02.0 -w 18:0a.0 -- -i --txq=2 --rxq=2 --rxd=512 --txd=512
> + --nb-cores=4 --rss-ip
> +
> +    testpmd>set promisc all off
> +    testpmd>set fwd mac
> +    testpmd>start
> +
> +    send traffic and vefify throughput
> +
> +Test Csse: scalar/bulk vf performance
> +
> +1. change CONFIG_RTE_LIBRTE_AVF_INC_VECTOR=n in
> config/common_base, and
> +rebuild dpdk
> +
> +2. repeat test steps 2-4 in above test case: vector vf performance.
> \ No newline at end of file
> --
> 2.7.4


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [dts] [PATCH] add iavf test plan
@ 2019-04-16 16:11 xuyanjie
  2019-04-16 18:07 ` Tu, Lijuan
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: xuyanjie @ 2019-04-16 16:11 UTC (permalink / raw)
  To: dts; +Cc: xuyanjie

Signed-off-by: xuyanjie <yanjie.xu@intel.com>

diff --git a/test_plans/iavf_test_plan.rst b/test_plans/iavf_test_plan.rst
new file mode 100644
index 0000000..cec1de2
--- /dev/null
+++ b/test_plans/iavf_test_plan.rst
@@ -0,0 +1,465 @@
+ BSD LICENSE
+
+ Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
+ 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.
+
+======================
+DPDK iavf API Tests
+======================
+
+intel Adaptive Virtual Function(IAVF)
+
+Hardwares::
+------------
+I40E driver NIC (Fortville XXV710, Fortville Spirit, Fortville Eagle)
+
+Prerequisites
+=============
+1.Modify DPDK source code to enable AVF function for I40E NIC::
+
+    sed -i -e '/AVF_DEV_ID_ADAPTIVE_VF/s/0x1889/0x154c/g' drivers/net/avf/base/avf_devids.h
+    sed -i -e '/I40E_DEV_ID_VF/s/0x154C/0x164C/g'  drivers/net/i40e/base/i40e_devids.h
+
+    make install RTE_SDK=`pwd` T=x86_64-native-linuxapp-gcc
+
+2. Configiure PF and VF::
+
+    modprobe uio;
+    insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko;
+
+    ./usertools/dpdk-devbind.py --bind=igb_uio 18:00.0 18:00.1;
+
+    echo 1 > /sys/bus/pci/devices/0000\:18\:00.0/max_vfs
+    echo 1 > /sys/bus/pci/devices/0000\:18\:00.1/max_vfs
+
+    ./usertools/dpdk-devbind.py --bind=vfio-pci 18:02.0 18:0a.0
+    or
+    (./usertools/dpdk-devbind.py --bind=igb_uio 18:02.0 18:0a.0)
+
+3. Set PF ports up and congiure VF ports' mac::
+
+    ./app/testpmd -l 1-5 -n 4 --socket-mem=1024,1024 --file-prefix=pf -w 18:00.1 -w 18:00.0 -- -i
+
+4. Start up VF ports::
+   ./testpmd -l 6-10 -n 4 --master-lcore=6  --socket-mem=1024,1024 --file-prefix=vf  -w 18:0a.0 -w 18:02.0 -- -i --txq=4 --rxq=4  --nb-cores=4
+
+Test case: VF basic RX/TX
+==================================================================
+
+1. Start testpmd::
+
+      $ ./testpmd -l 6-10 -n 4 --master-lcore=6  --socket-mem=1024,1024 --file-prefix=vf  -w 18:0a.0 -w 18:02.0 -- -i --txq=4 --rxq=4  --nb-cores=4
+      run "start"
+2. Check and verified packets which received and forwarded
+
+Test cases: VF mac filter
+==================================================================
+
+Test Case: unicast test::
+
+    testpmd>set promisc all off
+    testpmd>set allmulti all off
+    testpmd>start
+
+    testpmd>mac_addr set 0 00:12:34:56:78:03
+
+    disable promisc mode, verify VF packet rx/tx can work fine with the specific mac addr.
+
+Test Case: multicast test::
+
+    testpmd>set promisc all off
+    testpmd>set allmulti all off
+    testpmd>start
+
+    Send packet with multicast MAC 01:80:C2:00:00:08, and check VF can not receive the packet.
+
+    testpmd>set allmulti all on
+
+    Send packet with multicast MAC 01:80:C2:00:00:08, and check VF can receive the packet.
+
+Test Case: broadcast test::
+
+    testpmd>set promisc all off
+    testpmd>start
+
+    Send packets with broadcast address ff:ff:ff:ff:ff:ff, and check VF can receive the packet
+
+Test Case: promiscuous mode::
+
+    testpmd>set promisc all on
+    testpmd>start
+
+    Send packet that different with vf mac, check packets can be received.
+
+Test Cases: VF VLAN feature vlan filter only work with promisc mode off
+===========================================================================
+
+Test Case: vlan filter ::
+
+    testpmd>port stop all
+    testpmd>set promisc all off
+    testpmd>vlan set filter off 0
+    testpmd>vlan set filter off 1
+    testpmd>vlan set strip off 0
+    testpmd>vlan set strip off 1
+
+    testpmd>vlan set filter on 0
+    testpmd>set fwd mac
+    testpmd>port start all
+    testpmd>start
+
+    packet with vlan can not be received, packet without vlan packet can be received.
+
+Test Case: rx_vlan ::
+
+    testpmd>port stop all
+    testpmd>set promisc all off
+    testpmd>vlan set filter off 0
+    testpmd>vlan set filter off 1
+    testpmd>vlan set strip off 0
+    testpmd>vlan set strip off 1
+
+    testpmd>vlan set filter on 0
+    testpmd>rx_vlan add 20 0
+    testpmd>set fwd mac
+    testpmd>port start all
+    testpmd>start
+
+Test Case: tx_vlan ::
+
+    setup VF vlan like the follow command, verify packet
+    that out from VF contain the vlan tag.
+
+    testpmd>port stop all
+    testpmd>set promisc all on
+    testpmd>set fwd mac
+    testpmd>vlan set filter off 0
+    testpmd>vlan set filter off 1
+    testpmd>vlan set strip off 0
+    testpmd>vlan set strip off 1
+    testpmd>tx_vlan set 1 20
+    testpmd>port start all
+    testpmd>start
+
+Test Case: vlan strip ::
+
+    setup strip on, vlan promisc on, verify vlan_id
+    was stripped by VF when it forward the packet to other vf port.
+
+    testpmd>port stop all
+    testpmd>set promisc all on
+    testpmd>set fwd mac
+    testpmd>vlan set filter off 0
+    testpmd>vlan set filter off 1
+    testpmd>vlan set strip off 0
+    testpmd>vlan set strip off 1
+    testpmd>vlan set strip on 0
+    testpmd>port start all
+    testpmd>start
+
+Test Case: vlan promisc mode ::
+
+    testpmd>port stop all
+    testpmd>vlan set filter off 0
+    testpmd>vlan set filter off 1
+    testpmd>vlan set strip off 0
+    testpmd>vlan set strip off 1
+
+    testpmd>set promisc all on
+    testpmd>set fwd mac
+    testpmd>port start all
+    testpmd>start
+
+    send packet with vlan or without vlan, both can be received and forwarded.
+
+Test Cases: VF jumboframe
+===================================================================
+
+Ensure Tester's ports support sending jumboframe::
+    ifconfig 'tester interface' mtu 9000
+
+Test Case: Check that no jumbo frame support ::
+
+       Launch testpmd for VF ports without enabling jumboframe option
+
+       ./app/testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-prefix=vf \
+                                       -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
+        testpmd>set fwd mac
+        testpmd>start
+        testpmd> stop
+	   Telling cores to stop
+		Waiting for lcores to finish...
+
+		  ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 1/Queue= 0 -------
+		  RX-packets: 2              TX-packets: 2              TX-dropped: 0
+		  ---------------------- Forward statistics for port 0  ----------------------
+		  RX-packets: 5              RX-dropped: 0             RX-total: 5
+		  TX-packets: 0              TX-dropped: 0             TX-total: 0
+		  ----------------------------------------------------------------------------
+
+		  ---------------------- Forward statistics for port 1  ----------------------
+		  RX-packets: 0              RX-dropped: 0             RX-total: 0
+		  TX-packets: 2              TX-dropped: 0             TX-total: 2
+		  ---------------------------------------------------------------------------
+		  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+		  RX-packets: 5              RX-dropped: 0             RX-total: 5
+		  TX-packets: 2              TX-dropped: 0             TX-total: 2
+		  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+        check packet less than the standard maximum frame (1518) can be received.
+        packet more than the standard maximum frame (1518) can not be received.
+
+Test Case: Check that with Jumbo Frames support::
+
+    packet lengths greater than the standard maximum frame (1518) and
+    lower or equal to the maximum frame length can be received. check
+    that packets larger than the configured maximum packet length
+    are dropped by the hardware.
+
+    Launch testpmd for VF ports with jumboframe option
+    $ ./testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-prefix=vf
+      -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
+    $ ./testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-prefix=vf
+      18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4 --max-pkt-len=3000 --tx-offloads=0x8000
+
+    testpmd>set fwd mac
+    testpmd>start
+
+2.packet size > 9001,  not forward , but RX-packets: counter increased
+
+Test Cases:VF rss
+====================================================================
+
+Test Case: VF RSS
+
+   $ ./testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-prefix=vf -w 18:02.0 -w 018:0a.0
+      -- -i --txq=4 --rxq=4  --nb-cores=4 --txqflags=0
+
+Test Case: test redirection Table Config ::
+   config hash reta table, send different flow type packet to VF port,
+   check packet received by different queue.
+
+   testpmd>port config 0 rss reta (0,0)
+   testpmd>port config 0 rss reta (1,1)
+   testpmd>port config 0 rss reta (2,2)
+   testpmd>port config 0 rss reta (3,3)
+   testpmd>port config 0 rss reta (60,0)
+   testpmd>port config 0 rss reta (61,1)
+   testpmd>port config 0 rss reta (62,2)
+   testpmd>port config 0 rss reta (63,3)
+
+   testpmd> port config all rss (all|ip|tcp|udp|sctp|ether|port|vxlan|geneve|nvgre|none)
+
+
+Test Cases:VF offload for checksum and tso
+====================================================================
+
+Test Case: enable HW checksum offload ::
+
+  Send packets with incorrect checksum to vf port, verify that the packets
+   can be received by VF port and checksum error reported,
+   the packets forwarded by VF port have the correct checksum value.
+
+   $ ./x86_64-native-linuxapp-gcc/app/testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024
+      --file-prefix=vf  -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
+
+    testpmd>port stop all
+
+    testpmd>csum set ip hw 0
+    testpmd>csum set udp hw 0
+    testpmd>csum set tcp hw 0
+    testpmd>csum set sctp hw 0
+
+    testpmd>csum set ip hw 1
+    testpmd>csum set udp hw 1
+    testpmd>csum set tcp hw 1
+    testpmd>csum set sctp hw 1
+
+    testpmd>set fwd csum
+    testpmd>set verbose 1
+
+    testpmd>port start all
+    testpmd>start
+
+Test Case: SW checksum, disable HW checksum offload ::
+
+   Send packets with incorrect checksum to vf port, verify that the packets
+   can be received by VF port and checksum error reported, the packets
+   forwarded by VF port have the correct checksum value.
+
+   $ ./x86_64-native-linuxapp-gcc/app/testpmd -l 6-10 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-prefix=vf\
+     -w 18:02.0 -w 18:0a.0 -- -i --txq=4 --rxq=4  --nb-cores=4
+
+    testpmd>port stop all
+    testpmd>csum set ip sw 0
+    testpmd>csum set udp sw 0
+    testpmd>csum set tcp sw 0
+    testpmd>csum set sctp sw 0
+
+    testpmd>csum set ip sw 1
+    testpmd>csum set udp sw 1
+    testpmd>csum set tcp sw 1
+    testpmd>csum set sctp sw 1
+
+    testpmd>set fwd csum
+    testpmd>set verbose 1
+    testpmd>port start all
+    testpmd>start
+
+Test Case: tso ::
+
+    enable tso on VF port, verify tcp packets that send out by
+    VF port was splitted according to tso size.
+
+    testpmd>port stop all
+    testpmd>set verbose 1
+    testpmd>csum set ip hw 0
+    testpmd>csum set udp hw 0
+    testpmd>csum set tcp hw 0
+    testpmd>csum set sctp hw 0
+
+    testpmd>csum set ip hw 1
+    testpmd>csum set udp hw 1
+    testpmd>csum set tcp hw 1
+    testpmd>csum set sctp hw 1
+
+    testpmd>tso set 800 1
+    testpmd>set fwd csum
+    testpmd>port start all
+    testpmd>start
+
+Test Cases:  Rx interrupt
+====================================================================
+
+Test case: rx interrupt
+
+1. build build l3fwd power
+    make -C examples/l3fwd-power RTE_SDK=`pwd` T=x86_64-native-linuxapp-gcc
+
+2. build two VFs with igb_uio
+   modprobe uio;
+   insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko;
+   # ./usertools/dpdk-devbind.py --bind=igb_uio 18:02.0 18:0a.0
+
+   if in VM, enable vfio noiommu
+
+   modprobe -r vfio_iommu_type1
+   modprobe -r vfio
+   modprobe  vfio enable_unsafe_noiommu_mode=1
+   cat /sys/module/vfio/parameters/enable_unsafe_noiommu_mode
+   modprobe vfio-pci
+
+3. start l3fwd power with one queue per port.
+   $ ./examples/l3fwd-power/build/l3fwd-power -l 6,7 -n 4 -w 18:02.0 -w 18:0a.0 -- -p 0x3 --config '(0,0,6),(1,0,7)'
+
+   Send one packet to VF0 and VF1, check that thread on core6 and core7 waked up::
+
+   $ L3FWD_POWER: lcore 6 is waked up from rx interrupt on port 0 queue 0
+   $  L3FWD_POWER: lcore 7 is waked up from rx interrupt on port 0 queue 0
+
+    Check the packet has been normally forwarded.
+
+   After the packet forwarded, thread on core6 and core 7 will return to sleep::
+
+   $ L3FWD_POWER: lcore 6 sleeps until interrupt triggers
+   $ L3FWD_POWER: lcore 7 sleeps until interrupt triggers
+
+   Send packet flows to VF0 and VF1, check that thread on core1 and core2 will
+   keep up awake.
+   Bi-direction packet :
+
+VF veb test case
+====================================================================
+
+Test Case: veb performance ::
+
+    create 2 VFs from 1 PF, start testpmd with 2VFs individually, verify throughput.
+
+1. create 2 VFs from 1 PF, and start PF
+
+      echo 2 > /sys/bus/pci/devices/0000\:05\:00.0/max_vfs;
+      ./usertools/dpdk-devbind.py --bind=vfio-pci 18:02.0 18:0a.1
+
+      ./app/testpmd -l 1,2 -n 4 --socket-mem=1024,1024 --file-prefix=pf -w 18:00.0 -- -i
+
+       testpmd>set vf mac addr 0 0 00:12:34:56:78:01
+       testpmd>set vf mac addr 0 1 00:12:34:56:78:02
+
+2. start testpmd with 2VFs individually
+
+      ./app/testpmd -l 3-5 -n 4 --master-lcore=3 --socket-mem=1024,1024 --file-prefix=vf1 -w 18:02.0\
+        -- -i --txq=2 --rxq=2 --rxd=512 --txd=512 --nb-cores=2 --rss-ip --eth-peer=0,00:12:34:56:78:02
+
+      testpmd>set promisc all off
+      testpmd>set fwd mac
+      testpmd>start
+
+     ./x86_64-native-linuxapp-gcc/app/testpmd -l 6-8 -n 4 --master-lcore=6 --socket-mem=1024,1024 --file-prefix=vf2 \
+         -w 18:0.0 -- -i --txq=2 --rxq=2 --rxd=512 --txd=512 --nb-cores=2 --rss-ip
+
+      testpmd>set promisc all off
+      testpmd>set fwd mac
+      testpmd>start
+
+  3). send traffic and verify throughput
+
+
+VF performance
+====================================================================
+
+Test Case: vector vf performance
+
+1.config vector=y in config/common_base, and rebuild dpdk
+
+2. start testpmd for PF
+
+    ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 --socket-mem=1024,1024 --file-prefix=pf  -w 18:00.0 -w 18:00.1 -- -i
+
+    testpmd>set vf mac addr 0 0 00:12:34:56:78:01
+     testpmd>set vf mac addr 1 0 00:12:34:56:78:02
+
+3. start testpmd for VF
+
+    ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x0f8 -n 4 --master-lcore=3 --socket-mem=1024,1024 --file-prefix=vf \
+     -w 18:02.0 -w 18:0a.0 -- -i --txq=2 --rxq=2 --rxd=512 --txd=512 --nb-cores=4 --rss-ip
+
+    testpmd>set promisc all off
+    testpmd>set fwd mac
+    testpmd>start
+
+    send traffic and vefify throughput
+
+Test Csse: scalar/bulk vf performance
+
+1. change CONFIG_RTE_LIBRTE_AVF_INC_VECTOR=n in config/common_base, and rebuild dpdk
+
+2. repeat test steps 2-4 in above test case: vector vf performance.
\ No newline at end of file
-- 
2.7.4


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-04-23 21:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-17  8:53 [dts] [PATCH] add iavf test plan xuyanjie
2019-04-23 21:05 ` Tu, Lijuan
  -- strict thread matches above, loose matches on Subject: below --
2019-04-16 16:11 xuyanjie
2019-04-16 18:07 ` Tu, Lijuan
2019-04-16 19:28 ` Rami Rosen
2019-04-17  2:30 ` Lin, Xueqin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).