[V1] test_plans/runtime_vf_queue_number: adjust test plan format

Message ID 20220608045029.350571-1-yaqi.tang@intel.com (mailing list archive)
State Accepted
Headers
Series [V1] test_plans/runtime_vf_queue_number: adjust test plan format |

Checks

Context Check Description
ci/Intel-dts-format-test success Testing OK
ci/Intel-dts-pylama-test success Testing OK
ci/Intel-dts-doc-test success Testing OK
ci/Intel-dts-suite-test warning SKIPPED

Commit Message

Yaqi Tang June 8, 2022, 4:50 a.m. UTC
  Adjust the format of test plan according to test plan template,
and modify test case 1 vf to VF.

Signed-off-by: Yaqi Tang <yaqi.tang@intel.com>
---
 .../runtime_vf_queue_number_test_plan.rst     | 272 +++++++++---------
 1 file changed, 138 insertions(+), 134 deletions(-)
  

Comments

Tu, Lijuan June 15, 2022, 9:05 a.m. UTC | #1
On Wed,  8 Jun 2022 04:50:28 +0000, Yaqi Tang <yaqi.tang@intel.com> wrote:
> Adjust the format of test plan according to test plan template,
> and modify test case 1 vf to VF.
> 
> Signed-off-by: Yaqi Tang <yaqi.tang@intel.com>


Applied, thanks
  

Patch

diff --git a/test_plans/runtime_vf_queue_number_test_plan.rst b/test_plans/runtime_vf_queue_number_test_plan.rst
index 1d8dde99..b60ab2d4 100644
--- a/test_plans/runtime_vf_queue_number_test_plan.rst
+++ b/test_plans/runtime_vf_queue_number_test_plan.rst
@@ -1,10 +1,12 @@ 
 .. SPDX-License-Identifier: BSD-3-Clause
    Copyright(c) 2019 Intel Corporation
 
-====================================
+==================================
 VF Request Queue Number At Runtime
-====================================
+==================================
 
+Description
+===========
 Both kernel driver, I40E and DPDK PMD driver, igb_uio/vfio-pci support
 VF request queue number at runtime, that means the users could configure
 the VF queue number at runtime.
@@ -31,109 +33,112 @@  Please read all test plans to get complete information.
 Prerequisites
 =============
 
-1. Hardware:
-
--  Intel® Ethernet 700 Series(X710/XXV710/XL710)
-
-2. Software:
-
-- DPDK: http://dpdk.org/git/dpdk (version: 19.02+)
-- Scapy: http://www.secdev.org/projects/scapy/
-
-3. Scenario:
+topology
+--------
+.. figure:: image/2vf1pf.png
 
-- DPDK PF + DPDK VF
+Hardware
+--------
+Supported NICs: Intel® Ethernet 700 Series(X710/XXV710/XL710)
 
-4. test topology:
+Software
+--------
+dpdk: http://dpdk.org/git/dpdk (version: 19.02+)
+scapy: http://www.secdev.org/projects/scapy/
 
-.. figure:: image/2vf1pf.png
+Scenario
+--------
+DPDK PF + DPDK VF
 
 Set up scenario
-===============
+---------------
 
 Assume create 2 vf from 1pf.
 
 1. Bind PF to DPDK driver, igb_uio::
 
-     ./usertools/dpdk-devbind.py -b igb_uio 0000:18:00.0
+    ./usertools/dpdk-devbind.py -b igb_uio 0000:18:00.0
 
 2. Create 2 vf from PF::
 
-     echo 2 >/sys/bus/pci/devices/0000:18:00.0/max_vfs
+    echo 2 >/sys/bus/pci/devices/0000:18:00.0/max_vfs
 
-     usertools/dpdk-devbind.py --s
-     0000:18:00.0 'Ethernet Controller X710 for 10GbE SFP+' if= drv=igb_uio unused=i40e
-     0000:18:02.0 'XL710/X710 Virtual Function' unused=
+    usertools/dpdk-devbind.py --s
+    0000:18:00.0 'Ethernet Controller X710 for 10GbE SFP+' if= drv=igb_uio unused=i40e
+    0000:18:02.0 'XL710/X710 Virtual Function' unused=
 
 3. Detach VF from the host, bind them to vfio-pci driver::
 
