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 82868A04B1 for ; Wed, 23 Sep 2020 09:38:55 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 50D8E1DBCC; Wed, 23 Sep 2020 09:38:55 +0200 (CEST) Received: from hqnvemgate26.nvidia.com (hqnvemgate26.nvidia.com [216.228.121.65]) by dpdk.org (Postfix) with ESMTP id D8B271DAAD; Wed, 23 Sep 2020 09:38:52 +0200 (CEST) Received: from hqmail.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate26.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Wed, 23 Sep 2020 00:38:39 -0700 Received: from HQMAIL109.nvidia.com (172.20.187.15) by HQMAIL109.nvidia.com (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 23 Sep 2020 07:38:51 +0000 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.170) by HQMAIL109.nvidia.com (172.20.187.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Wed, 23 Sep 2020 07:38:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CgpWjcN5ScI41Uz6tTM8soRiMnivJ8xUDzrSrvkbmyybHXd+3PW/2cZ+q4ZUl5k9qxgMIVuG8mO8RFOXJ6NozftwKr7pF8w6mbJ7YrIr3UuK9leGyXQVpN8x3c1/cje2biXXLbwDpxHU/5X5DVvVixmptNF0NkgH+JC4hayYcvA62COegGxIZq0TvzFxHIQtfjeLp6v7xFyi8PF8qSzTfLKegCPG86zVHWBUP7Wx+LwynH5SYfewK0ccg3ABieiEkpF265f7PZ8smarokw6+x0xkxAkY5PiWT1kSxw8yS4VkMMFELy8Q0N6R6H95OVzeoLWg79VGF2anIYkjt4hoAQ== 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=qS+vcv+ZexnQ05dIKoXFU27agnQJagICI5UOBlqVoQA=; b=AZyCohF8MAVe11iRPQAIZr0RDhwEuLcZW9SWv5ZguWBGOAIh6SKqNqMqC2KCyDNE3yXq4pVIR3RGlv48PN1IwI72NYmSBj88f/bGNU54BHcFQ2RhdJ1BFwCP6JMJYeh9/XxWj+LOvQwggDes0EX6HCaWHCXNTYuq0vzKvsSk9zAUq7ziDNPIkzleOginjA5iMv5b3vnbGkR/mxyenNhEVwl6OG2TC4uF8rNFXMP3EyyoFDKBzdF3G3a6wkDdtZ+3cZYgfgZmKp4Nxg1fc9xrCe/2SL/ECEqo1SQ1tilpJ2TmWyBZWV996lZDH3o8LIDaxe1B0yK/xfJk1EZaZpD3fg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none Received: from DM6PR12MB2748.namprd12.prod.outlook.com (2603:10b6:5:43::28) by DM6PR12MB3435.namprd12.prod.outlook.com (2603:10b6:5:39::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3412.20; Wed, 23 Sep 2020 07:38:48 +0000 Received: from DM6PR12MB2748.namprd12.prod.outlook.com ([fe80::f506:4af8:281b:cdeb]) by DM6PR12MB2748.namprd12.prod.outlook.com ([fe80::f506:4af8:281b:cdeb%7]) with mapi id 15.20.3391.026; Wed, 23 Sep 2020 07:38:48 +0000 From: Raslan Darawsheh To: "Xueming(Steven) Li" , Matan Azrad , Slava Ovsiienko CC: "dev@dpdk.org" , Asaf Penso , "Xueming(Steven) Li" , "stable@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH] net/mlx5: use bond index for netdev operations Thread-Index: AQHWiw0z7N/0NUnOZUmueM6whE0jpal14unA Date: Wed, 23 Sep 2020 07:38:48 +0000 Message-ID: References: <1600139153-9990-1-git-send-email-xuemingl@nvidia.com> In-Reply-To: <1600139153-9990-1-git-send-email-xuemingl@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [212.29.221.74] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d8c52838-4c8c-4d73-f81b-08d85f93b5a6 x-ms-traffictypediagnostic: DM6PR12MB3435: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:346; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rnCfSYwaZi0/xOj9hsHfdA2UCoxzhvsyyjdrgGP+zLGGXpVQhpkSSN0T4/L4003UAURfaibOa4ziqJXoFH0EqPfdnxsdmRbzqkh3gMmTCyaZ93mB22Ps9tFi37D9tCaJ/7PWdCvWA64AVCoRRqjt7RdXW6BlM2MIXzrsXJ6TmwxUM8ysPOLeAIHFOFPcsVsMMWj/9XKocYajNVDTy4TezG+vRBACws4uBE6NmflXwf0PHiu5Yv3EL3mub/dFzYtAHoC+WoP6ozQsdDtYP3gaDkcmGcxbv9j9gNcwxv2UyeTSokoNy3UZvRZWmHYMJ0u0cCUMtAEypg7rqOx7Sd1vRVCP7K3mowrruXkUFeUqZLox6FQ/tzkucVdNwAoJlxRM x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB2748.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(136003)(39860400002)(396003)(376002)(346002)(450100002)(2906002)(5660300002)(54906003)(9686003)(478600001)(6636002)(66946007)(52536014)(110136005)(55016002)(4326008)(8676002)(76116006)(33656002)(83380400001)(66556008)(316002)(66446008)(64756008)(86362001)(186003)(8936002)(71200400001)(6506007)(66476007)(53546011)(7696005)(26005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: SQnMoQpYghqGpvSKoDuFvI3/K+s3sJAEVu/ci6CRiifoHljq2/CC4ts3LAVvDBXU7BElPrz23owwcspPpT249o2FJOnvNAbxTMO06a+6Hf1e9K8jezX4D/RBBD/Mefau9Jtd+GkcD3RV0Fus8XbKpt13Sf/mxj87mQwu/rZI2455f4GP7WUCeVhhH67vXpnHpWE5Wb9ukZoHyiCavRFxdcZJPG2EjvuVKlMlXReRiusgSrHiOkcUCQe3XEKsF42qJMUZNzXhqnmfNxXjnDb8BpmvhaAGp6VwpXGmKijk75EHCaTDcq5fGfP28bW1jtjDFdB/Ynh2k91evxWs3DjpbCB3Fa/Oa2SrLkE5MzKqIsYEuHZ78M6tzBgbe1A9dbyj3qDd0H80KgD5kY5u8Lir2vwudcgCCFsEsogtEA/zRAZfDqGKfbT8eTbs9vJC/2AMfmrV69eAeFLzxhbwQuklVU/V6gJHJzQI62xGv7pqozor8Qa7QGuv+ZJna7NlWZdtziGNaaRjKBf8UO8+ayskDuGjiFlFH8ETJaSwRF/5EM/rrCDBy5Y1Q8k4YyrQ+t5B+o6jhIQRUWEfvBjqQJbNUQ36WXVSHGPYQ330vBLCV1XGqVKswzlRLOsf2/YsNtBQzHFkHzzgqrsMsBGpEDgssQ== 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: DM6PR12MB2748.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d8c52838-4c8c-4d73-f81b-08d85f93b5a6 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Sep 2020 07:38:48.3016 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: /NS27rLazaBG0ACD4AKuF232zvUT2Hq4PemhspOru0/AdPYg/wfzek2VCnbbRITU2c37FADZKvY2SEQwtOzjng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3435 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1600846719; bh=qS+vcv+ZexnQ05dIKoXFU27agnQJagICI5UOBlqVoQA=; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To: CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References: In-Reply-To:Accept-Language:Content-Language:X-MS-Has-Attach: X-MS-TNEF-Correlator:authentication-results:x-originating-ip: x-ms-publictraffictype:x-ms-office365-filtering-correlation-id: x-ms-traffictypediagnostic:x-ms-exchange-transport-forked: x-microsoft-antispam-prvs:x-ms-oob-tlc-oobclassifiers: x-ms-exchange-senderadcheck:x-microsoft-antispam: x-microsoft-antispam-message-info:x-forefront-antispam-report: x-ms-exchange-antispam-messagedata:Content-Type: Content-Transfer-Encoding:MIME-Version: X-MS-Exchange-CrossTenant-AuthAs: X-MS-Exchange-CrossTenant-AuthSource: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-originalarrivaltime: X-MS-Exchange-CrossTenant-fromentityheader: X-MS-Exchange-CrossTenant-id:X-MS-Exchange-CrossTenant-mailboxtype: X-MS-Exchange-CrossTenant-userprincipalname: X-MS-Exchange-Transport-CrossTenantHeadersStamped:X-OriginatorOrg; b=pOHePVJ0YQgdsG7fgUSWfVW6epLGjdY9PHT11WUAr+V90Yvgt0RFpDmWW52Qm8kb8 JutOD0l+tw3ZIY91Gpthr7JH03uUhGN9Pwo+wzZtT1uLk8gjixQ93wt/S9T5Gq7R11 Op9pLcDupSbn5sGvFou7zEk2+lGaHju3EcFuprh3CmQEGS8u2AeprWo7r7p0xcpKXE 4XFIPzgqdZntJNcXuIWEI9/C1QS/HxqJsWBHeB9KbocS4TeWk4Ypvi8YHD9/ilACrq v8IOkK2MyR7u3lzkhx13KzFzX49zTIPvNkeByzPH7arBarzDQbZQj0+hskWZGGyv3j hGkcrNRDH0FMQ== Subject: Re: [dpdk-stable] [dpdk-dev] [PATCH] net/mlx5: use bond index for netdev operations X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi, > -----Original Message----- > From: dev On Behalf Of Xueming Li > Sent: Tuesday, September 15, 2020 6:06 AM > To: Matan Azrad ; Slava Ovsiienko > > Cc: dev@dpdk.org; Asaf Penso ; Xueming(Steven) Li > ; stable@dpdk.org > Subject: [dpdk-dev] [PATCH] net/mlx5: use bond index for netdev > operations >=20 > In case of bonding, device ifindex was detected as the PF ifindex, so > any operation using ifindex applied to PF instead of the bond device. > These operations includes MTU get/set, up/down and mac address > manipulation, etc. >=20 > This patch detects bond interface ifindex and name for PF that join a > bond interface, uses it by default for netdev operations. >=20 > Cc: stable@dpdk.org > Signed-off-by: Xueming Li > --- > drivers/net/mlx5/linux/mlx5_ethdev_os.c | 56 > +++++++++++++++++++++++++ > drivers/net/mlx5/linux/mlx5_os.c | 13 ++++++ > drivers/net/mlx5/mlx5.h | 4 ++ > drivers/net/mlx5/mlx5_ethdev.c | 2 +- > 4 files changed, 74 insertions(+), 1 deletion(-) >=20 > diff --git a/drivers/net/mlx5/linux/mlx5_ethdev_os.c > b/drivers/net/mlx5/linux/mlx5_ethdev_os.c > index 7256c1bcfe..593b0d08ac 100644 > --- a/drivers/net/mlx5/linux/mlx5_ethdev_os.c > +++ b/drivers/net/mlx5/linux/mlx5_ethdev_os.c > @@ -151,6 +151,10 @@ mlx5_get_ifname(const struct rte_eth_dev *dev, > char (*ifname)[IF_NAMESIZE]) >=20 > MLX5_ASSERT(priv); > MLX5_ASSERT(priv->sh); > + if (priv->bond_ifindex > 0) { > + memcpy(ifname, priv->bond_name, IF_NAMESIZE); > + return 0; > + } > ifindex =3D mlx5_ifindex(dev); > if (!ifindex) { > if (!priv->representor) > @@ -1101,6 +1105,58 @@ mlx5_sysfs_switch_info(unsigned int ifindex, > struct mlx5_switch_info *info) > return 0; > } >=20 > +/** > + * Get bond information associated with network interface. > + * > + * @param pf_ifindex > + * Network interface index of bond slave interface > + * @param[out] ifindex > + * Pointer to bond ifindex. > + * @param[out] ifname > + * Pointer to bond ifname. > + * > + * @return > + * 0 on success, a negative errno value otherwise and rte_errno is set= . > + */ > +int > +mlx5_sysfs_bond_info(unsigned int pf_ifindex, unsigned int *ifindex, > + char *ifname) > +{ > + char name[IF_NAMESIZE]; > + FILE *file; > + unsigned int index; > + int ret; > + > + if (!if_indextoname(pf_ifindex, name) || !strlen(name)) { > + rte_errno =3D errno; > + return -rte_errno; > + } > + MKSTR(bond_if, "/sys/class/net/%s/master/ifindex", name); > + /* read bond ifindex */ > + file =3D fopen(bond_if, "rb"); > + if (file =3D=3D NULL) { > + rte_errno =3D errno; > + return -rte_errno; > + } > + ret =3D fscanf(file, "%u", &index); > + fclose(file); > + if (ret <=3D 0) { > + rte_errno =3D errno; > + return -rte_errno; > + } > + if (ifindex) > + *ifindex =3D index; > + > + /* read bond device name from symbol link */ > + if (ifname) { > + if (!if_indextoname(index, ifname)) { > + rte_errno =3D errno; > + return -rte_errno; > + } > + } > + return 0; > +} > + > /** > * DPDK callback to retrieve plug-in module EEPROM information (type and > size). > * > diff --git a/drivers/net/mlx5/linux/mlx5_os.c > b/drivers/net/mlx5/linux/mlx5_os.c > index 5f1e9520f7..b4c80d7af0 100644 > --- a/drivers/net/mlx5/linux/mlx5_os.c > +++ b/drivers/net/mlx5/linux/mlx5_os.c > @@ -1168,6 +1168,19 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, > */ > MLX5_ASSERT(spawn->ifindex); > priv->if_index =3D spawn->ifindex; > + if (priv->pf_bond >=3D 0 && priv->master) { > + /* Get bond interface info */ > + err =3D mlx5_sysfs_bond_info(priv->if_index, > + &priv->bond_ifindex, > + priv->bond_name); > + if (err) > + DRV_LOG(ERR, "unable to get bond info: %s", > + strerror(rte_errno)); > + else > + DRV_LOG(INFO, "PF device %u, bond device > %u(%s)", > + priv->if_index, priv->bond_ifindex, > + priv->bond_name); > + } > eth_dev->data->dev_private =3D priv; > priv->dev_data =3D eth_dev->data; > eth_dev->data->mac_addrs =3D priv->mac; > diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h > index 1a7c712f2c..c62643ae62 100644 > --- a/drivers/net/mlx5/mlx5.h > +++ b/drivers/net/mlx5/mlx5.h > @@ -771,6 +771,8 @@ struct mlx5_priv { > int32_t representor_id; /* Port representor identifier. */ > int32_t pf_bond; /* >=3D0 means PF index in bonding configuration. */ > unsigned int if_index; /* Associated kernel network device index. */ > + uint32_t bond_ifindex; /**< Bond interface index. */ > + char bond_name[IF_NAMESIZE]; /**< Bond interface name. */ > /* RX/TX queues. */ > unsigned int rxqs_n; /* RX queues array size. */ > unsigned int txqs_n; /* TX queues array size. */ > @@ -897,6 +899,8 @@ void mlx5_translate_port_name(const char > *port_name_in, > struct mlx5_switch_info *port_info_out); > void mlx5_intr_callback_unregister(const struct rte_intr_handle *handle, > rte_intr_callback_fn cb_fn, void *cb_arg); > +int mlx5_sysfs_bond_info(unsigned int pf_ifindex, unsigned int *ifindex, > + char *ifname); > int mlx5_get_module_info(struct rte_eth_dev *dev, > struct rte_eth_dev_module_info *modinfo); > int mlx5_get_module_eeprom(struct rte_eth_dev *dev, > diff --git a/drivers/net/mlx5/mlx5_ethdev.c > b/drivers/net/mlx5/mlx5_ethdev.c > index cefb45064e..48121929de 100644 > --- a/drivers/net/mlx5/mlx5_ethdev.c > +++ b/drivers/net/mlx5/mlx5_ethdev.c > @@ -43,7 +43,7 @@ mlx5_ifindex(const struct rte_eth_dev *dev) >=20 > MLX5_ASSERT(priv); > MLX5_ASSERT(priv->if_index); > - ifindex =3D priv->if_index; > + ifindex =3D priv->bond_ifindex > 0 ? priv->bond_ifindex : priv- > >if_index; > if (!ifindex) > rte_errno =3D ENXIO; > return ifindex; > -- > 2.25.1 Patch applied to next-net-mlx, Kindest regards Raslan Darawsheh