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 C115C379B for ; Thu, 23 Feb 2017 06:31:57 +0100 (CET) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Feb 2017 21:31:56 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,197,1484035200"; d="scan'208";a="68037800" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga005.jf.intel.com with ESMTP; 22 Feb 2017 21:31:56 -0800 Received: from fmsmsx116.amr.corp.intel.com (10.18.116.20) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.248.2; Wed, 22 Feb 2017 21:31:55 -0800 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx116.amr.corp.intel.com (10.18.116.20) with Microsoft SMTP Server (TLS) id 14.3.248.2; Wed, 22 Feb 2017 21:31:55 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.59]) by SHSMSX103.ccr.corp.intel.com ([10.239.4.69]) with mapi id 14.03.0248.002; Thu, 23 Feb 2017 13:31:53 +0800 From: "Lin, Xueqin" To: "Liu, Yong" , "dts@dpdk.org" Thread-Topic: [dts] [PATCH] VF daemon DPDK PF+DPDK VF test plan Thread-Index: AQHSjZNzUYihmIZ8o0+Ab/oRkwt5k6F2EP/Q Date: Thu, 23 Feb 2017 05:31:53 +0000 Message-ID: <0D300480287911409D9FF92C1FA2A3355B1B06F0@SHSMSX104.ccr.corp.intel.com> References: <1487726249-4489-1-git-send-email-xueqin.lin@intel.com> <58AE6D8B.5010408@intel.com> In-Reply-To: <58AE6D8B.5010408@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dts] [PATCH] VF daemon DPDK PF+DPDK VF 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: Thu, 23 Feb 2017 05:31:58 -0000 OK, I will fix it soon and send it again, thanks. Best regards, Xueqin -----Original Message----- From: Liu, Yong=20 Sent: Thursday, February 23, 2017 1:05 PM To: Lin, Xueqin ; dts@dpdk.org Subject: Re: [dts] [PATCH] VF daemon DPDK PF+DPDK VF test plan Hi Xueqin, Please make sure each line in test plan is less than 79 characters. You can remove some descriptions which everyone known about like "x86_64-na= tive-linuxapp-gcc/app/". Thanks, Marvin On 02/22/2017 09:17 AM, Xueqin Lin wrote: > From: "Lin,Xueqin" > > --- > test_plans/vf_daemon_test_plan.rst | 446 ++++++++++++++++++++++++++++++= +++++++ > 1 file changed, 446 insertions(+) > create mode 100644 test_plans/vf_daemon_test_plan.rst > > diff --git a/test_plans/vf_daemon_test_plan.rst=20 > b/test_plans/vf_daemon_test_plan.rst > new file mode 100644 > index 0000000..986610a > --- /dev/null > +++ b/test_plans/vf_daemon_test_plan.rst > @@ -0,0 +1,446 @@ > +.. Copyright (c) <2017>, 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. > + > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > +VFD as SRIOV Policy Manager > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > + > +VFD is SRIOV Policy Manager (daemon) running on the host allowing config= uration not supported by kernel NIC driver. > +Run on the host for policy decisions w.r.t. what a VF can and cannot=20 > +do to the PF. Only the DPDK PF would provide a callback to implement=20 > +these features, the normal kernel drivers would not have the callback=20 > +so would not support the features. Allow passing information to=20 > +application controlling PF when VF message box event received such as th= ose listed below, so action could be taken based on host policy. Stop VM1 f= rom asking for something that compromises VM2. > + > +Multiple purposes: > +1) set VF MAC anti-spoofing > +2) set VF VLAN anti-spoofing > +3) set TX loopback > +4) set VF unicast promiscuous mode > +5) set VF multicast promiscuous mode > +6) set VF MTU > +7) get/reset VF stats > +8) set VF MAC address > +9) set VF VLAN stripping > +10) VF VLAN insertion > +12) set VF broadcast mode > +12) set VF VLAN tag > +13) set VF VLAN filter > +14) Set/reset the queue drop enable bit for all pools(only ixgbe=20 > +support) > +15) Set/reset the enable drop bit in the split receive control=20 > +register(only ixgbe support) VFD also includes VF to PF mailbox=20 > +message management by APP. When PF receives mailbox messages from VF,=20 > +PF should call the callback provided by APP to know if they're permitted= to be processed. > + > +Prerequisites > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +1. Get the pci device id of DUT,take Niantic for example:: > + ./tools/dpdk-devbind.py --st > + 0000:81:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection'=20 > +if=3Dens259f0 drv=3Dixgbe unused=3Digb_uio > + > +2. Host PF in DPDK driver. Create 2 VF from 1 PF with dpdk driver:: > + ./tools/dpdk-devbind.py -b igb_uio 81:00.0 > + echo 2 >/sys/bus/pci/devices/0000:81:00.0/max_vfs > + 0000:81:10.0 '82599 Ethernet Controller Virtual Function' if=3Deth0 d= rv=3Dixgbevf unused=3Digb_uio > + 0000:81:10.2 '82599 Ethernet Controller Virtual Function' if=3Deth1=20 > +drv=3Dixgbevf unused=3Digb_uio > + > +3. Detach VFs from the host:: > + rmmod ixgbevf > + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > + 0000:81:10.0 '82599 Ethernet Controller Virtual Function' unused=3Dix= gbevf,igb_uio > + 0000:81:10.2 '82599 Ethernet Controller Virtual Function'=20 > +unused=3Dixgbevf,igb_uio > + > +4. Passthrough VF 81:10.0 to vm0 and passthrough VF 81:10.2 to vm1,=20 > +start vm0 and vm1 > + > +5. Login vm0 and vm1, then bind VF0 device to igb_uio driver. > + > + ./tools/dpdk_nic_bind.py --bind=3Digb_uio 00:03.0 > + > +6. Start testpmd on host and vm0 in chained port topology:: > + host: ./x86_64-native-linuxapp-gcc/app/testpmd -c f -n 4 -- -i --port= -topology=3Dchained --txqflags=3D0 > + vm0: ./x86_64-native-linuxapp-gcc/app/testpmd -c f -n 4 -- -i=20 > +--port-topology=3Dchained --txqflags=3D0 > + > +Test Case 1: Set VLAN insert for VF from PF=20 > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +1. Disable vlan insert for VF0 from PF:: > + testpmd> set vf vlan insert 0 0 0 > + > +2. Start testpmd on VF0, set it in mac forwarding mode and enable verbos= e output:: > + testpmd> set fwd mac > + testpmd> set verbose 1 > + testpmd> start > + > +3. Send packet from tester to VF0 without vlan id > + > +4. Stop VF0 testpmd and check VF0 can receive packet without any vlan=20 > +id > + > +5. Enable vlan insert and insert random vlan id (1~4095) for VF0 from PF= :: > + testpmd> set vf vlan insert 0 0 id > + > +6. Start VF0 testpmd > + > +7. Send packet from tester to VF0 without vlan id > + > +8. Stop VF0 testpmd and check VF0 can receive packet with configured=20 > +vlan id > + > + > +Test Case 2: Set VLAN strip for VF from PF=20 > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +1. Disable VLAN strip for all queues for VF0 from PF:: > + testpmd> set vf vlan stripq 0 0 off > + > +2. Start VF0 testpmd, add rx vlan id as random 1~4095, set it in mac for= warding mode and enable verbose output:: > + testpmd> rx_vlan add id 0 > + testpmd> set fwd mac > + testpmd> set verbose 1 > + testpmd> start > + > +3. Send packet from tester to VF0 with configured vlan id > + > +4. Stop VF0 testpmd and check VF0 can receive packet with configured=20 > +vlan id > + > +5. Enable VLAN strip for all queues for VF0 from PF:: > + testpmd> set vf vlan stripq 0 0 on > + > +6. Start VF0 testpmd > + > +7. Send packet from tester to VF0 with configured vlan id > + > +8. Stop VF0 testpmd and check VF0 can receive packet without any vlan=20 > +id > + > +9. Remove vlan id on VF0:: > + testpmd> rx_vlan rm id 0 > + > + > +Test Case 3: Set VLAN antispoof for VF from PF=20 > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +1. Disable vlan filter and strip from PF:: > + testpmd> vlan set filter off 0 > + testpmd> vlan set strip off 0 > + > +2. Add a random 1~4095 vlan id to set filter from PF for VF:: > + testpmd> rx_vlan add id port 0 vf 1 > + > +3. Disable vlan antispoof for VF from PF:: > + testpmd> set vf vlan antispoof 0 0 off > + > +4. Disable vlan filter and strip on VF0:: > + testpmd> vlan set filter off 0 > + testpmd> vlan set strip off 0 > + =09 > +5. Start testpmd on VF0, set it in mac forwarding mode and enable verbos= e output:: > + testpmd> set fwd mac > + testpmd> set verbose 1 > + testpmd> start > + > +6. Send packets with matching/non-matching/no vlan id on tester port > + > +7. Stop VF0 testpmd and check VF0 can receive and transmit packets=20 > +with matching/non-matching/no vlan id > + > +8. Enable mac antispoof and vlan antispoof for vf from PF:: > + testpmd> set vf mac antispoof 0 0 on > + testpmd> set vf vlan antispoof 0 0 on > + > +9. Start VF0 testpmd > + > +10. Send packets with matching/non-matching/no vlan id on tester port > + > +11. Stop VF0 testpmd and check VF0 can receive all but only transmit=20 > +packet with matching vlan id > + > + > +Test Case 4: Set mac antispoof for VF from PF=20 > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +1. Add fake mac and use fake mac instead of transmitted mac in the macsw= ap mode, so default is non-matching SA:: > + .addr_bytes =3D {0x00, 0x11, 0x22, 0x33, 0x44, 0x55} > + > +2. Disable VF0 mac antispoof from PF:: > + testpmd> set vf mac antispoof 0 0 off > + > +3. Start testpmd on VF0, set it in macswap forwarding mode and enable ve= rbose output:: > + testpmd> set fwd macswap > + testpmd> set verbose 1 > + testpmd> start > + > +4. Send packet from tester to VF0 with correct SA, but code has=20 > +changed to use fake SA > + > +5. Stop VF0 testpmd and check VF0 can receive then transmit packet > + > +6. Enable VF0 mac antispoof from PF:: > + testpmd> set vf mac antispoof 0 0 on > + > +7. Start VF0 testpmd > + > +8. Send packet from tester to VF0 with correct SA, but code has=20 > +changed to use fake SA > + > +9. Stop VF0 testpmd and check VF0 can receive packet but can't=20 > +transmit packet > + > +10. Recover original code > + > + > +Test Case 5: Set the MAC address for VF from PF=20 > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +1. Set VF0 different MAC address from PF, such as A2:22:33:44:55:66:: > + testpmd> set vf mac addr 0 0 A2:22:33:44:55:66 > + > +2. Stop VF0 testpmd and restart VF0 testpmd, check VF0 address is=20 > +configured address A2:22:33:44:55:66 > + > +3. Set testpmd in mac forwarding mode and enable verbose output:: > + testpmd> set fwd mac > + testpmd> set verbose 1 > + testpmd> start > + > +4. Send packet from tester to VF0 configured address > + > +5. Stop VF0 testpmd and check VF0 can receive packet > + > + > +Test Case 6: Enable/disable tx loopback=20 > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +1. Disable tx loopback for VF0 from PF:: > + testpmd> set tx loopback 0 off > + > +2. Set VF0 in rxonly forwarding mode and start testpmd:: > + testpmd> set fwd rxonly > + testpmd> start > + > +3. tcpdump on the tester port > + > +4. Send 10 packets from VF1 to VF0 > + > +5. Stop VF0 testpmd, check VF0 can't receive any packet but tester=20 > +port could capture packet > + > +6. Enable tx loopback for VF0 from PF:: > + testpmd> set tx loopback 0 on > + > +7. Start VF0 testpmd > + > +8. Send packet from VF1 to VF0 > + > +9. Stop VF0 testpmd, check VF0 can receive packet,but tester port=20 > +can't capture packet > + > + > +Test Case 7: Set drop enable bit for all queues=20 > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +1. Bind VF1 device to igb_uio driver and start testpmd in chained port t= opology:: > + ./tools/dpdk_nic_bind.py --bind=3Digb_uio 00:03.0 > + ./x86_64-native-linuxapp-gcc/app/testpmd -c 3f -l 1-5 -n 4 -- -i=20 > +--port-topology=3Dchained --txqflags=3D0 > + > +2. Disable drop enable bit for all queues from PF:: > + testpmd> set all queues drop 0 off > + > +3. Only start VF1 to capture packet, set it in rxonly forwarding mode an= d enable verbose output:: > + testpmd> set fwd rxonly > + testpmd> set verbose 1 > + testpmd> start > + > +4. Send 200 packets to VF0, make VF0 queue full of packets > + > +5. Send 20 packets to VF1 > + > +6. Stop VF1 testpmd and check VF1 can't receive packet > + > +7. Enable drop enable bit for all queues from PF:: > + testpmd> set all queues drop 0 on > + > +8. Start VF1 testpmd > + > +9. Stop VF1 testpmd and check VF1 can receive original queue buffer=20 > +20 packets > + > +10. Start VF1 testpmd > + > +11. Send 20 packets to VF1 > + > +12. Stop VF1 testpmd and check VF1 can receive 20 packets > + > +Note: i40e unsupports this feature. > + > + > +Test Case 8: Set split drop enable bit for VF from PF=20 > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > +1. Disable split drop enable bit for VF0 from PF:: > + testpmd> set vf split drop 0 0 off > + > +2. Set VF0 and host in rxonly forwarding mode and start testpmd:: > + testpmd> set fwd rxonly > + testpmd> start > +=09 > +3. Send a burst of 20000 packets to VF0 and check PF and VF0 can=20 > +receive all packets > + > +4. Enable split drop enable bit for VF0 from PF:: > + testpmd> set vf split drop 0 0 on > + > +5. Send a burst of 20000 packets to VF0 and check some packets=20 > +dropped on PF and VF0 > + > +Note: i40e unsupports this feature. > + > + > +Test Case 9: Get/Reset stats for VF from PF=20 > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +1. Add testpmd code to test this feature > + > +2. Get stats for VF0 from PF, and check RX/TX packets is 0:: > + testpmd> get vf stats 0 0 > + =09 > + ################## NIC statistics for port 0 ################ > + RX-packets: 0 RX-errors: 0 RX-bytes: 0 > + TX-packets: 0 TX-errors: 0 TX-bytes: 0 > + ############################################################### > + =09 > +3. Set VF0 in mac forwarding mode and start testpmd:: > + testpmd> set fwd mac > + testpmd> start > +4. Send 10 packets to VF0 and check VF0 can receive 10 packets=09 > + > +5. Get stats for VF0 from PF, and check RX/TX packets is 10:: > + testpmd> get vf stats 0 0 > + > + ################## NIC statistics for port 0 ################ > + RX-packets: 10 RX-errors: 0 RX-bytes: 10 > + TX-packets: 10 TX-errors: 0 TX-bytes: 10 > + ############################################################### > + > +6. Reset stats for VF0 from PF, and check PF and VF0 RX/TX packets is 0:= : > + testpmd> reset vf stats 0 0 > + testpmd> get vf stats 0 0 > + > + ################## NIC statistics for port 0 ################ > + RX-packets: 0 RX-errors: 0 RX-bytes: 0 > + TX-packets: 0 TX-errors: 0 TX-bytes: 0 > + ############################################################### > + > + > +Test Case 10: enhancement to identify VF MTU change=20 > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D > +1. Set VF0 in mac forwarding mode and start testpmd:: > + testpmd> set fwd mac > + testpmd> start > +2. Default mtu size is 1500, send one packet with length bigger than=20 > +default mtu size, such as 2000 from tester,check VF0 can receive but=20 > +can't transmit packet > + > +3. Set VF0 mtu size as 3000, but need to stop then restart port to activ= e mtu:: > + testpmd> port stop all > + testpmd> port config mtu 0 3000 > + testpmd> port start all > + testpmd> start > +4. Send one packet with length 2000 from tester,check VF0 can receive=20 > +and transmit packet > + > +5. Send one packet with length bigger than configured mtu size, such=20 > +as 5000 from tester, check VF0 can receive but can't transmit packet > + > + > +Test Case 11: Enable/disable vlan tag forwarding to VSIs=20 > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D > +1. Disable VLAN tag for VF0 from PF:: > + testpmd> set vf vlan tag 0 0 off > + > +2. Start VF0 testpmd, add rx vlan id as random 1~4095, set it in mac for= warding mode and enable verbose output:: > + testpmd> rx_vlan add id 0 > + testpmd> set fwd mac > + testpmd> set verbose 1 > + testpmd> start > + > +3. Send packet from tester to VF0 with vlan tag(vlan id should same=20 > +as rx_vlan) > + > +4. Stop VF0 testpmd and check VF0 can't receive vlan tag packet > + > +5. Enable VLAN tag for VF0 from PF:: > + testpmd> set vf vlan tag 0 0 on > + > +6. Start VF0 testpmd > + > +7. Send packet from tester to VF0 with vlan tag(vlan id should same=20 > +as rx_vlan) > + > +8. Stop VF0 testpmd and check VF0 can receive vlan tag packet > + > +9. Remove vlan id on VF0:: > + testpmd> rx_vlan rm id 0 > + > + > +Test Case 12: Broadcast mode > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > +1. Start testpmd on VF0, set it in rxonly mode and enable verbose output= :: > + testpmd> set fwd rxonly > + testpmd> set verbose 1 > + testpmd> start > + > +2. Disable broadcast mode for VF from PF:: > + testpmd>set vf broadcast 0 0 off > + > +3. Send packets from tester with broadcast address,ff:ff:ff:ff:ff:ff,=20 > +and check VF0 can not receive the packet > + > +4. Enable broadcast mode for VF from PF:: > + testpmd>set vf broadcast 0 0 on > + > +5. Send packets from tester with broadcast address,ff:ff:ff:ff:ff:ff,=20 > +and check VF0 can receive the packet > + > + > +Test Case 13: Multicast mode > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +1. Start testpmd on VF0, set it in rxonly mode and enable verbose output= :: > + testpmd> set fwd rxonly > + testpmd> set verbose 1 > + testpmd> start > + > +2. Disable promisc and multicast mode for VF from PF:: > + testpmd>set vf promisc 0 0 off > + testpmd>set vf allmulti 0 0 off > + > +3. Send packet from tester to VF0 with multicast MAC, and check VF0=20 > +can not receive the packet > + > +4. Enable multicast mode for VF from PF:: > + testpmd>set vf allmulti 0 0 on > + > +5. Send packet from tester to VF0 with multicast MAC, and check VF0=20 > +can receive the packet > + > + > + > +Test Case 14: Promisc mode > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > +1. Start testpmd on VF0, set it in rxonly mode and enable verbose output= :: > + testpmd> set fwd rxonly > + testpmd> set verbose 1 > + testpmd> start > + > +2. Disable promisc mode for VF from PF:: > + testpmd>set vf promisc 0 0 off > + > +3. Send packet from tester to VF0 with random MAC, and check VF0 can=20 > +not receive the packet > + > +4. Send packet from tester to VF0 with correct MAC, and check VF0 can=20 > +receive the packet > + > +5. Enable promisc mode for VF from PF:: > + testpmd>set vf promisc 0 0 on > + > +6. Send packet from tester to VF0 with random MAC, and the packet can=20 > +be received by VF0 > + > +7. Send packet from tester to VF0 with correct MAC, and the packet=20 > +can be received by VF0 > + > + > +