From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 85CF1A04DB; Thu, 15 Oct 2020 10:39:12 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 161031DD1C; Thu, 15 Oct 2020 10:39:10 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id A6A171DD1B for ; Thu, 15 Oct 2020 10:39:07 +0200 (CEST) IronPort-SDR: Q/8iXNzvTpfq4KLWwLrW3t139UhXHYB4pGvVwdViTY1Ssio6KfEs+K1+vr46DuSusoTZ2SKedk NtGf61/81TSw== X-IronPort-AV: E=McAfee;i="6000,8403,9774"; a="146157903" X-IronPort-AV: E=Sophos;i="5.77,378,1596524400"; d="scan'208";a="146157903" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Oct 2020 01:39:05 -0700 IronPort-SDR: LfESmdJwIqz/N/O37dXx4MHXgVfcvkRIoA/Y6y6fH7X8tAvanTQOAyb0abLfiTiSJ8Psd75NHX 9+5Bn+7jNhSQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,378,1596524400"; d="scan'208";a="521766454" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmsmga005.fm.intel.com with ESMTP; 15 Oct 2020 01:39:05 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 15 Oct 2020 01:39:05 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 15 Oct 2020 01:39:05 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.100) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Thu, 15 Oct 2020 01:39:03 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=av/NUdtFgB8AOZCUZJE9dtVoL/CYg9uAu/vG17by2nxeSpAld4V0+Qx12QdFeeNtzUwXjEnmQMCCJFmHCgASSuaYkWojCl3cOaWK4jx7zxhm1NiCFxPhvZPSmhXTWYet6eqShfyUFXa1t2xH2KxAjpFMMnk9me/dWfdhnBs5YJqygfjXhi9TjNpWYRbX10u0z3Il9AvCR7OC06a4n6UXJW9uCpT2HnV+nw+qo/2Is0SOdCIp2VhUuDEBj+mms0CdnR7+6nSLcbDR0+uYy7FTZB5Eyb/RK6itbx1MdDDskpG1dGn1I1fyB1pk0KklBwHpGaqx46q9BD07tsOQRu1QDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yj43Q4VHPHYz+9wMvfNWr1NoIqDnLp1AInwyQLAufDw=; b=AaMICXTz3y2i+2R0p68yK2swxR85PEq4ofYevWvqZljKmkztKzQlAntiVKBYXJKXDoQ1ID+A5Q2MaxwqbY/eqEzBWzNrXBR9mEbg5T1H67YHeziH6yDxAR6rtzJWbY9Qkbcc5Gau2BI7FAXg5xbCaZaiZLiSIp38r91955Bgp0D4MAfExPM8xkMWTBU8w9iZiq0W1ZACF00I0JUt96ZECcFdflsQqBEUYaG0ZF4Q7ixflrziF7MGslMk0aC4CJV/lH1a/OnbLea0z/XPCHZsq6KGZtKnDuogV4WHh/6q7IPPBpx9aWbg7r20WfxFJLnGoKUR11FEA7RUGw6028GBGw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yj43Q4VHPHYz+9wMvfNWr1NoIqDnLp1AInwyQLAufDw=; b=hiQsRKQ5y6w8aFznJf+aj7eNampS4dSTVjkp6yetzlQmpNP1Ec6HOKoBjQZ6q5/t0L/1IT6DvnQSRnVu7VS9r8uMM3aWFcUxWwWuyegYlz5EfimEmi6PoPsAJDgPBVQE8kLNZeNGQK+4jAtsY3stC5YuDtBJj0dao8wPmEI0V0s= Received: from MN2PR11MB3807.namprd11.prod.outlook.com (2603:10b6:208:f0::24) by MN2PR11MB3550.namprd11.prod.outlook.com (2603:10b6:208:ee::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.27; Thu, 15 Oct 2020 08:38:57 +0000 Received: from MN2PR11MB3807.namprd11.prod.outlook.com ([fe80::4dc9:358a:cd2e:45d6]) by MN2PR11MB3807.namprd11.prod.outlook.com ([fe80::4dc9:358a:cd2e:45d6%6]) with mapi id 15.20.3477.020; Thu, 15 Oct 2020 08:38:57 +0000 From: "Xing, Beilei" To: "Sun, GuinanX" , "dev@dpdk.org" CC: "Zhang, Qi Z" , "Wu, Jingjing" , "Sun, GuinanX" Thread-Topic: [PATCH v3] net/iavf: fix adding multicast MAC address Thread-Index: AQHWoszABb7Y1NaC0U+Nqu3rvjd/tKmYVlOw Date: Thu, 15 Oct 2020 08:38:57 +0000 Message-ID: References: <20201015020204.12658-1-guinanx.sun@intel.com> <20201015081352.36768-1-guinanx.sun@intel.com> In-Reply-To: <20201015081352.36768-1-guinanx.sun@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.38] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 50859626-3401-4226-a99a-08d870e5c1f7 x-ms-traffictypediagnostic: MN2PR11MB3550: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:134; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3zDH5K9HXIhXNkXqMUBqYIO1SwtQ1iWyBj+Qo5Z5UWZVNhp+blEcOd7lvR7tJPZTbIvlnxTfuB3NkJN8EkjqNN1dX/lwaTttjqlFDxjGzOCZMQFauEyJyqNc8TFU+qO3VznX263fbkbUWnoapgLUc2VqHmtGB44Alch6eETFNZX40ZJnhxRcD3v5oL+PqDt9kU0Hg1z4emDmGfIfmtmrjQNH4KGL9pRC19KTs3FAO9iLmjJOA0cFIzEhq84ivK8itCMXP2iVnWeP15Iuz2VeA/P8NL3oMucUwtzQAT7/rTyHMIs5a1UCc79jL4O/TPgL0rZZ7qZagUbEXuI7jlBHzQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB3807.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(39860400002)(136003)(346002)(376002)(366004)(8936002)(316002)(76116006)(478600001)(26005)(107886003)(71200400001)(110136005)(54906003)(4326008)(66476007)(64756008)(66556008)(53546011)(55016002)(52536014)(6506007)(66446008)(83380400001)(5660300002)(86362001)(7696005)(186003)(9686003)(8676002)(66946007)(2906002)(33656002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: hGymxxY9ny8WZEtv0gmmorotySYMLn4Z8zlDFexfypCbhfNjj3fqoNzbWM9+J5TxrWRkw6Y26JQVpLkPHDxmpcXWZfy3y8KT8VOC19106s6nnPViZe/TyZqi7VvJB5Z99O3/nYql0YQ1t+k0zqNJN8zPUZONN0N9mtRi+WarwM1c6JgPU2g9tikTKin7mx7iep17PVEXQw+ax2/2ycFPc+8DER7nsNH0/34FW27VJxIanTx3MODGHaCQnAeFCIYOmit50bbWk+iqI94tQFJBVq5JgtCgGob3xwtzHBhSw86ZSHT9gWKO/2PGM45xQL2qjvlpRJcisSPdZrNVJRdJxAU/wOhqd+Jlyis8sEzTvpCSEFXSeIQo0nFusZOSydguLppCZAHDzCuM5wuHxBbfWq21Q69pMMYIWgrY114w/EvWMqtQRNsyFyoQ84aIOT99DX94682NCHDbtWRtWRKEPM2LxfpNWZfX8NQ6Z08MDngd2No8bmeE3bVzVFWQbyOsRa2It9t3Upwv4DqNOVzS7/y1hccquMZTUMmRcEQCi4MiuP9v6ydPohOq028kFlZeDRHdCrDRvvhPsQn/nsdHXAowlV937ksGU/eTR46oyELJf8eaByGiXva6p+iJ6jVA7f42UX6jniCyVduUit+VDw== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB3807.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 50859626-3401-4226-a99a-08d870e5c1f7 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Oct 2020 08:38:57.4651 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: HZPXiBpV7I1IUNup7TcejvZNOcbbMaodphFV7ppn937+RZ6JtMDKgF/WykkySMKmlw8k3cie5isSreJj087TjQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3550 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v3] net/iavf: fix adding multicast MAC address 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > -----Original Message----- > From: Guinan Sun > Sent: Thursday, October 15, 2020 4:14 PM > To: dev@dpdk.org > Cc: Xing, Beilei ; Zhang, Qi Z ; > Wu, Jingjing ; Sun, GuinanX > Subject: [PATCH v3] net/iavf: fix adding multicast MAC address >=20 > When the multicast address list is added, it will flush previous addresse= s first, > and then add new ones. > So when the number of multicast addresses added to the list exceeds the > upper limit causes a failure, should add the previous addresses back. Thi= s > patch fixes the issue. If the number of multicast address list exceeds the upper limit, it will cause failure, then need to roll back previous addresses. Except this, Acked-by: Beilei Xing >=20 > Fixes: 05e4c3aff35f ("net/iavf: support multicast configuration") >=20 > Signed-off-by: Guinan Sun > Tested-by: Peng Yuan > --- > v3: > * modify commit message > v2: > * modify the variable name > --- > drivers/net/iavf/iavf_ethdev.c | 30 ++++++++++++++++++++++-------- > drivers/net/iavf/iavf_vchnl.c | 3 --- > 2 files changed, 22 insertions(+), 11 deletions(-) >=20 > diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethde= v.c > index e68e3bc71..8a7577230 100644 > --- a/drivers/net/iavf/iavf_ethdev.c > +++ b/drivers/net/iavf/iavf_ethdev.c > @@ -164,7 +164,14 @@ iavf_set_mc_addr_list(struct rte_eth_dev *dev, > struct iavf_info *vf =3D IAVF_DEV_PRIVATE_TO_VF(dev->data- > >dev_private); > struct iavf_adapter *adapter =3D > IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); > - int err; > + int err, ret; > + > + if (mc_addrs_num > IAVF_NUM_MACADDR_MAX) { > + PMD_DRV_LOG(ERR, > + "can't add more than a limited number (%u) of > addresses.", > + (uint32_t)IAVF_NUM_MACADDR_MAX); > + return -EINVAL; > + } >=20 > /* flush previous addresses */ > err =3D iavf_add_del_mc_addr_list(adapter, vf->mc_addrs, vf- > >mc_addrs_num, @@ -172,17 +179,24 @@ iavf_set_mc_addr_list(struct > rte_eth_dev *dev, > if (err) > return err; >=20 > - vf->mc_addrs_num =3D 0; > - > /* add new ones */ > err =3D iavf_add_del_mc_addr_list(adapter, mc_addrs, mc_addrs_num, > true); > - if (err) > - return err; >=20 > - vf->mc_addrs_num =3D mc_addrs_num; > - memcpy(vf->mc_addrs, mc_addrs, mc_addrs_num * > sizeof(*mc_addrs)); > + if (err) { > + /* if adding mac address list fails, should add the previous > + * addresses back. > + */ > + ret =3D iavf_add_del_mc_addr_list(adapter, vf->mc_addrs, > + vf->mc_addrs_num, true); > + if (ret) > + return ret; > + } else { > + vf->mc_addrs_num =3D mc_addrs_num; > + memcpy(vf->mc_addrs, > + mc_addrs, mc_addrs_num * sizeof(*mc_addrs)); > + } >=20 > - return 0; > + return err; > } >=20 > static int > diff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.= c index > db0b76876..a2295f879 100644 > --- a/drivers/net/iavf/iavf_vchnl.c > +++ b/drivers/net/iavf/iavf_vchnl.c > @@ -1107,9 +1107,6 @@ iavf_add_del_mc_addr_list(struct iavf_adapter > *adapter, > if (mc_addrs =3D=3D NULL || mc_addrs_num =3D=3D 0) > return 0; >=20 > - if (mc_addrs_num > IAVF_NUM_MACADDR_MAX) > - return -EINVAL; > - > list =3D (struct virtchnl_ether_addr_list *)cmd_buffer; > list->vsi_id =3D vf->vsi_res->vsi_id; > list->num_elements =3D mc_addrs_num; > -- > 2.17.1