get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 128237,
    "url": "https://patches.dpdk.org/api/patches/128237/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20230607015709.336420-3-chaoyong.he@corigine.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<20230607015709.336420-3-chaoyong.he@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230607015709.336420-3-chaoyong.he@corigine.com",
    "date": "2023-06-07T01:57:01",
    "name": "[02/10] net/nfp: add a check function for the NFD version",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "ff667d6a0d7a89fee69d68031a098660f65a4727",
    "submitter": {
        "id": 2554,
        "url": "https://patches.dpdk.org/api/people/2554/?format=api",
        "name": "Chaoyong He",
        "email": "chaoyong.he@corigine.com"
    },
    "delegate": {
        "id": 319,
        "url": "https://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20230607015709.336420-3-chaoyong.he@corigine.com/mbox/",
    "series": [
        {
            "id": 28380,
            "url": "https://patches.dpdk.org/api/series/28380/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=28380",
            "date": "2023-06-07T01:56:59",
            "name": "support rte_flow for flower firmware with NFDk",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/28380/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/128237/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/128237/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 D800A42C45;\n\tWed,  7 Jun 2023 03:58:10 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id D456942D17;\n\tWed,  7 Jun 2023 03:57:57 +0200 (CEST)",
            "from NAM11-CO1-obe.outbound.protection.outlook.com\n (mail-co1nam11on2100.outbound.protection.outlook.com [40.107.220.100])\n by mails.dpdk.org (Postfix) with ESMTP id 5FE51427F5\n for <dev@dpdk.org>; Wed,  7 Jun 2023 03:57:56 +0200 (CEST)",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)\n by PH7PR13MB5453.namprd13.prod.outlook.com (2603:10b6:510:138::5)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.33; Wed, 7 Jun\n 2023 01:57:54 +0000",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::d2cb:a650:e1ce:2174]) by SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::d2cb:a650:e1ce:2174%3]) with mapi id 15.20.6455.030; Wed, 7 Jun 2023\n 01:57:54 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=eeNPhOkLbWnj7L6Euri5Faup2cgT82DuzFJUsbdPy5bmwwEJFzW5SKVWgDeq0lydNyrUrHDlQ64X3fq9R+HoSDyZLw+0SvwyQ+L9xTxGflrH9TFz8jwPkbaU9ip7mUrRSOJQxKCBjbPBOO+YT+jg/LsVjI0TfJUGj2lPYMV62anFEe5aix1xiadqc9Rhj+MeBTj/XPORLey5JNlxOd4RnVZgb12HUfT57qZk1z+Ax8N+vPYA6f8YBbv5kewQbFTvSV7T3zOGJG2CqHRcqtY0T7HRIJsl+zcNJBDYCf7Ib0qsTy1UTR8Yb87xpxyCMjvCTS05GxVXYyWHkzMf6BgpaQ==",
        "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=4bjORmnstwaFsuh6VHph0cRR8KcG9UV1xhjdnNyjgjM=;\n b=ZXzVSf94A3nCEim5AIHSxTMxtAxdC1g63q8pHmrNVh069p6Pg/ErK8lcF14S+0cK19F6Zkp859LeM/Z9HpYLCTGEC6KxteUwXo55A5ztVtwdgCHHgpTzaEt/JC6M+HFL+IQwMNrCbynJHyWBaXraP7hCxd0/So1Ci7NaUfUNuleySHlHYpP5ttX78CJwPlVqlOpgCeMhNtpVfVnltOpbHoe/g+5ek3myKUyWyd76SWlD3J2svzdVLxDps/upfbTfRlqtYqdx5ohiBgtqLyUUkcfutOQEnrg5llZE6w5XQmLzTLpyFGy+gyeUrw9Y1dUtU4jAskWxswG04tvCej774A==",
        "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=4bjORmnstwaFsuh6VHph0cRR8KcG9UV1xhjdnNyjgjM=;\n b=SGCMCgHLoKcBlJxAcKBRbWVzt1h6DS7b6+2yZO/Nu1v6xksI61AjTJKF94kKX07q7JedZNso/tK2C//TxyUR0D3Jpe0LQPi0MJkIhhmmMLyPia5nqMap8EFX3uXw+JtyckWUaWFzjYTbqVC8mMYeB5xvZ6+g36bQa2IjPGeds9E=",
        "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, niklas.soderlund@corigine.com,\n Chaoyong He <chaoyong.he@corigine.com>",
        "Subject": "[PATCH 02/10] net/nfp: add a check function for the NFD version",
        "Date": "Wed,  7 Jun 2023 09:57:01 +0800",
        "Message-Id": "<20230607015709.336420-3-chaoyong.he@corigine.com>",
        "X-Mailer": "git-send-email 2.39.1",
        "In-Reply-To": "<20230607015709.336420-1-chaoyong.he@corigine.com>",
        "References": "<20230607015709.336420-1-chaoyong.he@corigine.com>",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-ClientProxiedBy": "SG2PR02CA0131.apcprd02.prod.outlook.com\n (2603:1096:4:188::6) 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_|PH7PR13MB5453:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "2b30fdd2-0372-4fac-c417-08db66fa9bb1",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n ewy94DU2uNodMx+1buetO0uNTliM/npTswrvd1+oZk29IQ81toes6wy9+od2y27DkbEkxOII2b15uRuTjJDQYXNKZBjijifjROMseopMKCXLmyf+cT92c9sllVBtatia//1H6ZASX/WUF8cyoAvf+/vJy4M2z0H7gknhHBFZISN5wqMugafKATEilQGcl8BZ4C8dZkxeKmSIQK7HdQoPRVMDmYNstU5moZbUqsaH0cVMmfTxNTM2QSlLYiDsVYfh0be076JgW+QtkgeHtG2/jZzwznSWcCXuAjsg6IIMRZnVb6GuuLUP71i+ToYGbbGXWptIanv1oYqHcZhD39DzVp4cMk1kV/n9EEcoEq3MYS3I+ZzvGEIoOfiePffYccojCUPhulhYc3SEAN6V6cZl0g98JaH4ehf82iYK+by1b9JmFDmQ1M27aeNzM8oMLzHGc9ifN5Xr5wql9XbZ+ya4Dy5AdUyclLiGs8f4qL+zCvFhPt9TWgVyYLU6q8pjpml7LwXiZipfAthFXcQhJKxVpwjJxNkgWQy1Jq3bhItVQ1EaqpJ9XIEU/9Hd3ppCLyPHJviWBklyW8Q87RlnMNMrGvtHpdgPlDHwaJSNFoY1QQ0JdFJyTQclYCBEPyNhGjR0",
        "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:(13230028)(4636009)(346002)(396003)(376002)(136003)(366004)(39840400004)(451199021)(107886003)(1076003)(6506007)(26005)(6512007)(36756003)(83380400001)(38350700002)(86362001)(38100700002)(186003)(2616005)(8676002)(4326008)(41300700001)(44832011)(6916009)(478600001)(66946007)(66476007)(2906002)(316002)(8936002)(5660300002)(6486002)(52116002)(66556008)(6666004);\n DIR:OUT; SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "=?utf-8?q?UcKqrGXMWvtAr9sffuDYCovJxDzj?=\n\t=?utf-8?q?AHUtaos4mBTmmWceWcvXPfGsHAw2R8nqC7ciOz6EMN5UzIWaPSd/oEvrVxMnUgViH?=\n\t=?utf-8?q?G5xhzqpJgMbqDh+UgI8EGpADL5arhpei9rQFj0uVlSlkp19YXJcn1AJTy6lvkTKed?=\n\t=?utf-8?q?6haN19j6tzQ1K5C0hMH6peahNZr5kuW02jt7JCgK++PsmuIkmG16VifQ9HF3xeEYb?=\n\t=?utf-8?q?8Ma/+AevPdK7QaJma/2+Ozjh14Gbvs7N91XGO3gLzCW0TDhwInC2AvmmYg4yo3VZI?=\n\t=?utf-8?q?uWj3YU+I8Hv2Wu4OOO3sMUXQ4LHOYpfnjhHeuKpTqdO7vHQdZ7E4+D567QLgwmckR?=\n\t=?utf-8?q?84h4jchhR32hkH80PHYelieeDZIEnV2NBN2tP2w0MP0lIP2zr/4oBet4V783WlzG9?=\n\t=?utf-8?q?+9YDt22TvFuPPw/reMAkw1b5+1Qlk/NK0I2rTY3ls1Y2Pn878gN2NgBHx70LuIZTz?=\n\t=?utf-8?q?RML2lONlcDWOrQPV6jU/A6pkIkj6Cb2C0flO/ladbHML2WYJLrkyRMg2dS8i83lMs?=\n\t=?utf-8?q?wFP/vRJ6BFIfbRsROXYM63RxN2tcgj1B4n5BhEwOIK9gCxKbGbqHtTVA8Vdjaiy3Y?=\n\t=?utf-8?q?yu8yhfVST1D4HOcx25P9Ha1hhhGyVpz/G5nADscRLrhYKtI4la4f0t/43jag5ljaz?=\n\t=?utf-8?q?tMdG0EYMQY7eNa+svcV6hv00uzHbBZxWKbhFNWUhO/Sw+48UnRXKAE/6gL5kr1FYH?=\n\t=?utf-8?q?npRGf5481bsEcu0Nit+5CPoFKPE7bnRKyDpQcQfy2AtSvcKK91i/Yg4X1f3+7UXWJ?=\n\t=?utf-8?q?ZWLcUEzBjhog1vAQBUOahgeB0xgbO4eTikn+/INutGeIMyv9kyungFBssg/r5YdEx?=\n\t=?utf-8?q?yGqBXcngLQ+Vf/ouwyzB6yAEyLmvox0d6HtrCfKtyv2jl/EnpW9zbkbxSil5ut6DI?=\n\t=?utf-8?q?kJtU1IZQCKZjgJctikO0j3aL5s3aXAbe7VhOxJIp80lfcog+dvkrsBnxg9TMmS2SP?=\n\t=?utf-8?q?zxwH0SkzetjKimGTBAwkx1ZqYAhMxr7flqrhcXy78/T6ZbXkZAqP2NE4FeymvyGrb?=\n\t=?utf-8?q?CaGxMFKsrFmWYDitwSIHuwVsdSWKOqUtOFl6IHOvR+uv6VNt0g/egdJ82uoTuEw7A?=\n\t=?utf-8?q?G8sNUppEtVOoFEyyKTiYIiFlIKEoCBbD0ZFa34x+RMJc5loS9GxGfLnOPIy7oKuB4?=\n\t=?utf-8?q?pd+0WkWqsnwFDhIdmJo1ERR/zr5nNuutabTJrCftwUzj0H6U4NrRcLN1R4af+yiMT?=\n\t=?utf-8?q?gAM0r0K9dnyq07At3SomMXMNRQo8pFwkbqMhDja11zRjFpHrIJEDsOhaA6oYXfLSF?=\n\t=?utf-8?q?Ry8A/ywh8oQ2ylxx4zTZ7FNLzovy9w/fFubkB3e8uyHtC5EyGj777dyHpnRo6EsUa?=\n\t=?utf-8?q?9kmjdmRcwvmB0UViRPCkujYYU7IeeZXT79lkKlgRwS7t2w3hVtA7dY5EoRNOlzin9?=\n\t=?utf-8?q?V+hWuwGQw5Irmfm7YAartcbqO3DMNoTs1B/+z9HXYj683FwveodeF2ZXCy1tblrcP?=\n\t=?utf-8?q?obkmpGwh6kKGTcdpLcb4s3N1DXBMBnGU/+pbrLySgRTAbFnqEycaKYazUwRMDV7Ts?=\n\t=?utf-8?q?xdoABrtxHGwoOws0rWoz8H+Imu1E4UGcaQ=3D=3D?=",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 2b30fdd2-0372-4fac-c417-08db66fa9bb1",
        "X-MS-Exchange-CrossTenant-AuthSource": "SJ0PR13MB5545.namprd13.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "07 Jun 2023 01:57:54.5302 (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 VQZB5hX7r+vMeynMEuNzMUmBQytfD4nZ6xBpiOR9EYFvBdSezCr845EF98wDY0+L/QGk5DUNAjbHDR5jWb8Wsfp5W2ERdyMducB19bFM/kY=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "PH7PR13MB5453",
        "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": "Add a check function for the NFD version, this will make the logics\nwhich using this version free from validaty check, thus simplify\nthe driver.\n\nSigned-off-by: Chaoyong He <chaoyong.he@corigine.com>\nReviewed-by: Niklas Söderlund <niklas.soderlund@corigine.com>\n---\n drivers/net/nfp/flower/nfp_flower.c |  3 +++\n drivers/net/nfp/nfp_common.c        | 37 ++++++++++++++++++-----------\n drivers/net/nfp/nfp_common.h        |  1 +\n drivers/net/nfp/nfp_ethdev.c        | 35 +++++++++------------------\n drivers/net/nfp/nfp_ethdev_vf.c     | 32 ++++++++-----------------\n drivers/net/nfp/nfp_rxtx.c          | 14 ++---------\n 6 files changed, 50 insertions(+), 72 deletions(-)",
    "diff": "diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c\nindex c5cc537790..afb4e5b344 100644\n--- a/drivers/net/nfp/flower/nfp_flower.c\n+++ b/drivers/net/nfp/flower/nfp_flower.c\n@@ -649,6 +649,9 @@ nfp_flower_init_vnic_common(struct nfp_net_hw *hw, const char *vnic_type)\n \n \t/* Get some of the read-only fields from the config BAR */\n \tnfp_net_cfg_read_version(hw);\n+\tif (!nfp_net_is_valid_nfd_version(hw->ver))\n+\t\treturn -EINVAL;\n+\n \thw->cap = nn_cfg_readl(hw, NFP_NET_CFG_CAP);\n \thw->max_mtu = nn_cfg_readl(hw, NFP_NET_CFG_MAX_MTU);\n \t/* Set the current MTU to the maximum supported */\ndiff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c\nindex 497128f6a6..08f9529ead 100644\n--- a/drivers/net/nfp/nfp_common.c\n+++ b/drivers/net/nfp/nfp_common.c\n@@ -1162,22 +1162,10 @@ nfp_net_tx_desc_limits(struct nfp_net_hw *hw,\n {\n \tuint16_t tx_dpp;\n \n-\tswitch (hw->ver.extend) {\n-\tcase NFP_NET_CFG_VERSION_DP_NFD3:\n+\tif (hw->ver.extend == NFP_NET_CFG_VERSION_DP_NFD3)\n \t\ttx_dpp = NFD3_TX_DESC_PER_PKT;\n-\t\tbreak;\n-\tcase NFP_NET_CFG_VERSION_DP_NFDK:\n-\t\tif (hw->ver.major < 5) {\n-\t\t\tPMD_DRV_LOG(ERR, \"NFDK must use ABI 5 or newer, found: %d\",\n-\t\t\t\t\thw->ver.major);\n-\t\t\treturn -EINVAL;\n-\t\t}\n+\telse\n \t\ttx_dpp = NFDK_TX_DESC_PER_SIMPLE_PKT;\n-\t\tbreak;\n-\tdefault:\n-\t\tPMD_DRV_LOG(ERR, \"The version of firmware is not correct.\");\n-\t\treturn -EINVAL;\n-\t}\n \n \t*max_tx_desc = NFP_NET_MAX_TX_DESC / tx_dpp;\n \n@@ -2106,3 +2094,24 @@ nfp_repr_firmware_version_get(struct rte_eth_dev *dev,\n \n \treturn 0;\n }\n+\n+bool\n+nfp_net_is_valid_nfd_version(struct nfp_net_fw_ver version)\n+{\n+\tuint8_t nfd_version = version.extend;\n+\n+\tif (nfd_version == NFP_NET_CFG_VERSION_DP_NFD3)\n+\t\treturn true;\n+\n+\tif (nfd_version == NFP_NET_CFG_VERSION_DP_NFDK) {\n+\t\tif (version.major < 5) {\n+\t\t\tPMD_INIT_LOG(ERR, \"NFDK must use ABI 5 or newer, found: %d\",\n+\t\t\t\t\tversion.major);\n+\t\t\treturn false;\n+\t\t}\n+\n+\t\treturn true;\n+\t}\n+\n+\treturn false;\n+}\ndiff --git a/drivers/net/nfp/nfp_common.h b/drivers/net/nfp/nfp_common.h\nindex 2281445861..acb34535c5 100644\n--- a/drivers/net/nfp/nfp_common.h\n+++ b/drivers/net/nfp/nfp_common.h\n@@ -444,6 +444,7 @@ void nfp_net_init_metadata_format(struct nfp_net_hw *hw);\n void nfp_net_cfg_read_version(struct nfp_net_hw *hw);\n int nfp_net_firmware_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size);\n int nfp_repr_firmware_version_get(struct rte_eth_dev *dev, char *fw_version, size_t fw_size);\n+bool nfp_net_is_valid_nfd_version(struct nfp_net_fw_ver version);\n \n #define NFP_NET_DEV_PRIVATE_TO_HW(adapter)\\\n \t(&((struct nfp_net_adapter *)adapter)->hw)\ndiff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c\nindex e84d2ac82e..0ccb543f14 100644\n--- a/drivers/net/nfp/nfp_ethdev.c\n+++ b/drivers/net/nfp/nfp_ethdev.c\n@@ -474,31 +474,18 @@ static const struct eth_dev_ops nfp_net_eth_dev_ops = {\n \t.fw_version_get         = nfp_net_firmware_version_get,\n };\n \n-static inline int\n-nfp_net_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev)\n+static inline void\n+nfp_net_ethdev_ops_mount(struct nfp_net_hw *hw,\n+\t\tstruct rte_eth_dev *eth_dev)\n {\n-\tswitch (hw->ver.extend) {\n-\tcase NFP_NET_CFG_VERSION_DP_NFD3:\n-\t\teth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts;\n-\t\tbreak;\n-\tcase NFP_NET_CFG_VERSION_DP_NFDK:\n-\t\tif (hw->ver.major < 5) {\n-\t\t\tPMD_DRV_LOG(ERR, \"NFDK must use ABI 5 or newer, found: %d\",\n-\t\t\t\t\thw->ver.major);\n-\t\t\treturn -EINVAL;\n-\t\t}\n-\t\teth_dev->tx_pkt_burst = &nfp_net_nfdk_xmit_pkts;\n-\t\tbreak;\n-\tdefault:\n-\t\tPMD_DRV_LOG(ERR, \"The version of firmware is not correct.\");\n-\t\treturn -EINVAL;\n-\t}\n+\tif (hw->ver.extend == NFP_NET_CFG_VERSION_DP_NFD3)\n+\t\teth_dev->tx_pkt_burst = nfp_net_nfd3_xmit_pkts;\n+\telse\n+\t\teth_dev->tx_pkt_burst = nfp_net_nfdk_xmit_pkts;\n \n \teth_dev->dev_ops = &nfp_net_eth_dev_ops;\n \teth_dev->rx_queue_count = nfp_net_rx_queue_count;\n \teth_dev->rx_pkt_burst = &nfp_net_recv_pkts;\n-\n-\treturn 0;\n }\n \n static int\n@@ -583,12 +570,13 @@ nfp_net_init(struct rte_eth_dev *eth_dev)\n \tPMD_INIT_LOG(DEBUG, \"MAC stats: %p\", hw->mac_stats);\n \n \tnfp_net_cfg_read_version(hw);\n+\tif (!nfp_net_is_valid_nfd_version(hw->ver))\n+\t\treturn -EINVAL;\n \n \tif (nfp_net_check_dma_mask(hw, pci_dev->name) != 0)\n \t\treturn -ENODEV;\n \n-\tif (nfp_net_ethdev_ops_mount(hw, eth_dev))\n-\t\treturn -EINVAL;\n+\tnfp_net_ethdev_ops_mount(hw, eth_dev);\n \n \thw->max_rx_queues = nn_cfg_readl(hw, NFP_NET_CFG_MAX_RXRINGS);\n \thw->max_tx_queues = nn_cfg_readl(hw, NFP_NET_CFG_MAX_TXRINGS);\n@@ -1133,8 +1121,7 @@ nfp_secondary_init_app_fw_nic(struct rte_pci_device *pci_dev,\n \n \t\teth_dev->process_private = cpp;\n \t\thw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);\n-\t\tif (nfp_net_ethdev_ops_mount(hw, eth_dev))\n-\t\t\treturn -EINVAL;\n+\t\tnfp_net_ethdev_ops_mount(hw, eth_dev);\n \n \t\trte_eth_dev_probing_finish(eth_dev);\n \t}\ndiff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c\nindex 71f5020ecd..f971bb8903 100644\n--- a/drivers/net/nfp/nfp_ethdev_vf.c\n+++ b/drivers/net/nfp/nfp_ethdev_vf.c\n@@ -244,31 +244,18 @@ static const struct eth_dev_ops nfp_netvf_eth_dev_ops = {\n \t.fw_version_get         = nfp_net_firmware_version_get,\n };\n \n-static inline int\n-nfp_netvf_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev)\n+static inline void\n+nfp_netvf_ethdev_ops_mount(struct nfp_net_hw *hw,\n+\t\tstruct rte_eth_dev *eth_dev)\n {\n-\tswitch (hw->ver.extend) {\n-\tcase NFP_NET_CFG_VERSION_DP_NFD3:\n-\t\teth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts;\n-\t\tbreak;\n-\tcase NFP_NET_CFG_VERSION_DP_NFDK:\n-\t\tif (hw->ver.major < 5) {\n-\t\t\tPMD_DRV_LOG(ERR, \"NFDK must use ABI 5 or newer, found: %d\",\n-\t\t\t\t\thw->ver.major);\n-\t\t\treturn -EINVAL;\n-\t\t}\n-\t\teth_dev->tx_pkt_burst = &nfp_net_nfdk_xmit_pkts;\n-\t\tbreak;\n-\tdefault:\n-\t\tPMD_DRV_LOG(ERR, \"The version of firmware is not correct.\");\n-\t\treturn -EINVAL;\n-\t}\n+\tif (hw->ver.extend == NFP_NET_CFG_VERSION_DP_NFD3)\n+\t\teth_dev->tx_pkt_burst = nfp_net_nfd3_xmit_pkts;\n+\telse\n+\t\teth_dev->tx_pkt_burst = nfp_net_nfdk_xmit_pkts;\n \n \teth_dev->dev_ops = &nfp_netvf_eth_dev_ops;\n \teth_dev->rx_queue_count = nfp_net_rx_queue_count;\n \teth_dev->rx_pkt_burst = &nfp_net_recv_pkts;\n-\n-\treturn 0;\n }\n \n static int\n@@ -300,12 +287,13 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev)\n \tPMD_INIT_LOG(DEBUG, \"ctrl bar: %p\", hw->ctrl_bar);\n \n \tnfp_net_cfg_read_version(hw);\n+\tif (!nfp_net_is_valid_nfd_version(hw->ver))\n+\t\treturn -EINVAL;\n \n \tif (nfp_net_check_dma_mask(hw, pci_dev->name) != 0)\n \t\treturn -ENODEV;\n \n-\tif (nfp_netvf_ethdev_ops_mount(hw, eth_dev))\n-\t\treturn -EINVAL;\n+\tnfp_netvf_ethdev_ops_mount(hw, eth_dev);\n \n \t/* For secondary processes, the primary has done all the work */\n \tif (rte_eal_process_type() != RTE_PROC_PRIMARY)\ndiff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c\nindex 0ac9d6db03..ce9a07309e 100644\n--- a/drivers/net/nfp/nfp_rxtx.c\n+++ b/drivers/net/nfp/nfp_rxtx.c\n@@ -889,20 +889,10 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev,\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n \n-\tswitch (hw->ver.extend) {\n-\tcase NFP_NET_CFG_VERSION_DP_NFD3:\n+\tif (hw->ver.extend == NFP_NET_CFG_VERSION_DP_NFD3)\n \t\treturn nfp_net_nfd3_tx_queue_setup(dev, queue_idx,\n \t\t\t\tnb_desc, socket_id, tx_conf);\n-\tcase NFP_NET_CFG_VERSION_DP_NFDK:\n-\t\tif (hw->ver.major < 5) {\n-\t\t\tPMD_DRV_LOG(ERR, \"NFDK must use ABI 5 or newer, found: %d\",\n-\t\t\t\t\thw->ver.major);\n-\t\t\treturn -EINVAL;\n-\t\t}\n+\telse\n \t\treturn nfp_net_nfdk_tx_queue_setup(dev, queue_idx,\n \t\t\t\tnb_desc, socket_id, tx_conf);\n-\tdefault:\n-\t\tPMD_DRV_LOG(ERR, \"The version of firmware is not correct.\");\n-\t\treturn -EINVAL;\n-\t}\n }\n",
    "prefixes": [
        "02/10"
    ]
}