get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 51288,
    "url": "https://patches.dpdk.org/api/patches/51288/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1552925103-2821-5-git-send-email-rasland@mellanox.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": "<1552925103-2821-5-git-send-email-rasland@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1552925103-2821-5-git-send-email-rasland@mellanox.com",
    "date": "2019-03-18T16:05:27",
    "name": "[v3,4/4] net/failsafe: support secondary process",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "c86ebcac590596105860e09e4025641c1a1155fe",
    "submitter": {
        "id": 513,
        "url": "https://patches.dpdk.org/api/people/513/?format=api",
        "name": "Raslan Darawsheh",
        "email": "rasland@mellanox.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/1552925103-2821-5-git-send-email-rasland@mellanox.com/mbox/",
    "series": [
        {
            "id": 3785,
            "url": "https://patches.dpdk.org/api/series/3785/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=3785",
            "date": "2019-03-18T16:05:25",
            "name": "support secondary process for failsafe",
            "version": 3,
            "mbox": "https://patches.dpdk.org/series/3785/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/51288/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/51288/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id EE9194F90;\n\tMon, 18 Mar 2019 17:05:39 +0100 (CET)",
            "from EUR03-VE1-obe.outbound.protection.outlook.com\n\t(mail-eopbgr50087.outbound.protection.outlook.com [40.107.5.87])\n\tby dpdk.org (Postfix) with ESMTP id 5A92C3572\n\tfor <dev@dpdk.org>; Mon, 18 Mar 2019 17:05:29 +0100 (CET)",
            "from AM6PR05MB5926.eurprd05.prod.outlook.com (20.179.2.27) by\n\tAM6PR05MB5798.eurprd05.prod.outlook.com (20.178.94.11) with Microsoft\n\tSMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.1709.14; Mon, 18 Mar 2019 16:05:28 +0000",
            "from AM6PR05MB5926.eurprd05.prod.outlook.com\n\t([fe80::ddb7:2093:62c0:59fb]) by\n\tAM6PR05MB5926.eurprd05.prod.outlook.com\n\t([fe80::ddb7:2093:62c0:59fb%2]) with mapi id 15.20.1709.015;\n\tMon, 18 Mar 2019 16:05:28 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;\n\ts=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=So/VYIZNXq0oC4A8chMbCsrakSaGti2yvMJQxKDWy78=;\n\tb=rQOE3LrCuF4ZSM/ouji33oIzyPU/0IfUnf+/WBAMV8l5yccNXBV+OkTCXDzU+V7wLuxMIOxiXRO1m8u1bs+QROCTKcaozeZRQhYl5cq1ABN3UrZHiuoqx5FkUwcefdDQUWd82/ZY1B8lEt95BNb5MGgGR1JqSvUx2H0ZwNvjpdQ=",
        "From": "Raslan Darawsheh <rasland@mellanox.com>",
        "To": "\"gaetan.rivet@6wind.com\" <gaetan.rivet@6wind.com>",
        "CC": "\"dev@dpdk.org\" <dev@dpdk.org>, Thomas Monjalon <thomas@monjalon.net>,\n\tRaslan Darawsheh <rasland@mellanox.com>, \"stephen@networkplumber.org\"\n\t<stephen@networkplumber.org>",
        "Thread-Topic": "[PATCH v3 4/4] net/failsafe: support secondary process",
        "Thread-Index": "AQHU3aRniD5D+j9qxk2cwrqJBS+Xjg==",
        "Date": "Mon, 18 Mar 2019 16:05:27 +0000",
        "Message-ID": "<1552925103-2821-5-git-send-email-rasland@mellanox.com>",
        "References": "<1551779507-10857-1-git-send-email-rasland@mellanox.com>\n\t<1552925103-2821-1-git-send-email-rasland@mellanox.com>",
        "In-Reply-To": "<1552925103-2821-1-git-send-email-rasland@mellanox.com>",
        "Accept-Language": "en-US",
        "Content-Language": "en-US",
        "X-MS-Has-Attach": "",
        "X-MS-TNEF-Correlator": "",
        "x-mailer": "git-send-email 2.7.4",
        "x-clientproxiedby": "LNXP123CA0003.GBRP123.PROD.OUTLOOK.COM\n\t(2603:10a6:600:d2::15) To AM6PR05MB5926.eurprd05.prod.outlook.com\n\t(2603:10a6:20b:a9::27)",
        "authentication-results": "spf=none (sender IP is )\n\tsmtp.mailfrom=rasland@mellanox.com; ",
        "x-ms-exchange-messagesentrepresentingtype": "1",
        "x-originating-ip": "[37.142.13.130]",
        "x-ms-publictraffictype": "Email",
        "x-ms-office365-filtering-correlation-id": "02b95439-d086-4a22-af3c-08d6abbb89b0",
        "x-ms-office365-filtering-ht": "Tenant",
        "x-microsoft-antispam": "BCL:0; PCL:0;\n\tRULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4618075)(2017052603328)(7153060)(7193020);\n\tSRVR:AM6PR05MB5798; ",
        "x-ms-traffictypediagnostic": "AM6PR05MB5798:",
        "x-ld-processed": "a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr",
        "x-microsoft-antispam-prvs": "<AM6PR05MB57985DC43D8B97D4D431BFB0C2470@AM6PR05MB5798.eurprd05.prod.outlook.com>",
        "x-forefront-prvs": "098076C36C",
        "x-forefront-antispam-report": "SFV:NSPM;\n\tSFS:(10009020)(39860400002)(376002)(136003)(346002)(366004)(396003)(189003)(199004)(68736007)(6486002)(36756003)(316002)(8936002)(50226002)(5640700003)(53936002)(6916009)(6436002)(71200400001)(97736004)(71190400001)(6512007)(256004)(3846002)(14444005)(6116002)(86362001)(66066001)(2906002)(76176011)(52116002)(5660300002)(5024004)(54906003)(2616005)(386003)(102836004)(81156014)(81166006)(478600001)(26005)(186003)(6506007)(8676002)(305945005)(14454004)(106356001)(4326008)(105586002)(2501003)(11346002)(446003)(2351001)(476003)(7736002)(99286004)(25786009)(486006);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR05MB5798;\n\tH:AM6PR05MB5926.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en;\n\tPTR:InfoNoRecords; MX:1; A:1; ",
        "received-spf": "None (protection.outlook.com: mellanox.com does not designate\n\tpermitted sender hosts)",
        "x-ms-exchange-senderadcheck": "1",
        "x-microsoft-antispam-message-info": "+AYaKScaRrl7qOnswxmqaLpfvjyWHFIZ5nW+HHh0EwCAdDYvrJvXvxbsjr/fVuBOUkZPhYek5jqZ0d/91XBaPlqV1rR+o4wcFXSJWz9LmiPrzVtv+40BcoOeJdptmGu/+w4aH7tAvY8W6xrPlh81UAnOBeRb96M1YHQ0WBAKQHML/gJcyVnhytWyvvMALmRoktJy/BERIO8CXuDoMsPLFHLdxLF5EFnWJMTBHSPr2PicVFbq+tAoGbptjuWaeYt04mPqei75G8V3atFD0xtuGVw7YXM0fdU5fEkj0RiktLbvjBSE8UuKMWL1OzyDVpUUck4r+Ftgmft7Upmig+3vyM2i7Re3F8UN8jxewtsBPZ7lbPpUojaEP6OfV9yJa3MePQaYKGh58HXQlMz8yidZSiMCM2dE3bFMC4xAgZAc9Ro=",
        "Content-Type": "text/plain; charset=\"iso-8859-1\"",
        "Content-Transfer-Encoding": "quoted-printable",
        "MIME-Version": "1.0",
        "X-OriginatorOrg": "Mellanox.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "02b95439-d086-4a22-af3c-08d6abbb89b0",
        "X-MS-Exchange-CrossTenant-originalarrivaltime": "18 Mar 2019 16:05:27.9537\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted",
        "X-MS-Exchange-CrossTenant-id": "a652971c-7d2e-4d9b-a6a4-d149256f461b",
        "X-MS-Exchange-CrossTenant-mailboxtype": "HOSTED",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AM6PR05MB5798",
        "Subject": "[dpdk-dev] [PATCH v3 4/4] net/failsafe: support secondary process",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Add implementation for probe in secondary.\n\nFailsafe will attempt to attach all the sub-devices in\nsecondary process.\n\nSigned-off-by: Raslan Darawsheh <rasland@mellanox.com>\nSigned-off-by: Thomas Monjalon <thomas@monjalon.net>\n---\nv2: changed devargs_alread_listed return value to be bool.\n\n---\n drivers/net/failsafe/failsafe.c | 45 ++++++++++++++++++++++++++++++++++++++++-\n 1 file changed, 44 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/drivers/net/failsafe/failsafe.c b/drivers/net/failsafe/failsafe.c\nindex e53a89d..42dfaca 100644\n--- a/drivers/net/failsafe/failsafe.c\n+++ b/drivers/net/failsafe/failsafe.c\n@@ -3,6 +3,8 @@\n  * Copyright 2017 Mellanox Technologies, Ltd\n  */\n \n+#include <stdbool.h>\n+\n #include <rte_alarm.h>\n #include <rte_malloc.h>\n #include <rte_ethdev_driver.h>\n@@ -318,11 +320,28 @@ fs_rte_eth_free(const char *name)\n \treturn ret;\n }\n \n+static bool\n+devargs_already_listed(struct rte_devargs *devargs)\n+{\n+\tstruct rte_devargs *list_da;\n+\n+\tRTE_EAL_DEVARGS_FOREACH(devargs->bus->name, list_da) {\n+\t\tif (strcmp(list_da->name, devargs->name) == 0)\n+\t\t\t/* devargs already in the list */\n+\t\t\treturn true;\n+\t}\n+\treturn false;\n+}\n+\n static int\n rte_pmd_failsafe_probe(struct rte_vdev_device *vdev)\n {\n \tconst char *name;\n \tstruct rte_eth_dev *eth_dev;\n+\tstruct sub_device  *sdev;\n+\tstruct rte_devargs devargs;\n+\tuint8_t i;\n+\tint ret;\n \n \tname = rte_vdev_device_name(vdev);\n \tINFO(\"Initializing \" FAILSAFE_DRIVER_NAME \" for %s\",\n@@ -335,9 +354,33 @@ rte_pmd_failsafe_probe(struct rte_vdev_device *vdev)\n \t\t\tERROR(\"Failed to probe %s\", name);\n \t\t\treturn -1;\n \t\t}\n-\t\t/* TODO: request info from primary to set up Rx and Tx */\n \t\teth_dev->dev_ops = &failsafe_ops;\n \t\teth_dev->device = &vdev->device;\n+\t\teth_dev->rx_pkt_burst = (eth_rx_burst_t)&failsafe_rx_burst;\n+\t\teth_dev->tx_pkt_burst = (eth_tx_burst_t)&failsafe_tx_burst;\n+\t\t/*\n+\t\t * Failsafe will attempt to probe all of its sub-devices.\n+\t\t * Any failure in sub-devices is not a fatal error.\n+\t\t * A sub-device can be plugged later.\n+\t\t */\n+\t\tFOREACH_SUBDEV(sdev, i, eth_dev) {\n+\t\t\t/* rebuild devargs to be able to get the bus name. */\n+\t\t\tret = rte_devargs_parse(&devargs,\n+\t\t\t\t\t\tsdev->devargs.name);\n+\t\t\tif (ret != 0) {\n+\t\t\t\tERROR(\"Failed to parse devargs %s\",\n+\t\t\t\t\tdevargs.name);\n+\t\t\t\tcontinue;\n+\t\t\t}\n+\t\t\tif (!devargs_already_listed(&devargs)) {\n+\t\t\t\tret = rte_dev_probe(devargs.name);\n+\t\t\t\tif (ret != 0) {\n+\t\t\t\t\tERROR(\"Failed to probe devargs %s\",\n+\t\t\t\t\t      devargs.name);\n+\t\t\t\t\tcontinue;\n+\t\t\t\t}\n+\t\t\t}\n+\t\t}\n \t\trte_eth_dev_probing_finish(eth_dev);\n \t\treturn 0;\n \t}\n",
    "prefixes": [
        "v3",
        "4/4"
    ]
}