get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 56088,
    "url": "http://patches.dpdk.org/api/patches/56088/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20190704143905.8704-1-kkanas@marvell.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": "<20190704143905.8704-1-kkanas@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20190704143905.8704-1-kkanas@marvell.com",
    "date": "2019-07-04T14:39:05",
    "name": "net/af_packet: append system error to error msgs",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "e67353285eda81711baec29f43b6f84174ee3211",
    "submitter": {
        "id": 1302,
        "url": "http://patches.dpdk.org/api/people/1302/?format=api",
        "name": "Krzysztof Kanas",
        "email": "kkanas@marvell.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/20190704143905.8704-1-kkanas@marvell.com/mbox/",
    "series": [
        {
            "id": 5340,
            "url": "http://patches.dpdk.org/api/series/5340/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=5340",
            "date": "2019-07-04T14:39:05",
            "name": "net/af_packet: append system error to error msgs",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/5340/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/56088/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/56088/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 705BF1BE4F;\n\tThu,  4 Jul 2019 16:39:28 +0200 (CEST)",
            "from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com\n\t[67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 24DC61BE4E\n\tfor <dev@dpdk.org>; Thu,  4 Jul 2019 16:39:27 +0200 (CEST)",
            "from pps.filterd (m0045851.ppops.net [127.0.0.1])\n\tby mx0b-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id\n\tx64EZ4oK031763; Thu, 4 Jul 2019 07:39:26 -0700",
            "from sc-exch01.marvell.com ([199.233.58.181])\n\tby mx0b-0016f401.pphosted.com with ESMTP id 2thjyr82u4-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); \n\tThu, 04 Jul 2019 07:39:26 -0700",
            "from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH01.marvell.com\n\t(10.93.176.81) with Microsoft SMTP Server (TLS) id 15.0.1367.3;\n\tThu, 4 Jul 2019 07:39:24 -0700",
            "from maili.marvell.com (10.93.176.43) by SC-EXCH01.marvell.com\n\t(10.93.176.81) with Microsoft SMTP Server id 15.0.1367.3 via Frontend\n\tTransport; Thu, 4 Jul 2019 07:39:24 -0700",
            "from kk-box-0.marvell.com (unknown [10.95.130.145])\n\tby maili.marvell.com (Postfix) with ESMTP id E40F13F7041;\n\tThu,  4 Jul 2019 07:39:22 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;\n\th=from : to : cc :\n\tsubject : date : message-id : mime-version :\n\tcontent-transfer-encoding : content-type; s=pfpt0818;\n\tbh=CQRn04pPW41+NeeeDIwWHz/NRdiyKxQl/N8v3Mo5IA0=; \n\tb=svNF+Xu/WX/O+wSGPFVyNzRIjTEnfscChE1yLLPFQ89K0Xje3unYRlHB/diohRhplAkP\n\tZ2RrfhdNNsG78A8Xaituaf+LfaxAzGSgMGcdaFTSmTvPYXBrQ1q1RIVZMNRA0TDykBHx\n\tbSCblFNOb7KGx/gQAqLl1FCQxtFdAnve0tAhLdhPTX1b8vL2RhtPxHJnOG4LxbF1n3xS\n\tVwcAuolc6d1jD27s/+6txxUD0Zd5ETHy0pXmTIqLdoQFSIGSV8etlZbXD2LENdCaUWXg\n\t60j8iy2nyB+DF0LYup/oS0XDCsrrRFJN5hxz5m983uvUTDz0ccYZDbS1LonKP65G80NZ\n\tiA== ",
        "From": "<kkanas@marvell.com>",
        "To": "<dev@dpdk.org>, <ferruh.yigit@intel.com>, \"John W. Linville\"\n\t<linville@tuxdriver.com>",
        "CC": "Krzysztof Kanas <kkanas@marvell.com>",
        "Date": "Thu, 4 Jul 2019 16:39:05 +0200",
        "Message-ID": "<20190704143905.8704-1-kkanas@marvell.com>",
        "X-Mailer": "git-send-email 2.21.0",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10434:, ,\n\tdefinitions=2019-07-04_07:, , signatures=0",
        "Subject": "[dpdk-dev] [PATCH] net/af_packet: append system error to error msgs",
        "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": "From: Krzysztof Kanas <kkanas@marvell.com>\n\nPrint system error to make easier diagnosis of errors with af_packet.\n\nSigned-off-by: Krzysztof Kanas <kkanas@marvell.com>\n---\n drivers/net/af_packet/rte_eth_af_packet.c | 47 ++++++++++++-----------\n 1 file changed, 24 insertions(+), 23 deletions(-)",
    "diff": "diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c\nindex f396f8b22a55..94ae4b13398d 100644\n--- a/drivers/net/af_packet/rte_eth_af_packet.c\n+++ b/drivers/net/af_packet/rte_eth_af_packet.c\n@@ -13,7 +13,9 @@\n #include <rte_malloc.h>\n #include <rte_kvargs.h>\n #include <rte_bus_vdev.h>\n+#include <rte_errno.h>\n \n+#include <errno.h>\n #include <linux/if_ether.h>\n #include <linux/if_packet.h>\n #include <arpa/inet.h>\n@@ -605,8 +607,8 @@ rte_pmd_init_internals(struct rte_vdev_device *dev,\n \t}\n \tif (ioctl(sockfd, SIOCGIFINDEX, &ifr) == -1) {\n \t\tPMD_LOG(ERR,\n-\t\t\t\"%s: ioctl failed (SIOCGIFINDEX)\",\n-\t\t        name);\n+\t\t\t\"%s: ioctl failed (SIOCGIFINDEX):%s\",\n+\t\t\tname, rte_strerror(errno));\n \t\treturn -1;\n \t}\n \t(*internals)->if_name = strdup(pair->value);\n@@ -616,8 +618,8 @@ rte_pmd_init_internals(struct rte_vdev_device *dev,\n \n \tif (ioctl(sockfd, SIOCGIFHWADDR, &ifr) == -1) {\n \t\tPMD_LOG(ERR,\n-\t\t\t\"%s: ioctl failed (SIOCGIFHWADDR)\",\n-\t\t        name);\n+\t\t\t\"%s: ioctl failed (SIOCGIFHWADDR):%s\",\n+\t\t\tname, rte_strerror(errno));\n \t\treturn -1;\n \t}\n \tmemcpy(&(*internals)->eth_addr, ifr.ifr_hwaddr.sa_data, ETH_ALEN);\n@@ -640,8 +642,8 @@ rte_pmd_init_internals(struct rte_vdev_device *dev,\n \t\tqsockfd = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL));\n \t\tif (qsockfd == -1) {\n \t\t\tPMD_LOG(ERR,\n-\t\t\t\t\"%s: could not open AF_PACKET socket\",\n-\t\t\t        name);\n+\t\t\t\t\"%s: could not open AF_PACKET socket: %s\",\n+\t\t\t\tname, rte_strerror(errno));\n \t\t\treturn -1;\n \t\t}\n \n@@ -650,8 +652,8 @@ rte_pmd_init_internals(struct rte_vdev_device *dev,\n \t\t\t\t&tpver, sizeof(tpver));\n \t\tif (rc == -1) {\n \t\t\tPMD_LOG(ERR,\n-\t\t\t\t\"%s: could not set PACKET_VERSION on AF_PACKET socket for %s\",\n-\t\t\t\tname, pair->value);\n+\t\t\t\t\"%s: could not set PACKET_VERSION on AF_PACKET socket for %s:%s\",\n+\t\t\t\tname, pair->value, rte_strerror(errno));\n \t\t\tgoto error;\n \t\t}\n \n@@ -660,8 +662,8 @@ rte_pmd_init_internals(struct rte_vdev_device *dev,\n \t\t\t\t&discard, sizeof(discard));\n \t\tif (rc == -1) {\n \t\t\tPMD_LOG(ERR,\n-\t\t\t\t\"%s: could not set PACKET_LOSS on AF_PACKET socket for %s\",\n-\t\t\t\tname, pair->value);\n+\t\t\t\t\"%s: could not set PACKET_LOSS on AF_PACKET socket for %s:%s\",\n+\t\t\t\tname, pair->value, rte_strerror(errno));\n \t\t\tgoto error;\n \t\t}\n \n@@ -670,8 +672,8 @@ rte_pmd_init_internals(struct rte_vdev_device *dev,\n \t\t\t\t&qdisc_bypass, sizeof(qdisc_bypass));\n \t\tif (rc == -1) {\n \t\t\tPMD_LOG(ERR,\n-\t\t\t\t\"%s: could not set PACKET_QDISC_BYPASS on AF_PACKET socket for %s\",\n-\t\t\t\tname, pair->value);\n+\t\t\t\t\"%s: could not set PACKET_QDISC_BYPASS on AF_PACKET socket for %s:%s\",\n+\t\t\t\tname, pair->value, rte_strerror(errno));\n \t\t\tgoto error;\n \t\t}\n #else\n@@ -681,8 +683,8 @@ rte_pmd_init_internals(struct rte_vdev_device *dev,\n \t\trc = setsockopt(qsockfd, SOL_PACKET, PACKET_RX_RING, req, sizeof(*req));\n \t\tif (rc == -1) {\n \t\t\tPMD_LOG(ERR,\n-\t\t\t\t\"%s: could not set PACKET_RX_RING on AF_PACKET socket for %s\",\n-\t\t\t\tname, pair->value);\n+\t\t\t\t\"%s: could not set PACKET_RX_RING on AF_PACKE socket for %s:%s\",\n+\t\t\t\tname, pair->value, rte_strerror(errno));\n \t\t\tgoto error;\n \t\t}\n \n@@ -690,7 +692,8 @@ rte_pmd_init_internals(struct rte_vdev_device *dev,\n \t\tif (rc == -1) {\n \t\t\tPMD_LOG(ERR,\n \t\t\t\t\"%s: could not set PACKET_TX_RING on AF_PACKET \"\n-\t\t\t\t\"socket for %s\", name, pair->value);\n+\t\t\t\t\"socket for %s:%s\", name, pair->value,\n+\t\t\t\trte_strerror(errno));\n \t\t\tgoto error;\n \t\t}\n \n@@ -702,8 +705,8 @@ rte_pmd_init_internals(struct rte_vdev_device *dev,\n \t\t\t\t    qsockfd, 0);\n \t\tif (rx_queue->map == MAP_FAILED) {\n \t\t\tPMD_LOG(ERR,\n-\t\t\t\t\"%s: call to mmap failed on AF_PACKET socket for %s\",\n-\t\t\t\tname, pair->value);\n+\t\t\t\t\"%s: call to mmap failed on AF_PACKET socket for %s:%s\",\n+\t\t\t\tname, pair->value, rte_strerror(errno));\n \t\t\tgoto error;\n \t\t}\n \n@@ -738,9 +741,8 @@ rte_pmd_init_internals(struct rte_vdev_device *dev,\n \n \t\trc = bind(qsockfd, (const struct sockaddr*)&sockaddr, sizeof(sockaddr));\n \t\tif (rc == -1) {\n-\t\t\tPMD_LOG(ERR,\n-\t\t\t\t\"%s: could not bind AF_PACKET socket to %s\",\n-\t\t\t        name, pair->value);\n+\t\t\tPMD_LOG(ERR, \"%s: could not bind AF_PACKET socket to %s:%s\",\n+\t\t\t\tname, pair->value, rte_strerror(errno));\n \t\t\tgoto error;\n \t\t}\n \n@@ -748,9 +750,8 @@ rte_pmd_init_internals(struct rte_vdev_device *dev,\n \t\trc = setsockopt(qsockfd, SOL_PACKET, PACKET_FANOUT,\n \t\t\t\t&fanout_arg, sizeof(fanout_arg));\n \t\tif (rc == -1) {\n-\t\t\tPMD_LOG(ERR,\n-\t\t\t\t\"%s: could not set PACKET_FANOUT on AF_PACKET socket \"\n-\t\t\t\t\"for %s\", name, pair->value);\n+\t\t\tPMD_LOG(ERR, \"%s: could not set PACKET_FANOUT on AF_PACKET socket for %s:%s\",\n+\t\t\t\tname, pair->value, rte_strerror(errno));\n \t\t\tgoto error;\n \t\t}\n #endif\n",
    "prefixes": []
}