get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 1825,
    "url": "https://patches.dpdk.org/api/patches/1825/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20141208193631.590908053@dpdk.org/",
    "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": "<20141208193631.590908053@dpdk.org>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20141208193631.590908053@dpdk.org",
    "date": "2014-12-08T19:36:31",
    "name": "[dpdk-dev] (no subject)",
    "commit_ref": null,
    "pull_url": null,
    "state": "not-applicable",
    "archived": true,
    "hash": "ee3d5eb4c4395fea2a1101ff2972b277fa00dbe4",
    "submitter": {
        "id": 131,
        "url": "https://patches.dpdk.org/api/people/131/?format=api",
        "name": null,
        "email": "dev-bounces@dpdk.org"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20141208193631.590908053@dpdk.org/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/1825/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/1825/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 [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 590908053;\n\tMon,  8 Dec 2014 20:36:31 +0100 (CET)",
            "from mail-pa0-f46.google.com (mail-pa0-f46.google.com\n\t[209.85.220.46]) by dpdk.org (Postfix) with ESMTP id 3A5CDCE7\n\tfor <dev@dpdk.org>; Mon,  8 Dec 2014 18:51:45 +0100 (CET)",
            "by mail-pa0-f46.google.com with SMTP id lj1so5596164pab.5\n\tfor <dev@dpdk.org>; Mon, 08 Dec 2014 09:51:44 -0800 (PST)",
            "from localhost (static-50-53-82-155.bvtn.or.frontiernet.net.\n\t[50.53.82.155]) by mx.google.com with ESMTPSA id\n\tgh6sm16046316pbd.28.2014.12.08.09.51.42 for <multiple recipients>\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tMon, 08 Dec 2014 09:51:43 -0800 (PST)"
        ],
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:message-id:user-agent:date:from:to:cc:subject\n\t:references:mime-version:content-type:content-disposition;\n\tbh=PLPfg66oZYp7pnwnlRS3Fu012CrLCUcykX5P1mw/JGo=;\n\tb=inPHu6zxo1httzifdNfK/8Gmy3lhuWBO26I3XSunnf4ML7+InRNPkadZlt+9LkBx8m\n\t5MosSN7nge7Cp7KLzCNLmV0PGOXm098VK+9vsIxI15lJeW9tcKV46pKvlokaJqp6RqaM\n\ttVgQMbeiaDVa4Ztj/7kFkiGUR3VXJ+YjZk49HN2nLI4M3ceCECVlGKy3rnoHIkh2KuIP\n\tj1U3L8RwKHhbGWVP2u3xtnFWNP94JFjTKspOHDNg/RM4Pl9IyO0Hm9huyAuiSME2u9y1\n\tPyZP+KDnLBv0DM3PJXOlFuKU9SpvIz3zPZXhFAO/DR+BgleTq7sSDYAKqI0++4uG4S5R\n\twC8g==",
        "X-Gm-Message-State": "ALoCoQl2UMF0SsZvRsrNvV3le/lbdNF0NVrQetjjo7/43c7+xoWvZfLqYYmIF8+AFNxlh2mfY6pp",
        "X-Received": "by 10.66.119.175 with SMTP id kv15mr57015843pab.30.1418061104622;\n\tMon, 08 Dec 2014 09:51:44 -0800 (PST)",
        "X-Mailman-Approved-At": "Mon, 08 Dec 2014 20:36:25 +0100",
        "Subject": "[dpdk-dev] (no subject)",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>",
        "Message-Id": "<20141208193631.590908053@dpdk.org>",
        "Date": "Mon,  8 Dec 2014 20:36:31 +0100 (CET)",
        "From": "dev-bounces@dpdk.org"
    },
    "content": "From stephen@networkplumber.org Mon Dec  8 09:46:51 2014\nMessage-Id: <20141208174651.282719331@networkplumber.org>\nUser-Agent: quilt/0.63-1\nDate: Mon, 08 Dec 2014 09:45:59 -0800\nFrom: Stephen Hemminger <stephen@networkplumber.org>\nTo: Thomas Monjalon <thomas.monjalon@6wind.com>\nCc: dev@dpdk.org,\n Stephen Hemminger <stephen@networkplumber.org>\nSubject: [PATCH 5/6] rte_sched: dont clear statistics when read\nReferences: <20141208174554.889069531@networkplumber.org>\nMIME-Version: 1.0\nContent-Type: text/plain; charset=ISO-8859-15\nContent-Disposition: inline; filename=qos-no-clear.patch\n\nMake rte_sched statistics API work like the ethernet statistics API.\nDon't auto-clear statistics when read.\n\nSigned-off-by: Stephen Hemminger <stephen@networkplumber.org>",
    "diff": "--- a/lib/librte_sched/rte_sched.c\t2014-12-08 09:29:49.014821607 -0800\n+++ b/lib/librte_sched/rte_sched.c\t2014-12-08 09:35:45.568568267 -0800\n@@ -924,9 +924,8 @@ rte_sched_subport_read_stats(struct rte_\n \t}\n \ts = port->subport + subport_id;\n \n-\t/* Copy subport stats and clear */\n-\tmemcpy(stats, &s->stats, sizeof(struct rte_sched_subport_stats));\n-\tmemset(&s->stats, 0, sizeof(struct rte_sched_subport_stats));\n+\t/* Copy subport stats */\n+\t*stats = s->stats;\n \n \t/* Subport TC ovesubscription status */\n \t*tc_ov = s->tc_ov;\n@@ -935,6 +934,21 @@ rte_sched_subport_read_stats(struct rte_\n }\n \n int\n+rte_sched_subport_stats_reset(struct rte_sched_port *port,\n+\t\t\t      uint32_t subport_id)\n+{\n+\tstruct rte_sched_subport *s;\n+\n+\t/* Check user parameters */\n+\tif (port == NULL || subport_id >= port->n_subports_per_port)\n+\t\treturn -1;\n+\n+\ts = port->subport + subport_id;\n+\tmemset(&s->stats, 0, sizeof(struct rte_sched_subport_stats));\n+\treturn 0;\n+}\n+\n+int\n rte_sched_queue_read_stats(struct rte_sched_port *port,\n \tuint32_t queue_id,\n \tstruct rte_sched_queue_stats *stats,\n@@ -953,9 +967,8 @@ rte_sched_queue_read_stats(struct rte_sc\n \tq = port->queue + queue_id;\n \tqe = port->queue_extra + queue_id;\n \n-\t/* Copy queue stats and clear */\n-\tmemcpy(stats, &qe->stats, sizeof(struct rte_sched_queue_stats));\n-\tmemset(&qe->stats, 0, sizeof(struct rte_sched_queue_stats));\n+\t/* Copy queue stats */\n+\t*stats = qe->stats;\n \n \t/* Queue length */\n \t*qlen = q->qw - q->qr;\n@@ -963,6 +976,21 @@ rte_sched_queue_read_stats(struct rte_sc\n \treturn 0;\n }\n \n+int\n+rte_sched_queue_stats_reset(struct rte_sched_port *port,\n+\t\t\t    uint32_t queue_id)\n+{\n+\tstruct rte_sched_queue_extra *qe;\n+\n+\t/* Check user parameters */\n+\tif (port == NULL || queue_id >= rte_sched_port_queues_per_port(port))\n+\t\treturn -1;\n+\n+\tqe = port->queue_extra + queue_id;\n+\tmemset(&qe->stats, 0, sizeof(struct rte_sched_queue_stats));\n+\treturn 0;\n+}\n+\n static inline uint32_t\n rte_sched_port_qindex(struct rte_sched_port *port, uint32_t subport, uint32_t pipe, uint32_t traffic_class, uint32_t queue)\n {\n--- a/lib/librte_sched/rte_sched.h\t2014-12-08 09:29:49.014821607 -0800\n+++ b/lib/librte_sched/rte_sched.h\t2014-12-08 09:30:29.426977482 -0800\n@@ -312,6 +312,21 @@ rte_sched_subport_read_stats(struct rte_\n \tstruct rte_sched_subport_stats *stats,\n \tuint32_t *tc_ov);\n \n+\n+/**\n+ * Hierarchical scheduler subport statistics reset\n+ *\n+ * @param port\n+ *   Handle to port scheduler instance\n+ * @param subport_id\n+ *   Subport ID\n+ * @return\n+ *   0 upon success, error code otherwise\n+ */\n+int\n+rte_sched_subport_stats_reset(struct rte_sched_port *port,\n+\t\t\t      uint32_t subport_id);\n+\n /**\n  * Hierarchical scheduler queue statistics read\n  *\n@@ -333,6 +348,20 @@ rte_sched_queue_read_stats(struct rte_sc\n \tstruct rte_sched_queue_stats *stats,\n \tuint16_t *qlen);\n \n+/**\n+ * Hierarchical scheduler queue statistics reset\n+ *\n+ * @param port\n+ *   Handle to port scheduler instance\n+ * @param queue_id\n+ *   Queue ID within port scheduler\n+ * @return\n+ *   0 upon success, error code otherwise\n+ */\n+int\n+rte_sched_queue_stats_reset(struct rte_sched_port *port,\n+\t\t\t    uint32_t queue_id);\n+\n /*\n  * Run-time\n  *\n",
    "prefixes": [
        "dpdk-dev"
    ]
}