From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B894445B90; Mon, 21 Oct 2024 08:33:55 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B835940616; Mon, 21 Oct 2024 08:33:33 +0200 (CEST) Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2128.outbound.protection.outlook.com [40.107.95.128]) by mails.dpdk.org (Postfix) with ESMTP id 4516D402F1 for ; Mon, 21 Oct 2024 08:33:30 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=x/1CvZdIXygEbLT8BNxU1kw/BTuw9Z3+RCNpdu4cS2le+qoYdI5OHuPARSzxtcFwuG2lC0PODyMgG68Sf3nBbxEefN4QTzJGytQFvmWHgaOPbx/OWxUuc1ZecYfbZTD9tV0IbTWoJBEhLR9QGt/Rej+yzmWE0vIS+SdT0/BroeFM+o4j87V5+LVfkYg+OsXY84ebvwGZhi8buzVLZpSmKY6OapG0Uu5lT5g6imuoZQQczqm/kYy0EvHhvSEoyNVVw+0fD35YgYEHrXts3mcsDST0WENmbXOVgIoRG4y+IyYq2Nz6/wDA00Q1m79Pio69wxkx7CoiwNw7eftqEpN5yg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9i4p0Oyz2mIKSwg38laUywWmLFbjSPZMwPYvxJsN0Dw=; b=PiMiZAYaP2dp/3K0++6oRCrkiFsyBKmtXadtev/SpFJLksccuMlfYFhTVrhswXR7ygk4WcfiNwtCkC1ysKYhEWSXf+wBpRENbC2HAt8KiLf3n3hCcqmI5uIjfaxuToigMwZniifKBrw7UItqq77DCXxGILLOgdrKL6iPR6cnXHSb9kUp97v0sHinSTvGPOj+k586GUOpHsCQx0oGm/5gysJZ8JSdfhKRT2+L6FJMMNhXj5UYAdoPU43D09oP/Phh7g6MCVCN4uEMZNOSTg4zO7Vo8GE2bCyyjuD3R65GnNfk+MnyyY3smaVwC6XfxBjFi+PbAjfzLpg8sPU/6rwenQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9i4p0Oyz2mIKSwg38laUywWmLFbjSPZMwPYvxJsN0Dw=; b=Qdz+G8Wnn0ydbGknm1BIdkkcB/bqlu9qdSmiX7W1t08Yw/ia3v6YNUvBB6aeZVewRNEutEhtdzt49Hp1K0k1jzAtR2UqilkjippkYVlojunRznM0sIIi6x0B4O+rTLoZLsRY5gzm2TL4o603jVNiEGfGbWmCVlhl57o5pOOC5wQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by CH3PR13MB7023.namprd13.prod.outlook.com (2603:10b6:610:20a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8069.28; Mon, 21 Oct 2024 06:33:28 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833%5]) with mapi id 15.20.8069.024; Mon, 21 Oct 2024 06:33:28 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Peng Zhang , Chaoyong He , Long Wu Subject: [PATCH 4/9] net/nfp: extract the function to allocate the VF Date: Mon, 21 Oct 2024 14:32:56 +0800 Message-Id: <20241021063301.4146214-5-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20241021063301.4146214-1-chaoyong.he@corigine.com> References: <20241021063301.4146214-1-chaoyong.he@corigine.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SG2PR03CA0118.apcprd03.prod.outlook.com (2603:1096:4:91::22) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|CH3PR13MB7023:EE_ X-MS-Office365-Filtering-Correlation-Id: e55286a1-c4a7-473d-3dc9-08dcf19a462c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|1800799024|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?GQ/TGymoy0OH0TWauzflaPVdNV49xT7/aq0Rn/+3fDpwHL8OoIwiVm/DcHI8?= =?us-ascii?Q?6F4TvNjgtvCPyrEaj4TaPKgJ32tvFWipGYU/+T40MOVScF6iaNrAem2YDyq4?= =?us-ascii?Q?E0VfmbrdukkZ3CRuAlhCsXd4UWQlkVFPE2MDclM7Qh4CgTXeUZEQsAmMxvoO?= =?us-ascii?Q?GTqoWBr5nr50euPlaJhL1ko3sL4k8zxaJprunjpWHEgVQf8SxMwNi4e/V1o/?= =?us-ascii?Q?lHfAc/vziZunc87dchfe2ccbOYzLrF6SFms1b8L5e70j76XGm0Ox+eXkFHsj?= =?us-ascii?Q?HbYJCciB1fC0qx+yOraXbhq8AatZDnjKLBKq8tV2dYSY6CWiZKajiX7S36UI?= =?us-ascii?Q?1ks1pWvSYyCK2gMKDMUk5VYyspNzRty1jf14+s8D7sISwLHbz6SylTZH7leA?= =?us-ascii?Q?fQAxOJLWDb+4pZmczIWpqN0F7ERIEdoI2qhRAt6I2/njhR/Q+2Spr/iPT/WY?= =?us-ascii?Q?sYE18fWON4UwrBx8Pt1wjarzSuhlmaQLCGy80p39E0pHHol6PjyWJ/IQggDj?= =?us-ascii?Q?zrMPZGIE2rOwfbqFNi8HwR3ppu1rIHQ0Ak69KGHCPyybnYbqh3cFeNBC3oEA?= =?us-ascii?Q?pVSe9KT1hwfoAxil0RcKr4SzLKdTauwwSXr1UvjicrOrZRulu5il1L3sqUtv?= =?us-ascii?Q?2l0wNr21N3eQzJ9Q7uFsua0dEraJZT9mssmf5oIWaUvKF/0jD/o8uQj4Qs6C?= =?us-ascii?Q?DSMY5rZwY7QFLvIZomSD5UReuw6GFbUq0mIEoRbZuo8ENA6dAz2e+MDIi6+V?= =?us-ascii?Q?mx04AucoHa7FBqG8rOr6YxOtauUkEgEzC7PvMYg4XUXaMdus8G/HnBH0F6kA?= =?us-ascii?Q?YYJ5MF6U3AG9S/2FAhhHsSidJAgbgGi6D6zkzidFA2pRleIDOXn8iffWavUK?= =?us-ascii?Q?kO+kCee9KhnazGIoQh0YmfSvjP18dMobOXeWEHco1cq8PZeND1+U7W3PVaXD?= =?us-ascii?Q?zuBmAxjJbpKEJWLY6TQVjUyPJQu1qrhej06pKrd8viidxngRX7chs8WxMK6H?= =?us-ascii?Q?rU2kWV2kkOlPjk4Ix9Azw7rLqU1XV1dMCChAkmsprBagsg9S+Rj3ieTWHKqQ?= =?us-ascii?Q?jHJpauQAugKOwzAGDYoX0rqUohCjkgwyzJHvUcM/L/CI+6pZ5UGMWaQn/vaE?= =?us-ascii?Q?JqubSRKFgOqH0FwwPBf/abDWc5OAxbdnagfLi9zXe2pmw7+VmqSNoNWXoEpC?= =?us-ascii?Q?x4JzquKTAm3LczoQjkmT+rZqp2QnsTq7c4SqPaLd/KYzyFlFU36c+QRy2blN?= =?us-ascii?Q?IjIFY3Qko1/a5pKFjgg6Xn2DhvxKXVpmJW0wfC9fJBFG0mvddDpNbC01khv7?= =?us-ascii?Q?63qLSCzgKVoQtvOPxIu6yFw55hje/5eiw+XV1YXeVAVKmR7gQkV7naOiAHAk?= =?us-ascii?Q?5DEBs9Q=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(52116014)(376014)(38350700014); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?uwl+/2DSaj/SNR+kV7hbzwVQ58/8Id8dW0Wf1X0GN1tqdTi+TC4tnlFn8IrS?= =?us-ascii?Q?B1HsTfkNZrB7RgAhyvjYVqX5MOcU+0UDMtQMPfASofadvQT9e0KjcLJiIdmQ?= =?us-ascii?Q?AjDl+kAi2lTwCpmFSuZoEiuX3PBP0l4mrL99aOo4AqG8gjSF+W1tX7POPK+d?= =?us-ascii?Q?gOejDr47SEU6Mum1j3pgL5UBHd0nHhk8BgBPgOvCgNhUvhLXl2G8nvGD3qmo?= =?us-ascii?Q?SRj0rxqNPgIm3SlMcxk3qx5zpjxirk1OTrZZf+4mQJ9wEwaYrRP1w0mpeMMH?= =?us-ascii?Q?Noe6+y0n/59UPqBNilAo+OBxFZbiaZMzz7AhGMy8mNEAhIJD9GSRx4kJq2aO?= =?us-ascii?Q?96p+Me8wZHcz7GsbMCT7oJ2FBD0LN9CqKDDOTzcYK5Mu/58ZQwXS80PnG3HM?= =?us-ascii?Q?COZDtwBLyORGZbpjFlsTF5bK9cefqjZnFijfo3YtNMeaFIxTWnUcnw5PqI3E?= =?us-ascii?Q?XpcV9Wg30w79RkT1Nb0dDrNFdrcoKgbreJ+UvTgd4ukd7CEjhY8tMSKSmgc/?= =?us-ascii?Q?uaIGOk/FWJwqQoz3OhO5625AS90PbuhiWhBt2gf4putbrsGAQPqyeh7P53Ln?= =?us-ascii?Q?L+Q+aKJcKgH2OtpL5z5Q3jp8qrp+g/R9xPtOwNGg+KflP+gvGyPhVs8JGUdZ?= =?us-ascii?Q?CG/GZCKmxKIu0sesMX85LP20gqNLu4tundQBQrKWF8YdChTpU5S2VRGSapAU?= =?us-ascii?Q?8ttIsGpEhWKXXhJ4Q/1XAgDY4BuM87Wygq74auXK6KneSOWTdL1pkukF5XWC?= =?us-ascii?Q?c47aaIBZ00ZmwWiCw7oCb4xZaeV/6UyWoZaoEAuQJHRSi0w7hQpkjSLynqGg?= =?us-ascii?Q?IO8DpItj4mrlif/92a5SPtXMzEn/xrt7VkZR/zzK84arDLA83sBzeE7Wf/3p?= =?us-ascii?Q?eZb1OMQcgtJEILc+BTOINa1eQLAPEQJvvdXX2dMCQ4K0NmIzq7rUtMdOsISo?= =?us-ascii?Q?NAoRijym4+hsqnVfaLOlJVpUNDmwdlRSYzeuw5ynaaJ6F2pgfSppeoMeA4pY?= =?us-ascii?Q?S3XmMf1eOiRwoXvL9VMcDkX/RCVUhFzgAY5m+051J0KUtm3MBB4y1BaZAFtT?= =?us-ascii?Q?qOknaQhC3k2SlwPDXboyyFS3yRTvSoZJWMekogLpRKDN4VKesQiUjHKtQo/K?= =?us-ascii?Q?yJWIQ2gg/p0t8KvWpHsQtPpTNmig30Afb69uZABd1RD7AwQh803yx6VlaS2m?= =?us-ascii?Q?c+srsdNQI/gx29g85Gl4I+tVuCBRUK7OOmoVq0hpr9D+yN0t2L0dXHUMiy5c?= =?us-ascii?Q?lZNodTp1Q6UW7u081xGPC8M7T/RWVT7pN36etukHL2UY30u81ZtrT/XWKxrP?= =?us-ascii?Q?u0nZ8DX24x1jf0BP0bJ6LvXCKnfm/px0rGYHYSELb1qFschgWvxpBiGP3yM0?= =?us-ascii?Q?8EYivKMZG6kXOw3y3ZbiuQ56KihyY5EJlTKyVhWjvdsuLDR11VAw3PNBrfNK?= =?us-ascii?Q?ru8OMFgHVBiq51xS1U6toJxXKmwGzvh2Ela8em7iHNZ6Xz2/WvKvNcIvrkco?= =?us-ascii?Q?/FbEfI4ZSf/nIsYo0qrOASLtKVSA7KRo0Awxt6o6kIGvDOW5YMuXrIgtVn/G?= =?us-ascii?Q?hhy82JqSM5cHC3HwCQR0Y+khdLVVthyj0zEtUTByydjfulJiAkg9XPRCOsck?= =?us-ascii?Q?yQ=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: e55286a1-c4a7-473d-3dc9-08dcf19a462c X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Oct 2024 06:33:28.6000 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ux6L5yZ+J8gV82OWTKAi2wYeBgvx/Ku9QmRNgk4TZxCbek/dlt1ZNhUcfk4ylOB2vB5ahc5ICJXCBFibdlqrCOh92YROQ3MrMab65roDxjg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR13MB7023 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Peng Zhang Extract the helper function to allocate the VF representor ports. Signed-off-by: Peng Zhang Reviewed-by: Chaoyong He Reviewed-by: Long Wu --- .../net/nfp/flower/nfp_flower_representor.c | 85 +++++++++++-------- 1 file changed, 49 insertions(+), 36 deletions(-) diff --git a/drivers/net/nfp/flower/nfp_flower_representor.c b/drivers/net/nfp/flower/nfp_flower_representor.c index 2045076b4b..d49f02fc75 100644 --- a/drivers/net/nfp/flower/nfp_flower_representor.c +++ b/drivers/net/nfp/flower/nfp_flower_representor.c @@ -873,6 +873,49 @@ nfp_flower_phy_repr_alloc(struct nfp_net_hw_priv *hw_priv, return 0; } +static int +nfp_flower_vf_repr_alloc(struct nfp_net_hw_priv *hw_priv, + struct nfp_flower_representor *flower_repr, + const char *pci_name) +{ + int i; + int ret; + struct nfp_pf_dev *pf_dev; + struct nfp_repr_init repr_init; + struct nfp_app_fw_flower *app_fw_flower; + + pf_dev = hw_priv->pf_dev; + repr_init.hw_priv = hw_priv; + app_fw_flower = flower_repr->app_fw_flower; + for (i = 0; i < app_fw_flower->num_vf_reprs; i++) { + flower_repr->repr_type = NFP_REPR_TYPE_VF; + flower_repr->port_id = nfp_get_pcie_port_id(pf_dev->cpp, + NFP_FLOWER_CMSG_PORT_VNIC_TYPE_VF, i + pf_dev->vf_base_id, 0); + flower_repr->nfp_idx = 0; + flower_repr->vf_id = i; + + /* VF reprs get a random MAC address */ + rte_eth_random_addr(flower_repr->mac_addr.addr_bytes); + snprintf(flower_repr->name, sizeof(flower_repr->name), + "%s_repr_vf%d", pci_name, i); + + repr_init.flower_repr = flower_repr; + /* This will also allocate private memory for the device */ + ret = rte_eth_dev_create(&pf_dev->pci_dev->device, flower_repr->name, + sizeof(struct nfp_flower_representor), + NULL, NULL, nfp_flower_repr_init, &repr_init); + if (ret != 0) { + PMD_INIT_LOG(ERR, "Could not create eth_dev for repr."); + break; + } + } + + if (i < app_fw_flower->num_vf_reprs) + return -EIO; + + return 0; +} + static int nfp_flower_pf_repr_alloc(struct nfp_net_hw_priv *hw_priv, struct nfp_flower_representor *flower_repr, @@ -912,30 +955,21 @@ static int nfp_flower_repr_alloc(struct nfp_app_fw_flower *app_fw_flower, struct nfp_net_hw_priv *hw_priv) { - int i; int ret; const char *pci_name; - struct nfp_pf_dev *pf_dev; - struct rte_pci_device *pci_dev; - struct nfp_repr_init repr_init; struct nfp_flower_representor flower_repr = { .switch_domain_id = app_fw_flower->switch_domain_id, .app_fw_flower = app_fw_flower, }; - pf_dev = hw_priv->pf_dev; - repr_init.hw_priv = hw_priv; - /* Send a NFP_FLOWER_CMSG_TYPE_MAC_REPR cmsg to hardware */ - ret = nfp_flower_cmsg_mac_repr(app_fw_flower, pf_dev); + ret = nfp_flower_cmsg_mac_repr(app_fw_flower, hw_priv->pf_dev); if (ret != 0) { PMD_INIT_LOG(ERR, "Could not send mac repr cmsgs."); return ret; } - pci_dev = pf_dev->pci_dev; - - pci_name = strchr(pci_dev->name, ':') + 1; + pci_name = strchr(hw_priv->pf_dev->pci_dev->name, ':') + 1; ret = nfp_flower_pf_repr_alloc(hw_priv, &flower_repr, pci_name); if (ret != 0) { @@ -954,32 +988,11 @@ nfp_flower_repr_alloc(struct nfp_app_fw_flower *app_fw_flower, * Now allocate eth_dev's for VF representors. * Also send reify messages. */ - for (i = 0; i < app_fw_flower->num_vf_reprs; i++) { - flower_repr.repr_type = NFP_REPR_TYPE_VF; - flower_repr.port_id = nfp_get_pcie_port_id(pf_dev->cpp, - NFP_FLOWER_CMSG_PORT_VNIC_TYPE_VF, i + pf_dev->vf_base_id, 0); - flower_repr.nfp_idx = 0; - flower_repr.vf_id = i; - flower_repr.idx = 0; - - /* VF reprs get a random MAC address */ - rte_eth_random_addr(flower_repr.mac_addr.addr_bytes); - snprintf(flower_repr.name, sizeof(flower_repr.name), - "%s_repr_vf%d", pci_name, i); - - repr_init.flower_repr = &flower_repr; - /* This will also allocate private memory for the device */ - ret = rte_eth_dev_create(&pci_dev->device, flower_repr.name, - sizeof(struct nfp_flower_representor), - NULL, NULL, nfp_flower_repr_init, &repr_init); - if (ret != 0) { - PMD_INIT_LOG(ERR, "Could not create eth_dev for repr."); - break; - } - } - - if (i < app_fw_flower->num_vf_reprs) + ret = nfp_flower_vf_repr_alloc(hw_priv, &flower_repr, pci_name); + if (ret != 0) { + PMD_INIT_LOG(ERR, "Failed to init the vf repr."); goto repr_free; + } nfp_flower_repr_priv_init(app_fw_flower, hw_priv); -- 2.39.1