test suite reviews and discussions
 help / color / Atom feed
* [dts] [PATCH V1] test_plan: add test plan for port representor
@ 2019-09-20  6:34 Zhu Tao
  2019-10-25  7:07 ` Zhang, Yuwei1
  0 siblings, 1 reply; 3+ messages in thread
From: Zhu Tao @ 2019-09-20  6:34 UTC (permalink / raw)
  To: dts; +Cc: Zhu Tao

add port_representor_test_plan.rst to test_plans

Signed-off-by: Zhu Tao <taox.zhu@intel.com>
---
 test_plans/port_representor_test_plan.rst | 206 ++++++++++++++++++++++
 1 file changed, 206 insertions(+)
 create mode 100644 test_plans/port_representor_test_plan.rst

diff --git a/test_plans/port_representor_test_plan.rst b/test_plans/port_representor_test_plan.rst
new file mode 100644
index 0000000..e7c1849
--- /dev/null
+++ b/test_plans/port_representor_test_plan.rst
@@ -0,0 +1,206 @@
+.. Copyright (c) <2019>, Intel Corporation
+         All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions
+   are met:
+
+   - Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+   - Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in
+     the documentation and/or other materials provided with the
+     distribution.
+
+   - Neither the name of Intel Corporation nor the names of its
+     contributors may be used to endorse or promote products derived
+     from this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+   COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+   OF THE POSSIBILITY OF SUCH DAMAGE.
+
+==============================================
+Port Representor Tests
+==============================================
+
+Description
+===========
+Use two representor ports as the control plane to manage the two VFs,
+the control plane could change VFs behavior such as change promiscous
+mode, stats reset, etc. our statistical data information is independent
+on the control plane and data plane.
+
+Prerequisites
+===============
+Create two VFs and two VFs representor ports which are used as control plane.
+
+1. bind PF to igb_uio::
+
+    ./usertools/dpdk-devbind.py -b igb_uio 0000:af:00.0
+
+2. create two VFs from PF::
+
+    echo 2 > /sys/bus/pci/devices/0000\:af\:00.0/max_vfs
+
+3. bind two VFs to vfio-pci::
+
+    ./usertools/dpdk-devbind.py -b vfio-pci 0000:af:02.0 0000:af:02.1
+
+4. start a testpmd with create 2 VFs representor ports as control plane named testpmd-pf::
+
+    ./testpmd --lcores 1,2 -n 4 -w af:00.0,representor=0-1 --socket-mem 1024,1024 \
+            --proc-type auto --file-prefix testpmd-pf -- -i --port-topology=chained
+
+5. start two testpmd as dataplane named testpmd-vf0/testpmd-vf1(case 3 run later)::
+
+    ./testpmd --lcores 3,4 -n 4 -w af:02.0 --socket-mem 1024,1024 --proc-type auto --file-prefix testpmd-vf0 -- -i
+    ./testpmd --lcores 5,6 -n 4 -w af:02.1 --socket-mem 1024,1024 --proc-type auto --file-prefix testpmd-vf1 -- -i
+
+Note: Every case needs to restart testpmd.
+
+Test Cases
+==========
+
+1. Test Case 1: VF Stats show and clear [ixgbe not support]
+-----------------------------------------------------------
+Description: use control testpmd to get and clear dataplane testpmd ports Stats.
+
+1. prepare 3 testpmd to receive packets::
+
+    PF  testpmd> set promisc 0 off
+    PF  testpmd> start
+    VF0 testpmd> set promisc 0 off
+    VF0 testpmd> start
+    VF1 testpmd> set promisc 0 off
+    VF1 testpmd> start
+
+2. send 30 packets by scapy as below::
+
+    scapy> pkt1=Ether(src=src_mac, dst=pf_mac)/IP()
+    scapy> pkt2=Ether(src=src_mac, dst=vf0_mac)/IP()
+    scapy> pkt3=Ether(src=src_mac, dst=vf1_mac)/IP()
+    scapy> pkts=[pkt1, pkt2, pkt3]*10
+    scapy> sendp(pkts, iface="ens785f0")
+
+3. check port stats in control testpmd, it will show 1 PF and 2 VF stats::
+
+    PF testpmd> show port stats all
+
+  expected result:
+  VF0 and VF1 will show receive 10 packets separately in control testmpd.
+
+4. clear port stats in control testpmd::
+
+    PF testpmd> clear vf stats 0 0
+    PF testpmd> clear vf stats 0 1
+    PF testpmd> clear port stats all
+    PF testpmd> show port stats all
+
+  expected result:
+  all the testpmd's port stats should be cleared
+
+Note: PF statistics superimpose the number of VFs, and the independent command
+      'clear vf stats <vf-port-id>' to clear this part of the data.
+
+2. Test Case 2: VF Promiscous enable/disable
+--------------------------------------------
+Description: use control testpmd to enable/disable dataplane testpmd ports promiscous mode.
+
+1. prepare 3 testpmd to receive packets, turn on VF0 promisc mode in control testpmd::
+
+    PF  testpmd> set promisc 0 off
+    PF  testpmd> start
+    VF0 testpmd> set promisc 0 off
+    VF0 testpmd> start
+    VF1 testpmd> set promisc 0 off
+    VF1 testpmd> start
+    PF  testpmd> set promisc 1 on
+
+2. send 40 packets by scapy as below::
+
+    scapy> pkt1=Ether(src=src_mac, dst=pf_mac)/IP()
+    scapy> pkt2=Ether(src=src_mac, dst=vf0_mac)/IP()
+    scapy> pkt3=Ether(src=src_mac, dst=vf1_mac)/IP()
+    scapy> pkt4=Ether(src=src_mac, dst=unicast_mac)/IP()
+    scapy> pkts=[pkt1, pkt2, pkt3, pkt4]*10
+    scapy> sendp(pkts, iface="ens785f0")
+
+3. check port stats in DUT::
+
+    PF testpmd> show port stats all
+
+  expected result:
+  VF0 should receive 20 packets(10 vf0_mac and 10 unicast_mac) and VF1 show receive 10
+  packets in representor ports of PF.
+
+3. Test Case 3: set VF MAC address
+----------------------------------
+Description: use control testpmd to set vf mac address
+
+1. Run PF testpmd with PF first, set VF0 and VF1 mac address use representor ports::
+
+    PF testpmd> mac_addr set 1 aa:11:22:33:44:55
+    PF testpmd> mac_addr set 2 aa:22:33:44:55:66
+    PF testpmd> set promisc 0 off
+    PF testpmd> start
+
+2. Run VFs testpmd, and turn off promisc mode::
+
+    VF0 testpmd> set promisc 0 off
+    VF0 testpmd> start
+    VF1 testpmd> set promisc 0 off
+    VF1 testpmd> start
+
+3. use test case 2 step 2 to send packets from traffic generator
+
+4. check port stats in DUT::
+
+    PF testpmd> show port stats all
+
+  expected result:
+  VF0 should receive 10 packets and VF1 show receive 10 packets in representor ports of PF.
+
+4. Test Case 4: set vlan filter
+-------------------------------
+Description: use control testpmd to set vlan
+
+1. set promisc mode off in control testpmd, turn on vlan filter, add vlan filter in each VF::
+
+    PF testpmd> set promisc 1 off
+    PF testpmd> vlan set filter on 1
+    PF testpmd> rx_vlan add 3 1
+    PF testpmd> set promisc 2 off
+    PF testpmd> vlan set filter on 2
+    PF testpmd> rx_vlan add 4 2
+    VF0 testpmd> start
+    VF1 testpmd> start
+
+
+2. use scapy to send packets as below::
+
+    scapy> pkt1=Ether(src=src_mac, dst=vf0_mac)/Dot1Q(vlan=3)/IP()
+    scapy> pkt2=Ether(src=src_mac, dst=vf1_mac)/Dot1Q(vlan=4)/IP()
+    scapy> pkts=[pkt1, pkt2]*10
+    scapy> sendp(pkts, iface="ens785f0")
+
+3. check port stats in 2 VF testpmd:
+  expected result:
+  2 VF testpmds should receive 10 packets separately.
+
+
+
+
+
+
+
-- 
2.21.0.windows.1


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

* Re: [dts] [PATCH V1] test_plan: add test plan for port representor
  2019-09-20  6:34 [dts] [PATCH V1] test_plan: add test plan for port representor Zhu Tao
@ 2019-10-25  7:07 ` Zhang, Yuwei1
  2019-11-27  9:01   ` Tu, Lijuan
  0 siblings, 1 reply; 3+ messages in thread
From: Zhang, Yuwei1 @ 2019-10-25  7:07 UTC (permalink / raw)
  To: Zhu, TaoX, dts; +Cc: Zhu, TaoX

Acked-by Yuwei Zhang <yuwei1.zhang@intel.com>

-----Original Message-----
From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Zhu Tao
Sent: Friday, September 20, 2019 2:35 PM
To: dts@dpdk.org
Cc: Zhu, TaoX <taox.zhu@intel.com>
Subject: [dts] [PATCH V1] test_plan: add test plan for port representor

add port_representor_test_plan.rst to test_plans

Signed-off-by: Zhu Tao <taox.zhu@intel.com>
---
 test_plans/port_representor_test_plan.rst | 206 ++++++++++++++++++++++
 1 file changed, 206 insertions(+)
 create mode 100644 test_plans/port_representor_test_plan.rst

diff --git a/test_plans/port_representor_test_plan.rst b/test_plans/port_representor_test_plan.rst
new file mode 100644
index 0000000..e7c1849
--- /dev/null
+++ b/test_plans/port_representor_test_plan.rst
@@ -0,0 +1,206 @@
+.. Copyright (c) <2019>, Intel Corporation
+         All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions
+   are met:
+
+   - Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+   - Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in
+     the documentation and/or other materials provided with the
+     distribution.
+
+   - Neither the name of Intel Corporation nor the names of its
+     contributors may be used to endorse or promote products derived
+     from this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+   COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+   OF THE POSSIBILITY OF SUCH DAMAGE.
+
+==============================================
+Port Representor Tests
+==============================================
+
+Description
+===========
+Use two representor ports as the control plane to manage the two VFs, 
+the control plane could change VFs behavior such as change promiscous 
+mode, stats reset, etc. our statistical data information is independent 
+on the control plane and data plane.
+
+Prerequisites
+===============
+Create two VFs and two VFs representor ports which are used as control plane.
+
+1. bind PF to igb_uio::
+
+    ./usertools/dpdk-devbind.py -b igb_uio 0000:af:00.0
+
+2. create two VFs from PF::
+
+    echo 2 > /sys/bus/pci/devices/0000\:af\:00.0/max_vfs
+
+3. bind two VFs to vfio-pci::
+
+    ./usertools/dpdk-devbind.py -b vfio-pci 0000:af:02.0 0000:af:02.1
+
+4. start a testpmd with create 2 VFs representor ports as control plane named testpmd-pf::
+
+    ./testpmd --lcores 1,2 -n 4 -w af:00.0,representor=0-1 --socket-mem 1024,1024 \
+            --proc-type auto --file-prefix testpmd-pf -- -i 
+ --port-topology=chained
+
+5. start two testpmd as dataplane named testpmd-vf0/testpmd-vf1(case 3 run later)::
+
+    ./testpmd --lcores 3,4 -n 4 -w af:02.0 --socket-mem 1024,1024 --proc-type auto --file-prefix testpmd-vf0 -- -i
+    ./testpmd --lcores 5,6 -n 4 -w af:02.1 --socket-mem 1024,1024 
+ --proc-type auto --file-prefix testpmd-vf1 -- -i
+
+Note: Every case needs to restart testpmd.
+
+Test Cases
+==========
+
+1. Test Case 1: VF Stats show and clear [ixgbe not support]
+-----------------------------------------------------------
+Description: use control testpmd to get and clear dataplane testpmd ports Stats.
+
+1. prepare 3 testpmd to receive packets::
+
+    PF  testpmd> set promisc 0 off
+    PF  testpmd> start
+    VF0 testpmd> set promisc 0 off
+    VF0 testpmd> start
+    VF1 testpmd> set promisc 0 off
+    VF1 testpmd> start
+
+2. send 30 packets by scapy as below::
+
+    scapy> pkt1=Ether(src=src_mac, dst=pf_mac)/IP()
+    scapy> pkt2=Ether(src=src_mac, dst=vf0_mac)/IP()
+    scapy> pkt3=Ether(src=src_mac, dst=vf1_mac)/IP()
+    scapy> pkts=[pkt1, pkt2, pkt3]*10
+    scapy> sendp(pkts, iface="ens785f0")
+
+3. check port stats in control testpmd, it will show 1 PF and 2 VF stats::
+
+    PF testpmd> show port stats all
+
+  expected result:
+  VF0 and VF1 will show receive 10 packets separately in control testmpd.
+
+4. clear port stats in control testpmd::
+
+    PF testpmd> clear vf stats 0 0
+    PF testpmd> clear vf stats 0 1
+    PF testpmd> clear port stats all
+    PF testpmd> show port stats all
+
+  expected result:
+  all the testpmd's port stats should be cleared
+
+Note: PF statistics superimpose the number of VFs, and the independent command
+      'clear vf stats <vf-port-id>' to clear this part of the data.
+
+2. Test Case 2: VF Promiscous enable/disable
+--------------------------------------------
+Description: use control testpmd to enable/disable dataplane testpmd ports promiscous mode.
+
+1. prepare 3 testpmd to receive packets, turn on VF0 promisc mode in control testpmd::
+
+    PF  testpmd> set promisc 0 off
+    PF  testpmd> start
+    VF0 testpmd> set promisc 0 off
+    VF0 testpmd> start
+    VF1 testpmd> set promisc 0 off
+    VF1 testpmd> start
+    PF  testpmd> set promisc 1 on
+
+2. send 40 packets by scapy as below::
+
+    scapy> pkt1=Ether(src=src_mac, dst=pf_mac)/IP()
+    scapy> pkt2=Ether(src=src_mac, dst=vf0_mac)/IP()
+    scapy> pkt3=Ether(src=src_mac, dst=vf1_mac)/IP()
+    scapy> pkt4=Ether(src=src_mac, dst=unicast_mac)/IP()
+    scapy> pkts=[pkt1, pkt2, pkt3, pkt4]*10
+    scapy> sendp(pkts, iface="ens785f0")
+
+3. check port stats in DUT::
+
+    PF testpmd> show port stats all
+
+  expected result:
+  VF0 should receive 20 packets(10 vf0_mac and 10 unicast_mac) and VF1 
+ show receive 10  packets in representor ports of PF.
+
+3. Test Case 3: set VF MAC address
+----------------------------------
+Description: use control testpmd to set vf mac address
+
+1. Run PF testpmd with PF first, set VF0 and VF1 mac address use representor ports::
+
+    PF testpmd> mac_addr set 1 aa:11:22:33:44:55
+    PF testpmd> mac_addr set 2 aa:22:33:44:55:66
+    PF testpmd> set promisc 0 off
+    PF testpmd> start
+
+2. Run VFs testpmd, and turn off promisc mode::
+
+    VF0 testpmd> set promisc 0 off
+    VF0 testpmd> start
+    VF1 testpmd> set promisc 0 off
+    VF1 testpmd> start
+
+3. use test case 2 step 2 to send packets from traffic generator
+
+4. check port stats in DUT::
+
+    PF testpmd> show port stats all
+
+  expected result:
+  VF0 should receive 10 packets and VF1 show receive 10 packets in representor ports of PF.
+
+4. Test Case 4: set vlan filter
+-------------------------------
+Description: use control testpmd to set vlan
+
+1. set promisc mode off in control testpmd, turn on vlan filter, add vlan filter in each VF::
+
+    PF testpmd> set promisc 1 off
+    PF testpmd> vlan set filter on 1
+    PF testpmd> rx_vlan add 3 1
+    PF testpmd> set promisc 2 off
+    PF testpmd> vlan set filter on 2
+    PF testpmd> rx_vlan add 4 2
+    VF0 testpmd> start
+    VF1 testpmd> start
+
+
+2. use scapy to send packets as below::
+
+    scapy> pkt1=Ether(src=src_mac, dst=vf0_mac)/Dot1Q(vlan=3)/IP()
+    scapy> pkt2=Ether(src=src_mac, dst=vf1_mac)/Dot1Q(vlan=4)/IP()
+    scapy> pkts=[pkt1, pkt2]*10
+    scapy> sendp(pkts, iface="ens785f0")
+
+3. check port stats in 2 VF testpmd:
+  expected result:
+  2 VF testpmds should receive 10 packets separately.
+
+
+
+
+
+
+
--
2.21.0.windows.1


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

* Re: [dts] [PATCH V1] test_plan: add test plan for port representor
  2019-10-25  7:07 ` Zhang, Yuwei1
