get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 104608,
    "url": "http://patchwork.dpdk.org/api/patches/104608/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20211123110743.2002557-10-skori@marvell.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": "<20211123110743.2002557-10-skori@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20211123110743.2002557-10-skori@marvell.com",
    "date": "2021-11-23T11:07:43",
    "name": "[v8,10/10] devtools: check event device doc tables",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "bd317f21d433cad5a23c5db000644dbf0c8df378",
    "submitter": {
        "id": 1318,
        "url": "http://patchwork.dpdk.org/api/people/1318/?format=api",
        "name": "Sunil Kumar Kori",
        "email": "skori@marvell.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20211123110743.2002557-10-skori@marvell.com/mbox/",
    "series": [
        {
            "id": 20706,
            "url": "http://patchwork.dpdk.org/api/series/20706/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=20706",
            "date": "2021-11-23T11:07:34",
            "name": "[v8,01/10] doc: add skeleton for eventdevs feature matrices",
            "version": 8,
            "mbox": "http://patchwork.dpdk.org/series/20706/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/104608/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/104608/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 400A4A0C4C;\n\tTue, 23 Nov 2021 12:08:47 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 0740841171;\n\tTue, 23 Nov 2021 12:08:24 +0100 (CET)",
            "from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com\n [67.231.148.174])\n by mails.dpdk.org (Postfix) with ESMTP id 5D00241171\n for <dev@dpdk.org>; Tue, 23 Nov 2021 12:08:22 +0100 (CET)",
            "from pps.filterd (m0045849.ppops.net [127.0.0.1])\n by mx0a-0016f401.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id\n 1AN76tgg009970;\n Tue, 23 Nov 2021 03:08:21 -0800",
            "from dc5-exch01.marvell.com ([199.233.59.181])\n by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3cgumj916t-2\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);\n Tue, 23 Nov 2021 03:08:21 -0800",
            "from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH01.marvell.com\n (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.2;\n Tue, 23 Nov 2021 03:08:19 -0800",
            "from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com\n (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.18 via Frontend\n Transport; Tue, 23 Nov 2021 03:08:19 -0800",
            "from localhost.localdomain (unknown [10.28.34.25])\n by maili.marvell.com (Postfix) with ESMTP id AE7563F7097;\n Tue, 23 Nov 2021 03:08:16 -0800 (PST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;\n h=from : to : cc :\n subject : date : message-id : in-reply-to : references : mime-version :\n content-transfer-encoding : content-type; s=pfpt0220;\n bh=pf/cpO5GqyggpGltJjVhCJB7Pzl/+rAFxvfsR+JJV/E=;\n b=S+sievtSe8JxAlsgInC6qfWmtsl0QVkRl4K6dH5XrSsHS+xmAR+A6+cvudtdMgK0KNjh\n 1m+2PQuRYvsZQCJyMOFM/hWkYo5tGQg7GPQIZd/Vp2T8paiuNGVFnxdJz997B1Hb747c\n DGHfs/ttQpHTVxlRed/sxwHZ5kK3bb9zsnT4C8279fSKDj11rCkpDWsJ0n0Kq07zl72r\n 2/gwhdr+J01iKx84SFjVftBITSBRI4u71wvMdCKkFZWwsRYj/R85ZY0/9RFW9HI6nV74\n dw5OpS9YU/Hrzb3mDsenYePiFmA8nX3uq4wJoUU7wh+bgo+xB4iYToV8RB1nXnX5s7vp uQ==",
        "From": "<skori@marvell.com>",
        "To": "<jerinj@marvell.com>, <nikhil.rao@intel.com>, <pbhagavatula@marvell.com>,\n <hemant.agrawal@nxp.com>, <nipun.gupta@nxp.com>,\n <harry.van.haaren@intel.com>, <mattias.ronnblom@ericsson.com>,\n <liang.j.ma@intel.com>, Thomas Monjalon <thomas@monjalon.net>",
        "CC": "<dev@dpdk.org>, Sunil Kumar Kori <skori@marvell.com>",
        "Subject": "[PATCH v8 10/10] devtools: check event device doc tables",
        "Date": "Tue, 23 Nov 2021 16:37:43 +0530",
        "Message-ID": "<20211123110743.2002557-10-skori@marvell.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20211123110743.2002557-1-skori@marvell.com>",
        "References": "<20211122075414.1834651-1-skori@marvell.com>\n <20211123110743.2002557-1-skori@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Proofpoint-GUID": "qTJzgnTlCbfQCuir80PuY7Y4vHiuMoh_",
        "X-Proofpoint-ORIG-GUID": "qTJzgnTlCbfQCuir80PuY7Y4vHiuMoh_",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.205,Aquarius:18.0.790,Hydra:6.0.425,FMLib:17.0.607.475\n definitions=2021-11-23_04,2021-11-23_01,2020-04-07_01",
        "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: Sunil Kumar Kori <skori@marvell.com>\n\nIn this commit, check is added for event device, Rx,\nTx, Crypto and Timer adapters tables for all supported\ndrivers.\n\nSigned-off-by: Sunil Kumar Kori <skori@marvell.com>\n---\nv8:\n - Fix script dump for dsw and SW driver\n - Review comments incorporated\nv7:\n - Rebased to 21.11 rc3\n - Fix Tx adapter capabilities for SW driver\nv6:\n - Rebased to 21.11 rc2\n - Added feature matrices for all supported drivers\n - Added doc vs code check script\n \nv5:\n - Rebased to 21.11\n - Added feature matrix for cnxk.\nv4:\n - Rebased to 20.02\nv3:\n - Removed .txt files to generate tables.\n - Use conf.py script to generate tables.\n - Add .ini file for all supported PMDs.\nv2:\n - Review comments incorporated\n\n devtools/check-doc-vs-code.sh   |  35 +++++++\n devtools/parse-event-support.sh | 165 ++++++++++++++++++++++++++++++++\n 2 files changed, 200 insertions(+)\n create mode 100755 devtools/parse-event-support.sh",
    "diff": "diff --git a/devtools/check-doc-vs-code.sh b/devtools/check-doc-vs-code.sh\nindex c58c239c87..608d6e0e2e 100755\n--- a/devtools/check-doc-vs-code.sh\n+++ b/devtools/check-doc-vs-code.sh\n@@ -66,11 +66,35 @@ check_rte_flow() # <driver>\n \tfi\n }\n \n+all_event_drivers()\n+{\n+\tfind $rootdir/drivers/event -mindepth 1 -maxdepth 1 -type d |\n+\tsed 's,.*/,,' |\n+\tsort\n+}\n+\n+check_event_dev() # <driver>\n+{\n+\tcode=$rootdir/drivers/event/$1\n+\tdoc=$rootdir/doc/guides/eventdevs/features/$1.ini\n+\t[ -d $code ] || return 0\n+\t[ -f $doc ] || return 0\n+\treport=$($selfdir/parse-event-support.sh $code $doc)\n+\tif [ -n \"$report\" ]; then\n+\t\terror \"doc out of sync for $1\"\n+\t\techo \"$report\" | sed 's,^,\\t,'\n+\tfi\n+}\n+\n if [ -z \"$trusted_commit\" ]; then\n \t# check all\n \tfor driver in $(all_net_drivers); do\n \t\tcheck_rte_flow $driver\n \tdone\n+\n+\tfor driver in $(all_event_drivers); do\n+\t\tcheck_event_dev $driver\n+\tdone\n \texit $result\n fi\n \n@@ -81,4 +105,15 @@ if has_code_change 'RTE_FLOW_.*_TYPE_' ||\n \t\tcheck_rte_flow $driver\n \tdone\n fi\n+\n+if has_code_change 'RTE_EVENT_DEV_CAP_*' ||\n+\t\thas_code_change 'RTE_EVENT_ETH_RX_ADAPTER_CAP_*' ||\n+\t\thas_code_change 'RTE_EVENT_ETH_TX_ADAPTER_CAP_*' ||\n+\t\thas_code_change 'RTE_EVENT_CRYPTO_ADAPTER_CAP_*' ||\n+\t\thas_code_change 'RTE_EVENT_TIMER_ADAPTER_CAP_*' ||\n+\t\thas_file_change 'doc/guides/eventdevs/features'; then\n+\tfor driver in $(all_event_drivers); do\n+\t\tcheck_event_dev $driver\n+\tdone\n+fi\n exit $result\ndiff --git a/devtools/parse-event-support.sh b/devtools/parse-event-support.sh\nnew file mode 100755\nindex 0000000000..f0f6b2392a\n--- /dev/null\n+++ b/devtools/parse-event-support.sh\n@@ -0,0 +1,165 @@\n+#! /bin/sh -e\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright(C) 2021 Marvell.\n+\n+# Parse event dev support of a driver directory,\n+# and optionally show difference with a doc file in .ini format.\n+\n+dir=$1 # drivers/event/foo\n+ref=$2 # doc/guides/eventdevs/features/foo.ini\n+\n+if [ -z \"$dir\" ]; then\n+\techo \"directory argument is required\" >&2\n+\texit 1\n+fi\n+\n+# sorting order\n+export LC_COLLATE=C\n+\n+check_rx_adptr_sw_capa()\n+{\n+\tdriver=$(echo \"$dir\" | cut -d / -f 3)\n+\tif [ \"$driver\" = \"dsw\" ] || [ \"$driver\" = \"sw\" ] ; then\n+\t\treturn 1\n+\telse\n+\t\treturn 0\n+\tfi\n+}\n+\n+# generate INI section\n+list() # <title> <pattern> <extra_patterns>\n+{\n+\techo \"[$1]\"\n+\tword0=$(git grep -who \"$2[[:alnum:]_]*\" $dir)\n+\tword1=$(echo \"$3\")\n+\twords=\"$word0\"\"$word1\"\n+\techo \"$words\" | sort -u |\n+\t\tawk 'sub(/'$2'/, \"\") {printf \"%-20s = Y\\n\", tolower($0)}'\n+}\n+\n+event_dev_sched_support()\n+{\n+\ttitle=\"Scheduling Features\"\n+\tpattern=$(echo \"RTE_EVENT_DEV_CAP_\" | awk '{print toupper($0)}')\n+\tlist \"$title\" \"$pattern\" \"\"\n+}\n+\n+event_dev_rx_adptr_support()\n+{\n+\ttitle=\"Eth Rx adapter Features\"\n+\tpattern=$(echo \"RTE_EVENT_ETH_RX_ADAPTER_CAP_\" |\n+\t\tawk '{print toupper($0)}')\n+\tcheck_rx_adptr_sw_capa || extra='RTE_EVENT_ETH_RX_ADAPTER_CAP_OVERRIDE_FLOW_ID\n+\t\t\t\tRTE_EVENT_ETH_RX_ADAPTER_CAP_MULTI_EVENTQ\n+\t\t\t\tRTE_EVENT_ETH_RX_ADAPTER_CAP_EVENT_VECTOR'\n+\tlist \"$title\" \"$pattern\" \"$extra\"\n+}\n+\n+event_dev_tx_adptr_support()\n+{\n+\ttitle=\"Eth Tx adapter Features\"\n+\tpattern=$(echo \"RTE_EVENT_ETH_TX_ADAPTER_CAP_\" |\n+\t\tawk '{print toupper($0)}')\n+\tlist \"$title\" \"$pattern\" \"\"\n+}\n+\n+event_dev_crypto_adptr_support()\n+{\n+\ttitle=\"Crypto adapter Features\"\n+\tpattern=$(echo \"RTE_EVENT_CRYPTO_ADAPTER_CAP_\" |\n+\t\tawk '{print toupper($0)}')\n+\tlist \"$title\" \"$pattern\" \"\"\n+}\n+\n+event_dev_timer_adptr_support()\n+{\n+\ttitle=\"Timer adapter Features\"\n+\tpattern=$(echo \"RTE_EVENT_TIMER_ADAPTER_CAP_\" |\n+\t\tawk '{print toupper($0)}')\n+\tlist \"$title\" \"$pattern\" \"\"\n+}\n+\n+if [ -z \"$ref\" ]; then # generate full tables\n+\tevent_dev_sched_support\n+\techo\n+\tevent_dev_rx_adptr_support\n+\techo\n+\tevent_dev_tx_adptr_support\n+\techo\n+\tevent_dev_crypto_adptr_support\n+\techo\n+\tevent_dev_timer_adptr_support\n+\texit 0\n+fi\n+\n+# compare with reference input\n+event_dev_sched_compare()\n+{\n+\tsection=\"Scheduling Features]\"\n+\t{\n+\t\tevent_dev_sched_support\n+\t\tsed -n \"/$section/,/]/p\" \"$ref\" | sed '/^$/d'\n+\t} |\n+\tsed '/]/d' | # ignore section title\n+\tsed 's, *=.*,,' | # ignore value (better in doc than generated one)\n+\tsort | uniq -u | # show differences\n+\tsed \"s,^,Scheduling Features ,\" # prefix with category name\n+}\n+\n+event_dev_rx_adptr_compare()\n+{\n+\tsection=\"Eth Rx adapter Features]\"\n+\t{\n+\t\tevent_dev_rx_adptr_support\n+\t\tsed -n \"/$section/,/]/p\" \"$ref\" | sed '/^$/d'\n+\t} |\n+\tsed '/]/d' | # ignore section title\n+\tsed 's, *=.*,,' | # ignore value (better in doc than generated one)\n+\tsort | uniq -u | # show differences\n+\tsed \"s,^,Eth Rx adapter Features ,\" # prefix with category name\n+}\n+\n+event_dev_tx_adptr_compare()\n+{\n+\tsection=\"Eth Tx adapter Features]\"\n+\t{\n+\t\tevent_dev_tx_adptr_support\n+\t\tsed -n \"/$section/,/]/p\" \"$ref\" | sed '/^$/d'\n+\t} |\n+\tsed '/]/d' | # ignore section title\n+\tsed 's, *=.*,,' | # ignore value (better in doc than generated one)\n+\tsort | uniq -u | # show differences\n+\tsed \"s,^,Eth Tx adapter Features ,\" # prefix with category name\n+}\n+\n+event_dev_crypto_adptr_compare()\n+{\n+\tsection=\"Crypto adapter Features]\"\n+\t{\n+\t\tevent_dev_crypto_adptr_support\n+\t\tsed -n \"/$section/,/]/p\" \"$ref\" | sed '/^$/d'\n+\t} |\n+\tsed '/]/d' | # ignore section title\n+\tsed 's, *=.*,,' | # ignore value (better in doc than generated one)\n+\tsort | uniq -u | # show differences\n+\tsed \"s,^,Crypto adapter Features ,\" # prefix with category name\n+}\n+\n+event_dev_timer_adptr_compare()\n+{\n+\tsection=\"Timer adapter Features]\"\n+\t{\n+\t\tevent_dev_timer_adptr_support\n+\t\tsed -n \"/$section/,/]/p\" \"$ref\" | sed '/^$/d'\n+\t} |\n+\tsed '/]/d' | # ignore section title\n+\tsed 's, *=.*,,' | # ignore value (better in doc than generated one)\n+\tsort | uniq -u | # show differences\n+\tsed \"s,^,Timer adapter Features ,\" # prefix with category name\n+}\n+\n+event_dev_sched_compare\n+event_dev_rx_adptr_compare\n+event_dev_tx_adptr_compare\n+event_dev_crypto_adptr_compare\n+event_dev_timer_adptr_compare\n",
    "prefixes": [
        "v8",
        "10/10"
    ]
}