get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 133751,
    "url": "http://patchwork.dpdk.org/api/patches/133751/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20231102022321.2254224-5-chaoyong.he@corigine.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20231102022321.2254224-5-chaoyong.he@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231102022321.2254224-5-chaoyong.he@corigine.com",
    "date": "2023-11-02T02:23:14",
    "name": "[04/11] net/nfp: add flag to indicate multiple PFs support",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "5cca6175409f80e182c4788bd8cdb28ecf2c5973",
    "submitter": {
        "id": 2554,
        "url": "http://patchwork.dpdk.org/api/people/2554/?format=api",
        "name": "Chaoyong He",
        "email": "chaoyong.he@corigine.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patchwork.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20231102022321.2254224-5-chaoyong.he@corigine.com/mbox/",
    "series": [
        {
            "id": 30106,
            "url": "http://patchwork.dpdk.org/api/series/30106/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=30106",
            "date": "2023-11-02T02:23:10",
            "name": "Add the support of multiple PF",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/30106/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/133751/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/133751/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 4FF3243267;\n\tThu,  2 Nov 2023 03:24:20 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 76DDF42E67;\n\tThu,  2 Nov 2023 03:23:54 +0100 (CET)",
            "from NAM02-SN1-obe.outbound.protection.outlook.com\n (mail-sn1nam02on2122.outbound.protection.outlook.com [40.107.96.122])\n by mails.dpdk.org (Postfix) with ESMTP id 8558042E66\n for <dev@dpdk.org>; Thu,  2 Nov 2023 03:23:52 +0100 (CET)",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)\n by BY5PR13MB4455.namprd13.prod.outlook.com (2603:10b6:a03:1d4::17)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19; Thu, 2 Nov\n 2023 02:23:51 +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.6933.027; Thu, 2 Nov 2023\n 02:23:51 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=Moynh1lKBZ1qoN3qQ2SRLEc42ceBXwzd5W2t4CEIEXifaSp69nsUltOiTidYUZ7cixpiV0Ub7RMkkYydbMOVb7GcoIxLS0+dUxEHeax/btS22eO+giVZzlM2yjOM2hzPeyrQw/GMyeyuejG6KouH8rkwTJkORO/73WV43L8+sGxKQCnActaAbcQa4hCV5xg/X7evjJf44ee8IlJuD/kY6gKqMmldbq9bcVqucL9KbUCOuQLnOGbpuUndt0zFOkQYPRKTOjxibvzENutM7wvkB4cGoEL5Yl11nLbZDOnZuiUqT8iCCL5CyJBOc3Jj0VzAaG4FIKqe8o8Grbc4ASHi8g==",
        "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=W50/nAcoJBmAfjnKNsffU7oMusWQsbdZHAgyINcNIvU=;\n b=BPlRfxMC4agbIWgXGpbEVzbZyADx3c97Fs7B0IGhz77NcmnU4sCG2rowJNkJE1zDJN8VTO65d+2JMVEiUpxRCyYI8ltmK9LlCyeISaNn1wvQp1eLjX996zW/0Pa+D11hUf/yWpyx9gVx+1c/HyV00Xvp/YqBHs+sEFcWE5JZvz0MBpF8IqmzxVHcvXXJrVI5o2f5yb8OlCxY9FCwf/wuFbXTHdGSbKq8ftaMuih0O3QD9KzIfpg1U1+9Zxmr+3lsZA0sDOGZKrKdgX8VaAlv7/XbOGO2PqJQYmgb2tdP4goBzw9M2XlnRXZnIXRBxttFQoBvLzmyLrUasaBQXI3Htw==",
        "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=W50/nAcoJBmAfjnKNsffU7oMusWQsbdZHAgyINcNIvU=;\n b=Pt6zu5Qq3CBgBOOOaymtDuxgad4H3JHNhpH0VPpZFmitfs/7PYs4W16+ft8chftePaZZpZVUw1GsvGxkztg5CuEKz6eU5yf4sorteJ5z7RSJUCpYjwdJ9p0OyRST/86PGSdHNap5tGRU7cGygOK3aqr1BwgZ89Rdadz7uFq2sQU=",
        "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, Peng Zhang <peng.zhang@corigine.com>,\n Chaoyong He <chaoyong.he@corigine.com>, Long Wu <long.wu@corigine.com>",
        "Subject": "[PATCH 04/11] net/nfp: add flag to indicate multiple PFs support",
        "Date": "Thu,  2 Nov 2023 10:23:14 +0800",
        "Message-Id": "<20231102022321.2254224-5-chaoyong.he@corigine.com>",
        "X-Mailer": "git-send-email 2.39.1",
        "In-Reply-To": "<20231102022321.2254224-1-chaoyong.he@corigine.com>",
        "References": "<20231102022321.2254224-1-chaoyong.he@corigine.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "BY5PR20CA0030.namprd20.prod.outlook.com\n (2603:10b6:a03:1f4::43) 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_|BY5PR13MB4455:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "0c30f154-41e3-466f-6230-08dbdb4ac095",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n bt8IJp50JMraowWdRAczzf6q5kVHsxsh0TY4JHRkwaf4rgf28MCA1ncv44Mtdqbo2MSIbfh09E7PgXJFqG6umgJ2DQn5PpfrqHOI/awSBLf5CBK3jvWl/8bdAhD+2bQ+RqFfEBH85AApGWyN40PNkK5PYl0bbN6oHXFQXc6FO21uq/C3iPAeZHkKtVi8uo2HL0pLVmjAeujygdclxJdRB8zJGVptCDgzF86Ue0OyQbDLcp/U0m8vNf4a7aE8rUOOI+Q10mM+sx0Qv7XKi44PXVTo1or8zThxSzw/WylrPgvdO7aAXN+6W2eWmaT9mugdEsuQH/ojjgr7hKPnD7eZp2UxI0vwQgMJqiwWHkOA4pbW7NqTBu/Av7OP0Y+Y80JrLTSym3W19eiiKXN9Rom/Q2dJJJOBzZNWFcW/NVWSiM3pfWJnZxGu8LERBJc+pCmVPF1VV6VcsN9VFfCqqAcEAc7L5iJ4EPVDt+abNdaK0yU37EwJj2Iqr8p+sR3lhSVtglPDQpXajJ5lUU6rLNGvdUXlyapkZ8gzU0h+43xkn0XnqZggDv/iaB5/G9MonKt5bSU5hCWC41SMN80irQejzQM0kCAsq7nlu/ND/Re8/KieQYV9bwSFtXcCkEN6F0PfjgQqOCF/iRXIKK7kyd2sBdDydM99RjJ9rhkiolVMilk=",
        "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)(346002)(396003)(136003)(39830400003)(376002)(366004)(230922051799003)(451199024)(1800799009)(64100799003)(186009)(2906002)(8936002)(4326008)(8676002)(44832011)(6666004)(41300700001)(6486002)(478600001)(66556008)(316002)(66476007)(6916009)(54906003)(5660300002)(66946007)(6506007)(52116002)(107886003)(1076003)(26005)(2616005)(83380400001)(38350700005)(6512007)(36756003)(86362001)(38100700002);\n DIR:OUT; SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n I9+uDjcWw/s503kh7kTbhvJI6X7c3k3E2bt7qdHZdQW0A0renGpVHwHUT4tfRmUEbu6PtgDp+Vh5EJyMlLK8pLmStr06BFCxy3J1hKwtWR+jQ/wCiQ8oiwyBPZUrY8I/H/Mf3q9O/LpYNQe4rj+Vj7XyFvCCK9cbJ6AOkKGXKekfKlbhfaydCzOlBZiE+1MJzLjtaTx7UXbEdRuwFtfspz1g2vMXnxFRnm+nW5svrZsCBiakj1i8mjhiGxpE6NcNuSqV5mpW+dLzb9JCAydT7CD4ykdmRz1rhginyKN/us31bUHXrphhG4wWqL9mDu5wjVv/Vcd/yDKMt1JXXPMDu4j3wGVUc+mQbNhsM45M2rILzd8BAM3q2Pa56dN/SVon147C3ABespvFR3uUQmQ25nhsj9qLvjkmG7hSR5yPr6BD8VOgHIE1k3IZ5DZfMrQmiAcYJvHwc7LJ3/hJanEH7jMIu/aD/1w3p5k/joL97/8zAsZm9CdCogJ8O/2EjbR+QTSnKVd9LvGH5+nmuZ48QqEmmW4DO7q+p+fZC+uO1LO50MLChhYKeuj4EzOjzenzmg4U+4cKXrj4PVg4i97EQr7E5pcyGmCiETAnxUpqDjDul/XtGLwCveAqIHEHBXQYPi9IqnOqj0Krt7uhu7Vi+nMg2LYWT9JarcHfjIX7UW8aA+s3IEDliuTpkj9sRtDJJpEI5EgBA+qqlbBjA04vlQ3oqmukIapBgbHEdu6n0UG+S4YdgYryGA3X1aZaKMB5dXIy/7HigHx/2JpPhYc1uH6p7Cx1WhwKw3LV1kZDG2g0YXMN1GqYeboqU4PIajWbI2pC1gJyUK0izw7ciM5kdVdf7CfkwimGeNSTfe54fYArm/6g4nhrVUNZ9RfFNGH4Ss6yH1jPD5G8w1qSGXiWIo0rR2f9l8i0WDMrKKOpJa8C3bZkUkxh3pwuwgbv2bSOF9xzFkJJIGALsIeFuscq3ZJtUyxpgJ1PETopAnorMN0l3FSLsgLdFHzgihGY8/PRLDKz/gSuReHmpSyAa+vZ0UeGulPbch4kcxu8XdTilPkfjUzZlsWFTiv7iyFs57RvrSkmlHjLO25tEupiRirYX/nXexVxPvtUt6BfFToTpZdlBm7kZgtWEWS34F7MAoF9m2GSbt5HeNyFX7FB9Q6rHwEgv3DqCLYmPwwpFFMvxVJNLrGfSDSBn5QOl4LeRXXJ0pY2HQy006RR7FROl3KA61VXncsKIUQy/S9lRkdVofxNfgngj/RnWnN1LbYnzaAcfwuWjF4mCjZ2KItP2N39cUkfYJQoYxfquIhmP8eVuVuALOvq+Mq/itRSZ1ywO/XE2kSBGFb8NHNb8Lv3lmUccv7+304DePzgLtigJ441r3LoCnHuDQ8BOtsSrq7onkQOClPdEJe46VOfpDIEl6MsghLF7TWG4nBdLrVKs07F+8r7WeCBc0kIoY8xteHlh/gMjikVn9V6zZFW5mAsCafTVPLIQj5MWuLkEipOAgNwhu365YpYxXIcq78N0WFQbEeZ938qIF0Mt4BWGKMbrwZX3SJmoPwk0KJ26f/lS2J9Yiy+3AxYZOKItFnLw/nq7YQC9tn+jV4W66WIRd1pCPYbiQ==",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 0c30f154-41e3-466f-6230-08dbdb4ac095",
        "X-MS-Exchange-CrossTenant-AuthSource": "SJ0PR13MB5545.namprd13.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "02 Nov 2023 02:23:51.0937 (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 No2Gvb7SYXu9TkagOc5K1mSddmTAQzy+JKpJ4dO/6xGXcyb35pjp7CiQrZBSk9EWPUhAoaiZAlXMO+5Elr8JYeUunFCY0b6gkNkoRkvjJRE=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BY5PR13MB4455",
        "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: Peng Zhang <peng.zhang@corigine.com>\n\nSupport for multiple PFs have been added to the NFP3800 firmware. This\ncan be detected by reading the NSP major version, which was bumped to 1\nwhen support was added.\n\nAdd a flag and detecting method to record if the current device is\ncabable to support multiple PFs. This will be used in later patches to\ninitialize and make use of this new feature.\n\nNoteworthy about the detection method from NSP version information, the\nNSP minor version was not touched when increasing the major version.\nThis makes the first NSP version to support multiple PFs version 1.8,\nwhile the latest version without this supports remains 0.8.\n\nSigned-off-by: Peng Zhang <peng.zhang@corigine.com>\nReviewed-by: Chaoyong He <chaoyong.he@corigine.com>\nReviewed-by: Long Wu <long.wu@corigine.com>\n---\n drivers/net/nfp/nfp_ethdev.c      | 49 +++++++++++++++++++++++--------\n drivers/net/nfp/nfp_net_common.h  |  8 +++++\n drivers/net/nfp/nfpcore/nfp_nsp.c | 14 +++++++--\n 3 files changed, 56 insertions(+), 15 deletions(-)",
    "diff": "diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c\nindex aa2b59af32..7022ef435f 100644\n--- a/drivers/net/nfp/nfp_ethdev.c\n+++ b/drivers/net/nfp/nfp_ethdev.c\n@@ -479,7 +479,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev)\n \n \trte_eth_copy_pci_info(eth_dev, pci_dev);\n \n-\tif (port == 0) {\n+\tif (port == 0 || pf_dev->multi_pf.enabled) {\n \t\tuint32_t min_size;\n \n \t\thw->ctrl_bar = pf_dev->ctrl_bar;\n@@ -712,6 +712,26 @@ nfp_fw_setup(struct rte_pci_device *dev,\n \treturn err;\n }\n \n+static inline bool\n+nfp_check_multi_pf_from_nsp(struct rte_pci_device *pci_dev,\n+\t\tstruct nfp_cpp *cpp)\n+{\n+\tbool flag;\n+\tstruct nfp_nsp *nsp;\n+\n+\tnsp = nfp_nsp_open(cpp);\n+\tif (nsp == NULL) {\n+\t\tPMD_DRV_LOG(ERR, \"NFP error when obtaining NSP handle\");\n+\t\treturn false;\n+\t}\n+\n+\tflag = (nfp_nsp_get_abi_ver_major(nsp) > 0) &&\n+\t\t\t(pci_dev->id.device_id == PCI_DEVICE_ID_NFP3800_PF_NIC);\n+\n+\tnfp_nsp_close(nsp);\n+\treturn flag;\n+}\n+\n static int\n nfp_init_app_fw_nic(struct nfp_pf_dev *pf_dev,\n \t\tconst struct nfp_dev_info *dev_info)\n@@ -874,6 +894,14 @@ nfp_pf_init(struct rte_pci_device *pci_dev)\n \t\treturn -ENODEV;\n \t}\n \n+\t/* Allocate memory for the PF \"device\" */\n+\tsnprintf(name, sizeof(name), \"nfp_pf%d\", 0);\n+\tpf_dev = rte_zmalloc(name, sizeof(*pf_dev), 0);\n+\tif (pf_dev == NULL) {\n+\t\tPMD_INIT_LOG(ERR, \"Can't allocate memory for the PF device\");\n+\t\treturn -ENOMEM;\n+\t}\n+\n \t/*\n \t * When device bound to UIO, the device could be used, by mistake,\n \t * by two DPDK apps, and the UIO driver does not avoid it. This\n@@ -888,7 +916,8 @@ nfp_pf_init(struct rte_pci_device *pci_dev)\n \n \tif (cpp == NULL) {\n \t\tPMD_INIT_LOG(ERR, \"A CPP handle can not be obtained\");\n-\t\treturn -EIO;\n+\t\tret = -EIO;\n+\t\tgoto pf_cleanup;\n \t}\n \n \thwinfo = nfp_hwinfo_read(cpp);\n@@ -906,6 +935,8 @@ nfp_pf_init(struct rte_pci_device *pci_dev)\n \t\tgoto hwinfo_cleanup;\n \t}\n \n+\tpf_dev->multi_pf.enabled = nfp_check_multi_pf_from_nsp(pci_dev, cpp);\n+\n \t/* Force the physical port down to clear the possible DMA error */\n \tfor (i = 0; i < nfp_eth_table->count; i++)\n \t\tnfp_eth_set_configured(cpp, nfp_eth_table->ports[i].index, 0);\n@@ -932,14 +963,6 @@ nfp_pf_init(struct rte_pci_device *pci_dev)\n \t\tgoto sym_tbl_cleanup;\n \t}\n \n-\t/* Allocate memory for the PF \"device\" */\n-\tsnprintf(name, sizeof(name), \"nfp_pf%d\", 0);\n-\tpf_dev = rte_zmalloc(name, sizeof(*pf_dev), 0);\n-\tif (pf_dev == NULL) {\n-\t\tret = -ENOMEM;\n-\t\tgoto sym_tbl_cleanup;\n-\t}\n-\n \t/* Populate the newly created PF device */\n \tpf_dev->app_fw_id = app_fw_id;\n \tpf_dev->cpp = cpp;\n@@ -957,7 +980,7 @@ nfp_pf_init(struct rte_pci_device *pci_dev)\n \tif (pf_dev->qc_bar == NULL) {\n \t\tPMD_INIT_LOG(ERR, \"nfp_rtsym_map fails for net.qc\");\n \t\tret = -EIO;\n-\t\tgoto pf_cleanup;\n+\t\tgoto sym_tbl_cleanup;\n \t}\n \n \tPMD_INIT_LOG(DEBUG, \"qc_bar address: %p\", pf_dev->qc_bar);\n@@ -998,8 +1021,6 @@ nfp_pf_init(struct rte_pci_device *pci_dev)\n \n hwqueues_cleanup:\n \tnfp_cpp_area_free(pf_dev->qc_area);\n-pf_cleanup:\n-\trte_free(pf_dev);\n sym_tbl_cleanup:\n \tfree(sym_tbl);\n eth_table_cleanup:\n@@ -1008,6 +1029,8 @@ nfp_pf_init(struct rte_pci_device *pci_dev)\n \tfree(hwinfo);\n cpp_cleanup:\n \tnfp_cpp_free(cpp);\n+pf_cleanup:\n+\trte_free(pf_dev);\n \n \treturn ret;\n }\ndiff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h\nindex b9df2fe563..bd0ed077c5 100644\n--- a/drivers/net/nfp/nfp_net_common.h\n+++ b/drivers/net/nfp/nfp_net_common.h\n@@ -54,6 +54,11 @@ struct nfp_net_tlv_caps {\n \tuint32_t mbox_cmsg_types;        /**< Cmsgs which can be passed through the mailbox */\n };\n \n+struct nfp_multi_pf {\n+\t/** Support multiple PF */\n+\tbool enabled;\n+};\n+\n struct nfp_pf_dev {\n \t/** Backpointer to associated pci device */\n \tstruct rte_pci_device *pci_dev;\n@@ -79,6 +84,9 @@ struct nfp_pf_dev {\n \n \t/** Service id of cpp bridge service */\n \tuint32_t cpp_bridge_id;\n+\n+\t/** Multiple PF configuration */\n+\tstruct nfp_multi_pf multi_pf;\n };\n \n struct nfp_app_fw_nic {\ndiff --git a/drivers/net/nfp/nfpcore/nfp_nsp.c b/drivers/net/nfp/nfpcore/nfp_nsp.c\nindex a680b972b8..9f88b822f3 100644\n--- a/drivers/net/nfp/nfpcore/nfp_nsp.c\n+++ b/drivers/net/nfp/nfpcore/nfp_nsp.c\n@@ -40,7 +40,17 @@\n #define   NSP_DFLT_BUFFER_SIZE_MB      GENMASK_ULL(7, 0)\n \n #define NSP_MAGIC               0xab10\n-#define NSP_MAJOR               0\n+\n+/*\n+ * ABI major version is bumped separately without resetting minor\n+ * version when the change in NSP is not compatible to old driver.\n+ */\n+#define NSP_MAJOR               1\n+\n+/*\n+ * ABI minor version is bumped when new feature is introduced\n+ * while old driver can still work without this new feature.\n+ */\n #define NSP_MINOR               8\n \n #define NSP_CODE_MAJOR          GENMASK_ULL(15, 12)\n@@ -203,7 +213,7 @@ nfp_nsp_check(struct nfp_nsp *state)\n \tstate->ver.major = FIELD_GET(NSP_STATUS_MAJOR, reg);\n \tstate->ver.minor = FIELD_GET(NSP_STATUS_MINOR, reg);\n \n-\tif (state->ver.major != NSP_MAJOR || state->ver.minor < NSP_MINOR) {\n+\tif (state->ver.major > NSP_MAJOR || state->ver.minor < NSP_MINOR) {\n \t\tPMD_DRV_LOG(ERR, \"Unsupported ABI %hu.%hu\", state->ver.major,\n \t\t\t\tstate->ver.minor);\n \t\treturn -EINVAL;\n",
    "prefixes": [
        "04/11"
    ]
}