[dts] [PATCH] test_plan: add hotplug_test_plan

Liu, Yong yong.liu at intel.com
Mon Feb 2 10:16:08 CET 2015


Hi Michael,
Is PCI hotplug feature support VF device? If supported, we'd better add it into our test plan.
And in the plan, I saw several types of hypervisor like vmware,kvm and xen, but I can't see them in cases.
If we want to support them, we'd better add some cases both on host and guest with these hypervisors. 

Some additional comments for internal case. 
> -----Original Message-----
> From: dts [mailto:dts-bounces at dpdk.org] On Behalf Of Michael Qiu
> Sent: Monday, February 02, 2015 4:47 PM
> To: dts at dpdk.org
> Cc: mukawa at igel.co.jp
> Subject: [dts] [PATCH] test_plan: add hotplug_test_plan
> 
> As hotplug feature will be supported by DPDK 2.0, the test plan
> is needed for testing affairs, this could help who wants to do
> hotplug testing for their projects.
> 
> Signed-off-by: Michael Qiu <michael.qiu at intel.com>
> ---
>  test_plans/hotplug_test_plan.rst | 152
> +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 152 insertions(+)
>  create mode 100644 test_plans/hotplug_test_plan.rst
> 
> diff --git a/test_plans/hotplug_test_plan.rst
> b/test_plans/hotplug_test_plan.rst
> new file mode 100644
> index 0000000..63c3d70
> --- /dev/null
> +++ b/test_plans/hotplug_test_plan.rst
> @@ -0,0 +1,152 @@
> +.. Copyright (c) <2015>, 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.
> +
> +======================================
> +DPDK Hotplug API Feature Tests
> +======================================
> +
> +This test for Hotplug API feature can be run on linux userspace. It
> +will check if NIC port can be attach and detach without exiting the
> +application process. Furthermore, it will check if it can reconfigure
> +new configurations for a port after the port is stopped, and if it is
> +able to restart with those new configurations. It is based on testpmd
> +application.
> +
> +The test is performed by running the testpmd application and using a
> +traffic generator. Port configurations can be set interactively,
> +and still be set at the command line when launching the application in
> +order to be compatible with previous test framework.
> +
> +Prerequisites
> +-------------
> +Assume DPDK managerd at least one device for physical or none for virtual.
> +This feature only supports igb_uio now, for uio_pci_generic is
> +on the way, will test it after enabled.
> +
> +To run the testpmd application in linuxapp environment with 4 lcores,
> +4 channels with other default parameters in interactive mode.
> +
> +        $ ./testpmd -c 0xf -n 4 -- -i
> +
> +Test ENV:
> +
> +All test case can be run in 32bit and 64bit platform.
> +
> +All os can be support, like fedora, ubuntu, rhel, suse, but freebsd will
> +not include as hotplug has no plan to support that platform
> +
> +All kernel version(start from 2.6) can be support, for vfio need kernel
> +        version greater than 3.6.
> +
> +Virtulization support: KVM/VMware/Xen, container is in the roadmap
> +
> +-------------------------------------------------------------------------
> ------
> +Test Case 1: port dettach & attach for physical devices with igb_uio
> +-------------------------------------------------------------------------
> ------
> +1. run "port attach 0000:02:00.0",
> +   assume the physical devices is BDF is 0000:02:00.0
> +
> +2. run "port start 0".
> +
> +3. run "show port info 0", check port 0 info display.
> +
> +4. run "start", then "show port stats 0" check fwd packages start.
> +
> +5. run "port detach 0", check the error message of port not stopped.
> +
> +6. run "stop", then "show port stats 0", check fwd packages stoped.
> +
> +7. run "port close 0".
> +
> +8. run "port detach 0", check port detached successful.
> +
Michael, we'd better assort all the validated steps into some meaningful steps like below. This will help others learn about this feature more easily. 

1. Attached one pci device and start packets forward:

	testpmd> port attach 0000:02:00.0
	testpmd> port start 0
	testpmd> show port info 0
      testpmd> start

2. Check packets forwarded normally:

	testpmd> show port stats 0 

3. Detached the pci device when DPDK running:
	
	testpmd>  port detach 0
	testpmd> the error message expected

4. Detached pci device when DPDK stopped:
	testpmd> stop
	testpmd> port detach 0
	testpmd> the success message expected

> +-------------------------------------------------------------------------
> ------
> +Test Case 2: port dettach & attach for physical devices with vfio
> +-------------------------------------------------------------------------
> ------
> +1. run "port attach 0000:02:00.0",
> +   assume the physical devices is BDF is 0000:02:00.0
> +
> +2. run "port start 0".
> +
> +3. run "show port info 0", check port 0 info display.
> +
> +4. run "start", then "show port stats 0" check fwd packages start.
> +
> +5. run "port detach 0", check the error message of port not stopped.
> +
> +6. run "stop", then "show port stats 0", check fwd packages stoped.
> +
> +7. run "port close 0".
> +
> +8. run "port detach 0", check port detached failed(If hotplug for vfio
> +   implemented, should be successful).
> +
> +-------------------------------------------------------------------------
> ------
> +Test Case 3: port dettach & attach for physical devices with
> uio_pci_generic
> +-------------------------------------------------------------------------
> ------
> +1. run "port attach 0000:02:00.0",
> +   assume the physical devices is BDF is 0000:02:00.0
> +
> +2. run "port start 0".
> +
> +3. run "show port info 0", check port 0 info display.
> +
> +4. run "start", then "show port stats 0" check fwd packages start.
> +
> +5. run "port detach 0", check the error message of port not stopped.
> +
> +6. run "stop", then "show port stats 0", check fwd packages stoped.
> +
> +7. run "port close 0".
> +
> +8. run "port detach 0", check port detached successful.
> +
> +-------------------------------------------------------------------------
> ------
> +Test Case 4: port dettach & attach for virtual devices
> +-------------------------------------------------------------------------
> ------
> +1. run "port attach eth_pcap0,iface=xxxx", where "xxxx" is one workable
> ifname.
> +
> +2. run "port start 0".
> +
> +3. run "show port info 0", check port 0 info display.
> +
> +4. run "start", then "show port stats 0" check fwd packages start.
> +
> +5. run "port detach 0", check the error message of port not stopped.
> +
> +6. run "stop", then "show port stats 0", check fwd packages stoped.
> +
> +7. run "port close 0".
> +
> +8. run "port detach 0", check port detached successful.
> +
> +successfully
> --
> 1.9.3



More information about the dts mailing list