-     modprobe vfio
-     modprobe vfio-pci
+    modprobe vfio
+    modprobe vfio-pci
 
    Note: there are 2 ways to bind devices to vfio-pci:
 
 - Leverage usertools in dpdk package::
 
-     usertools/dpdk-devbind.py --bind=vfio-pci 0000:18:02.0
+    usertools/dpdk-devbind.py --bind=vfio-pci 0000:18:02.0
 
 - leverage Linux command::
 
-     using `lspci -nn|grep -i ethernet` got VF device id, for example "8086 154c",
+    using `lspci -nn|grep -i ethernet` got VF device id, for example "8086 154c",
 
-     echo "8086 154c" > /sys/bus/pci/drivers/vfio-pci/new_id
-     echo 0000:18:02.0 > /sys/bus/pci/devices/0000:18:02.0/driver/unbind
-     echo 0000:18:02.0 > /sys/bus/pci/drivers/vfio-pci/bind
+    echo "8086 154c" > /sys/bus/pci/drivers/vfio-pci/new_id
+    echo 0000:18:02.0 > /sys/bus/pci/devices/0000:18:02.0/driver/unbind
+    echo 0000:18:02.0 > /sys/bus/pci/drivers/vfio-pci/bind
 
 4. Passthrough VFs 18:02.0 to vm0 and start vm0::
 
-     /usr/bin/qemu-system-x86_64  -name vm0 -enable-kvm \
-     -cpu host -smp 4 -m 2048 -drive file=/home/image/sriov-1.img -vnc :1 \
-     -device vfio-pci,host=0000:18:02.0,id=pt_0
+    /usr/bin/qemu-system-x86_64  -name vm0 -enable-kvm \
+    -cpu host -smp 4 -m 2048 -drive file=/home/image/sriov-1.img -vnc :1 \
+    -device vfio-pci,host=0000:18:02.0,id=pt_0
 
-Now the scenario has been set up, you will have 1 port in the vm0.
+   Now the scenario has been set up, you will have 1 port in the vm0.
 
 5. Bind VF to dpdk driver igb_uio in VM::
 
     usertools/dpdk-devbind.py --bind=igb_uio 0000:03:00.0
 
-Test case 1: reserve valid vf queue number
-==========================================
+Test case
+=========
+
+Test case 1: reserve valid VF queue number
+------------------------------------------
 
 1. Start PF testpmd with random queue-num-per-vf in [1, 2, 4, 8 ,16], for example, we use 4 as the reserved vf queue numbers::
 
-     ./<build_target>/app/dpdk-testpmd -c f -n 4 -a 18:00.0,queue-num-per-vf=4 \
-     --file-prefix=test1 --socket-mem 1024,1024 -- -i
+    ./<build_target>/app/dpdk-testpmd -c f -n 4 -a 18:00.0,queue-num-per-vf=4 \
+    --file-prefix=test1 --socket-mem 1024,1024 -- -i
 
    Note testpmd can be started normally without any wrong or error.
 
 2. Start VF testpmd::
 
-     ./<build_target>/app/dpdk-testpmd -c 0xf0 -n 4 -a 03:00.0 \
-     --file-prefix=test2 --socket-mem 1024,1024 -- -i
+    ./<build_target>/app/dpdk-testpmd -c 0xf0 -n 4 -a 03:00.0 \
+    --file-prefix=test2 --socket-mem 1024,1024 -- -i
 
 3. VF request a queue number that is equal to reserved queue number, and we can not find VF reset while confiuring it::
 
-     testpmd> port stop all
-     testpmd> port config all txq 4
-     testpmd> port config all rxq 4
-     testpmd> port start all
+    testpmd> port stop all
+    testpmd> port config all txq 4
+    testpmd> port config all rxq 4
+    testpmd> port start all
 
-   Start forwarding, you can see the actual queue number is 4, and there is no VF reset operation::
+4. Start forwarding, you can see the actual queue number is 4, and there is no VF reset operation::
 
-     testpmd> start
-     port 0: RX queue number: 4 Tx queue number: 4
+    testpmd> start
+    port 0: RX queue number: 4 Tx queue number: 4
 
-4. VF request a queue number that is greater than reserved queue number, and we find VF reset while confiuring it::
+5. VF request a queue number that is greater than reserved queue number, and we find VF reset while confiuring it::
 
-     testpmd> port stop all
-     testpmd> port config all txq 5
-     testpmd> port config all rxq 5
-     testpmd> port start all
+    testpmd> port stop all
+    testpmd> port config all txq 5
+    testpmd> port config all rxq 5
+    testpmd> port start all
 
