From patchwork Fri Aug 26 13:56:47 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shreyansh Jain X-Patchwork-Id: 15394 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id C25DE5A76; Fri, 26 Aug 2016 15:57:56 +0200 (CEST) Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0041.outbound.protection.outlook.com [104.47.32.41]) by dpdk.org (Postfix) with ESMTP id E2E9B5A5C for ; Fri, 26 Aug 2016 15:57:51 +0200 (CEST) Received: from BN3PR0301CA0042.namprd03.prod.outlook.com (10.160.180.180) by BY2PR0301MB0709.namprd03.prod.outlook.com (10.160.63.151) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.587.9; Fri, 26 Aug 2016 13:57:49 +0000 Received: from BN1BFFO11FD052.protection.gbl (2a01:111:f400:7c10::1:151) by BN3PR0301CA0042.outlook.office365.com (2a01:111:e400:4000::52) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.587.13 via Frontend Transport; Fri, 26 Aug 2016 13:57:49 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; nxp.com; dmarc=fail action=none header.from=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1BFFO11FD052.mail.protection.outlook.com (10.58.145.7) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.587.6 via Frontend Transport; Fri, 26 Aug 2016 13:57:50 +0000 Received: from Tophie.ap.freescale.net ([10.232.14.87]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id u7QDvHpk023630; Fri, 26 Aug 2016 06:57:47 -0700 From: Shreyansh Jain To: CC: , , , , Shreyansh Jain Date: Fri, 26 Aug 2016 19:26:47 +0530 Message-ID: <1472219823-29486-10-git-send-email-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1472219823-29486-1-git-send-email-shreyansh.jain@nxp.com> References: <1466510566-9240-1-git-send-email-shreyansh.jain@nxp.com> <1472219823-29486-1-git-send-email-shreyansh.jain@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131166934703200098; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(106466001)(2351001)(586003)(229853001)(36756003)(110136002)(626004)(97736004)(189998001)(5660300001)(4326007)(47776003)(7846002)(87936001)(81156014)(81166006)(2950100001)(8936002)(86362001)(50226002)(104016004)(305945005)(8676002)(8666005)(356003)(575784001)(19580405001)(77096005)(68736007)(92566002)(11100500001)(50466002)(33646002)(85426001)(5003940100001)(2906002)(19580395003)(76176999)(48376002)(50986999)(105606002)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0301MB0709; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD052; 1:xZ2xoNWeygfC1dJlAe9jmpkVGcM234rNnDLJGSLvE61DKUprHG/W+AU6If+w7oTCeqFPoJ428AQyVUmrYrggEeNH8dLiyriMRbukJJFZhlWo39aOgEALdmkWD7R21dNHUa5xKXsj5Pc3QpVq7uj5qOOlNXxg3KWz2SjwbRe5IvrwBL3EJozt5BpBoNTM+qds6uG1cJxt+4PVPJWocLsYihbGllp7+yNEl67hUiTwJylZQXO60oAcyWZauZvprjaIJP/YTi54TZNE3I1vQYRheadeXVISBjcwWznpm10pzhu1vE6BphhbQCf5P8pr6PJbHU0c4stSCobH+6gAPN0UJFz0ytRuATqcRKAh34KctR8YuAUOlPT8BUjjbzLIN7cP28O8dIbUsRrMwM3ShloVkdZboGj1PtxAyDdMSbJXMUOPXFbCzq6ZYd3/Szxjl4MOmjcCKpr4GFbNrd4dzmsLygCb1aavn5ZGzoT6jtDda6ettd8xFwRCfMOirAK6j4aQRwk98+Nx2Gi/fAuPcMYjYpEs7Sv+xJB2nVP862DmmnBMzksO1fREKPn/FvZ3Dn29IM16scpIP/E/nbZLKGaXvplXiBK8ZCK+Akf0RalXmJBscIbs4lKuT/RrSweWAg/RqFRDqjqOR8+9P7HwelQ6kqaqdJQ7Pe4FG6Oq2x9G2jWUsZNFYxDWwqszJCYL+95lbfvdUWGoaI1nyq+Ubg49EE86wkLT4oOGKKCtz2bwF7M= MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: d9243036-b110-4b3f-7604-08d3cdb8f7b7 X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0709; 2:6CT03uuBNMLV/dZ0TvA3I6LJc3I944p6RtyBztyRfvt7mv4HGJIIGSRyns2Mrha/wt3OVlh/zj1YSVDFjNamI+17AABp6qyNswvbm6x/5pN1DrAfXbDinLERFc2a2/tM7Wcdm+8xAC9+U1s+3psJsmIWcrSGmqc2EAHwiSOY3LvynTH2kf+XJKs7CA6sdvon; 3:dAaAAY7rpCJvBqocrEq1ohAPe+tjXERNrIYCLuALslbF5t39CiLWVJBuzvmX2YOVjW4tEbNeVmiE8nFHEBVgyZdgEiHBa6Wx4wXRD4uM3S6qVmi0mU0/GPo9qObKFcBTkrhumJjwLJWG+DfH+jmVBwnhGz4XHIgMc1dasr3fx9MokEohUWU1Iqx8UmgQmj6BGv5mGkO077Di5bGlEdiReZdeAQ9NBZd8862dEpOPp7A= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0301MB0709; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0709; 25:RSQnn+qsMLbbk9pBpKPKJwH3oXZ6o7YavvEKB5L9zeh1NtT5un51dS7rAwsVUQKJ5mCRbZ/9a2v3CBPLyCYZl2Y05U6B5RR3cksWc1ii4ibrWgfd3/XuLAiaMssK2GFB+GLSdwFTa/18qCzP7qV+2Ev2Xao9jP3Rkh7nM+s7JpuYPuwTpubJeJ7doyPgtJQXZ7HwpwKaJybVotM8SiL7Tm+I4ki7LqfUXyR3eGXEBUtfTrv8aP5UVBI/bWtE5orcuOe9BcLh7GAYYsw4EOboTG23lIWGnei0IUklHuTf2tWe7l2p/p/4kbImMXudOsIKQ5zPw3da5rTbDufIa9ayIIb32rfsY/yx1JqauCdoIthGszGtlWF7zbR4YLM62xq87f+R3MAhhhRvh4HP3PtStlEN8kY+HAjNEwvxN8CwsyxEjs89aqShbFLy7waKx06eVawfKHSFYFBodpq08gqs0V3VohCNJYz+cgy2PImue36ppCYyFUxO9/95AZN1P4fcBbT7Lu0+v0M1bZ88n4M3erExbYOq++FRyAztSsqw0HyKzG3XFnEO9GzDTSZPrZ0Q5koLkdvWDGwByhQ0uvbaRMfe6uhZubYxaiJYpJIEEn4SmAgxbjGxT5hOq51AcDceWdOjt60XIrfACGTbJEwRa1sAGLJ+DjrXO9AUccTUnC0ZT2zHWWvcDR9IMqV5XORUC4/aTfqhSj+2X+YRhmNjUUlO2vrmSNMoKp12Gr9Tx1p+JIrqGgc2uBPGCwZgEk0s X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0709; 31:ylRwI6PLvju/Ex1LbPwxHYT7IBVf6wuNR3dt/nrNvr8KKIh+sy+Xy9LUB4P3HWJR53PCrzStlqvEIBz+hZr5anB56OALYIfo3uSpRRp+ao9cTlvDzqjAXAvopwFyniwKGerN2FHNhnVoS5NZZdNpxtJpHn43Q5QuWRO+J5m1injUR3DSx/h9Y/nmTh+Vysz1HJrJI6JFadHl8yIPAYAd/rwD6txQJ5xq4h+gfemsEgA=; 4:pi5FDkeSSK4sl+kgHy1OTicTd+BjxAgFVhHLIPrUI9aLa1XRhPYB8Cp8VtK3mB3oLvOjXZlI32IhJPaXaKCo3KRv+thrG+xBVC1rMHN5pbB1aC4CxwWWVTTG2ymVddPzGqFc6vPjyEO7V9T9xKBg4xxzTALFHWGHqT281fEAtREZjcygDxS5onQtSGkuZFp3gCDcoKzoy9K+eqMtuUtErcZ+3k3QTySFtmpRVp2Yq2FagtQO8wI98erFIJEHOcS66sxReLC/vLPf/8y4JF55fvpShuaM2FmW9EUlaOX+oGo7A0JTnvIeUN2gwn84CxRtNalL2RWEwASin2CRZo2T2uJCoqugqRHMetfJzy1GjDUzz2ArcQOlkedGkus34gcKwnyThabRqRlqtaIbd70PaimNvzdkcJrNSbgGKBVAaG87pEPcrW4xpAxA+AEYx6WRmMIX/roqwwIiiIDhJ8l/GJ64ezQEsnFjnP8lVD2bXtyCA33Qrf9S4Psk7sGOFF7PX6kwPl2CBvoDDGwIWhmwGlaXHQF3a8K4vn1/aFEGYBo= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(13024025)(13015025)(13018025)(13023025)(13017025)(5005006)(8121501046)(10201501046)(3002001)(6055026); SRVR:BY2PR0301MB0709; BCL:0; PCL:0; RULEID:(400006); SRVR:BY2PR0301MB0709; X-Forefront-PRVS: 00462943DE X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR0301MB0709; 23:CLmoxw/qZ9DP5MiCaZ9XhBGvyHCt05g2EvNRBCR?= =?us-ascii?Q?IIdBOTOtiPco3KmzlnYmDW8Xfv09tgV5rtrUUOAc5xubAIojgPcmYOgvBevz?= =?us-ascii?Q?QpfEEKkKRR5p00EiISD5eZTmmx1EZw4yiqEZg+wHZoNjgRVOSebJTdEe6eYF?= =?us-ascii?Q?7rq1xoqGLXF1OmWCg6htOZLigrwaYkW2GGiEhqZL9jwj23/lJP1dkB+F2TfB?= =?us-ascii?Q?oIMS0h8FXeXSM07zrNlK5PM9QBLmp4F/lVceAq+X/ukHcRmGHQe+10F2umx+?= =?us-ascii?Q?kRzKtVTWTxhXj6qw7BBj8BObfmuK6V6Oa8oAjXb3TP19ld+N17P35hma1xqS?= =?us-ascii?Q?R7utoU4DNtfU/mbJUDy5Ii2+K5+OxaeEYrAA/p6dGrMTpsy1mWmZbJJ0SeC0?= =?us-ascii?Q?hMmXkWJvM3vEK7Ic4FHOQ+5XGfLeEESDHDsEn3FDp7e3yH7yNNNCMgk9S9Fm?= =?us-ascii?Q?5yYEb1TkTvHaN0NADRjgTLfXj3RP9q9qKZbQwV6s88Nn8zE3Hgvz1aKvCUxf?= =?us-ascii?Q?bq/Kf6Xqw0Ww7QrfDvMaSJW5dBGuixDzi20rFs0Vnc8Xm0BiTTissZwnYziU?= =?us-ascii?Q?gyCLGJqgxdmfCGgVqCtHdaEyM2TUTY8zOv4fPoUr9eVZv7txHcd9RrVXwGl+?= =?us-ascii?Q?1cDuxBQ4ru1YF3f6gcjYF6GCpIvqvAQujnY6FxLfzxk+9I61eu18a24UNZhB?= =?us-ascii?Q?fHyiy3UO911DUrFCLBKJxQvMztjK72zJNhViJjnKX5MI6L0oDrA+01EtZOqq?= =?us-ascii?Q?CH7O5vg3YLPod7NZwuTO83ruDA1KN717A/uKjZlSCyvyFWWpbIrTwMw7rDsd?= =?us-ascii?Q?SxSfHuVw4K1Jv9zNabRl83AHNdSY3esr9N4K4eBbAHzoWElSF1H3dBfhdeNH?= =?us-ascii?Q?rRVUXGfg34gClsAAUEdUffy44K6Dvdnj2WeoCTgSh6gynQ3dqtnZOg7V9GWM?= =?us-ascii?Q?xQPD4hBiithseCsau//Rv66cr20zmNioL+OgcHB0DoqehTfmCo/e6FF3O5l3?= =?us-ascii?Q?uc3cTiKN2gyIrGGWkOsppPTnBXtveaC31VXy5xmOuOrLi90wKlzP0Zb5/8qZ?= =?us-ascii?Q?roKLSo5M+oFJqjZqPRFSRbdQNPwu/HBvpQqjNV9bD+iG1gi56MXAZBD50g0P?= =?us-ascii?Q?8HG70wM3b8GMGNOWD4ZvDcdp4UwebECwOLDI8o/OTkwWPpRjIMfzf3QdHt5k?= =?us-ascii?Q?bTu2Of3z5pWnPIu2fbSn2inq6LR17sSaucPv2?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0709; 6:nLs3Dvnp391kirV7m23WrVYyZhUobfVOsrnLn1fLgk01iV7jlCOnr1YyuCXikZY3vsS242nKEJ/E6lor25wym4toQcVOrgbnYseF3EHm1t2LhrdVkxM4A5oWghstQ3dqaWjWJg6nH/G6xmIFCFlvGYU9A7e8+rdLDyHRcUfvPODB0nJpDBU6fzZ8LVEnJz7MVAeN482LHe3a7vzUtC1159LKUaJLifVhhJtSA41V4Fy6Ff70JQmIjtGfiMQ82LH4/VoAuIpfkvwOaIBmdxaMvPtaBCT4FiVQN8O2+sLNo2s=; 5:dIIHXwTGBv+FbYM1bmTOwkgBHJj+WtTy4VgCkXWRf6PLSuu5/Z4UYZH3exDoLBAP/jsJTDKDmB/daJmcOAdtO+c28wwvvOlRKeUKwJQ5COo8cwVmYGrsWKw0u3MYm6i1m+XS5V3i0AX5n28XyQKY0GXcOPQuU0yeo5RkQXV7FKA=; 24:ZqsEQ0A9/nNYZSsDm7QSrhTgO0mUIAZRMjwaF77UvRKcOj/+xoGLVgyhjd7wcN5TyQBzlREqHULaETS0YRVmUrh65d60RiFFemeq0EkC6iE=; 7:OaWMtc77UKrAUfvPaAuKFAZmpuWN6q4gd6isppdas1QXvqDHSdA84Srt9Qr2x9LBMxcrHkocebJrsjvbjs7K7oB98f3TWaGY8rMvtdD0F/XPxyOOklV9Aa/WGb/07WQ11HaGmty6kZMGMbPVqY4G4helAjMi9SnbVtPIPs6bdKTH8JXQessXt6CAIr2jy2hWHZM+WE9rTLpTOEyaepuXvv8tF9zZNWDiYXYxQ5VmyBtvEvrrOUPQw8U3PTh+BEx6 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2016 13:57:50.1328 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0301MB0709 Subject: [dpdk-dev] [PATCH v8 09/25] driver: Remove driver register callbacks for crypto/net X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Now that all pdev are pci drivers, we don't need to register crypto and ethdev drivers through a dedicated channel. Signed-off-by: David Marchand Signed-off-by: Shreyansh Jain --- lib/librte_cryptodev/rte_cryptodev.c | 22 ------------------- lib/librte_cryptodev/rte_cryptodev_pmd.h | 30 -------------------------- lib/librte_cryptodev/rte_cryptodev_version.map | 1 - lib/librte_ether/rte_ethdev.c | 22 ------------------- lib/librte_ether/rte_ethdev.h | 12 ----------- 5 files changed, 87 deletions(-) diff --git a/lib/librte_cryptodev/rte_cryptodev.c b/lib/librte_cryptodev/rte_cryptodev.c index b1e82b6..2a3b649 100644 --- a/lib/librte_cryptodev/rte_cryptodev.c +++ b/lib/librte_cryptodev/rte_cryptodev.c @@ -533,28 +533,6 @@ rte_cryptodev_pci_remove(struct rte_pci_device *pci_dev) return 0; } -int -rte_cryptodev_pmd_driver_register(struct rte_cryptodev_driver *cryptodrv, - enum pmd_type type) -{ - /* Call crypto device initialization directly if device is virtual */ - if (type == PMD_VDEV) - return rte_cryptodev_pci_probe((struct rte_pci_driver *)cryptodrv, - NULL); - - /* - * Register PCI driver for physical device intialisation during - * PCI probing - */ - cryptodrv->pci_drv.devinit = rte_cryptodev_pci_probe; - cryptodrv->pci_drv.devuninit = rte_cryptodev_pci_remove; - - rte_eal_pci_register(&cryptodrv->pci_drv); - - return 0; -} - - uint16_t rte_cryptodev_queue_pair_count(uint8_t dev_id) { diff --git a/lib/librte_cryptodev/rte_cryptodev_pmd.h b/lib/librte_cryptodev/rte_cryptodev_pmd.h index 3fb7c7c..99fd69e 100644 --- a/lib/librte_cryptodev/rte_cryptodev_pmd.h +++ b/lib/librte_cryptodev/rte_cryptodev_pmd.h @@ -491,36 +491,6 @@ rte_cryptodev_pmd_virtual_dev_init(const char *name, size_t dev_private_size, extern int rte_cryptodev_pmd_release_device(struct rte_cryptodev *cryptodev); - -/** - * Register a Crypto [Poll Mode] driver. - * - * Function invoked by the initialization function of a Crypto driver - * to simultaneously register itself as Crypto Poll Mode Driver and to either: - * - * a - register itself as PCI driver if the crypto device is a physical - * device, by invoking the rte_eal_pci_register() function to - * register the *pci_drv* structure embedded in the *crypto_drv* - * structure, after having stored the address of the - * rte_cryptodev_init() function in the *devinit* field of the - * *pci_drv* structure. - * - * During the PCI probing phase, the rte_cryptodev_init() - * function is invoked for each PCI [device] matching the - * embedded PCI identifiers provided by the driver. - * - * b, complete the initialization sequence if the device is a virtual - * device by calling the rte_cryptodev_init() directly passing a - * NULL parameter for the rte_pci_device structure. - * - * @param crypto_drv crypto_driver structure associated with the crypto - * driver. - * @param type pmd type - */ -extern int -rte_cryptodev_pmd_driver_register(struct rte_cryptodev_driver *crypto_drv, - enum pmd_type type); - /** * Executes all the user application registered callbacks for the specific * device. diff --git a/lib/librte_cryptodev/rte_cryptodev_version.map b/lib/librte_cryptodev/rte_cryptodev_version.map index 1fc0d57..9627ac4 100644 --- a/lib/librte_cryptodev/rte_cryptodev_version.map +++ b/lib/librte_cryptodev/rte_cryptodev_version.map @@ -14,7 +14,6 @@ DPDK_16.04 { rte_cryptodev_info_get; rte_cryptodev_pmd_allocate; rte_cryptodev_pmd_callback_process; - rte_cryptodev_pmd_driver_register; rte_cryptodev_pmd_release_device; rte_cryptodev_pmd_virtual_dev_init; rte_cryptodev_sym_session_create; diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index 8825219..3bccf20 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -340,28 +340,6 @@ rte_eth_dev_pci_remove(struct rte_pci_device *pci_dev) return 0; } -/** - * Register an Ethernet [Poll Mode] driver. - * - * Function invoked by the initialization function of an Ethernet driver - * to simultaneously register itself as a PCI driver and as an Ethernet - * Poll Mode Driver. - * Invokes the rte_eal_pci_register() function to register the *pci_drv* - * structure embedded in the *eth_drv* structure, after having stored the - * address of the rte_eth_dev_init() function in the *devinit* field of - * the *pci_drv* structure. - * During the PCI probing phase, the rte_eth_dev_init() function is - * invoked for each PCI [Ethernet device] matching the embedded PCI - * identifiers provided by the driver. - */ -void -rte_eth_driver_register(struct eth_driver *eth_drv) -{ - eth_drv->pci_drv.devinit = rte_eth_dev_pci_probe; - eth_drv->pci_drv.devuninit = rte_eth_dev_pci_remove; - rte_eal_pci_register(ð_drv->pci_drv); -} - int rte_eth_dev_is_valid_port(uint8_t port_id) { diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index 37d78bf..b005c1b 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -1871,18 +1871,6 @@ struct eth_driver { }; /** - * @internal - * A function invoked by the initialization function of an Ethernet driver - * to simultaneously register itself as a PCI driver and as an Ethernet - * Poll Mode Driver (PMD). - * - * @param eth_drv - * The pointer to the *eth_driver* structure associated with - * the Ethernet driver. - */ -void rte_eth_driver_register(struct eth_driver *eth_drv); - -/** * Convert a numerical speed in Mbps to a bitmap flag that can be used in * the bitmap link_speeds of the struct rte_eth_conf *