From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 01C56E62 for ; Mon, 11 Jan 2016 08:05:54 +0100 (CET) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP; 10 Jan 2016 23:05:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,551,1444719600"; d="scan'208";a="890612951" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by fmsmga002.fm.intel.com with ESMTP; 10 Jan 2016 23:05:53 -0800 Received: from shecgisg003.sh.intel.com (shecgisg003.sh.intel.com [10.239.29.90]) by shvmail01.sh.intel.com with ESMTP id u0B75pMl013053; Mon, 11 Jan 2016 15:05:51 +0800 Received: from shecgisg003.sh.intel.com (localhost [127.0.0.1]) by shecgisg003.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id u0B75n7n009738; Mon, 11 Jan 2016 15:05:51 +0800 Received: (from yliu84x@localhost) by shecgisg003.sh.intel.com (8.13.6/8.13.6/Submit) id u0B75mKJ009734; Mon, 11 Jan 2016 15:05:48 +0800 From: Yong Liu To: dts@dpdk.org Date: Mon, 11 Jan 2016 15:05:38 +0800 Message-Id: <1452495940-9681-4-git-send-email-yong.liu@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1452495940-9681-1-git-send-email-yong.liu@intel.com> References: <1452495940-9681-1-git-send-email-yong.liu@intel.com> Subject: [dts] [PATCH 4/6] tests vf_vlan: add VF vlan 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: Mon, 11 Jan 2016 07:05:55 -0000 Signed-off-by: Marvin Liu diff --git a/test_plans/vf_vlan_test_plan.rst b/test_plans/vf_vlan_test_plan.rst new file mode 100644 index 0000000..24ae1fc --- /dev/null +++ b/test_plans/vf_vlan_test_plan.rst @@ -0,0 +1,186 @@ +.. 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. + + +The support of VLAN offload features by VF device consists in: + +- the filtering of received VLAN packets +- VLAN header stripping by hardware in received [VLAN] packets +- VLAN header insertion by hardware in transmitted packets + +Prerequisites +============= +1. Create VF device from PF devices. + ./dpdk_nic_bind.py --st + 0000:87:00.0 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f0 drv=i40e unused= + 0000:87:00.1 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f1 drv=i40e unused= + + echo 1 > /sys/bus/pci/devices/0000\:87\:00.0/sriov_numvfs + echo 1 > /sys/bus/pci/devices/0000\:87\:00.1/sriov_numvfs + + ./dpdk_nic_bind.py --st + + 0000:87:00.0 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f0 drv=i40e unused= + 0000:87:02.0 'XL710/X710 Virtual Function' unused= + 0000:87:0a.0 'XL710/X710 Virtual Function' unused= + +2. Detach VFs from the host, bind them to pci-stub driver, + + /sbin/modprobe pci-stub + + using `lspci -nn|grep -i ethernet` got VF device id, for example "8086 154c", + + echo "8086 154c" > /sys/bus/pci/drivers/pci-stub/new_id + echo 0000:87:02.0 > /sys/bus/pci/devices/0000:87:02.0/driver/unbind + echo 0000:87:02.0 > /sys/bus/pci/drivers/pci-stub/bind + + echo "8086 154c" > /sys/bus/pci/drivers/pci-stub/new_id + echo 0000:87:0a.0 > /sys/bus/pci/devices/0000:87:0a.0/driver/unbind + echo 0000:87:0a.0 > /sys/bus/pci/drivers/pci-stub/bind + +3. Passthrough VFs 87:02.0 & 87:02.1 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-fc20-1.img -vnc :1 \ + -device pci-assign,host=87:02.0,id=pt_0 \ + -device pci-assign,host=87:0a.0,id=pt_1 + +4. Login vm0 and them bind VF devices to igb_uio driver. + + ./tools/dpdk_nic_bind.py --bind=igb_uio 00:04.0 00:05.0 + +5. Start testpmd, set it in rxonly mode and enable verbose output + testpmd -c 0x0f -n 4 -w 00:04.0 -w 00:05.0 -- -i --portmask=0x3 --txqflags=0 + testpmd> set fwd rxonly + testpmd> set verbose 1 + testpmd> start + +Test Case 1: VF Port based vlan rx +================================== +Linux network configration tool only set pvid on VF devices. + +1. Add pvid on VF0 from PF device + ip link set $PF_INTF vf 0 vlan 2 + +2. Send packet with same vlan id and check VF can receive + +3. Send packet without vlan and check VF can't receive + +4. Send packet with wrong and check Vf can't receive + +5. Check pf device show correct pvid setting + ip link show ens259f0 + ... + vf 0 MAC 00:00:00:00:00:00, vlan 1, spoof checking on, link-state auto + +7. Remove added vlan from PF device + ip link set $PF_INTF vf 0 vlan 0 + +8. Restart testpmd and send packet without vlan and check VF can receive + +9. Set packet with vlan id 0 and check VF can receive + +10. Set packet with random id 1-4095 and check VF can't receive + +Test Case 2: VF port based vlan tx +================================== +1. Add pvid on VF0 from PF device + ip link set $PF_INTF vf 0 vlan 2 + +2. Start testpmd with mac forward mode + testpmd> set fwd mac + testpmd> start + +3. Send packet from tester port1 and check packet recevied by tester port0 + Check port1 recevied packet with configured vlan 2 + +Test Case 3: VF tagged vlan tx +=============================== +1. Start testpmd with full-featured tx code path and with mac forward mode + testpmd -c f -n 3 -- -i --txqflags=0x0 + testpmd> set fwd mac + testpmd> start + +2. Add tx vlan offload on VF0, take care the first param is port + testpmd> tx_vlan 0 1 + +3. Send packet from tester port1 and check packet recevied by tester port0 + Check port- recevied packet with configured vlan 1 + +Test case4: VF tagged vlan rx +============================= +1. Make sure port based vlan disabled on VF0 and VF1 +2. Start testpmd with rxonly mode + testpmd> set fwd rxonly + testpmd> set verbose 1 + testpmd> start + +3. Send packet without vlan and check packet received + +4. Send packet with vlan 0 and check packet received + +5. Add vlan on VF0 from VF driver + testpmd> rx_vlan add 1 0 + +6. Send packet with vlan0/1 and check packet received +(set vlan filter off still can't recevied, need return error) + +7. Remove vlan on VF0 + rx_vlan rm 1 0 + +8. Send packet with vlan 0 and check packet received + +9. Send packet without vlan and check packet received + +10. Send packe with vlan 1 and check packet can't recevied + +Test case5: VF Vlan strip test +============================== +1. Start testpmd with mac forward mode + testpmd> set fwd mac + testpmd> set verbose 1 + testpmd> start + +2. Add tagged vlan 1 on VF0 + testpmd> rx_vlan add 1 0 + +3. Disable VF0 vlan strip and sniff packet on tester port1 + testpmd> vlan set strip off 0 + +4. set packet from tester port0 with vlan 1 and check sniffed packet has vlan + +5. enable vlan strip on VF0 and sniff packet on tester port1 + testpmd> vlan set strip on 0 + +6. send packet from tester port0 with vlan 1 and check sniffed packet without vlan + +7. send packet from tester port0 with vlan 0 and check sniffed packet without vlan -- 1.9.3