-   Start forwarding, you can see the actual queue number is 5, and find VF reseted::
+6. Start forwarding, you can see the actual queue number is 5, and find VF reseted::
 
-     testpmd> start
-     port 0: RX queue number: 5 Tx queue number: 5
+    testpmd> start
+    port 0: RX queue number: 5 Tx queue number: 5
 
 Note: Please find the expected behavior with different queue-num-per-vf in table[1].
 
@@ -162,119 +167,119 @@  Note: Please find the expected behavior with different queue-num-per-vf in table
     +------------------+---------------------+--------------------+
 
 Test case 2: reserve invalid VF queue number
-============================================
+--------------------------------------------
 
 1. Start PF testpmd with random queue-num-per-vf in [0, 3, 5-7 , 9-15, 17], for example, we use 0 as the reserved vf queue numbers::
 
-     ./<build_target>/app/dpdk-testpmd -c f -n 4 -a 18:00.0,queue-num-per-vf=0 \
-     --file-prefix=test1 --socket-mem 1024,1024 -- -i
+    ./<build_target>/app/dpdk-testpmd -c f -n 4 -a 18:00.0,queue-num-per-vf=0 \
+    --file-prefix=test1 --socket-mem 1024,1024 -- -i
 
 2. Verify testpmd started with logs as below::
 
-     i40e_pf_parse_vf_queue_number_handler(): Wrong VF queue number = 0, it must be power of 2 and equal or less than 16 !, Now it is kept the value = 4
+    i40e_pf_parse_vf_queue_number_handler(): Wrong VF queue number = 0, it must be power of 2 and equal or less than 16 !, Now it is kept the value = 4
 
 Test case 3: set valid VF queue number in testpmd command-line options
-======================================================================
+----------------------------------------------------------------------
 
 1. Start PF testpmd::
 
-      ./<build_target>/app/dpdk-testpmd -c f -n 4 -a 18:00.0 \
-      --file-prefix=test1 --socket-mem 1024,1024 -- -i
+    ./<build_target>/app/dpdk-testpmd -c f -n 4 -a 18:00.0 \
+    --file-prefix=test1 --socket-mem 1024,1024 -- -i
 
 2. Start VF testpmd with "--rxq=[rxq] --txq=[txq]", and random valid values from 1 to 16, take 3 for example::
 
-     ./<build_target>/app/dpdk-testpmd -c 0xf0 -n 4 -a 18:02.0 --file-prefix=test2 \
-     --socket-mem 1024,1024 -- -i --rxq=3 --txq=3
+    ./<build_target>/app/dpdk-testpmd -c 0xf0 -n 4 -a 18:02.0 --file-prefix=test2 \
+    --socket-mem 1024,1024 -- -i --rxq=3 --txq=3
 
 3. Configure vf forwarding prerequisits and start forwarding::
 
-     testpmd> set promisc all off
-     testpmd> set fwd mac
+    testpmd> set promisc all off
+    testpmd> set fwd mac
 
 4. Start forwarding, and verfiy the queue number informantion. both the RX queue number and the TX queue number must be same as your configuration. Here is 3::
 
-     testpmd> start
+    testpmd> start
 
-     port 0: RX queue number: 3 Tx queue number: 3
+    port 0: RX queue number: 3 Tx queue number: 3
 
 5. Send packets to VF from tester, and make sure they match the default RSS rules, IPV4_UNKNOW, and will be distributed to all the queues that you configured, Here is 3::
 
-     pkt1 = Ether(dst="$vf_mac", src="$tester_mac")/IP(src="10.0.0.1",dst="192.168.0.1")/("X"*48)
-     pkt2 = Ether(dst="$vf_mac", src="$tester_mac")/IP(src="10.0.0.1",dst="192.168.0.2")/("X"*48)
-     pkt3 = Ether(dst="$vf_mac", src="$tester_mac")/IP(src="10.0.0.1",dst="192.168.0.3")/("X"*48)
+    pkt1 = Ether(dst="$vf_mac", src="$tester_mac")/IP(src="10.0.0.1",dst="192.168.0.1")/("X"*48)
+    pkt2 = Ether(dst="$vf_mac", src="$tester_mac")/IP(src="10.0.0.1",dst="192.168.0.2")/("X"*48)
+    pkt3 = Ether(dst="$vf_mac", src="$tester_mac")/IP(src="10.0.0.1",dst="192.168.0.3")/("X"*48)
 
 6. Stop forwarding, and check the queues statistics, every RX/TX queue must has 1 packet go through, and total 3 packets in uni-direction as well as 6 packets in bi-direction::
 
     testpmd> stop
 
