From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id D1FAD106B for ; Wed, 4 Mar 2015 03:53:54 +0100 (CET) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga102.fm.intel.com with ESMTP; 03 Mar 2015 18:53:43 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,685,1418112000"; d="scan'208";a="674800315" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by fmsmga001.fm.intel.com with ESMTP; 03 Mar 2015 18:53:43 -0800 Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com [10.239.29.89]) by shvmail01.sh.intel.com with ESMTP id t242reiv001919; Wed, 4 Mar 2015 10:53:40 +0800 Received: from shecgisg004.sh.intel.com (localhost [127.0.0.1]) by shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id t242raDI020047; Wed, 4 Mar 2015 10:53:38 +0800 Received: (from dayuqiu@localhost) by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id t242raPg020043; Wed, 4 Mar 2015 10:53:36 +0800 From: Michael Qiu To: dts@dpdk.org Date: Wed, 4 Mar 2015 10:53:35 +0800 Message-Id: <1425437615-19996-1-git-send-email-michael.qiu@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1422866813-23729-1-git-send-email-michael.qiu@intel.com> References: <1422866813-23729-1-git-send-email-michael.qiu@intel.com> Subject: [dts] [PATCH v2] test_plan: add hotplug_test_plan X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Mar 2015 02:53:55 -0000 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 --- v2 --> v1: Fix typos. Add new cases Make steps much more clearly test_plans/hotplug_test_plan.rst | 316 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 316 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..0ef329d --- /dev/null +++ b/test_plans/hotplug_test_plan.rst @@ -0,0 +1,316 @@ +.. 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 attached and detached 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 managed 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 cases can be run in 32bit and 64bit platform. + +OS support: Fedora, Ubuntu, RHEL, SUSE, but freebsd will not be +included as hotplug has no plan to support that platform + +All kernel version(from 2.6) can be support, for vfio need kernel + version greater than 3.6. + +Virtualization support: KVM/VMware/Xen, container is in the roadmap + +------------------------------------------------------------------------------- +Test Case 1: port detach & attach for physical devices with igb_uio +------------------------------------------------------------------------------- + +1. Start testpmd + $ ./testpmd -c 0xf -n 4 -- -i + +2. Bind new physical port to igb_uio(assume BDF 0000:02:00.0) + # ./tools/dpdk_nic_bind -b igb_uio 0000:02:00.0 + + +3. Attach port 0 + run "port attach 0000:02:00.0" + + run "port start 0" + + run "show port info 0", check port 0 info display. + +4. Check package forwarding when startup + + run "start", then "show port stats 0" check forwarding packages start. + + run "port detach 0", check the error message of port not stopped. + + run "stop", then "show port stats 0", check forwarding packages stopped. + +5. Detach port 0 after port closed + run "port stop 0" + + run "port close 0". + + run "port detach 0", check port detached successful. + +6. Re-attach port 0(assume BDF 0000:02:00.0) + run "port attach 0000:02:00.0", + + run "port start 0". + + run "show port info 0", check port 0 info display. + +7. Check package forwarding after re-attach + run "start", then "show port stats 0" check forwarding packages start. + + run "port detach 0", check the error message of port not stopped. + + run "stop", then "show port stats 0", check forwarding packages stopped. + +------------------------------------------------------------------------------- +Test Case 2: port dettach & attach for physical devices with vfio +------------------------------------------------------------------------------- + +1. Start testpmd + $ ./testpmd -c 0xf -n 4 -- -i + +2. Bind new physical port to igb_uio(assume BDF 0000:02:00.0) + # ./tools/dpdk_nic_bind -b vfio-pci 0000:02:00.0 + +3. Attach port 0(assume BDF 0000:02:00.0) + run "port attach 0000:02:00.0" + + run "port start 0" + + run "show port info 0", check port 0 info display. + +4. Detach port 0 after port closed + run "port stop 0", then "show port stats 0", check port stopped. + + run "port close 0". + + run "port detach 0", check detach status(should fail as no detach + support at the moment for vfio). + +------------------------------------------------------------------------------- +Test Case 3: port detach & attach for physical devices with uio_pci_generic + This case should be enabled after uio_pci_generic enabled for DPDK +------------------------------------------------------------------------------- + +1. Start testpmd + $ ./testpmd -c 0xf -n 4 -- -i + +2. Bind new physical port to igb_uio(assume BDF 0000:02:00.0) + # ./tools/dpdk_nic_bind -b uio_pci_generic 0000:02:00.0 + +3. Attach port 0(assume BDF 0000:02:00.0) + run "port attach 0000:02:00.0" + + run "port start 0" + + run "show port info 0", check port 0 info display. + +4. Check package forwarding when startup + + run "start", then "show port stats 0" check forwarding packages start. + + run "port detach 0", check the error message of port not stopped. + + run "stop", then "show port stats 0", check forwarding packages stopped. + +5. Detach port 0 after port closed + run "port stop 0" + + run "port close 0". + + run "port detach 0", check port detached successful. + +6. Re-attach port 0(assume BDF is 0000:02:00.0) + run "port attach 0000:02:00.0", + + run "port start 0". + + run "show port info 0", check port 0 info display. + +7. Check package forwarding after re-attach + run "start", then "show port stats 0" check forwarding packages start. + + run "port detach 0", check the error message of not stopped. + + run "stop", then "show port stats 0", check forwarding packages stopped. + +------------------------------------------------------------------------------- +Test Case 4: port detach & attach for physical devices with igb_uio + Bind driver before testpmd started, port will start automatically +------------------------------------------------------------------------------- + +1. Bind new physical port to igb_uio(assume BDF 0000:02:00.0) + # ./tools/dpdk_nic_bind -b uio_pci_generic 0000:02:00.0 + +2. Start testpmd + $ ./testpmd -c 0xf -n 4 -- -i + +3. Check package forwarding when startup + + run "start", then "show port stats 0" check forwarding packages start. + + run "port detach 0", check the error message of port not stopped. + + run "stop", then "show port stats 0", check forwarding packages stopped. + +4. Detach port 0 after port closed + run "port stop 0" + + run "port close 0". + + run "port detach 0", check port detached successful. + +5. Re-attach port 0(assume BDF 0000:02:00.0) + run "port attach 0000:02:00.0", + + run "port start 0". + + run "show port info 0", check port 0 info display. + +6. Check package forwarding after re-attach + run "start", then "show port stats 0" check forwarding packages start. + + run "port detach 0", check the error message of port not stopped. + + run "stop", then "show port stats 0", check forwarding packages stopped. + +------------------------------------------------------------------------------- +Test Case 5: port detach & attach for virtual devices +------------------------------------------------------------------------------- + +1. Start testpmd + $ ./testpmd -c 0xf -n 4 -- -i + +2. Attach virtual device as port 0 + run "port attach eth_pcap0,iface=xxxx", where "xxxx" is one workable ifname. + + run "port start 0". + + run "show port info 0", check port 0 info display correctly. + +3. Check package forwarding after port start + + run "start", then "show port stats 0" check forwarding packages start. + + run "port detach 0", check the error message of port not stopped. + + run "stop", then "show port stats 0", check forwarding packages stopped. + +4. Detach port 0 after port closed + + run "port stop 0". + + run "port close 0". + + run "port detach 0", check port detached successful. + +5. Re-attach port 0 + + run "port attach eth_pcap0,iface=xxxx", where "xxxx" is one workable ifname. + + run "port start 0". + + run "show port info 0", check port 0 info display correctly. + +6. Check package forwarding after port start + + run "start", then "show port stats 0" check forwarding packages start. + + run "port detach 0", check the error message of port not stopped. + + run "stop", then "show port stats 0", check forwarding packages stopped. + +------------------------------------------------------------------------------- +Test Case 6: port detach & attach for virtual devices, with "--vdev" +------------------------------------------------------------------------------- + +1. Start testpmd, ""xxxx" is one workable ifname + $ ./testpmd -c 0xf -n 4 --vdev "eth_pcap0,iface=xxxx" -- -i + +2. Check package forwarding after port start + + run "start", then "show port stats 0" check forwarding packages start. + + run "port detach 0", check the error message of port not stopped. + + run "stop", then "show port stats 0", check forwarding packages stopped. + +3. Detach port 0 after port closed + + run "port stop 0". + + run "port close 0". + + run "port detach 0", check port detached successful. + +4. Re-attach port 0 + + run "port attach eth_pcap0,iface=xxxx", where "xxxx" is one workable ifname. + + run "port start 0". + + run "show port info 0", check port 0 info display correctly. + +5. Check package forwarding after port start + + run "start", then "show port stats 0" check forwarding packages start. + + run "port detach 0", check the error message of port not stopped. + + run "stop", then "show port stats 0", check forwarding packages stopped. + +successfully -- 1.9.3