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 6FB8545B90; Mon, 21 Oct 2024 08:33:31 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 699D4402E4; Mon, 21 Oct 2024 08:33:27 +0200 (CEST) Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2101.outbound.protection.outlook.com [40.107.95.101]) by mails.dpdk.org (Postfix) with ESMTP id 7A7314028C for ; Mon, 21 Oct 2024 08:33:25 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xpOLUFhFBb28fClJDwc8V5OJ2NkwER8mJQi8f4Q/hpHWWCspU57zipfW67uV6wsSnYa+4Jc0Z3WrSMKlxddCIC3uT2c73H+SA8eQ2D4H+41gUF32UTk0NrlizGd9A2Cd6KDOEp7nv05jekMqS1N4M5H8LtDROi+EbYjh771MocTFvOFvEz6CkWS3yNKeOzOE/7DS21UePs7rj0Atg1KGyrq/MmdgdpMvdUiEhp3gHEMznNEOfzwwGEpu96rt6n/2jj2CFCgq/fTt3UY7imj3yBbUplpQgG5ZVsJWDnWhffWkEOgG2sQVEXXLWGssDkVnDN7Cw1YQy5bHL43KTuU1zA== 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=RKxM/PS6nj1NEYUBlgpX3ML1+8tW/Fys+3mLwAuKOS4=; b=YIscS32ZD5nvSpJRFBCUwLySK/bDN0ueQaIxReWFIi7iFuxJ/UPwi7OL/BFAF/Tf1FQiqHyM5MrvbMIB+V9wuhaQGq4ntTg5I3vekoKw33vtF3MQp9j4qVOsnYB01opKDXVxnPPdyRHdDwgwzNSjTnsu7aGkeFuqrVnm6USt9iwTdj0zdb1AK/4yH6u8ewP7xgyx3iFZ10WuA28Z1H65BtEsw0FoI+yXZNOuSyYsNdAkdVqrmEFJAmGXs6dX9NqMTnzz30Y3MZoeAjXxmN4Kxr3ElcmYxpuNa8J9qJWk3RGAxcdTOG3PHo05zBbu+HMmBIaaLg7WDggx2jjm4QcdJw== 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=RKxM/PS6nj1NEYUBlgpX3ML1+8tW/Fys+3mLwAuKOS4=; b=sFeov6zaIB/n+5NX8mu6HPA7bl2RN+Uv7O0i8GVaYYtarlOFJ9MRvaOM2hnQVciEkj1YULeZl+RL4w44XWtg9BgXl/AkVuHZwQc/aiTeXQ37E5ti1A8LZRjtkAkEFFuGr5lTkOoB52bmd0OV8kTk6XdBEQCywvBPVsifrnc0SW4= 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:22 +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:22 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Peng Zhang , Chaoyong He , Long Wu Subject: [PATCH 1/9] net/nfp: extract the function to allocate the PHY Date: Mon, 21 Oct 2024 14:32:53 +0800 Message-Id: <20241021063301.4146214-2-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: e686afc0-da4a-4209-9000-08dcf19a424b 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?7RTZuROw5ObNen70ndyLqICvxLmc5nyewV6FG+eitVnGJniKPfkSWU8IWHvk?= =?us-ascii?Q?9gE3cWpMfyrLuaARhXJQjScMochjVJ9lqEQchm7GaCjE+2OQOTjmA5XEyVCI?= =?us-ascii?Q?EFJTZKxynkAvenfezjXbKKC2cHMYgiiBB00XfjLVfA9nhTuwb/5GmRTyAYsZ?= =?us-ascii?Q?1G7T9VI8HF+9q59p7G8kyihllczpm9SWB4MzM66Nfe1z7seIyUpT3Qa3xbxz?= =?us-ascii?Q?xHTxkLvpwL1UuovgiFX//5qrczFkl522uXOp/27kAEA/OgY8YJu2YTWXbUHZ?= =?us-ascii?Q?EOPn3vtWm6H9YwvquQ5wTbOq0aFN1808/k9SC5SnYYmROyKLOketqydQbRIF?= =?us-ascii?Q?0Wij8eI1CoDc9QDl8jIQLY/+JsCjq8nlPqUZyuCRrby7w2X0Qo3QwUviOevm?= =?us-ascii?Q?uK4JNICxiqP5iFmoGjbVpOJZXok+E3XPIOIvepNI7RVf/zPH2+v1vfuhPfr4?= =?us-ascii?Q?1/E/c+pui6RZdSep6oBMCHF1qgW7Z8dJgWveC7rmqDxYSPIsQv0as6cWFE4b?= =?us-ascii?Q?1BSJrfk/FVmq2ujOn2eoCwGBPoYRlVJcffjWUCtvXnMHyxP1MPJLMQ9OL6SB?= =?us-ascii?Q?qccdnZoAuodyHaLhY+DYh1HclJxA4efrFa6ps/BiIECB0QUxBdCxoviy9WfG?= =?us-ascii?Q?IfI4AwXSN3YPmBN5dWGvV0syb/uq4QhXbny6AdNK6AstfgiAjNjwCb6p8Z4i?= =?us-ascii?Q?fCYoXW0HFg+5eQk7oGgF6FeDrYgHLOexmkq86Ip9peHGUB3dTRvLV4Dfpw2C?= =?us-ascii?Q?mKWL2eijSD6ZY7b+vx65BuE9r3nE31XTom/oUKG4kOWT2dHDpiSw38Za8fcG?= =?us-ascii?Q?hha16wweZOmREt39FYQtNM1DfN/WkHlc/qmfmhanzBNWZcDVm9Qtgs1D6maF?= =?us-ascii?Q?P7IRS327vuexvO/5HGaYsogxWNnlbbQDxuq6hUXCsGXQ/Hsk/vFzk//F01fx?= =?us-ascii?Q?G1NqVm/gIBTcBWOde3NRFXSDhshN7sU9ZS8MO0e0anp0aP38jx5w49vkddGA?= =?us-ascii?Q?nIimgZq/Jyu3DB6IBHi4Y4UCIKOmFpzQZuDV/fIT6Av/UGvA0wi6s80d9lNG?= =?us-ascii?Q?lr2QRe/g1Ou/rNv7Xb1s8EaIhciFOE/130zwrYeREOKRPSjOa5pDfuZDGX84?= =?us-ascii?Q?P3To4vgxRnudd+BPfnU9MtaXIiheWsjAn69pwWH/RtoyJiVJXukA8HOb0Pzl?= =?us-ascii?Q?NIY9OPaRTC2P8HZPRzyBhiLhCFOCTCVan4OhDdCq4c4XkMwzIBQADypcTI1k?= =?us-ascii?Q?Sp8cmtdOnqAhxaJ5z6giZl+5Sx+3vvGmKtpAj7U7ivtQ9hC1HaWa10rP8PzH?= =?us-ascii?Q?uvCuGe5whjYufng/67XBh2BSOqECUXoLNrbTrG+9KWERfMqllpPeRo+N6mq6?= =?us-ascii?Q?cbu5yDc=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?TJLAAadijwL32e1YVNHx8fhEFY9yZwSJ2CZZlPm0iX63bpYwBwyYCmJWnCMZ?= =?us-ascii?Q?rVKP4cMESIs8xC1bIqdVjHRXUSyc4jsxLXyWKIdK0X4HYhIIIR3/gkDCOGiH?= =?us-ascii?Q?n8g0CD6wJSfrqBinvXU5kbNJSu0SWdg6XLmoPC8FyNsbVRgFheOIWq48pcNx?= =?us-ascii?Q?sled8P4ekOhC0MXUIeoehJJxy0cKL5tO6alFm0K3mpnVtlPg2oQ6PJvKRvfX?= =?us-ascii?Q?sIZz9aiBkYXLlwrq4PcOVQH2yMNoIGGRXcNAseU3VvXKyyXKFKk0yxPc536K?= =?us-ascii?Q?v8OGPoNtJBBWVGLz4vVD1TMQ2zXENxlohgqC9vRn1kt7/oq19zPKOW3ftnJY?= =?us-ascii?Q?vZczFN1am81iIVV2MinNF1eKqSjN6x/okKFeMD2bhqTkOXs1u7rLf6YRay3p?= =?us-ascii?Q?nuuMcc8ZaogewPbsMrx7FCMD710WSNUG2LB4GY8iGJAtHLy59TWdsu3Xxud8?= =?us-ascii?Q?mtHDYC1OrtUUVx/M8Y0AnhAJHp27u0YZxAMUUP317vwgw4EaiR0wv/TLPIPa?= =?us-ascii?Q?tv4U8PR1rte0OQO+iGN4ajykZ8ZI2/gFgHNHFaZqoqxXvGkXp5LGwKgIPPGP?= =?us-ascii?Q?0rzAEwODQGcYJ3Lq2h6FhQfgjtXmE3FAkIWVjwtb3t1himfUCdvDKVf93YxO?= =?us-ascii?Q?xqPLpYpuRazagO6AF3cD/WySD3JmnSKg6pMw/Cp4+PUbTc/IQC1OUAQW5N+X?= =?us-ascii?Q?UdkLIoo5UoEGRaxg0mW+hzFFvSKn4i0APrytBEYs5ylG7uhCp9Ml5U+9og8s?= =?us-ascii?Q?G02E3rLwtqkyVOOTP2Q5nE2R+vjTCnyRYl6B9xu8GM+gtVDGkgtZR6xX9/2E?= =?us-ascii?Q?8QCTLHnWIZkAyxMo1KaeLI8HGnkO1wv9NgyUX9lgUJfMe4XPXUpoDbuLVCAa?= =?us-ascii?Q?1PUhBktQ9a2cdWm2+xR7oEGbsRICrZAbtGkgik9Oa4OJIqCVfCI6P9ZqzLE7?= =?us-ascii?Q?pgqdACRXtKhnJ8frV8Ua4zDv8CT3hH2IbJy9OSLyzOYc7DbeZT+1tVh12LMl?= =?us-ascii?Q?21cdoYAaKmkCgsqdgvUn1RQWFZ34RoB79EZPqt21IkCvH7VN6DCHCy0VZDnx?= =?us-ascii?Q?adRJ8igRpPUnNgLrNJkEWVB+NFYNhAEhFTciTgkF6y4U3tpoC4txOy5QwQYn?= =?us-ascii?Q?Q/RJevGMfJ2iJeNmcMVfyU9m/VsiAUAyP+SvuhtfPzBNejTtG0gMwoS3cslm?= =?us-ascii?Q?MYILOt+OZCEYmrPfhRLHOLtl56trhZeqWjkV4i+jk9lPp1bC1UnHJhOmTsdy?= =?us-ascii?Q?xjZxgFMbaY0dfJSpjrr6bfyLtWV05nndmnN7dl5l8Yy0K4dOlM8bVJvzJmdH?= =?us-ascii?Q?D/XRHyaYQsf/eI11PIt/jphUm/fcD1cOGorPY7yooA7gdthjy7XGw32dM4qc?= =?us-ascii?Q?6ncN6S7m6gZzZbMT62IJzongRXikJQVZtoEgamlp1f1x+5zHseoQuPKFYkwW?= =?us-ascii?Q?tX/3Rnzz2k+fNvB65q4HWjzGPTBLnZkZaVFrbPFUV95S2nnkjfSGrFzOy7Gi?= =?us-ascii?Q?daEZSj61lH2ljwVCQzlhtlhidpJNozC3MOZvPvyES8G42l4DqVWOWU5vUvPg?= =?us-ascii?Q?cLoKRxlYS5dEb7QETpoa36aK5L/KEJfw/aMRZDeqmWNp24Ypt3Z3IruWV8Yy?= =?us-ascii?Q?3w=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: e686afc0-da4a-4209-9000-08dcf19a424b 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:22.0983 (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: xK6oNij8z90p/KoUNjqt5ezl6bTH4z1LMvZgHVc0KY8YqN8XaG+fSHiFRmyHjOthru6tRBixxqHEqyrVblGSRAhNHN8V4ab5fnv5m9AqLNg= 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 PHY representor port. Signed-off-by: Peng Zhang Reviewed-by: Chaoyong He Reviewed-by: Long Wu --- .../net/nfp/flower/nfp_flower_representor.c | 86 ++++++++++++------- 1 file changed, 53 insertions(+), 33 deletions(-) diff --git a/drivers/net/nfp/flower/nfp_flower_representor.c b/drivers/net/nfp/flower/nfp_flower_representor.c index f6557525c0..af5f7fa4af 100644 --- a/drivers/net/nfp/flower/nfp_flower_representor.c +++ b/drivers/net/nfp/flower/nfp_flower_representor.c @@ -798,26 +798,71 @@ nfp_flower_repr_priv_init(struct nfp_app_fw_flower *app_fw_flower, } } +static int +nfp_flower_phy_repr_alloc(struct nfp_net_hw_priv *hw_priv, + struct nfp_flower_representor *flower_repr, + const char *pci_name) +{ + int i; + int ret; + uint8_t id; + struct nfp_pf_dev *pf_dev; + struct nfp_repr_init repr_init; + struct nfp_eth_table_port *eth_port; + 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_phyport_reprs; i++) { + id = nfp_function_id_get(pf_dev, i); + eth_port = &pf_dev->nfp_eth_table->ports[id]; + flower_repr->repr_type = NFP_REPR_TYPE_PHYS_PORT; + flower_repr->port_id = nfp_flower_get_phys_port_id(eth_port->index); + flower_repr->nfp_idx = eth_port->index; + flower_repr->vf_id = i + 1; + + /* Copy the real mac of the interface to the representor struct */ + rte_ether_addr_copy(ð_port->mac_addr, &flower_repr->mac_addr); + snprintf(flower_repr->name, sizeof(flower_repr->name), + "%s_repr_p%d", pci_name, id); + + /* + * Create a eth_dev for this representor. + * This will also allocate private memory for the device. + */ + repr_init.flower_repr = flower_repr; + 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_phyport_reprs) + return -EIO; + + return 0; +} + 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; - uint8_t id; const char *pci_name; struct nfp_pf_dev *pf_dev; struct rte_pci_device *pci_dev; struct nfp_repr_init repr_init; - struct nfp_eth_table *nfp_eth_table; - struct nfp_eth_table_port *eth_port; 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; - nfp_eth_table = pf_dev->nfp_eth_table; repr_init.hw_priv = hw_priv; /* Send a NFP_FLOWER_CMSG_TYPE_MAC_REPR cmsg to hardware */ @@ -855,36 +900,11 @@ nfp_flower_repr_alloc(struct nfp_app_fw_flower *app_fw_flower, } /* Create a rte_eth_dev for every phyport representor */ - for (i = 0; i < app_fw_flower->num_phyport_reprs; i++) { - id = nfp_function_id_get(pf_dev, i); - eth_port = &nfp_eth_table->ports[id]; - flower_repr.repr_type = NFP_REPR_TYPE_PHYS_PORT; - flower_repr.port_id = nfp_flower_get_phys_port_id(eth_port->index); - flower_repr.nfp_idx = eth_port->index; - flower_repr.vf_id = i + 1; - flower_repr.idx = id; - - /* Copy the real mac of the interface to the representor struct */ - rte_ether_addr_copy(ð_port->mac_addr, &flower_repr.mac_addr); - snprintf(flower_repr.name, sizeof(flower_repr.name), - "%s_repr_p%d", pci_name, id); - - /* - * Create a eth_dev for this representor. - * This will also allocate private memory for the device. - */ - repr_init.flower_repr = &flower_repr; - 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_phyport_reprs) + ret = nfp_flower_phy_repr_alloc(hw_priv, &flower_repr, pci_name); + if (ret != 0) { + PMD_INIT_LOG(ERR, "Failed to init the phy repr."); goto repr_free; + } /* * Now allocate eth_dev's for VF representors. -- 2.39.1