@ 2019-11-27  9:01   ` Tu, Lijuan
  0 siblings, 0 replies; 3+ messages in thread
From: Tu, Lijuan @ 2019-11-27  9:01 UTC (permalink / raw)
  To: Zhang, Yuwei1, Zhu, TaoX, dts; +Cc: Zhu, TaoX

Applied, thanks

> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Zhang, Yuwei1
> Sent: Friday, October 25, 2019 3:08 PM
> To: Zhu, TaoX <taox.zhu@intel.com>; dts@dpdk.org
> Cc: Zhu, TaoX <taox.zhu@intel.com>
> Subject: Re: [dts] [PATCH V1] test_plan: add test plan for port representor
> 
> Acked-by Yuwei Zhang <yuwei1.zhang@intel.com>
> 
> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Zhu Tao
> Sent: Friday, September 20, 2019 2:35 PM
> To: dts@dpdk.org
> Cc: Zhu, TaoX <taox.zhu@intel.com>
> Subject: [dts] [PATCH V1] test_plan: add test plan for port representor
> 
> add port_representor_test_plan.rst to test_plans
> 
> Signed-off-by: Zhu Tao <taox.zhu@intel.com>
> ---
>  test_plans/port_representor_test_plan.rst | 206 ++++++++++++++++++++++
>  1 file changed, 206 insertions(+)
>  create mode 100644 test_plans/port_representor_test_plan.rst
> 
> diff --git a/test_plans/port_representor_test_plan.rst
> b/test_plans/port_representor_test_plan.rst
> new file mode 100644
> index 0000000..e7c1849
> --- /dev/null
> +++ b/test_plans/port_representor_test_plan.rst
> @@ -0,0 +1,206 @@
> +.. Copyright (c) <2019>, Intel Corporation
> +         All rights reserved.
> +
> +   Redistribution and use in source and binary forms, with or without
> +   modification, are permitted provided that the following conditions
> +   are met:
> +
> +   - Redistributions of source code must retain the above copyright
> +     notice, this list of conditions and the following disclaimer.
> +
> +   - Redistributions in binary form must reproduce the above copyright
> +     notice, this list of conditions and the following disclaimer in
> +     the documentation and/or other materials provided with the
> +     distribution.
> +
> +   - Neither the name of Intel Corporation nor the names of its
> +     contributors may be used to endorse or promote products derived
> +     from this software without specific prior written permission.
> +
> +   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> CONTRIBUTORS
> +   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> +   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
> FITNESS
> +   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
> +   COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
> INDIRECT,
> +   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
> +   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
> GOODS OR
> +   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> +   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
> CONTRACT,
> +   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
> +   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
> ADVISED
> +   OF THE POSSIBILITY OF SUCH DAMAGE.
> +
> +==============================================
> +Port Representor Tests
> +==============================================
> +
> +Description
> +===========
> +Use two representor ports as the control plane to manage the two VFs,
> +the control plane could change VFs behavior such as change promiscous
> +mode, stats reset, etc. our statistical data information is independent
> +on the control plane and data plane.
> +
> +Prerequisites
> +===============
> +Create two VFs and two VFs representor ports which are used as control
> plane.
> +
> +1. bind PF to igb_uio::
> +
> +    ./usertools/dpdk-devbind.py -b igb_uio 0000:af:00.0
> +
> +2. create two VFs from PF::
> +
> +    echo 2 > /sys/bus/pci/devices/0000\:af\:00.0/max_vfs
> +
> +3. bind two VFs to vfio-pci::
> +
> +    ./usertools/dpdk-devbind.py -b vfio-pci 0000:af:02.0 0000:af:02.1
> +
> +4. start a testpmd with create 2 VFs representor ports as control plane
> named testpmd-pf::
> +
> +    ./testpmd --lcores 1,2 -n 4 -w af:00.0,representor=0-1 --socket-mem
> 1024,1024 \
> +            --proc-type auto --file-prefix testpmd-pf -- -i
> + --port-topology=chained
> +
> +5. start two testpmd as dataplane named testpmd-vf0/testpmd-vf1(case 3
> run later)::
> +
> +    ./testpmd --lcores 3,4 -n 4 -w af:02.0 --socket-mem 1024,1024 --proc-type
> auto --file-prefix testpmd-vf0 -- -i
> +    ./testpmd --lcores 5,6 -n 4 -w af:02.1 --socket-mem 1024,1024
> + --proc-type auto --file-prefix testpmd-vf1 -- -i
> +
> +Note: Every case needs to restart testpmd.
> +
> +Test Cases
> +==========
> +
> +1. Test Case 1: VF Stats show and clear [ixgbe not support]
> +-----------------------------------------------------------
> +Description: use control testpmd to get and clear dataplane testpmd ports
> Stats.
> +
> +1. prepare 3 testpmd to receive packets::
> +
> +    PF  testpmd> set promisc 0 off
> +    PF  testpmd> start
> +    VF0 testpmd> set promisc 0 off
> +    VF0 testpmd> start
> +    VF1 testpmd> set promisc 0 off
> +    VF1 testpmd> start
> +
> +2. send 30 packets by scapy as below::
> +
> +    scapy> pkt1=Ether(src=src_mac, dst=pf_mac)/IP()
> +    scapy> pkt2=Ether(src=src_mac, dst=vf0_mac)/IP()
> +    scapy> pkt3=Ether(src=src_mac, dst=vf1_mac)/IP()
> +    scapy> pkts=[pkt1, pkt2, pkt3]*10
> +    scapy> sendp(pkts, iface="ens785f0")
> +
> +3. check port stats in control testpmd, it will show 1 PF and 2 VF stats::
> +
> +    PF testpmd> show port stats all
> +
> +  expected result:
> +  VF0 and VF1 will show receive 10 packets separately in control testmpd.
> +
> +4. clear port stats in control testpmd::
> +
> +    PF testpmd> clear vf stats 0 0
> +    PF testpmd> clear vf stats 0 1
> +    PF testpmd> clear port stats all
> +    PF testpmd> show port stats all
> +
> +  expected result:
> +  all the testpmd's port stats should be cleared
> +
> +Note: PF statistics superimpose the number of VFs, and the independent
> command
> +      'clear vf stats <vf-port-id>' to clear this part of the data.
> +
> +2. Test Case 2: VF Promiscous enable/disable
> +--------------------------------------------
> +Description: use control testpmd to enable/disable dataplane testpmd ports
> promiscous mode.
> +
> +1. prepare 3 testpmd to receive packets, turn on VF0 promisc mode in
> control testpmd::
> +
> +    PF  testpmd> set promisc 0 off
> +    PF  testpmd> start
> +    VF0 testpmd> set promisc 0 off
> +    VF0 testpmd> start
> +    VF1 testpmd> set promisc 0 off
> +    VF1 testpmd> start
> +    PF  testpmd> set promisc 1 on
> +
> +2. send 40 packets by scapy as below::
> +
> +    scapy> pkt1=Ether(src=src_mac, dst=pf_mac)/IP()
> +    scapy> pkt2=Ether(src=src_mac, dst=vf0_mac)/IP()
> +    scapy> pkt3=Ether(src=src_mac, dst=vf1_mac)/IP()
> +    scapy> pkt4=Ether(src=src_mac, dst=unicast_mac)/IP()
> +    scapy> pkts=[pkt1, pkt2, pkt3, pkt4]*10
> +    scapy> sendp(pkts, iface="ens785f0")
> +
> +3. check port stats in DUT::
> +
> +    PF testpmd> show port stats all
> +
> +  expected result:
> +  VF0 should receive 20 packets(10 vf0_mac and 10 unicast_mac) and VF1
> + show receive 10  packets in representor ports of PF.
> +
> +3. Test Case 3: set VF MAC address
> +----------------------------------
> +Description: use control testpmd to set vf mac address
> +
> +1. Run PF testpmd with PF first, set VF0 and VF1 mac address use
> representor ports::
> +
> +    PF testpmd> mac_addr set 1 aa:11:22:33:44:55
> +    PF testpmd> mac_addr set 2 aa:22:33:44:55:66
> +    PF testpmd> set promisc 0 off
> +    PF testpmd> start
> +
> +2. Run VFs testpmd, and turn off promisc mode::
> +
> +    VF0 testpmd> set promisc 0 off
> +    VF0 testpmd> start
> +    VF1 testpmd> set promisc 0 off
> +    VF1 testpmd> start
> +
> +3. use test case 2 step 2 to send packets from traffic generator
> +
> +4. check port stats in DUT::
> +
> +    PF testpmd> show port stats all
> +
> +  expected result:
> +  VF0 should receive 10 packets and VF1 show receive 10 packets in
> representor ports of PF.
> +
> +4. Test Case 4: set vlan filter
> +-------------------------------
> +Description: use control testpmd to set vlan
> +
> +1. set promisc mode off in control testpmd, turn on vlan filter, add vlan
> filter in each VF::
> +
> +    PF testpmd> set promisc 1 off
> +    PF testpmd> vlan set filter on 1
> +    PF testpmd> rx_vlan add 3 1
> +    PF testpmd> set promisc 2 off
> +    PF testpmd> vlan set filter on 2
> +    PF testpmd> rx_vlan add 4 2
> +    VF0 testpmd> start
> +    VF1 testpmd> start
> +
> +
> +2. use scapy to send packets as below::
> +
> +    scapy> pkt1=Ether(src=src_mac, dst=vf0_mac)/Dot1Q(vlan=3)/IP()
> +    scapy> pkt2=Ether(src=src_mac, dst=vf1_mac)/Dot1Q(vlan=4)/IP()
> +    scapy> pkts=[pkt1, pkt2]*10
> +    scapy> sendp(pkts, iface="ens785f0")
> +
> +3. check port stats in 2 VF testpmd:
> +  expected result:
> +  2 VF testpmds should receive 10 packets separately.
> +
> +
> +
> +
> +
> +
> +
> --
> 2.21.0.windows.1


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

end of thread, back to index

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-20  6:34 [dts] [PATCH V1] test_plan: add test plan for port representor Zhu Tao
2019-10-25  7:07 ` Zhang, Yuwei1
2019-11-27  9:01   ` Tu, Lijuan

test suite reviews and discussions

Archives are clonable:
	git clone --mirror http://inbox.dpdk.org/dts/0 dts/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dts dts/ http://inbox.dpdk.org/dts \
		dts@dpdk.org
	public-inbox-index dts


Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dts


AGPL code for this site: git clone https://public-inbox.org/ public-inbox