get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 120754,
    "url": "http://patches.dpdk.org/api/patches/120754/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20221212064306.39232-10-lihuisong@huawei.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": "<20221212064306.39232-10-lihuisong@huawei.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20221212064306.39232-10-lihuisong@huawei.com",
    "date": "2022-12-12T06:43:04",
    "name": "[V3,09/11] telemetry: support adding integer value as hexadecimal",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "abbcd5c3f2e21c61d80055f5748609d472569549",
    "submitter": {
        "id": 2085,
        "url": "http://patches.dpdk.org/api/people/2085/?format=api",
        "name": "lihuisong (C)",
        "email": "lihuisong@huawei.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20221212064306.39232-10-lihuisong@huawei.com/mbox/",
    "series": [
        {
            "id": 26078,
            "url": "http://patches.dpdk.org/api/series/26078/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=26078",
            "date": "2022-12-12T06:42:56",
            "name": "telemetry: add u32 value type and hex integer string API",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/26078/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/120754/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/120754/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 D0E0FA0540;\n\tMon, 12 Dec 2022 07:43:52 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 56CCC42D4D;\n\tMon, 12 Dec 2022 07:43:15 +0100 (CET)",
            "from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189])\n by mails.dpdk.org (Postfix) with ESMTP id 7AC6240A89\n for <dev@dpdk.org>; Mon, 12 Dec 2022 07:43:06 +0100 (CET)",
            "from kwepemm600004.china.huawei.com (unknown [172.30.72.54])\n by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4NVsRj38K4zJpJD;\n Mon, 12 Dec 2022 14:39:29 +0800 (CST)",
            "from localhost.localdomain (10.69.192.56) by\n kwepemm600004.china.huawei.com (7.193.23.242) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id\n 15.1.2375.34; Mon, 12 Dec 2022 14:43:04 +0800"
        ],
        "From": "Huisong Li <lihuisong@huawei.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<bruce.richardson@intel.com>, <mb@smartsharesystems.com>,\n <ciara.power@intel.com>, <liudongdong3@huawei.com>, <huangdaode@huawei.com>,\n <fengchengwen@huawei.com>, <lihuisong@huawei.com>",
        "Subject": "[PATCH V3 09/11] telemetry: support adding integer value as\n hexadecimal",
        "Date": "Mon, 12 Dec 2022 14:43:04 +0800",
        "Message-ID": "<20221212064306.39232-10-lihuisong@huawei.com>",
        "X-Mailer": "git-send-email 2.33.0",
        "In-Reply-To": "<20221212064306.39232-1-lihuisong@huawei.com>",
        "References": "<20221208080540.62913-1-lihuisong@huawei.com>\n <20221212064306.39232-1-lihuisong@huawei.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"UTF-8\"",
        "Content-Transfer-Encoding": "8bit",
        "X-Originating-IP": "[10.69.192.56]",
        "X-ClientProxiedBy": "dggems706-chm.china.huawei.com (10.3.19.183) To\n kwepemm600004.china.huawei.com (7.193.23.242)",
        "X-CFilter-Loop": "Reflected",
        "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": "Sometimes displaying a integer value as hexadecimal encoded style is\nmore expected for human consumption, such as, offload capability and\ndevice flag. This patch introduces some APIs to add 'u32' and 'u64'\nvalue as hexadecimal encoded string to array or dictionary.\n\nSigned-off-by: Huisong Li <lihuisong@huawei.com>\nAcked-by: Morten Brørup <mb@smartsharesystems.com>\nAcked-by: Chengwen Feng <fengchengwen@huawei.com>\n---\n lib/telemetry/rte_telemetry.h  | 72 ++++++++++++++++++++++++++++++++++\n lib/telemetry/telemetry_data.c | 46 ++++++++++++++++++++++\n lib/telemetry/version.map      |  5 +++\n 3 files changed, 123 insertions(+)",
    "diff": "diff --git a/lib/telemetry/rte_telemetry.h b/lib/telemetry/rte_telemetry.h\nindex 5efdafc156..dac87050da 100644\n--- a/lib/telemetry/rte_telemetry.h\n+++ b/lib/telemetry/rte_telemetry.h\n@@ -170,6 +170,38 @@ int\n rte_tel_data_add_array_container(struct rte_tel_data *d,\n \t\tstruct rte_tel_data *val, int keep);\n \n+/**\n+ * Convert a uint32_t to hexadecimal encoded strings and add this string\n+ * to an array.\n+ * The array must have been started by rte_tel_data_start_array() with\n+ * RTE_TEL_STRING_VAL as the type parameter.\n+ *\n+ * @param d\n+ *   The data structure passed to the callback\n+ * @param x\n+ *   The number to be returned in the array as a hexadecimal encoded strings\n+ * @return\n+ *   0 on success, negative errno on error\n+ */\n+__rte_experimental\n+int rte_tel_data_add_array_hex_u32_str(struct rte_tel_data *d, uint32_t x);\n+\n+/**\n+ * Convert a uint64_t to hexadecimal encoded strings and add this string\n+ * to an array.\n+ * The array must have been started by rte_tel_data_start_array() with\n+ * RTE_TEL_STRING_VAL as the type parameter.\n+ *\n+ * @param d\n+ *   The data structure passed to the callback\n+ * @param x\n+ *   The number to be returned in the array as a hexadecimal encoded strings\n+ * @return\n+ *   0 on success, negative errno on error\n+ */\n+__rte_experimental\n+int rte_tel_data_add_array_hex_u64_str(struct rte_tel_data *d, uint64_t x);\n+\n /**\n  * Add a string value to a dictionary.\n  * The dict must have been started by rte_tel_data_start_dict().\n@@ -266,6 +298,46 @@ int\n rte_tel_data_add_dict_container(struct rte_tel_data *d, const char *name,\n \t\tstruct rte_tel_data *val, int keep);\n \n+/**\n+ * Convert a uint32_t to hexadecimal encoded strings and add this string\n+ * to a dictionary.\n+ * The dict must have been started by rte_tel_data_start_dict().\n+ *\n+ * @param d\n+ *   The data structure passed to the callback\n+ * @param name\n+ *   The name the value is to be stored under in the dict\n+ *   Must contain only alphanumeric characters or the symbols: '_' or '/'\n+ * @param val\n+ *   The number to be stored in the dict as a hexadecimal encoded strings\n+ * @return\n+ *   0 on success, negative errno on error, E2BIG on string truncation of\n+ *   either name or value.\n+ */\n+__rte_experimental\n+int rte_tel_data_add_dict_hex_u32_str(struct rte_tel_data *d,\n+\t\t\t\t      const char *name, uint32_t val);\n+\n+/**\n+ * Convert a uint64_t to hexadecimal encoded strings and add this string\n+ * to a dictionary.\n+ * The dict must have been started by rte_tel_data_start_dict().\n+ *\n+ * @param d\n+ *   The data structure passed to the callback\n+ * @param name\n+ *   The name the value is to be stored under in the dict\n+ *   Must contain only alphanumeric characters or the symbols: '_' or '/'\n+ * @param val\n+ *   The number to be stored in the dict as a hexadecimal encoded strings\n+ * @return\n+ *   0 on success, negative errno on error, E2BIG on string truncation of\n+ *   either name or value.\n+ */\n+__rte_experimental\n+int rte_tel_data_add_dict_hex_u64_str(struct rte_tel_data *d,\n+\t\t\t\t      const char *name, uint64_t val);\n+\n /**\n  * This telemetry callback is used when registering a telemetry command.\n  * It handles getting and formatting information to be returned to telemetry\ndiff --git a/lib/telemetry/telemetry_data.c b/lib/telemetry/telemetry_data.c\nindex f8efc37763..b195b79fa4 100644\n--- a/lib/telemetry/telemetry_data.c\n+++ b/lib/telemetry/telemetry_data.c\n@@ -4,6 +4,7 @@\n \n #include <errno.h>\n #include <stdlib.h>\n+#include <inttypes.h>\n \n #undef RTE_USE_LIBBSD\n #include <stdbool.h>\n@@ -12,6 +13,9 @@\n \n #include \"telemetry_data.h\"\n \n+/* The string length is equal to (sizeof(uint64_t) * 2 + 3) */\n+#define RTE_TEL_HEX_UINT_MAX_STRING_LEN 19\n+\n int\n rte_tel_data_start_array(struct rte_tel_data *d, enum rte_tel_value_type type)\n {\n@@ -126,6 +130,26 @@ rte_tel_data_add_array_container(struct rte_tel_data *d,\n \treturn 0;\n }\n \n+int\n+rte_tel_data_add_array_hex_u32_str(struct rte_tel_data *d, uint32_t x)\n+{\n+\tchar hex_str[RTE_TEL_HEX_UINT_MAX_STRING_LEN];\n+\n+\tsnprintf(hex_str, RTE_TEL_HEX_UINT_MAX_STRING_LEN, \"0x%x\", x);\n+\n+\treturn rte_tel_data_add_array_string(d, hex_str);\n+}\n+\n+int\n+rte_tel_data_add_array_hex_u64_str(struct rte_tel_data *d, uint64_t x)\n+{\n+\tchar hex_str[RTE_TEL_HEX_UINT_MAX_STRING_LEN];\n+\n+\tsnprintf(hex_str, RTE_TEL_HEX_UINT_MAX_STRING_LEN, \"0x%\"PRIx64\"\", x);\n+\n+\treturn rte_tel_data_add_array_string(d, hex_str);\n+}\n+\n static bool\n valid_name(const char *name)\n {\n@@ -254,6 +278,28 @@ rte_tel_data_add_dict_container(struct rte_tel_data *d, const char *name,\n \treturn bytes < RTE_TEL_MAX_STRING_LEN ? 0 : E2BIG;\n }\n \n+int\n+rte_tel_data_add_dict_hex_u32_str(struct rte_tel_data *d, const char *name,\n+\t\t\t\t  uint32_t val)\n+{\n+\tchar hex_str[RTE_TEL_HEX_UINT_MAX_STRING_LEN];\n+\n+\tsnprintf(hex_str, RTE_TEL_HEX_UINT_MAX_STRING_LEN, \"0x%x\", val);\n+\n+\treturn rte_tel_data_add_dict_string(d, name, hex_str);\n+}\n+\n+int\n+rte_tel_data_add_dict_hex_u64_str(struct rte_tel_data *d, const char *name,\n+\t\t\t\t  uint64_t val)\n+{\n+\tchar hex_str[RTE_TEL_HEX_UINT_MAX_STRING_LEN];\n+\n+\tsnprintf(hex_str, RTE_TEL_HEX_UINT_MAX_STRING_LEN, \"0x%\"PRIx64\"\", val);\n+\n+\treturn rte_tel_data_add_dict_string(d, name, hex_str);\n+}\n+\n struct rte_tel_data *\n rte_tel_data_alloc(void)\n {\ndiff --git a/lib/telemetry/version.map b/lib/telemetry/version.map\nindex 3d1fb15637..994414c47f 100644\n--- a/lib/telemetry/version.map\n+++ b/lib/telemetry/version.map\n@@ -3,6 +3,11 @@ EXPERIMENTAL {\n \n \trte_tel_data_add_array_u32;\n \trte_tel_data_add_dict_u32;\n+\trte_tel_data_add_array_hex_u32_str;\n+\trte_tel_data_add_array_hex_u64_str;\n+\trte_tel_data_add_dict_hex_u32_str;\n+\trte_tel_data_add_dict_hex_u64_str;\n+\n \n \tlocal: *;\n };\n",
    "prefixes": [
        "V3",
        "09/11"
    ]
}