From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id BD83A1B47E; Fri, 4 Jan 2019 13:13:58 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Jan 2019 04:13:57 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,438,1539673200"; d="scan'208";a="264387180" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga004.jf.intel.com with ESMTP; 04 Jan 2019 04:13:57 -0800 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 4 Jan 2019 04:13:56 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.150]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.159]) with mapi id 14.03.0415.000; Fri, 4 Jan 2019 20:13:54 +0800 From: "Zhang, Qi Z" To: "Zhao1, Wei" , "dev@dpdk.org" CC: "stable@dpdk.org" , "Wu, Jingjing" Thread-Topic: [dpdk-dev] [PATCH] net/ixgbe: fix MAT enable for VF in multicast Thread-Index: AQHUomiUGsg09bGCbEyTsLYOn29gD6WdiuTwgAC64ACAAL+vsA== Date: Fri, 4 Jan 2019 12:13:54 +0000 Message-ID: <039ED4275CED7440929022BC67E7061153314837@SHSMSX103.ccr.corp.intel.com> References: <1546410760-24879-1-git-send-email-wei.zhao1@intel.com> <039ED4275CED7440929022BC67E706115331422E@SHSMSX103.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOTQ4YmRmMGMtZDUwOS00ZTI0LThmYWUtM2IzZmI0MzIyMzMzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiclJpd1crd1gxVVZvcmVuRlp3ZWJHZVFDaVwvRUhDSXk1NDVVemw5dHliTW9FNGw4alQwdnRLTHhrRU1BT0hGcmYifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action 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: [dpdk-dev] [PATCH] net/ixgbe: fix MAT enable for VF in multicast X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Jan 2019 12:13:59 -0000 > -----Original Message----- > From: Zhao1, Wei > Sent: Friday, January 4, 2019 4:35 PM > To: Zhang, Qi Z ; dev@dpdk.org > Cc: stable@dpdk.org; Wu, Jingjing > Subject: RE: [dpdk-dev] [PATCH] net/ixgbe: fix MAT enable for VF in multi= cast >=20 >=20 >=20 > > -----Original Message----- > > From: Zhang, Qi Z > > Sent: Thursday, January 3, 2019 9:47 PM > > To: Zhao1, Wei ; dev@dpdk.org > > Cc: stable@dpdk.org; Wu, Jingjing ; Zhao1, Wei > > > > Subject: RE: [dpdk-dev] [PATCH] net/ixgbe: fix MAT enable for VF in > > multicast > > > > Hi Wei > > > > > -----Original Message----- > > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Wei Zhao > > > Sent: Wednesday, January 2, 2019 2:33 PM > > > To: dev@dpdk.org > > > Cc: stable@dpdk.org; Wu, Jingjing ; Zhao1, > > > Wei > > > Subject: [dpdk-dev] [PATCH] net/ixgbe: fix MAT enable for VF in > > > multicast > > > > What is MAT means ? > > > > > > In ixgbe PMD code, all vf ars set with bit IXGBE_VMOLR_ROMPE, which > > > make vf accept packets that match the MTA table, if some vf update > > > IXGBE_MTA in function ixgbe_vf_set_multicast, then all vf will > > > receive packets from these address. > > > So thhere is need to set VMOLR register bit ROPE onlty after this vf > > > has been set multicast address. If this bit is when pf host doing > > > initialization, this vf will receive multicast packets with address > > > written in MTA table. Align to ixgbe pf kernel 5.3.7 code to fix this= bug. > > > > There are some typo in you commit log. >=20 > Sorry, v2 will commit. >=20 > > > > > > > > Fixes: 00e30184daa0 ("ixgbe: add PF support") > > > > > > Signed-off-by: Wei Zhao > > > --- > > > drivers/net/ixgbe/ixgbe_pf.c | 6 +++++- > > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/net/ixgbe/ixgbe_pf.c > > > b/drivers/net/ixgbe/ixgbe_pf.c index 4b833ff..0f4b96b 100644 > > > --- a/drivers/net/ixgbe/ixgbe_pf.c > > > +++ b/drivers/net/ixgbe/ixgbe_pf.c > > > @@ -351,7 +351,7 @@ ixgbe_vf_reset_event(struct rte_eth_dev *dev, > > > uint16_t vf) > > > int rar_entry =3D hw->mac.num_rar_entries - (vf + 1); > > > uint32_t vmolr =3D IXGBE_READ_REG(hw, IXGBE_VMOLR(vf)); > > > > > > - vmolr |=3D (IXGBE_VMOLR_ROPE | IXGBE_VMOLR_ROMPE | > > > + vmolr |=3D (IXGBE_VMOLR_ROPE | > > > IXGBE_VMOLR_BAM | IXGBE_VMOLR_AUPE); > > > IXGBE_WRITE_REG(hw, IXGBE_VMOLR(vf), vmolr); > > > > > > @@ -503,6 +503,7 @@ ixgbe_vf_set_multicast(struct rte_eth_dev *dev, > > > uint32_t vf, uint32_t *msgbuf) > > > const uint32_t IXGBE_MTA_BIT_MASK =3D (0x1 << > > IXGBE_MTA_BIT_SHIFT) - > > > 1; > > > uint32_t reg_val; > > > int i; > > > + u32 vmolr =3D IXGBE_READ_REG(hw, IXGBE_VMOLR(vf)); > > > > > > /* Disable multicast promiscuous first */ > > > ixgbe_disable_vf_mc_promisc(dev, vf); @@ -525,6 +526,9 @@ > > > ixgbe_vf_set_multicast(struct rte_eth_dev *dev, uint32_t vf, > > > uint32_t > > > *msgbuf) > > > IXGBE_WRITE_REG(hw, IXGBE_MTA(mta_idx), reg_val); > > > } > > > > > > + vmolr |=3D IXGBE_VMOLR_ROMPE; > > > + IXGBE_WRITE_REG(hw, IXGBE_VMOLR(vf), vmolr); > > > > > > Please correct me if I'm wrong > > > > My understand is MTA table is shared by all VFs (I guess also pf), but > > what if >=20 > Yes, vf share it but not pf, it is used in vf pool switch >=20 > > two VFs both enable multi-cast but with different address filter? > > Should we prevent the second one to enable multi-cast if any conflict > > be detected? Otherwise there still will be unexpected behavior. >=20 > Sorry, I do not known what is the confict. > Because IXGBE_VMOLR is vf specific, that is to say, each vf control itsel= f for > enable ROMPE. The conflict what I mean is for example, vf1 set filter for address A while= vf2 set filter for address B, then both VFs will receive A and B which is = not expected. But if the only issue for receive unexpected multi-cast packet is just a pe= rformance impact then I agree with most of patch,=20 one more comment is we may need to reset IXGBE_VMOLR_ROMPE if nb_entries = =3D 0, which is the case to clear all multi-cast filter. >=20 >=20 > > > > > + > > > return 0; > > > } > > > > > > -- > > > 2.7.5