From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 39E717CCE for ; Fri, 20 Apr 2018 05:27:03 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Apr 2018 20:27:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,299,1520924400"; d="scan'208";a="48424668" Received: from unknown (HELO dpdk-fedora20.icx.intel.com) ([10.240.176.135]) by fmsmga001.fm.intel.com with ESMTP; 19 Apr 2018 20:27:01 -0700 From: "zhao,meijuan" To: dts@dpdk.org Cc: "zhao,meijuan" Date: Fri, 20 Apr 2018 11:28:18 +0800 Message-Id: <1524194898-123744-1-git-send-email-meijuanx.zhao@intel.com> X-Mailer: git-send-email 1.9.3 Subject: [dts] [PATCH V1] test_plan/vf macfilter add dpdk pf + dpdk vf scenario 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: Fri, 20 Apr 2018 03:27:04 -0000 add dpdk pf + dpdk vf test scenario Signed-off-by: zhao,meijuan --- test_plans/vf_macfilter_test_plan.rst | 177 +++++++++++++++++++++++++++++++++- 1 file changed, 175 insertions(+), 2 deletions(-) diff --git a/test_plans/vf_macfilter_test_plan.rst b/test_plans/vf_macfilter_test_plan.rst index 221c05e..247d16a 100644 --- a/test_plans/vf_macfilter_test_plan.rst +++ b/test_plans/vf_macfilter_test_plan.rst @@ -111,7 +111,7 @@ Test Case 1: test_kernel_2pf_2vf_1vm_iplink_macfilter correctly. 7. Also use scapy to send 100 random packets with a wrong MAC to VF, verify - the packets can't be received by one VF and can be forward to another VF + the packets can't be received by one VF and can't be forward to another VF correctly. Test Case 2: test_kernel_2pf_2vf_1vm_mac_add_filter @@ -197,5 +197,178 @@ Test Case 2: test_kernel_2pf_2vf_1vm_mac_add_filter correctly. 8. Use scapy to send 100 random packets with a wrong MAC to VF0, verify the - packets can't be received by one VF and can be forward to another VF + packets can't be received by one VF and can't be forward to another VF correctly. + + +Test Case 3: test_dpdk_2pf_2vf_1vm_iplink_macfilter +===================================================== + +1. Get the pci device id of DUT, for example:: + + ./dpdk_nic_bind.py --st + + 0000:81:00.0 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f0 drv=i40e unused= + 0000:81:00.1 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f1 drv=i40e unused= + + usertools/dpdk-devbind.py --force --bind=igb_uio 0000:81:00.0 0000:81:00.0 + +2. Create 2 VFs from 2 PFs, and set the VF MAC address at PF0:: + + echo 1 > /sys/bus/pci/devices/0000\:81\:00.0/max_vfs + echo 1 > /sys/bus/pci/devices/0000\:81\:00.1/max_vfs + + ./dpdk_nic_bind.py --st + 0000:81:00.0 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f0 drv=igb_uio unused= + 0000:81:00.1 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f1 drv=igb_uio unused= + 0000:81:02.0 'XL710/X710 Virtual Function' unused= + 0000:81:0a.0 'XL710/X710 Virtual Function' unused= + + +3. 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:81:02.0 > /sys/bus/pci/devices/0000:08:02.0/driver/unbind + echo 0000:81:02.0 > /sys/bus/pci/drivers/pci-stub/bind + + echo "8086 154c" > /sys/bus/pci/drivers/pci-stub/new_id + echo 0000:81:0a.0 > /sys/bus/pci/devices/0000:08:0a.0/driver/unbind + echo 0000:81:0a.0 > /sys/bus/pci/drivers/pci-stub/bind + + or using the following more easy way:: + + virsh nodedev-detach pci_0000_81_02_0; + virsh nodedev-detach pci_0000_81_0a_0; + + ./dpdk_nic_bind.py --st + + 0000:81:00.0 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f0 drv=igb_uio unused= + 0000:81:00.1 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f1 drv=igb_uio unused= + 0000:81:02.0 'XL710/X710 Virtual Function' if= drv=pci-stub unused= + 0000:81:0a.0 'XL710/X710 Virtual Function' if= drv=pci-stub unused= + + it can be seen that VFs 81:02.0 & 81:0a.0 's driver is pci-stub. +4. on host start testpmd + + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6000000006 -n 4 -b 0000:81:02.0 -b 0000:81:0a.0 -- -i + testpmd > set vf mac addr 0 0 00:12:34:56:78:01 + +5. Passthrough VFs 81:02.0 & 81:0a.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-fc20-1.img -vnc :1 \ + -device pci-assign,host=81:02.0,id=pt_0 \ + -device pci-assign,host=81:0a.0,id=pt_1 + +6. Login vm0, got VFs pci device id in vm0, assume they are 00:06.0 & 00:07.0, + bind them to igb_uio driver, and then start testpmd, enable CRC strip, + disable promisc mode,set it in mac forward mode:: + + ./tools/dpdk_nic_bind.py --bind=igb_uio 00:06.0 00:07.0 + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x0f -n 4 -w 00:06.0 -w 00:07.0 -- -i --portmask=0x3 + testpmd> set promisc all off + testpmd> set fwd mac + testpmd> start + +7. Use scapy to send 100 random packets with ip link set MAC to VF, verify the + packets can be received by one VF and can be forward to another VF + correctly. + +8. Also use scapy to send 100 random packets with a wrong MAC to VF, verify + the packets can't be received by one VF and can't be forward to another VF + correctly. + +Test Case 4: test_dpdk_2pf_2vf_1vm_mac_add_filter +=================================================== + +1. Get the pci device id of DUT, for example:: + + ./dpdk_nic_bind.py --st + + 0000:81:00.0 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f0 drv=i40e unused= + 0000:81:00.1 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f1 drv=i40e unused= + + usertools/dpdk-devbind.py --force --bind=igb_uio 0000:81:00.0 0000:81:00.0 + +2. Create 2 VFs from 2 PFs, and don't set the VF MAC address at PF0:: + + + echo 1 > /sys/bus/pci/devices/0000\:81\:00.0/max_vfs + echo 1 > /sys/bus/pci/devices/0000\:81\:00.1/max_vfs + + ./dpdk_nic_bind.py --st + 0000:81:00.0 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f0 drv=igb_uio unused= + 0000:81:00.1 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f1 drv=igb_uio unused= + 0000:81:02.0 'XL710/X710 Virtual Function' unused= + 0000:81:0a.0 'XL710/X710 Virtual Function' unused= + +3. Detach VFs from the host, bind them to pci-stub driver:: + + /sbin/modprobe pci-stub + + using `lspci -nn|grep -i ethernet` to get VF device id, for example "8086 154c", + + echo "8086 154c" > /sys/bus/pci/drivers/pci-stub/new_id + echo 0000:81:02.0 > /sys/bus/pci/devices/0000:08:02.0/driver/unbind + echo 0000:81:02.0 > /sys/bus/pci/drivers/pci-stub/bind + + echo "8086 154c" > /sys/bus/pci/drivers/pci-stub/new_id + echo 0000:81:0a.0 > /sys/bus/pci/devices/0000:08:0a.0/driver/unbind + echo 0000:81:0a.0 > /sys/bus/pci/drivers/pci-stub/bind + + or using the following more easy way:: + + virsh nodedev-detach pci_0000_81_02_0; + virsh nodedev-detach pci_0000_81_0a_0; + + ./dpdk_nic_bind.py --st + + 0000:81:00.0 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f0 drv=igb_uio unused= + 0000:81:00.1 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f1 drv=igb_uio unused= + 0000:81:02.0 'XL710/X710 Virtual Function' if= drv=pci-stub unused= + 0000:81:0a.0 'XL710/X710 Virtual Function' if= drv=pci-stub unused= + + it can be seen that VFs 81:02.0 & 81:0a.0 's driver is pci-stub. + +4. On host start testpmd + + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6000000006 -n 4 -b 0000:81:02.0 -b 0000:81:0a.0 -- -i + +5. Passthrough VFs 81:02.0 & 81:0a.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-fc20-1.img -vnc :1 \ + -device pci-assign,host=81:02.0,id=pt_0 \ + -device pci-assign,host=81:0a.0,id=pt_1 + +6. login vm0, got VFs pci device id in vm0, assume they are 00:06.0 & 00:07.0, + bind them to igb_uio driver, and then start testpmd, enable CRC strip on + VF, disable promisc mode, add a new MAC to VF0 and then start:: + + ./tools/dpdk_nic_bind.py --bind=igb_uio 00:06.0 00:07.0 + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xf -n 1 -- -i + testpmd> set promisc all off + testpmd> mac_addr add 0 00:11:22:33:44:55 + testpmd> set fwd mac + testpmd> start + + Note: In Jan, 2016, i40e doesn't support mac_addr add operation, so the + case will be failed for FVL/Fort park NICs. + +7. Use scapy to send 100 random packets with current VF0's MAC, verify the + packets can be received by one VF and can be forward to another VF + correctly. + +8. Use scapy to send 100 random packets with new added VF0's MAC, verify the + packets can be received by one VF and can be forward to another VF + correctly. + +9. Use scapy to send 100 random packets with a wrong MAC to VF0, verify the + packets can't be received by one VF and can't be forward to another VF + correctly. + + -- 1.9.3