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 98B461B4FF for ; Fri, 23 Nov 2018 09:46:39 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 Nov 2018 00:46:37 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,269,1539673200"; d="scan'208";a="110657044" Received: from unknown (HELO localhost.localdomain.sh.intel.com) ([10.240.176.135]) by orsmga001.jf.intel.com with ESMTP; 23 Nov 2018 00:46:37 -0800 From: "zhao,meijuan" To: dts@dpdk.org Cc: "zhao,meijuan" Date: Fri, 23 Nov 2018 16:49:48 +0800 Message-Id: <1542962988-5207-2-git-send-email-meijuanx.zhao@intel.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1542962988-5207-1-git-send-email-meijuanx.zhao@intel.com> References: <1542962988-5207-1-git-send-email-meijuanx.zhao@intel.com> Subject: [dts] [PATCH V1 2/2] test_plans/vf pacfilter: add dpdk pf test scenorio 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, 23 Nov 2018 08:46:40 -0000 add dpdk pf test scenorio Signed-off-by: zhao,meijuan --- test_plans/vf_macfilter_test_plan.rst | 190 ++++++++++++++++++++++++-- 1 file changed, 182 insertions(+), 8 deletions(-) diff --git a/test_plans/vf_macfilter_test_plan.rst b/test_plans/vf_macfilter_test_plan.rst index 221c05e..715c66d 100644 --- a/test_plans/vf_macfilter_test_plan.rst +++ b/test_plans/vf_macfilter_test_plan.rst @@ -39,7 +39,7 @@ Test Case 1: test_kernel_2pf_2vf_1vm_iplink_macfilter 1. Get the pci device id of DUT, for example:: - ./dpdk_nic_bind.py --st + ./usertools/dpdk-devbind.py -s 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= @@ -49,7 +49,7 @@ Test Case 1: test_kernel_2pf_2vf_1vm_iplink_macfilter echo 1 > /sys/bus/pci/devices/0000\:81\:00.0/sriov_numvfs echo 1 > /sys/bus/pci/devices/0000\:81\:00.1/sriov_numvfs - ./dpdk_nic_bind.py --st + ./usertools/dpdk-devbind.py -s 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= 0000:81:02.0 'XL710/X710 Virtual Function' unused= @@ -76,7 +76,7 @@ Test Case 1: test_kernel_2pf_2vf_1vm_iplink_macfilter virsh nodedev-detach pci_0000_81_02_0; virsh nodedev-detach pci_0000_81_0a_0; - ./dpdk_nic_bind.py --st + ./usertools/dpdk-devbind.py -s 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= @@ -96,7 +96,7 @@ Test Case 1: test_kernel_2pf_2vf_1vm_iplink_macfilter 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 + ./usertools/dpdk-devbind.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 --tx-offloads=0x8fff testpmd> port stop all @@ -119,7 +119,7 @@ Test Case 2: test_kernel_2pf_2vf_1vm_mac_add_filter 1. Get the pci device id of DUT, for example:: - ./dpdk_nic_bind.py --st + ./usertools/dpdk-devbind.py -s 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= @@ -129,7 +129,7 @@ Test Case 2: test_kernel_2pf_2vf_1vm_mac_add_filter echo 1 > /sys/bus/pci/devices/0000\:81\:00.0/sriov_numvfs echo 1 > /sys/bus/pci/devices/0000\:81\:00.1/sriov_numvfs - ./dpdk_nic_bind.py --st + ./usertools/dpdk-devbind.py -s 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= 0000:81:02.0 'XL710/X710 Virtual Function' unused= @@ -154,7 +154,7 @@ Test Case 2: test_kernel_2pf_2vf_1vm_mac_add_filter virsh nodedev-detach pci_0000_81_02_0; virsh nodedev-detach pci_0000_81_0a_0; - ./dpdk_nic_bind.py --st + ./usertools/dpdk-devbind.py -s 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= @@ -174,7 +174,7 @@ Test Case 2: test_kernel_2pf_2vf_1vm_mac_add_filter 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 + ./usertools/dpdk-devbind.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 --tx-offloads=0x8fff testpmd> port stop all @@ -199,3 +199,177 @@ Test Case 2: test_kernel_2pf_2vf_1vm_mac_add_filter 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 correctly. + +Test Case 3: test_dpdk_2pf_2vf_1vm_mac_add_filter +=================================================== + +1. Get the pci device id of DUT, bind them to igb_uio,for example:: + + ./usertools/dpdk-devbind.py -s + + 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 --bind=igb_uio 0000:81:00.0 0000:81:00.1 + + +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 + + ./usertools/dpdk-devbind.py -s + 0000:81:00.0 'Ethernet Controller X710 for 10GbE SFP+' drv=igb_uio unused=i40e + 0000:81:00.1 'Ethernet Controller X710 for 10GbE SFP+' drv=igb_uio unused=i40e + 0000:81:02.0 'XL710/X710 Virtual Function' unused= + 0000:81:0a.0 'XL710/X710 Virtual Function' unused= + +3. Start testpmd:: + + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -b 0000:81:02.0 -b 0000:81:0a.0 -- -i + +4. 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=i40e unused= + 0000:81:00.1 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f1 drv=i40e 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. +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 0x0f -n 4 -w 00:06.0 -w 00:07.0 -- -i --portmask=0x3 --tx-offloads=0x8fff + + testpmd> port stop all + testpmd> port config all crc-strip on + testpmd> port start all + 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 be forward to another VF + correctly. +Test Case 4: test_dpdk_2pf_2vf_1vm_iplink_macfilter +=================================================== + +1. Get the pci device id of DUT, bind them to igb_uio,for example:: + + ./usertools/dpdk-devbind.py -s + + 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 --bind=igb_uio 0000:81:00.0 0000:81:00.1 + + +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 + + ./usertools/dpdk-devbind.py -s + 0000:81:00.0 'Ethernet Controller X710 for 10GbE SFP+' drv=igb_uio unused=i40e + 0000:81:00.1 'Ethernet Controller X710 for 10GbE SFP+' drv=igb_uio unused=i40e + 0000:81:02.0 'XL710/X710 Virtual Function' unused= + 0000:81:0a.0 'XL710/X710 Virtual Function' unused= + +3. Start testpmd:: + + ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -b 0000:81:02.0 -b 0000:81:0a.0 -- -i + testpmd>set vf mac addr 0 0 00:11:22:33:44:55 + +4. 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=i40e unused= + 0000:81:00.1 'Ethernet Controller X710 for 10GbE SFP+' if=ens259f1 drv=i40e 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. +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 --tx-offloads=0x8fff + + testpmd> port stop all + testpmd> port config all crc-strip on + testpmd> port start all + 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 be forward to another VF + correctly. -- 2.17.2