get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 113159,
    "url": "https://patches.dpdk.org/api/patches/113159/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1655807588-7320-4-git-send-email-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": "<1655807588-7320-4-git-send-email-chaoyong.he@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1655807588-7320-4-git-send-email-chaoyong.he@corigine.com",
    "date": "2022-06-21T10:32:59",
    "name": "[v2,03/12] net/nfp: move app specific init logic to own function",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "ca91e1630e76ac60a483a170fbd6a0c0639095ac",
    "submitter": {
        "id": 2554,
        "url": "https://patches.dpdk.org/api/people/2554/?format=api",
        "name": "Chaoyong He",
        "email": "chaoyong.he@corigine.com"
    },
    "delegate": {
        "id": 3961,
        "url": "https://patches.dpdk.org/api/users/3961/?format=api",
        "username": "arybchenko",
        "first_name": "Andrew",
        "last_name": "Rybchenko",
        "email": "andrew.rybchenko@oktetlabs.ru"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1655807588-7320-4-git-send-email-chaoyong.he@corigine.com/mbox/",
    "series": [
        {
            "id": 23653,
            "url": "https://patches.dpdk.org/api/series/23653/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=23653",
            "date": "2022-06-21T10:32:56",
            "name": "preparation for the rte_flow offload of nfp PMD",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/23653/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/113159/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/113159/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 B6526A00C5;\n\tTue, 21 Jun 2022 12:34:14 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id DE5AD42823;\n\tTue, 21 Jun 2022 12:34:03 +0200 (CEST)",
            "from NAM12-BN8-obe.outbound.protection.outlook.com\n (mail-bn8nam12on2137.outbound.protection.outlook.com [40.107.237.137])\n by mails.dpdk.org (Postfix) with ESMTP id 1A20441132\n for <dev@dpdk.org>; Tue, 21 Jun 2022 12:34:02 +0200 (CEST)",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)\n by MN2PR13MB3086.namprd13.prod.outlook.com (2603:10b6:208:135::12)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Tue, 21 Jun\n 2022 10:34:00 +0000",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::5d9e:9ce5:51d1:2021]) by SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::5d9e:9ce5:51d1:2021%7]) with mapi id 15.20.5373.015; Tue, 21 Jun 2022\n 10:34:00 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=oREBgwtNI9Vyn8eN9oPO3JEvE/ylHj+ehFVUWTF5Sga5NppcVleeo4bqdXl0ygN/iRoarjoHM2+mRTmdnSbryfwnw+JwInro+2URLcLkLqtLf8qpX2288sWo51E38a9zTPRwVvCRGdoah+GyNx4oxGd3oWjj/1ehcsKJ5V5+yov5c7rGswPyyt9WH8qutWeVPqg0OzEhhzvofF0XGzGzd0wt7yLQEQYI+T9Od2cFllQpD6aDV2obA+zJJhOlYdw2JieL9T0gWJbLKI+V7NQblI3tFUJ/nQJJv2BDIqYmmvBG6UWwLAxuF60szbNjICUACvVG5xmyRlH7u1yair/Vzg==",
        "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=xm+osS83/vIi4Loqb7jrKJm55KK86k6ftxN5ZQDoP7M=;\n b=g2zkan+E1JAi3YdpmYl5SAhlMyyMCxYmR0dZLDgDovkgujoFC1Lb2dFHoDAsCw08XJ5orZnm5pE8YwaZ8G/I63E8vsCjcEmoEM/rrK1myP6NyjCh/+T+8+0SM0NQeZUxw1IyNj1+Mvb1NCiDaof8Qs3F5nGGz5fiT3JR5y4VeYPTbP5eBhETpEHendxe61DRw9Ifg9qIr0E/7UJqWHJbR5DL5aCOjrDyMPqgDFjb2RbYnsK4/H63rGIuHDJbHddm4oIfXpzpYeMN2/5Y/TtOcn50MWxHDdTLTWFvv2SWCUgtxVlra4u39vQ04M94IHpwCKpyegYdJaZMJRuMKQ/7kQ==",
        "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=xm+osS83/vIi4Loqb7jrKJm55KK86k6ftxN5ZQDoP7M=;\n b=qiCMs7RMCvmEuzyAEmjg3Sip669KarAy6t41lC2js6nNLbx4SuYX+x/Z/46AqZYPeDCGcUjdgm9LrUi0/F9jJzXyv8KTu59zFtvKX7ScC9gvYhN/zF5f+Q2j9Fj1C0GqdBKtlEtx1iPvbHgyRk0h7pwULagYlgddZQapf+GwK+8=",
        "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": "niklas.soderlund@corigine.com,\n\tChaoyong He <chaoyong.he@corigine.com>",
        "Subject": "[PATCH v2 03/12] net/nfp: move app specific init logic to own\n function",
        "Date": "Tue, 21 Jun 2022 18:32:59 +0800",
        "Message-Id": "<1655807588-7320-4-git-send-email-chaoyong.he@corigine.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1655807588-7320-1-git-send-email-chaoyong.he@corigine.com>",
        "References": "<1655807588-7320-1-git-send-email-chaoyong.he@corigine.com>",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-ClientProxiedBy": "OS0PR01CA0018.jpnprd01.prod.outlook.com\n (2603:1096:604:24::23) To SJ0PR13MB5545.namprd13.prod.outlook.com\n (2603:10b6:a03:424::5)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "07eaa3a4-512e-457e-4473-08da53718e04",
        "X-MS-TrafficTypeDiagnostic": "MN2PR13MB3086:EE_",
        "X-Microsoft-Antispam-PRVS": "\n <MN2PR13MB3086F240670F2EC447C9DDB39EB39@MN2PR13MB3086.namprd13.prod.outlook.com>",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n TSfFg+FK3uwwGs+YqhWvorlakChism0xLMXardWj+gzeQanxSKauMQL7qKSCIQUeE5LLulkTsv92LP69SfQKEHXSEUqJUMN1dr3sSBTpaCWGOgniKXADblipxsiz3FSJpPKXm8//YC45Mf0jFFBjn+6NxCSHKOiI9OLdOGnCRB77k4u4cfkYj3rdX5zN5cglRM8BkQccTCtYtUq/r+48P08G4d6eLlv3M912bm2T96kvi8Y1AlHqwEmf8ul0OuUaQ/TRwgO/4V7ZMmsryyFN3o7t3nANyEC+J3q2xhyryHLVjzavvhp4JwUIfwkmtsna/QG807OhIN7AJ7+0HWOQQt/iQwvDwJOp8JeIS2qAvvICNNXPPRjIrx+rZptSWNbV0wHf5H+K3KSq9Pv73CHHFVIQ3VU63E4S5pOX+Cg4gPeKojKMayXP7T/sbBBl0aRBIQub+2E+fb5AApEm8MZuUpYQgpl7StNoXQQm1kNN+7/nYy1sulJ+WwLBNMWhueKVVe/k7maf8Wt7H4gCFBk7buRxJ31vK5tZAKtp8py8abr3CyBd5zMmODLAheuYW29rA1ZF4K2fsStTu/4td7QGvQ+Py2XJXudwuZBEEYg4/0RGuMQ0crzTIYm7x7xYjnHeImZw4jRYmJbvhRAu6q53FUOKYLRobNs+wj0+6zUy5jmZr/ZU7EXaNzPtcnZ73+6wgfedm8j/cwb23OfVMVaRcVohJWi7MW3Rl0ttvb2/24OCsIfzJSKLKJnQqlyEpvOW",
        "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:(13230016)(4636009)(376002)(396003)(136003)(366004)(39830400003)(346002)(83380400001)(107886003)(186003)(41300700001)(2616005)(38100700002)(38350700002)(66476007)(4326008)(86362001)(5660300002)(8936002)(44832011)(6506007)(2906002)(52116002)(26005)(6512007)(6916009)(316002)(8676002)(66556008)(66946007)(6486002)(478600001)(36756003);\n DIR:OUT; SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "=?utf-8?q?XqzIibeq9bg67ja1i/BLoAFFARNL?=\n\t=?utf-8?q?7zJJY9j/2KrqeexeEgeXoFHaFcGl8H0hhE224J4pn0vKj2JFZNXK9rJSKRI9lNMcg?=\n\t=?utf-8?q?wJFVmyKxeoAYRbA14uuPJ6WefB8+HcUoK+0emC0iBq5WXvZmGJ7T470nPgghgBycA?=\n\t=?utf-8?q?iejSS7Mn43v7/1/Lwha+hnWPdmTb2hVgYqADy8LF6Hn/994AO3JauaehEXA4N+n6C?=\n\t=?utf-8?q?fTQax5SNWf3+oQhImcoxq5e2H4axEsK9cdvcCyYf15tM+bsuA3/JBIYVgouB8FLAH?=\n\t=?utf-8?q?juCzozeIfw83y5v4Q8KP9YWmeGFrX6CbMfVe8AOUtkkqoC0Ig+VW0FynrK1huwFyO?=\n\t=?utf-8?q?JrL9DL7iXVG0naUI1P99jbmQOq8YTPoU1GAaw4vRRDBe59Sri62R9aigcNY3b0dnD?=\n\t=?utf-8?q?64T44k6jm2nRxzgx3HdYYJ1+RV54nViUB2HBKM5IADEkioz6gX5d8X0+IU/2nQeoi?=\n\t=?utf-8?q?o38xNqSfbg1bMG5FHUosCqMQTY7bJbjsn07v6kI4DEeA2ur5KZl11hTWOscUoBkCC?=\n\t=?utf-8?q?U4w9ueTj8vOn2He87GKgHa6GUjaKKVtjnUT7WDdBnxpFFDml3o8Lym2+WDD6h5MmA?=\n\t=?utf-8?q?pMxmNTlz/lCzpsH9+CrajyuEymFpWff6NHJdR1ToLjokITXUTPz3XYcoSOPefTwnA?=\n\t=?utf-8?q?yp4vSF7dWzldp02TdVmBdntklp/TNYINxRDQVTw+t2qHBnUnnUrH9UmrvLpTpHlKk?=\n\t=?utf-8?q?LJ27qM4S7eOjdHjtTyoysTtiPbx4Uva/b6fHSRBwSBCnQjbnPtb+dvWgMbb8dR9TR?=\n\t=?utf-8?q?1WRP9huni14W8nTRgnP5mrooEkI6Vt0e9SUlCrxCPxlq7Zh8ehX34kpwdFl2iIqw3?=\n\t=?utf-8?q?a22ve18rOpi8R7gRGxoE5cD2nfmobt+RqGziWtiWgsHzZmOazp+glFD5xi6d51wNF?=\n\t=?utf-8?q?31jKuDHmeMg3AcP3rEu170CRL6Q7DIm8R1Clh7JUeSNqrvALpcM0uL1xQdM78yB7P?=\n\t=?utf-8?q?AFMrsTBL4sBk8I66BfImcVP9PYhmsWi2uoJusVnN1Nz5BC9kVwFiKNdgN1bZE4ru9?=\n\t=?utf-8?q?xnVyPIDryak34wpKieAGBEAomr0hbQE7eGMCpW1ocut0imKomow310zQWGZ39J0gh?=\n\t=?utf-8?q?jyQyQgmHNC7mnIdEloHt3yvcYEHEdKBgcGUgI1IrU/0sobM4Lp/V/5O3KRy168a68?=\n\t=?utf-8?q?rdkaCgAX1cZq60ENL5lN7nQwlGuU9XP78Ohb8C4gn0gKFTZvtyYF15pgNpuL0ifxI?=\n\t=?utf-8?q?AM6VvZfUGGv0otmyvZhtXvr8dDoLN3pf9Ylu0LFvf8P5UUy4ezzN3qQbhZ17xLJe/?=\n\t=?utf-8?q?D+InvHsUXjYgRDAwnfMvJieb8rY09SCJKZAMcy/aabpl4kP4OrjW0STikAj7g/cLC?=\n\t=?utf-8?q?dYD8LyRml9QuDegr799b7BXrfIPlhHFr3A1SQYIl9NeHxid6TQbU8Ktk1FNRPfQO0?=\n\t=?utf-8?q?IaqXiIDYIFF372aIlxYpPfgHD+6Y6PMYlZ/C5fbjZR+Fk5/rtSX4XiI4Nnla56yyd?=\n\t=?utf-8?q?v6+1VCmu8FKCxxfNcQt2Qkt2JxFXXtVx6PCLeE0JpWsC2V2YmD0UoEjh0g5rCX5Sd?=\n\t=?utf-8?q?o52kYlic5aaW5w/2P9+I8OJ4T2UuBAXGdVHg5sLPcH58Ou01hub6AFngKv5e+roNl?=\n\t=?utf-8?q?/KhrV0Z7ZU9vHTaUT1GDjo6Z5OPh0Sy+K4IKymbi9SVia4kLJfhWM7GoPfMurDjYM?=\n\t=?utf-8?q?B2rDSm5RsNsx1JLmirhxJX+g4yi9b1lrJjmP/m1gqggbrHWwhV5qw=3D?=",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 07eaa3a4-512e-457e-4473-08da53718e04",
        "X-MS-Exchange-CrossTenant-AuthSource": "SJ0PR13MB5545.namprd13.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "21 Jun 2022 10:34:00.7586 (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 mEyn0IZEkP8n3pNgWhLNMrQ0yhEyKqO+zmLwLy76RcAnRPMrW2CTtKeN7u063kFHqttPeY4eTKGVGjmwAKpDa7fDP2i4p2uBExN0UT70xHc=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "MN2PR13MB3086",
        "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": "The NFP card can load different firmware applications.\nThis commit move the init logic of corenic app of the\nsecondary process into its own function.\n\nSigned-off-by: Chaoyong He <chaoyong.he@corigine.com>\nReviewed-by: Niklas Söderlund <niklas.soderlund@corigine.com>\n---\n drivers/net/nfp/nfp_ethdev.c | 93 +++++++++++++++++++++++++++++---------------\n 1 file changed, 62 insertions(+), 31 deletions(-)",
    "diff": "diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c\nindex 2c5607c..90dd01e 100644\n--- a/drivers/net/nfp/nfp_ethdev.c\n+++ b/drivers/net/nfp/nfp_ethdev.c\n@@ -936,7 +936,7 @@\n \t\tbreak;\n \tdefault:\n \t\tPMD_INIT_LOG(ERR, \"nfp_net: no device ID matching\");\n-\t\terr = -ENODEV;\n+\t\tret = -ENODEV;\n \t\tgoto pf_cleanup;\n \t}\n \n@@ -991,6 +991,50 @@\n \treturn ret;\n }\n \n+static int\n+nfp_secondary_init_app_nic(struct rte_pci_device *pci_dev,\n+\t\tstruct nfp_rtsym_table *sym_tbl,\n+\t\tstruct nfp_cpp *cpp)\n+{\n+\tint i;\n+\tint err = 0;\n+\tint ret = 0;\n+\tint total_vnics;\n+\tstruct nfp_net_hw *hw;\n+\n+\t/* Read the number of vNIC's created for the PF */\n+\ttotal_vnics = nfp_rtsym_read_le(sym_tbl, \"nfd_cfg_pf0_num_ports\", &err);\n+\tif (err || total_vnics <= 0 || total_vnics > 8) {\n+\t\tPMD_INIT_LOG(ERR, \"nfd_cfg_pf0_num_ports symbol with wrong value\");\n+\t\treturn -ENODEV;\n+\t}\n+\n+\tfor (i = 0; i < total_vnics; i++) {\n+\t\tstruct rte_eth_dev *eth_dev;\n+\t\tchar port_name[RTE_ETH_NAME_MAX_LEN];\n+\t\tsnprintf(port_name, sizeof(port_name), \"%s_port%d\",\n+\t\t\t\tpci_dev->device.name, i);\n+\n+\t\tPMD_DRV_LOG(DEBUG, \"Secondary attaching to port %s\", port_name);\n+\t\teth_dev = rte_eth_dev_attach_secondary(port_name);\n+\t\tif (eth_dev == NULL) {\n+\t\t\tRTE_LOG(ERR, EAL,\n+\t\t\t\t\"secondary process attach failed, ethdev doesn't exist\");\n+\t\t\tret = -ENODEV;\n+\t\t\tbreak;\n+\t\t}\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+\n+\t\trte_eth_dev_probing_finish(eth_dev);\n+\t}\n+\n+\treturn ret;\n+}\n+\n /*\n  * When attaching to the NFP4000/6000 PF on a secondary process there\n  * is no need to initialise the PF again. Only minimal work is required\n@@ -999,12 +1043,10 @@\n static int\n nfp_pf_secondary_init(struct rte_pci_device *pci_dev)\n {\n-\tint i;\n \tint err = 0;\n \tint ret = 0;\n-\tint total_ports;\n+\tenum nfp_app_id app_id;\n \tstruct nfp_cpp *cpp;\n-\tstruct nfp_net_hw *hw;\n \tstruct nfp_rtsym_table *sym_tbl;\n \n \tif (pci_dev == NULL)\n@@ -1038,37 +1080,26 @@\n \t\treturn -EIO;\n \t}\n \n-\ttotal_ports = nfp_rtsym_read_le(sym_tbl, \"nfd_cfg_pf0_num_ports\", &err);\n-\tif (err || total_ports <= 0 || total_ports > 8) {\n-\t\tPMD_INIT_LOG(ERR, \"nfd_cfg_pf0_num_ports symbol with wrong value\");\n-\t\tret = -ENODEV;\n+\t/* Read the app ID of the firmware loaded */\n+\tapp_id = nfp_rtsym_read_le(sym_tbl, \"_pf0_net_app_id\", &err);\n+\tif (err) {\n+\t\tPMD_INIT_LOG(ERR, \"Couldn't read app_id from fw\");\n \t\tgoto sym_tbl_cleanup;\n \t}\n \n-\tfor (i = 0; i < total_ports; i++) {\n-\t\tstruct rte_eth_dev *eth_dev;\n-\t\tchar port_name[RTE_ETH_NAME_MAX_LEN];\n-\n-\t\tsnprintf(port_name, sizeof(port_name), \"%s_port%d\",\n-\t\t\t pci_dev->device.name, i);\n-\n-\t\tPMD_DRV_LOG(DEBUG, \"Secondary attaching to port %s\", port_name);\n-\t\teth_dev = rte_eth_dev_attach_secondary(port_name);\n-\t\tif (eth_dev == NULL) {\n-\t\t\tRTE_LOG(ERR, EAL,\n-\t\t\t\t\"secondary process attach failed, ethdev doesn't exist\");\n-\t\t\tret = -ENODEV;\n-\t\t\tbreak;\n+\tswitch (app_id) {\n+\tcase NFP_APP_CORE_NIC:\n+\t\tPMD_INIT_LOG(INFO, \"Initializing coreNIC\");\n+\t\tret = nfp_secondary_init_app_nic(pci_dev, sym_tbl, cpp);\n+\t\tif (ret) {\n+\t\t\tPMD_INIT_LOG(ERR, \"Could not initialize coreNIC!\");\n+\t\t\tgoto sym_tbl_cleanup;\n \t\t}\n-\n-\t\thw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);\n-\n-\t\tif (nfp_net_ethdev_ops_mount(hw, eth_dev))\n-\t\t\treturn -EINVAL;\n-\n-\t\teth_dev->process_private = cpp;\n-\n-\t\trte_eth_dev_probing_finish(eth_dev);\n+\t\tbreak;\n+\tdefault:\n+\t\tPMD_INIT_LOG(ERR, \"Unsupported Firmware loaded\");\n+\t\tret = -EINVAL;\n+\t\tgoto sym_tbl_cleanup;\n \t}\n \n \tif (ret)\n",
    "prefixes": [
        "v2",
        "03/12"
    ]
}