-      ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
-      RX-packets: 1       TX-packets: 1       TX-dropped: 0
-      ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
-      RX-packets: 1              TX-packets: 1             TX-dropped: 0
-      ------- Forward Stats for RX Port= 0/Queue= 2 -> TX Port= 0/Queue= 2 -------
-      RX-packets: 1              TX-packets: 1             TX-dropped: 0
-      ---------------------- Forward statistics for port 0  ----------------------
-      RX-packets: 3      RX-dropped: 0     RX-total: 3
-      TX-packets: 3       TX-dropped: 0             TX-total: 3
-      ----------------------------------------------------------------------------
+    ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 0/Queue= 0 -------
+    RX-packets: 1       TX-packets: 1       TX-dropped: 0
+    ------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 0/Queue= 1 -------
+    RX-packets: 1              TX-packets: 1             TX-dropped: 0
+    ------- Forward Stats for RX Port= 0/Queue= 2 -> TX Port= 0/Queue= 2 -------
+    RX-packets: 1              TX-packets: 1             TX-dropped: 0
+    ---------------------- Forward statistics for port 0  ----------------------
+    RX-packets: 3      RX-dropped: 0     RX-total: 3
+    TX-packets: 3       TX-dropped: 0             TX-total: 3
+    ----------------------------------------------------------------------------
 
 7. Repeat step 2 to 6 with the mininum queue number, 1, and the maximum queue number, 16.
 
 Test case 4: set invalid VF queue number in testpmd command-line options
-========================================================================
+------------------------------------------------------------------------
 
 1. Start PF testpmd::
 
-     ./<build_target>/app/dpdk-testpmd -c f -n 4 -a 18:00.0 \
-     --file-prefix=test1 --socket-mem 1024,1024 -- -i
+    ./<build_target>/app/dpdk-testpmd -c f -n 4 -a 18:00.0 \
+    --file-prefix=test1 --socket-mem 1024,1024 -- -i
 
-2. Start VF testpmd with "--rxq=0 --txq=0" ::
+2. Start VF testpmd with "--rxq=0 --txq=0"::
 
-     ./<build_target>/app/dpdk-testpmd -c 0xf0 -n 4 -a 18:02.0 --file-prefix=test2 \
-     --socket-mem 1024,1024 -- -i --rxq=0 --txq=0
+    ./<build_target>/app/dpdk-testpmd -c 0xf0 -n 4 -a 18:02.0 --file-prefix=test2 \
+    --socket-mem 1024,1024 -- -i --rxq=0 --txq=0
 
-   Verify testpmd exited with error as below::
+3. Verify testpmd exited with error as below::
 
     Either rx or tx queues should be non-zero
 
-3. Start VF testpmd with "--rxq=17 --txq=17" ::
+4. Start VF testpmd with "--rxq=17 --txq=17"::
 
-     ./<build_target>/app/dpdk-testpmd -c 0xf0 -n 4 -a 18:02.0 --file-prefix=test2 \
-     --socket-mem 1024,1024 -- -i --rxq=17 --txq=17
+    ./<build_target>/app/dpdk-testpmd -c 0xf0 -n 4 -a 18:02.0 --file-prefix=test2 \
+    --socket-mem 1024,1024 -- -i --rxq=17 --txq=17
 
-   Verify testpmd exited with error as below::
+5. Verify testpmd exited with error as below::
 
-     txq 17 invalid - must be >= 0 && <= 16
+    txq 17 invalid - must be >= 0 && <= 16
 
 Test case 5: set valid VF queue number with testpmd function command
-====================================================================
+--------------------------------------------------------------------
 
 1. Start PF testpmd::
 
-     ./<build_target>/app/dpdk-testpmd -c f -n 4 -a 18:00.0 \
-     --file-prefix=test1 --socket-mem 1024,1024 -- -i
+    ./<build_target>/app/dpdk-testpmd -c f -n 4 -a 18:00.0 \
+    --file-prefix=test1 --socket-mem 1024,1024 -- -i
 
 2. Start VF testpmd without setting "rxq" and "txq"::
 
