From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 4FC7A1B47E; Fri, 4 Jan 2019 13:20:28 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Jan 2019 04:20:27 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,438,1539673200"; d="scan'208";a="135298443" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga001.fm.intel.com with ESMTP; 04 Jan 2019 04:20:27 -0800 Received: from fmsmsx114.amr.corp.intel.com (10.18.116.8) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 4 Jan 2019 04:20:27 -0800 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX114.amr.corp.intel.com (10.18.116.8) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 4 Jan 2019 04:20:26 -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:20:25 +0800 From: "Zhang, Qi Z" To: "Zhao1, Wei" , "dev@dpdk.org" CC: "stable@dpdk.org" , "Wu, Jingjing" Thread-Topic: [PATCH v2] net/ixgbe: fix multicast table enable error for VF Thread-Index: AQHUpAvhjUyfAlTQqUW+k1VYgJaov6WfBtvA Date: Fri, 4 Jan 2019 12:20:24 +0000 Message-ID: <039ED4275CED7440929022BC67E706115331484C@SHSMSX103.ccr.corp.intel.com> References: <1546410760-24879-1-git-send-email-wei.zhao1@intel.com> <1546590867-7390-1-git-send-email-wei.zhao1@intel.com> In-Reply-To: <1546590867-7390-1-git-send-email-wei.zhao1@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOWU1ZTc4NWMtMTBiNy00OTJjLTljY2YtY2YzYmEzOTliYWNlIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiQUhySnpLMWsxQTd2N1EwVVVPdm9wMmFHWXF1XC9QRlQxdUJ1Q0ozRm5nNEFwM0dtYmhCSjhqYjd0Q29cL2RTWGdWIn0= 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 v2] net/ixgbe: fix multicast table enable error for VF 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:20:29 -0000 > -----Original Message----- > From: Zhao1, Wei > Sent: Friday, January 4, 2019 4:34 PM > To: dev@dpdk.org > Cc: stable@dpdk.org; Zhang, Qi Z ; Wu, Jingjing > ; Zhao1, Wei > Subject: [PATCH v2] net/ixgbe: fix multicast table enable error for VF >=20 > 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 th= ese > address. > So thhere is need to set VMOLR register bit ROPE only after this vf has b= een set s/thhere/there > multicast address. If this bit is set when pf host doing initialization, = this vf will > receive multicast packets with address written in MTA table. Align to ixg= be pf > kernel 5.3.7 code to fix this bug. Please check my last comment in v1, we need to consider the case to clean a= ll multicast filter. =20 >=20 > Fixes: 00e30184daa0 ("ixgbe: add PF support") >=20 > Signed-off-by: Wei Zhao >=20 > --- >=20 > v2: > change patch name and fix typo in log. > --- > drivers/net/ixgbe/ixgbe_pf.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) >=20 > 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)); >=20 > - 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); >=20 > @@ -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)); >=20 > /* 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); > } >=20 > + vmolr |=3D IXGBE_VMOLR_ROMPE; > + IXGBE_WRITE_REG(hw, IXGBE_VMOLR(vf), vmolr); > + > return 0; > } >=20 > -- > 2.7.5