get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 130602,
    "url": "http://patchwork.dpdk.org/api/patches/130602/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20230821160921.383832-13-stephen@networkplumber.org/",
    "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": "<20230821160921.383832-13-stephen@networkplumber.org>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230821160921.383832-13-stephen@networkplumber.org",
    "date": "2023-08-21T16:09:12",
    "name": "[v13,12/21] lpm: convert RTE_LOGTYPE_LPM to dynamic types",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "da7e6f679397d690d304afe521579f747b6ebb02",
    "submitter": {
        "id": 27,
        "url": "http://patchwork.dpdk.org/api/people/27/?format=api",
        "name": "Stephen Hemminger",
        "email": "stephen@networkplumber.org"
    },
    "delegate": {
        "id": 24651,
        "url": "http://patchwork.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20230821160921.383832-13-stephen@networkplumber.org/mbox/",
    "series": [
        {
            "id": 29298,
            "url": "http://patchwork.dpdk.org/api/series/29298/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=29298",
            "date": "2023-08-21T16:09:00",
            "name": "Convert static log types in libraries to dynamic types",
            "version": 13,
            "mbox": "http://patchwork.dpdk.org/series/29298/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/130602/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/130602/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 0819B430C3;\n\tMon, 21 Aug 2023 18:11:13 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 3B7AE432A1;\n\tMon, 21 Aug 2023 18:10:10 +0200 (CEST)",
            "from mail-pl1-f179.google.com (mail-pl1-f179.google.com\n [209.85.214.179])\n by mails.dpdk.org (Postfix) with ESMTP id 1DAF743281\n for <dev@dpdk.org>; Mon, 21 Aug 2023 18:10:05 +0200 (CEST)",
            "by mail-pl1-f179.google.com with SMTP id\n d9443c01a7336-1bf5c314a57so7959025ad.1\n for <dev@dpdk.org>; Mon, 21 Aug 2023 09:10:05 -0700 (PDT)",
            "from hermes.local (204-195-127-207.wavecable.com. [204.195.127.207])\n by smtp.gmail.com with ESMTPSA id\n i1-20020a17090332c100b001bf2dcfe352sm7208159plr.234.2023.08.21.09.10.03\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Mon, 21 Aug 2023 09:10:03 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=networkplumber-org.20221208.gappssmtp.com; s=20221208; t=1692634204;\n x=1693239004;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=We/xZdUAxyM5b7hvcdwbi9lv9krFR0ggEJp9/aOINh4=;\n b=DQ4E/2XtaOHRCCJFRCjq7dDcLccbRix3iKh7zyFtHImlEtFjd5P+EGQsWPeLdNab1Q\n x2bJNP/aVqFTtE3kzDFkG2yirWWOXkz7dRAb/60/3A+sXqNAQVoDaJaWbCYxxBxcZR6c\n teNdqGTVcAgf2qj9XNbO2pSWrLU/tvUK9EokvJ0Dn+Y+WXS/a0YBKFKp24V1bYN0MBjW\n LDVEchIlqQNJiSWXdWSjv0RYKUSzPp0T2CARQh1A3zITVGmeoR54cQnfRJ5XqhWgo+ks\n gyEM3dVB6I7Ba4s2cC3vEGS5OlE5/d6FLzEkhOQk896ssAwYmv5pQi2Ogpemx2OBK7K4\n LVQA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20221208; t=1692634204; x=1693239004;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=We/xZdUAxyM5b7hvcdwbi9lv9krFR0ggEJp9/aOINh4=;\n b=lxeFwhTl3RKXong9z6souKncbYxT00nB3Cqr/tBO0ufJbtEBVw0uVRxGV8i+th6mP0\n mlpE3Mj90D1grL6W37Opfjrb6SRtUnWhFOA1JtobbXyWwwwdDWkPa43esGmZXUQStt/N\n CbwZi0f+vG+E/WhmA6e7LXMke7V4der/S/v8Orprd8nEtKWHdEAi7xRoknLvsOkoIFeW\n GDdRITc9E91ZJd2OHCMHSBNWPFEgQNx4Tn0cynkU8n209wjvSnQ7dTxlj9hGURijo6Yq\n O4gSu9HHW3pAlUBLqQ241pDwj6NM82vyQwo/k9mGhDopx7TfyA+5o7iH413P47l5FFu3\n aYwg==",
        "X-Gm-Message-State": "AOJu0YxClUa7LaGumCjQIMbAj9q9o0vRF+ULWnZTWpQByOpfq4Fj4GyL\n wM6m6RU0TYzWjnSKoT5p/GIrcM73vafNI07hhPy7vA4K",
        "X-Google-Smtp-Source": "\n AGHT+IFyzA10eg+l/xUG31cFsDwdVSchw1rP+FgmxFI8A4lYLqIywxv9a4VDAPP4742gBGj5QGNOjA==",
        "X-Received": "by 2002:a17:903:32c6:b0:1b3:d4ed:8306 with SMTP id\n i6-20020a17090332c600b001b3d4ed8306mr5983024plr.19.1692634203962;\n Mon, 21 Aug 2023 09:10:03 -0700 (PDT)",
        "From": "Stephen Hemminger <stephen@networkplumber.org>",
        "To": "dev@dpdk.org",
        "Cc": "Stephen Hemminger <stephen@networkplumber.org>,\n Vladimir Medvedkin <vladimir.medvedkin@intel.com>,\n Bruce Richardson <bruce.richardson@intel.com>",
        "Subject": "[PATCH v13 12/21] lpm: convert RTE_LOGTYPE_LPM to dynamic types",
        "Date": "Mon, 21 Aug 2023 09:09:12 -0700",
        "Message-Id": "<20230821160921.383832-13-stephen@networkplumber.org>",
        "X-Mailer": "git-send-email 2.39.2",
        "In-Reply-To": "<20230821160921.383832-1-stephen@networkplumber.org>",
        "References": "<20230329234049.11071-1-stephen@networkplumber.org>\n <20230821160921.383832-1-stephen@networkplumber.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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": "Split lpm and lpm6 into separate log types since they\nare in different files and user may want to change log\nlevels for IPv4 vs IPv6.\n\nFor rib and fib libraries give them own types as well.\n\nSigned-off-by: Stephen Hemminger <stephen@networkplumber.org>\n---\n lib/fib/fib_log.h  | 4 ++++\n lib/fib/rte_fib.c  | 3 +++\n lib/fib/rte_fib6.c | 2 ++\n lib/log/log.c      | 1 -\n lib/log/rte_log.h  | 2 +-\n lib/lpm/lpm_log.h  | 4 ++++\n lib/lpm/rte_lpm.c  | 3 +++\n lib/lpm/rte_lpm6.c | 1 +\n lib/rib/rib_log.h  | 4 ++++\n lib/rib/rte_rib.c  | 3 +++\n lib/rib/rte_rib6.c | 3 +++\n 11 files changed, 28 insertions(+), 2 deletions(-)\n create mode 100644 lib/fib/fib_log.h\n create mode 100644 lib/lpm/lpm_log.h\n create mode 100644 lib/rib/rib_log.h",
    "diff": "diff --git a/lib/fib/fib_log.h b/lib/fib/fib_log.h\nnew file mode 100644\nindex 000000000000..c731c820f621\n--- /dev/null\n+++ b/lib/fib/fib_log.h\n@@ -0,0 +1,4 @@\n+/* SPDX-License-Identifier: BSD-3-Clause */\n+\n+extern int fib_logtype;\n+#define RTE_LOGTYPE_LPM fib_logtype\ndiff --git a/lib/fib/rte_fib.c b/lib/fib/rte_fib.c\nindex 0c3b20e00a5a..f88e71a59d5a 100644\n--- a/lib/fib/rte_fib.c\n+++ b/lib/fib/rte_fib.c\n@@ -17,6 +17,9 @@\n #include <rte_fib.h>\n \n #include \"dir24_8.h\"\n+#include \"fib_log.h\"\n+\n+RTE_LOG_REGISTER_DEFAULT(fib_logtype, INFO);\n \n TAILQ_HEAD(rte_fib_list, rte_tailq_entry);\n static struct rte_tailq_elem rte_fib_tailq = {\ndiff --git a/lib/fib/rte_fib6.c b/lib/fib/rte_fib6.c\nindex 28c69b38999f..ab1d9604796f 100644\n--- a/lib/fib/rte_fib6.c\n+++ b/lib/fib/rte_fib6.c\n@@ -10,6 +10,7 @@\n #include <rte_eal_memconfig.h>\n #include <rte_tailq.h>\n #include <rte_errno.h>\n+#include <rte_log.h>\n #include <rte_malloc.h>\n #include <rte_string_fns.h>\n \n@@ -17,6 +18,7 @@\n #include <rte_fib6.h>\n \n #include \"trie.h\"\n+#include \"fib_log.h\"\n \n TAILQ_HEAD(rte_fib6_list, rte_tailq_entry);\n static struct rte_tailq_elem rte_fib6_tailq = {\ndiff --git a/lib/log/log.c b/lib/log/log.c\nindex 58184548bb85..ab28edec11b8 100644\n--- a/lib/log/log.c\n+++ b/lib/log/log.c\n@@ -354,7 +354,6 @@ static const struct logtype logtype_strings[] = {\n \t{RTE_LOGTYPE_EAL,        \"lib.eal\"},\n \t{RTE_LOGTYPE_PMD,        \"pmd\"},\n \t{RTE_LOGTYPE_HASH,       \"lib.hash\"},\n-\t{RTE_LOGTYPE_LPM,        \"lib.lpm\"},\n \t{RTE_LOGTYPE_METER,      \"lib.meter\"},\n \t{RTE_LOGTYPE_SCHED,      \"lib.sched\"},\n \t{RTE_LOGTYPE_PORT,       \"lib.port\"},\ndiff --git a/lib/log/rte_log.h b/lib/log/rte_log.h\nindex 48976fea1c3e..dc2454a0d9de 100644\n--- a/lib/log/rte_log.h\n+++ b/lib/log/rte_log.h\n@@ -33,7 +33,7 @@ extern \"C\" {\n \t\t\t\t /* was RTE_LOGTYPE_TIMER */\n #define RTE_LOGTYPE_PMD        5 /**< Log related to poll mode driver. */\n #define RTE_LOGTYPE_HASH       6 /**< Log related to hash table. */\n-#define RTE_LOGTYPE_LPM        7 /**< Log related to LPM. */\n+\t\t\t\t /* was RTE_LOGTYPE_LPM */\n \t\t\t\t /* was RTE_LOGTYPE_KNI */\n \t\t\t\t /* was RTE_LOGTYPE_ACL */\n \t\t\t\t /* was RTE_LOGTYPE_POWER */\ndiff --git a/lib/lpm/lpm_log.h b/lib/lpm/lpm_log.h\nnew file mode 100644\nindex 000000000000..a0621b70a5fe\n--- /dev/null\n+++ b/lib/lpm/lpm_log.h\n@@ -0,0 +1,4 @@\n+/* SPDX-License-Identifier: BSD-3-Clause */\n+\n+extern int lpm_logtype;\n+#define RTE_LOGTYPE_LPM lpm_logtype\ndiff --git a/lib/lpm/rte_lpm.c b/lib/lpm/rte_lpm.c\nindex cdcd1b7f9e47..0ca82147866a 100644\n--- a/lib/lpm/rte_lpm.c\n+++ b/lib/lpm/rte_lpm.c\n@@ -18,6 +18,9 @@\n #include <rte_tailq.h>\n \n #include \"rte_lpm.h\"\n+#include \"lpm_log.h\"\n+\n+RTE_LOG_REGISTER_DEFAULT(lpm_logtype, INFO);\n \n TAILQ_HEAD(rte_lpm_list, rte_tailq_entry);\n \ndiff --git a/lib/lpm/rte_lpm6.c b/lib/lpm/rte_lpm6.c\nindex 8d21aeddb83c..873cc8bc267d 100644\n--- a/lib/lpm/rte_lpm6.c\n+++ b/lib/lpm/rte_lpm6.c\n@@ -20,6 +20,7 @@\n #include <rte_tailq.h>\n \n #include \"rte_lpm6.h\"\n+#include \"lpm_log.h\"\n \n #define RTE_LPM6_TBL24_NUM_ENTRIES        (1 << 24)\n #define RTE_LPM6_TBL8_GROUP_NUM_ENTRIES         256\ndiff --git a/lib/rib/rib_log.h b/lib/rib/rib_log.h\nnew file mode 100644\nindex 000000000000..f3ee513ca854\n--- /dev/null\n+++ b/lib/rib/rib_log.h\n@@ -0,0 +1,4 @@\n+/* SPDX-License-Identifier: BSD-3-Clause */\n+\n+extern int rib_logtype;\n+#define RTE_LOGTYPE_LPM rib_logtype\ndiff --git a/lib/rib/rte_rib.c b/lib/rib/rte_rib.c\nindex 812a2597d117..a62e951a8e0e 100644\n--- a/lib/rib/rte_rib.c\n+++ b/lib/rib/rte_rib.c\n@@ -16,6 +16,9 @@\n \n #include <rte_rib.h>\n \n+RTE_LOG_REGISTER_DEFAULT(rib_logtype, INFO);\n+#define RTE_LOGTYPE_LPM rib_logtype\n+\n TAILQ_HEAD(rte_rib_list, rte_tailq_entry);\n static struct rte_tailq_elem rte_rib_tailq = {\n \t.name = \"RTE_RIB\",\ndiff --git a/lib/rib/rte_rib6.c b/lib/rib/rte_rib6.c\nindex ae44281ae105..5765995197f8 100644\n--- a/lib/rib/rte_rib6.c\n+++ b/lib/rib/rte_rib6.c\n@@ -9,6 +9,7 @@\n \n #include <rte_eal_memconfig.h>\n #include <rte_errno.h>\n+#include <rte_log.h>\n #include <rte_malloc.h>\n #include <rte_mempool.h>\n #include <rte_string_fns.h>\n@@ -16,6 +17,8 @@\n \n #include <rte_rib6.h>\n \n+#include \"rib_log.h\"\n+\n #define RTE_RIB_VALID_NODE\t1\n #define RIB6_MAXDEPTH\t\t128\n /* Maximum length of a RIB6 name. */\n",
    "prefixes": [
        "v13",
        "12/21"
    ]
}