-     ./<build_target>/app/dpdk-testpmd -c 0xf0 -n 4 -a 05:02.0 --file-prefix=test2 \
-     --socket-mem 1024,1024 -- -i
+    ./<build_target>/app/dpdk-testpmd -c 0xf0 -n 4 -a 05:02.0 --file-prefix=test2 \
+    --socket-mem 1024,1024 -- -i
 
 3. Configure vf forwarding prerequisits and start forwarding::
 
-     testpmd> set promisc all off
-     testpmd> set fwd mac
+    testpmd> set promisc all off
+    testpmd> set fwd mac
 
 4. Set rx queue number and tx queue number with random value range from 1 to 16 with testpmd function command, take 3 for example::
 
-     testpmd> port stop all
-     testpmd> port config all rxq 3
-     testpmd> port config all txq 3
-     testpmd> port start all
+    testpmd> port stop all
+    testpmd> port config all rxq 3
+    testpmd> port config all txq 3
+    testpmd> port start all
 
 5. Repeat step 4-7 of test case 3.
 
 Test case 6: set invalid VF queue number with testpmd function command
-======================================================================
+----------------------------------------------------------------------
 
 1. Start PF testpmd::
 
@@ -287,57 +292,56 @@  Test case 6: set invalid VF queue number with testpmd function command
      --socket-mem 1024,1024 -- -i
 
 
-3. Set rx queue number and tx queue number with 0 ::
+3. Set rx queue number and tx queue number with 0::
 
      testpmd> port stop all
      testpmd> port config all rxq 0
      testpmd> port config all txq 0
      testpmd> port start all
 
-4. Set rx queue number and tx queue number with 17 ::
+4. Set rx queue number and tx queue number with 17::
 
      testpmd> port stop all
      testpmd> port config all rxq 17
      testpmd> port config all txq 17
      testpmd> port start all
 
-Verify error information::
-
-     Fail: input rxq (17) can't be greater than max_rx_queues (16) of port 0
+5. Verify error information::
 
+    Fail: input rxq (17) can't be greater than max_rx_queues (16) of port 0
 
 Test case 7: Reserve VF queue number when VF bind to kernel driver
-==================================================================
+------------------------------------------------------------------
 
 1. bind vf to kernel driver iavf::
 
-     ./usertools/dpdk-devbind.py -b i40e 0000:18:02.0
+    ./usertools/dpdk-devbind.py -b i40e 0000:18:02.0
 
-2. Reserve VF queue number ::
+2. Reserve VF queue number::
 
-     ./<build_target>/app/dpdk-testpmd -c f -n 4 -a 18:00.0,queue-num-per-vf=2 \
-     --file-prefix=test1 --socket-mem 1024,1024 -- -i
+    ./<build_target>/app/dpdk-testpmd -c f -n 4 -a 18:00.0,queue-num-per-vf=2 \
+    --file-prefix=test1 --socket-mem 1024,1024 -- -i
 
 3. Check the VF0 rxq and txq number is 2::
 
-     ethtool -S enp5s2
-     NIC statistics:
-          rx_bytes: 0
-          rx_unicast: 0
-          rx_multicast: 0
-          rx_broadcast: 0
-          rx_discards: 0
-          rx_unknown_protocol: 0
-          tx_bytes: 0
-          tx_unicast: 0
-          tx_multicast: 0
-          tx_broadcast: 0
-          tx_discards: 0
-          tx_errors: 0
-          tx-0.packets: 0
-          tx-0.bytes: 0
-          tx-1.packets: 0
-          tx-1.bytes: 0
-          rx-0.packets: 0
-          rx-0.bytes: 0
-          rx-1.packets: 0
+    ethtool -S enp5s2
+    NIC statistics:
+        rx_bytes: 0
+        rx_unicast: 0
+        rx_multicast: 0
+        rx_broadcast: 0
+        rx_discards: 0
+        rx_unknown_protocol: 0
+        tx_bytes: 0
+        tx_unicast: 0
+        tx_multicast: 0
+        tx_broadcast: 0
+        tx_discards: 0
+        tx_errors: 0
+        tx-0.packets: 0
+        tx-0.bytes: 0
+        tx-1.packets: 0
+        tx-1.bytes: 0
+        rx-0.packets: 0
+        rx-0.bytes: 0
+        rx-1.packets: 0