get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/134997/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 134997,
    "url": "http://patches.dpdk.org/api/patches/134997/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231211030858.1693240-4-chaoyong.he@corigine.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20231211030858.1693240-4-chaoyong.he@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231211030858.1693240-4-chaoyong.he@corigine.com",
    "date": "2023-12-11T03:08:54",
    "name": "[3/7] net/nfp: support setting port speed",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "c6fe61f9bc2ee428ea8fc04a23ba9031a893fa33",
    "submitter": {
        "id": 2554,
        "url": "http://patches.dpdk.org/api/people/2554/?format=api",
        "name": "Chaoyong He",
        "email": "chaoyong.he@corigine.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20231211030858.1693240-4-chaoyong.he@corigine.com/mbox/",
    "series": [
        {
            "id": 30501,
            "url": "http://patches.dpdk.org/api/series/30501/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30501",
            "date": "2023-12-11T03:08:51",
            "name": "support link auto negotiation",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/30501/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/134997/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/134997/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 2F58B436C3;\n\tMon, 11 Dec 2023 04:09:46 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id EB88340C35;\n\tMon, 11 Dec 2023 04:09:27 +0100 (CET)",
            "from NAM12-DM6-obe.outbound.protection.outlook.com\n (mail-dm6nam12on2102.outbound.protection.outlook.com [40.107.243.102])\n by mails.dpdk.org (Postfix) with ESMTP id 96FB540A87\n for <dev@dpdk.org>; Mon, 11 Dec 2023 04:09:25 +0100 (CET)",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)\n by PH0PR13MB5666.namprd13.prod.outlook.com (2603:10b6:510:111::14)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Mon, 11 Dec\n 2023 03:09:24 +0000",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::45b3:d83c:cff2:4a1b]) by SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::45b3:d83c:cff2:4a1b%6]) with mapi id 15.20.7068.031; Mon, 11 Dec 2023\n 03:09:24 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=An/7C+IaWiVsocZxpb9BSW7DKcbKfKhQIsppqaeZg1JQybkxVxn2e5kxJKzR8ExYFGAt7vFzzMfkRs/opS9hW+0W6AvSAB2VSQtxV8IXdYeY8j5APZb2uLn9vek5pjLrMy4eMXTrx20MEVPF0lP+xkyEsGG98+b3RS8nOl3bFvk+hIhm2EywpMxSg2n81bgdLsMFEma/lfJLCoGVGjiNBzF4p1LX4htBC6+D5th3Y8A8s0w0MhSpmMjadFM/zR7yoCvgFcVTovh8+gj2afFLnjouKj/Ibrq/L+1VAgOpdizNHXNr278gZTAHmUGp+6fJ0EWF0ySk+oqJMaBscV78Yw==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n 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;\n bh=odrBTa+71s9DVWPzCdFkU7SQpi3QnQfvHYGQ3l4/agk=;\n b=VZwzXiENNhJREAjbnDnOgty0QQpIq8TUiWT4v251BAed12MJRZNZVTO6gifofxr8oD3JkP1OVsAxCyL7/Pu8gKz9lY5s6Gr5nCcp9AU95Sjjdc4r65eBBe93o/qczOPANYZzeMm7p2+WDndio3TjLexHqUoBv4IGtds89xl3MrRpLEoymPkXR/T2O1Iob1zdPmCuDcQGYZV2dejWgkg7FxU+6h+CIwo2hAPPA0NofcRQywPCUIuad7NUpGi6skjYr8Tj0/FqQ+I1rwh1WX4T+8FT2D+SbCYGMUkX+DSiS3+2/lR5ymmTW6GIyKB0Hrlks8DOZWpCFJoproGhTj0NpA==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com;\n dkim=pass header.d=corigine.com; arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=odrBTa+71s9DVWPzCdFkU7SQpi3QnQfvHYGQ3l4/agk=;\n b=U1FGhdd1QpkphJ3BfjEaL7Xz9oGr9ekXyiDSVVuhuejJ2AW+OkGuyiqFeO7I1b96HZQyOIoCtjNCB9Hz6d8OWKxQmNh9w3+OvIeQBpKJB1aRpq856RsySWWe+SZP6tQpr0DkZjYsxk4Wa7aOc53v9nXZ5RFau/oWQyVBbRHMZPo=",
        "Authentication-Results": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=corigine.com;",
        "From": "Chaoyong He <chaoyong.he@corigine.com>",
        "To": "dev@dpdk.org",
        "Cc": "oss-drivers@corigine.com, Zerun Fu <zerun.fu@corigine.com>,\n Long Wu <long.wu@corigine.com>, Peng Zhang <peng.zhang@corigine.com>,\n Chaoyong He <chaoyong.he@corigine.com>",
        "Subject": "[PATCH 3/7] net/nfp: support setting port speed",
        "Date": "Mon, 11 Dec 2023 11:08:54 +0800",
        "Message-Id": "<20231211030858.1693240-4-chaoyong.he@corigine.com>",
        "X-Mailer": "git-send-email 2.39.1",
        "In-Reply-To": "<20231211030858.1693240-1-chaoyong.he@corigine.com>",
        "References": "<20231211030858.1693240-1-chaoyong.he@corigine.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "SJ0PR13CA0166.namprd13.prod.outlook.com\n (2603:10b6:a03:2c7::21) To SJ0PR13MB5545.namprd13.prod.outlook.com\n (2603:10b6:a03:424::5)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "SJ0PR13MB5545:EE_|PH0PR13MB5666:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "95bb0a53-50a0-4089-544e-08dbf9f693b4",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n aZcTIMq4ToOq1+BalPN4cooYiAYAZGC37/Yo5zPqcqYw8GZHJ2wDnAnTMP74WhqNiUVR9dDskwFuUu6pC62CyB5w7SAoFtJWXrNDNMUCU8/XIbCvEJAgJq9QuiYWBTffobfApKEPZXh8kjGwzMG8A0eC2RdLGP2NN2Z9B/z2D/It3nBYabVK4x/fZFGahEqpBe6QD9xQpomwzfAIQQ+0zRVe8sSGwQNxS6zeBW0L9Ue8wIPTFshCg4Na8bfJ9yvmWRLJPEXzWE7Zx6FE69YzcmkUOz5VKCC++0S87JP+LLgUaBv6Rv1RNbuVnM338FcdOU/N0F5lyH3qJlyrdFJIY9c+0p/PqmZ1O77Och8/h2dLlrSAkicS3WPrVuTfQqEH2/KZe7Da3QFGgybDnVAi5BKyuZ/5AO2OqlSLfJkhrhKJx0jdo7UHOr8SMq2ECsQfHHMaDpg3XltZEpdz2LrL7OKwOSnRr92WGt4EQCEgM3asokj0uGeyZIIcqqIZQjoKuGCNWJva0NNtfAlfmyeqLhAQ2SjMZ6L/fobtGBZmaid8zighEXif5w1C0OBjVyb4OBYeJL7UGI2hxd9Q6ppcncwlCIKHjmsLJFulWLZQfNJNfvpYs+mtw3AVJJZnvXM4urGZqD3a6eAusmCR8nx/bPF3Z7JZ1bbknpKvMQZH7XA=",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230031)(39830400003)(136003)(376002)(396003)(346002)(366004)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(41300700001)(5660300002)(38350700005)(2906002)(6512007)(6506007)(107886003)(2616005)(1076003)(6666004)(52116002)(36756003)(478600001)(6486002)(38100700002)(83380400001)(26005)(8936002)(8676002)(4326008)(86362001)(6916009)(66476007)(66556008)(54906003)(316002)(66946007)(44832011);\n DIR:OUT; SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n OtvjUcXgxj5uYNq4QV0CV190xtiStYqkR65vSU7KAxVCxk6qAegjxfiX+83KMPpyUBGEgCVr3EyZ9EAboMuucUiQUXdIlNI28XutSEiDdHK7wLzMfvWPr5hXmFv3PmVHi7rfbiRHFmTrDwTRYL5R0msUSWwSIGLBAzq2Cm6aygOOiPiB963+D6nSqbpDu1VhZqVwBuk/rFYRPzm9aubAy5GkIYkc++2Q3UR6MDOORlrRLjsySlS+kwfcYMp+lSS97wYN9x8Kcnskhz8TsKSDI98hbFsCn0/Y+oLfAZQ4KMJ8rQZUJKh7/0970IgRNF3PHujBu4Sii/reJfp5DAHd9F0NgcUJ8nmGMgfxrCmayeR9EYOeQy4sGxiSShgias+nz9BaZ2KO3bve2hhX6Au7dcWYjwHHXhr+Q0AkYG1boE2XjGW2ZHy4kd2vS36a47vt6yNBeSPZhwo9Eg3dxlKATHllimOFiPRG8T24pdSnMBeSXLAza70dTyrVPgG/AD7G1h31PaZ7H/N5FiowICCAZFtRRWFmfWOMW2+Y9q8OzB0VjZmLKocT8ar3rhEMixDNJTBU/7ZvEQepTqatE94KgwStTjj5aDbSQSvdtaba1wGt/ycdio5kRIj9MqbD0ERbb7vyrHFfsdxA55kV65KjpV3XVYdgcdfAT++EUpc8/lVp3e5CCVe/1JMpLDDMz19EW3aJbkzhRIee9np4P23loR45V16p5IRX/s09DEVyqHm+GqroyfO8Qsz+meZfABUL8vyd8GIZ30SZLocIshhHKjMPd6EnjJqVXYFRE6Zv4M+vY+yRS3mRj/MgpQXXLWbIsdphBXGRpfMkMpLG8G5CTN1yasPwe6iOlAlBCYAMUH9QlGkSfGaYIjbINxOe3hq5pQNI+eNUl7ua1e3fK1EmyPQqeUSWnD1Ua3BMDEBXpnM8qC0caBh3BB0a9Kn5S/qi39MWM2lts5uh82YASAGMTOvxiaV3xgLdwuiF49NAaA6pIEIIMrbnaJmNqTrHveB7Xo6M1PqUPQ9TcvzhzxMrXTjFH4dRJhxpqVKfPPiQkIZfkMLNTZzUJs5WPmcSFrVF0EW0CoMCzL9XaJRH0ASplFFd7y1vR/wB7p4nCvSz/KMH3GRKKHrPmUD+JdlxcdiNDOt52dUy1qJt9ZhyfLyZaIv70K2CZgihFI6LsLcW8tM7FLlxqaLthynRc3mcAfQNJvqME0C9oZAMnyfAVWe6kdLPyeR2C4OOCPe7cjlbEsYT12YLCAH+RE5FHjrlYpyO3PdUzkFms1Al81+lToHdfD0nF9MEcZR50rSe5gXTCE+FDI8E5KWes0FBCn/De4m2GuEyHy5/5o4yKkxAdJ6brx7Y8oLfHOcdWrWgkW+GvdyU6HwvMelbgh6tiBItNcud9ERkVtjxt8JKmvysqHjbA7Yy81mhQONMebFXj7Du8ugLTCC9juDDMa4nY7nSfxVO60q4EbmkyTDoRrqNmAmqjwseFkVBUNJotV/RzG807hnbdB7QtoCUlWfCl6HTmp+JocAeSvl4weMvwJ5WZdm0xTJApRwmG0x1HyitcVxBVSKTjYfcAFEcAt2qgvTAH6h2dPgZdhSefid9JtDb2OuqdQ==",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 95bb0a53-50a0-4089-544e-08dbf9f693b4",
        "X-MS-Exchange-CrossTenant-AuthSource": "SJ0PR13MB5545.namprd13.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "11 Dec 2023 03:09:24.1060 (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": "\n P7UmgHFOlNlIax12UNb0/lYGpFlh3UDWgPdwo1OlFyN5h1rLXmOtrXYy/XdH97Y/InSMM4WtjB9YF5Xhre72a0MxC8uVFjBXlRi5fF3ZGP4=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "PH0PR13MB5666",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "From: Zerun Fu <zerun.fu@corigine.com>\n\nAdd support of setting speed of port. This feature allows to set any\ncurrently supported speed. When the port starts as default, the auto\nnegotiation mode will be set if it is supported.\n\nSigned-off-by: Zerun Fu <zerun.fu@corigine.com>\nReviewed-by: Long Wu <long.wu@corigine.com>\nReviewed-by: Peng Zhang <peng.zhang@corigine.com>\nReviewed-by: Chaoyong He <chaoyong.he@corigine.com>\n---\n drivers/net/nfp/nfp_ethdev.c | 151 +++++++++++++++++++++++++++++++++++\n 1 file changed, 151 insertions(+)",
    "diff": "diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c\nindex 591c2de53b..54d018870d 100644\n--- a/drivers/net/nfp/nfp_ethdev.c\n+++ b/drivers/net/nfp/nfp_ethdev.c\n@@ -45,6 +45,150 @@ nfp_net_pf_read_mac(struct nfp_app_fw_nic *app_fw_nic,\n \trte_ether_addr_copy(&nfp_eth_table->ports[port].mac_addr, &hw->super.mac_addr);\n }\n \n+static uint32_t\n+nfp_net_speed_bitmap2speed(uint32_t speeds_bitmap)\n+{\n+\tswitch (speeds_bitmap) {\n+\tcase RTE_ETH_LINK_SPEED_10M_HD:\n+\t\treturn RTE_ETH_SPEED_NUM_10M;\n+\tcase RTE_ETH_LINK_SPEED_10M:\n+\t\treturn RTE_ETH_SPEED_NUM_10M;\n+\tcase RTE_ETH_LINK_SPEED_100M_HD:\n+\t\treturn RTE_ETH_SPEED_NUM_100M;\n+\tcase RTE_ETH_LINK_SPEED_100M:\n+\t\treturn RTE_ETH_SPEED_NUM_100M;\n+\tcase RTE_ETH_LINK_SPEED_1G:\n+\t\treturn RTE_ETH_SPEED_NUM_1G;\n+\tcase RTE_ETH_LINK_SPEED_2_5G:\n+\t\treturn RTE_ETH_SPEED_NUM_2_5G;\n+\tcase RTE_ETH_LINK_SPEED_5G:\n+\t\treturn RTE_ETH_SPEED_NUM_5G;\n+\tcase RTE_ETH_LINK_SPEED_10G:\n+\t\treturn RTE_ETH_SPEED_NUM_10G;\n+\tcase RTE_ETH_LINK_SPEED_20G:\n+\t\treturn RTE_ETH_SPEED_NUM_20G;\n+\tcase RTE_ETH_LINK_SPEED_25G:\n+\t\treturn RTE_ETH_SPEED_NUM_25G;\n+\tcase RTE_ETH_LINK_SPEED_40G:\n+\t\treturn RTE_ETH_SPEED_NUM_40G;\n+\tcase RTE_ETH_LINK_SPEED_50G:\n+\t\treturn RTE_ETH_SPEED_NUM_50G;\n+\tcase RTE_ETH_LINK_SPEED_56G:\n+\t\treturn RTE_ETH_SPEED_NUM_56G;\n+\tcase RTE_ETH_LINK_SPEED_100G:\n+\t\treturn RTE_ETH_SPEED_NUM_100G;\n+\tcase RTE_ETH_LINK_SPEED_200G:\n+\t\treturn RTE_ETH_SPEED_NUM_200G;\n+\tcase RTE_ETH_LINK_SPEED_400G:\n+\t\treturn RTE_ETH_SPEED_NUM_400G;\n+\tdefault:\n+\t\treturn RTE_ETH_SPEED_NUM_NONE;\n+\t}\n+}\n+\n+static int\n+nfp_net_nfp4000_speed_configure_check(uint16_t port_id,\n+\t\tuint32_t configure_speed,\n+\t\tstruct nfp_eth_table *nfp_eth_table)\n+{\n+\tswitch (port_id) {\n+\tcase 0:\n+\t\tif (configure_speed == RTE_ETH_SPEED_NUM_25G &&\n+\t\t\t\tnfp_eth_table->ports[1].speed == RTE_ETH_SPEED_NUM_10G) {\n+\t\t\tPMD_DRV_LOG(ERR, \"The speed configuration is not supported for NFP4000.\");\n+\t\t\treturn -ENOTSUP;\n+\t\t}\n+\t\tbreak;\n+\tcase 1:\n+\t\tif (configure_speed == RTE_ETH_SPEED_NUM_10G &&\n+\t\t\t\tnfp_eth_table->ports[0].speed == RTE_ETH_SPEED_NUM_25G) {\n+\t\t\tPMD_DRV_LOG(ERR, \"The speed configuration is not supported for NFP4000.\");\n+\t\t\treturn -ENOTSUP;\n+\t\t}\n+\t\tbreak;\n+\tdefault:\n+\t\tPMD_DRV_LOG(ERR, \"The port id is invalid.\");\n+\t\treturn -EINVAL;\n+\t}\n+\n+\treturn 0;\n+}\n+\n+static int\n+nfp_net_speed_configure(struct rte_eth_dev *dev,\n+\t\tstruct nfp_net_hw *net_hw)\n+{\n+\tint ret;\n+\tuint32_t speed_capa;\n+\tstruct nfp_nsp *nsp;\n+\tuint32_t link_speeds;\n+\tuint32_t configure_speed;\n+\tstruct nfp_eth_table_port *eth_port;\n+\tstruct nfp_eth_table *nfp_eth_table;\n+\n+\tnfp_eth_table = net_hw->pf_dev->nfp_eth_table;\n+\teth_port = &nfp_eth_table->ports[net_hw->idx];\n+\n+\tspeed_capa = net_hw->pf_dev->speed_capa;\n+\tif (speed_capa == 0) {\n+\t\tPMD_DRV_LOG(ERR, \"Speed_capa is invalid.\");\n+\t\treturn -EINVAL;\n+\t}\n+\n+\tlink_speeds = dev->data->dev_conf.link_speeds;\n+\tconfigure_speed = nfp_net_speed_bitmap2speed(speed_capa & link_speeds);\n+\tif (configure_speed == RTE_ETH_SPEED_NUM_NONE &&\n+\t\t\tlink_speeds != RTE_ETH_LINK_SPEED_AUTONEG) {\n+\t\tPMD_DRV_LOG(ERR, \"Configured speed is invalid.\");\n+\t\treturn -EINVAL;\n+\t}\n+\n+\t/* NFP4000 does not allow the port 0 25Gbps and port 1 10Gbps at the same time. */\n+\tif (net_hw->device_id == PCI_DEVICE_ID_NFP4000_PF_NIC) {\n+\t\tret = nfp_net_nfp4000_speed_configure_check(net_hw->idx,\n+\t\t\t\tconfigure_speed, nfp_eth_table);\n+\t\tif (ret != 0) {\n+\t\t\tPMD_DRV_LOG(ERR, \"Failed to configure speed for NFP4000.\");\n+\t\t\treturn ret;\n+\t\t}\n+\t}\n+\n+\tnsp = nfp_eth_config_start(net_hw->cpp, eth_port->index);\n+\tif (nsp == NULL) {\n+\t\tPMD_DRV_LOG(ERR, \"Couldn't get NSP.\");\n+\t\treturn -EIO;\n+\t}\n+\n+\tif (link_speeds == RTE_ETH_LINK_SPEED_AUTONEG) {\n+\t\tif (eth_port->supp_aneg) {\n+\t\t\tret = nfp_eth_set_aneg(nsp, NFP_ANEG_AUTO);\n+\t\t\tif (ret != 0) {\n+\t\t\t\tPMD_DRV_LOG(ERR, \"Failed to set ANEG enable.\");\n+\t\t\t\tgoto config_cleanup;\n+\t\t\t}\n+\t\t}\n+\t} else {\n+\t\tret = nfp_eth_set_aneg(nsp, NFP_ANEG_DISABLED);\n+\t\tif (ret != 0) {\n+\t\t\tPMD_DRV_LOG(ERR, \"Failed to set ANEG disable.\");\n+\t\t\tgoto config_cleanup;\n+\t\t}\n+\n+\t\tret = nfp_eth_set_speed(nsp, configure_speed);\n+\t\tif (ret != 0) {\n+\t\t\tPMD_DRV_LOG(ERR, \"Failed to set speed.\");\n+\t\t\tgoto config_cleanup;\n+\t\t}\n+\t}\n+\n+\treturn nfp_eth_config_commit_end(nsp);\n+\n+config_cleanup:\n+\tnfp_eth_config_cleanup_end(nsp);\n+\n+\treturn ret;\n+}\n+\n static int\n nfp_net_start(struct rte_eth_dev *dev)\n {\n@@ -75,6 +219,13 @@ nfp_net_start(struct rte_eth_dev *dev)\n \t/* Enabling the required queues in the device */\n \tnfp_net_enable_queues(dev);\n \n+\t/* Configure the port speed and the auto-negotiation mode. */\n+\tret = nfp_net_speed_configure(dev, net_hw);\n+\tif (ret < 0) {\n+\t\tPMD_DRV_LOG(ERR, \"Failed to set the speed and auto-negotiation mode.\");\n+\t\treturn ret;\n+\t}\n+\n \t/* Check and configure queue intr-vector mapping */\n \tif (dev->data->dev_conf.intr_conf.rxq != 0) {\n \t\tif (app_fw_nic->multiport) {\n",
    "prefixes": [
        "3/7"
    ]
}