get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 114620,
    "url": "https://patches.dpdk.org/api/patches/114620/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20220804134430.6192-5-adwivedi@marvell.com/",
    "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": "<20220804134430.6192-5-adwivedi@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220804134430.6192-5-adwivedi@marvell.com",
    "date": "2022-08-04T13:44:28",
    "name": "[4/6] ethdev: add trace points for tm",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "18800f443deafcc1eb5ff4436ade91c473cf9d38",
    "submitter": {
        "id": 1561,
        "url": "https://patches.dpdk.org/api/people/1561/?format=api",
        "name": "Ankur Dwivedi",
        "email": "adwivedi@marvell.com"
    },
    "delegate": {
        "id": 3961,
        "url": "https://patches.dpdk.org/api/users/3961/?format=api",
        "username": "arybchenko",
        "first_name": "Andrew",
        "last_name": "Rybchenko",
        "email": "andrew.rybchenko@oktetlabs.ru"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20220804134430.6192-5-adwivedi@marvell.com/mbox/",
    "series": [
        {
            "id": 24204,
            "url": "https://patches.dpdk.org/api/series/24204/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=24204",
            "date": "2022-08-04T13:44:24",
            "name": "add trace points in ethdev library",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/24204/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/114620/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/114620/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 D7056A00C4;\n\tThu,  4 Aug 2022 15:49:28 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id C315542BDB;\n\tThu,  4 Aug 2022 15:49:28 +0200 (CEST)",
            "from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com\n [67.231.156.173])\n by mails.dpdk.org (Postfix) with ESMTP id 5306142BD9\n for <dev@dpdk.org>; Thu,  4 Aug 2022 15:49:27 +0200 (CEST)",
            "from pps.filterd (m0045851.ppops.net [127.0.0.1])\n by mx0b-0016f401.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id\n 274COOAU020987;\n Thu, 4 Aug 2022 06:47:11 -0700",
            "from dc5-exch01.marvell.com ([199.233.59.181])\n by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3hqgf1xr5y-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);\n Thu, 04 Aug 2022 06:47:11 -0700",
            "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 Thu, 4 Aug 2022 06:47:09 -0700",
            "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; Thu, 4 Aug 2022 06:47:09 -0700",
            "from hyd1349.t110.caveonetworks.com.com (unknown [10.29.45.13])\n by maili.marvell.com (Postfix) with ESMTP id 520DB5B6941;\n Thu,  4 Aug 2022 06:46:48 -0700 (PDT)"
        ],
        "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=YvoFjKlzJI+FxnIFSBVVd//2FtWemtdld29ZyGCzC8c=;\n b=M17bOC59o6RqLDw6MuAgGvvENUv5y01EY6WSLQLn7iKejPwSVHTHkBJzcggjEI3HgePz\n 0XaTRMe1dPB52if3vksweI/heXkLm4UG6MmOY/qkXaRY1y2PhC/c89vNHAUthsmO7wj8\n sczaDxB6TTCJxHhsl+36FTLnUwy0OYwAf3OUsfYx6jm1xKl2mnwHW5zJlev2aGAW4iaG\n /k5QzoIfjIxVw9eJ9xMUTTbCFEteFNYsRoCE8/8VYuYklK4oUG1OujX+ZYqEZIO5e3zu\n le03Mak+4QN3R4+GTceF87Vf/ZKYKok7nPpbcvujEpd3rl8jXSa7RME8Ec0YCtnym61Q 3Q==",
        "From": "Ankur Dwivedi <adwivedi@marvell.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<thomas@monjalon.net>, <mdr@ashroe.eu>, <orika@nvidia.com>,\n <ferruh.yigit@xilinx.com>, <chas3@att.com>, <humin29@huawei.com>,\n <linville@tuxdriver.com>, <ciara.loftus@intel.com>,\n <qi.z.zhang@intel.com>, <mw@semihalf.com>, <mk@semihalf.com>,\n <shaibran@amazon.com>, <evgenys@amazon.com>, <igorch@amazon.com>,\n <chandu@amd.com>, <irusskikh@marvell.com>,\n <shepard.siegel@atomicrules.com>, <ed.czeck@atomicrules.com>,\n <john.miller@atomicrules.com>, <ajit.khaparde@broadcom.com>,\n <somnath.kotur@broadcom.com>, <jerinj@marvell.com>,\n <mczekaj@marvell.com>, <sthotton@marvell.com>,\n <srinivasan@marvell.com>, <hkalra@marvell.com>,\n <rahul.lakkireddy@chelsio.com>, <johndale@cisco.com>,\n <hyonkim@cisco.com>, <liudongdong3@huawei.com>,\n <yisen.zhuang@huawei.com>, <xuanziyang2@huawei.com>,\n <cloud.wangxiaoyun@huawei.com>, <zhouguoyang@huawei.com>,\n <simei.su@intel.com>, <wenjun1.wu@intel.com>, <qiming.yang@intel.com>,\n <Yuying.Zhang@intel.com>, <beilei.xing@intel.com>,\n <xiao.w.wang@intel.com>, <jingjing.wu@intel.com>,\n <junfeng.guo@intel.com>, <rosen.xu@intel.com>,\n <ndabilpuram@marvell.com>, <kirankumark@marvell.com>,\n <skori@marvell.com>, <skoteshwar@marvell.com>, <lironh@marvell.com>,\n <zr@semihalf.com>, <radhac@marvell.com>, <vburru@marvell.com>,\n <sedara@marvell.com>, <matan@nvidia.com>, <viacheslavo@nvidia.com>,\n <sthemmin@microsoft.com>, <longli@microsoft.com>, <spinler@cesnet.cz>,\n <chaoyong.he@corigine.com>, <niklas.soderlund@corigine.com>,\n <hemant.agrawal@nxp.com>, <sachin.saxena@oss.nxp.com>,\n <g.singh@nxp.com>, <apeksha.gupta@nxp.com>, <sachin.saxena@nxp.com>,\n <aboyer@pensando.io>, <rmody@marvell.com>, <shshaikh@marvell.com>,\n <dsinghrawat@marvell.com>, <andrew.rybchenko@oktetlabs.ru>,\n <jiawenwu@trustnetic.com>, <jianwang@trustnetic.com>,\n <jbehrens@vmware.com>, <maxime.coquelin@redhat.com>,\n <chenbo.xia@intel.com>, <steven.webster@windriver.com>,\n <matt.peters@windriver.com>, <bruce.richardson@intel.com>,\n <mtetsuyah@gmail.com>, <grive@u256.net>, <jasvinder.singh@intel.com>,\n <cristian.dumitrescu@intel.com>, <jgrajcia@cisco.com>,\n Ankur Dwivedi <adwivedi@marvell.com>",
        "Subject": "[PATCH 4/6] ethdev: add trace points for tm",
        "Date": "Thu, 4 Aug 2022 19:14:28 +0530",
        "Message-ID": "<20220804134430.6192-5-adwivedi@marvell.com>",
        "X-Mailer": "git-send-email 2.28.0",
        "In-Reply-To": "<20220804134430.6192-1-adwivedi@marvell.com>",
        "References": "<20220804134430.6192-1-adwivedi@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Proofpoint-GUID": "XgBe4K05mJRU4N-2c7TtBXcPLMsnOJYK",
        "X-Proofpoint-ORIG-GUID": "XgBe4K05mJRU4N-2c7TtBXcPLMsnOJYK",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.205,Aquarius:18.0.883,Hydra:6.0.517,FMLib:17.11.122.1\n definitions=2022-08-04_03,2022-08-04_02,2022-06-22_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": "Adds trace points for rte_tm specific functions in ethdev lib.\n\nSigned-off-by: Ankur Dwivedi <adwivedi@marvell.com>\n---\n lib/ethdev/ethdev_trace_points.c |  90 ++++++++++\n lib/ethdev/rte_ethdev_trace.h    | 283 +++++++++++++++++++++++++++++++\n lib/ethdev/rte_tm.c              |  40 +++++\n lib/ethdev/version.map           |  30 ++++\n 4 files changed, 443 insertions(+)",
    "diff": "diff --git a/lib/ethdev/ethdev_trace_points.c b/lib/ethdev/ethdev_trace_points.c\nindex 673a0be13b..341901d031 100644\n--- a/lib/ethdev/ethdev_trace_points.c\n+++ b/lib/ethdev/ethdev_trace_points.c\n@@ -641,3 +641,93 @@ RTE_TRACE_POINT_REGISTER(rte_mtr_trace_color_in_protocol_priority_get,\n \n RTE_TRACE_POINT_REGISTER(rte_mtr_trace_color_in_protocol_set,\n \tlib.ethdev.mtr.color_in_protocol_set)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_capabilities_get,\n+\tlib.ethdev.tm.capabilities_get)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_get_number_of_leaf_nodes,\n+\tlib.ethdev.tm.get_number_of_leaf_nodes)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_hierarchy_commit,\n+\tlib.ethdev.tm.hierarchy_commit)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_level_capabilities_get,\n+\tlib.ethdev.tm.level_capabilities_get)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_mark_ip_dscp,\n+\tlib.ethdev.tm.mark_ip_dscp)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_mark_ip_ecn,\n+\tlib.ethdev.tm.mark_ip_ecn)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_mark_vlan_dei,\n+\tlib.ethdev.tm.mark_vlan_dei)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_node_add,\n+\tlib.ethdev.tm.node_add)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_node_capabilities_get,\n+\tlib.ethdev.tm.node_capabilities_get)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_node_cman_update,\n+\tlib.ethdev.tm.node_cman_update)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_node_delete,\n+\tlib.ethdev.tm.node_delete)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_node_parent_update,\n+\tlib.ethdev.tm.node_parent_update)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_node_resume,\n+\tlib.ethdev.tm.node_resume)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_node_shaper_update,\n+\tlib.ethdev.tm.node_shaper_update)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_node_shared_shaper_update,\n+\tlib.ethdev.tm.node_shared_shaper_update)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_node_shared_wred_context_update,\n+\tlib.ethdev.tm.node_shared_wred_context_update)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_node_stats_read,\n+\tlib.ethdev.tm.node_stats_read)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_node_stats_update,\n+\tlib.ethdev.tm.node_stats_update)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_node_suspend,\n+\tlib.ethdev.tm.node_suspend)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_node_type_get,\n+\tlib.ethdev.tm.node_type_get)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_node_wfq_weight_mode_update,\n+\tlib.ethdev.tm.node_wfq_weight_mode_update)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_node_wred_context_update,\n+\tlib.ethdev.tm.node_wred_context_update)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_shaper_profile_add,\n+\tlib.ethdev.tm.shaper_profile_add)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_shaper_profile_delete,\n+\tlib.ethdev.tm.shaper_profile_delete)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_shared_shaper_add_update,\n+\tlib.ethdev.tm.shared_shaper_add_update)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_shared_shaper_delete,\n+\tlib.ethdev.tm.shared_shaper_delete)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_shared_wred_context_add_update,\n+\tlib.ethdev.tm.shared_wred_context_add_update)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_shared_wred_context_delete,\n+\tlib.ethdev.tm.shared_wred_context_delete)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_wred_profile_add,\n+\tlib.ethdev.tm.wred_profile_add)\n+\n+RTE_TRACE_POINT_REGISTER(rte_tm_trace_wred_profile_delete,\n+\tlib.ethdev.tm.wred_profile_delete)\ndiff --git a/lib/ethdev/rte_ethdev_trace.h b/lib/ethdev/rte_ethdev_trace.h\nindex c07b5b3fb6..aa34a6a5e9 100644\n--- a/lib/ethdev/rte_ethdev_trace.h\n+++ b/lib/ethdev/rte_ethdev_trace.h\n@@ -19,6 +19,7 @@ extern \"C\" {\n \n #include \"rte_ethdev.h\"\n #include \"rte_mtr.h\"\n+#include \"rte_tm.h\"\n \n RTE_TRACE_POINT(\n \trte_ethdev_trace_configure,\n@@ -1851,6 +1852,288 @@ RTE_TRACE_POINT(\n \trte_trace_point_emit_u32(priority);\n )\n \n+RTE_TRACE_POINT(\n+\trte_tm_trace_capabilities_get,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id,\n+\t\tstruct rte_tm_capabilities *cap),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_ptr(cap);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_get_number_of_leaf_nodes,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t n_leaf_nodes,\n+\t\tstruct rte_tm_error *error),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(n_leaf_nodes);\n+\trte_trace_point_emit_int(error->type);\n+\trte_trace_point_emit_string(error->message);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_hierarchy_commit,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, int clear_on_fail),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_int(clear_on_fail);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_level_capabilities_get,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t level_id,\n+\t\tstruct rte_tm_level_capabilities *cap),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(level_id);\n+\trte_trace_point_emit_ptr(cap);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_mark_ip_dscp,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, int mark_green,\n+\t\tint mark_yellow, int mark_red),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_int(mark_green);\n+\trte_trace_point_emit_int(mark_yellow);\n+\trte_trace_point_emit_int(mark_red);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_mark_ip_ecn,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, int mark_green,\n+\t\tint mark_yellow, int mark_red),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_int(mark_green);\n+\trte_trace_point_emit_int(mark_yellow);\n+\trte_trace_point_emit_int(mark_red);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_mark_vlan_dei,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, int mark_green,\n+\t\tint mark_yellow, int mark_red),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_int(mark_green);\n+\trte_trace_point_emit_int(mark_yellow);\n+\trte_trace_point_emit_int(mark_red);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_node_add,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t node_id,\n+\t\tuint32_t parent_node_id, uint32_t priority,\n+\t\tuint32_t weight, uint32_t level_id,\n+\t\tstruct rte_tm_node_params *params),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_u32(parent_node_id);\n+\trte_trace_point_emit_u32(priority);\n+\trte_trace_point_emit_u32(weight);\n+\trte_trace_point_emit_u32(level_id);\n+\trte_trace_point_emit_ptr(params);\n+\trte_trace_point_emit_u32(params->shaper_profile_id);\n+\trte_trace_point_emit_u32(params->n_shared_shapers);\n+\trte_trace_point_emit_u64(params->stats_mask);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_node_capabilities_get,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t node_id,\n+\t\tstruct rte_tm_node_capabilities *cap),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_ptr(cap);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_node_cman_update,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t node_id,\n+\t\tenum rte_tm_cman_mode cman),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_int(cman);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_node_delete,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t node_id),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_node_parent_update,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t node_id,\n+\t\tuint32_t parent_node_id, uint32_t priority,\n+\t\tuint32_t weight),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_u32(parent_node_id);\n+\trte_trace_point_emit_u32(priority);\n+\trte_trace_point_emit_u32(weight);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_node_resume,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t node_id),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_node_shaper_update,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t node_id,\n+\t\tuint32_t shaper_profile_id),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_u32(shaper_profile_id);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_node_shared_shaper_update,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t node_id,\n+\t\tuint32_t shared_shaper_id, int add),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_u32(shared_shaper_id);\n+\trte_trace_point_emit_int(add);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_node_shared_wred_context_update,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t node_id,\n+\t\tuint32_t shared_wred_context_id, int add),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_u32(shared_wred_context_id);\n+\trte_trace_point_emit_int(add);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_node_stats_read,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t node_id,\n+\t\tstruct rte_tm_node_stats *stats,\n+\t\tuint64_t *stats_mask, int clear),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_ptr(stats);\n+\trte_trace_point_emit_ptr(stats_mask);\n+\trte_trace_point_emit_int(clear);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_node_stats_update,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t node_id,\n+\t\tuint64_t stats_mask),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_u64(stats_mask);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_node_suspend,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t node_id),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_node_type_get,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t node_id,\n+\t\tint *is_leaf),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_ptr(is_leaf);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_node_wfq_weight_mode_update,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t node_id,\n+\t\tint *wfq_weight_mode, uint32_t n_sp_priorities),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_ptr(wfq_weight_mode);\n+\trte_trace_point_emit_u32(n_sp_priorities);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_node_wred_context_update,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t node_id,\n+\t\tuint32_t wred_profile_id),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_u32(wred_profile_id);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_shaper_profile_add,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t shaper_profile_id,\n+\t\tstruct rte_tm_shaper_params *profile),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(shaper_profile_id);\n+\trte_trace_point_emit_ptr(profile);\n+\trte_trace_point_emit_u64(profile->committed.rate);\n+\trte_trace_point_emit_u64(profile->committed.size);\n+\trte_trace_point_emit_u64(profile->peak.rate);\n+\trte_trace_point_emit_u64(profile->peak.size);\n+\trte_trace_point_emit_i32(profile->pkt_length_adjust);\n+\trte_trace_point_emit_int(profile->packet_mode);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_shaper_profile_delete,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t shaper_profile_id),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(shaper_profile_id);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_shared_shaper_add_update,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t shared_shaper_id,\n+\t\tuint32_t shaper_profile_id),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(shared_shaper_id);\n+\trte_trace_point_emit_u32(shaper_profile_id);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_shared_shaper_delete,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t shared_shaper_id),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(shared_shaper_id);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_shared_wred_context_add_update,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t shared_wred_context_id,\n+\t\tuint32_t wred_profile_id),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(shared_wred_context_id);\n+\trte_trace_point_emit_u32(wred_profile_id);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_shared_wred_context_delete,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t shared_wred_context_id),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(shared_wred_context_id);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_wred_profile_add,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t wred_profile_id,\n+\t\tstruct rte_tm_wred_params *profile),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(wred_profile_id);\n+\trte_trace_point_emit_ptr(profile);\n+\trte_trace_point_emit_int(profile->packet_mode);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_wred_profile_delete,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id, uint32_t wred_profile_id),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(wred_profile_id);\n+)\n+\n #ifdef __cplusplus\n }\n #endif\ndiff --git a/lib/ethdev/rte_tm.c b/lib/ethdev/rte_tm.c\nindex 9709454f35..b0b43eacc0 100644\n--- a/lib/ethdev/rte_tm.c\n+++ b/lib/ethdev/rte_tm.c\n@@ -6,6 +6,7 @@\n \n #include <rte_errno.h>\n #include \"rte_ethdev.h\"\n+#include \"rte_ethdev_trace.h\"\n #include \"rte_tm_driver.h\"\n #include \"rte_tm.h\"\n \n@@ -79,6 +80,7 @@ rte_tm_get_number_of_leaf_nodes(uint16_t port_id,\n \t}\n \n \t*n_leaf_nodes = dev->data->nb_tx_queues;\n+\trte_tm_trace_get_number_of_leaf_nodes(port_id, *n_leaf_nodes, error);\n \treturn 0;\n }\n \n@@ -90,6 +92,7 @@ rte_tm_node_type_get(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_node_type_get(port_id, node_id, is_leaf);\n \treturn RTE_TM_FUNC(port_id, node_type_get)(dev,\n \t\tnode_id, is_leaf, error);\n }\n@@ -100,6 +103,7 @@ int rte_tm_capabilities_get(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_capabilities_get(port_id, cap);\n \treturn RTE_TM_FUNC(port_id, capabilities_get)(dev,\n \t\tcap, error);\n }\n@@ -111,6 +115,7 @@ int rte_tm_level_capabilities_get(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_level_capabilities_get(port_id, level_id, cap);\n \treturn RTE_TM_FUNC(port_id, level_capabilities_get)(dev,\n \t\tlevel_id, cap, error);\n }\n@@ -122,6 +127,7 @@ int rte_tm_node_capabilities_get(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_node_capabilities_get(port_id, node_id, cap);\n \treturn RTE_TM_FUNC(port_id, node_capabilities_get)(dev,\n \t\tnode_id, cap, error);\n }\n@@ -133,6 +139,7 @@ int rte_tm_wred_profile_add(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_wred_profile_add(port_id, wred_profile_id, profile);\n \treturn RTE_TM_FUNC(port_id, wred_profile_add)(dev,\n \t\twred_profile_id, profile, error);\n }\n@@ -143,6 +150,7 @@ int rte_tm_wred_profile_delete(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_wred_profile_delete(port_id, wred_profile_id);\n \treturn RTE_TM_FUNC(port_id, wred_profile_delete)(dev,\n \t\twred_profile_id, error);\n }\n@@ -154,6 +162,8 @@ int rte_tm_shared_wred_context_add_update(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_shared_wred_context_add_update(port_id, shared_wred_context_id,\n+\t\t\t\t\t\t    wred_profile_id);\n \treturn RTE_TM_FUNC(port_id, shared_wred_context_add_update)(dev,\n \t\tshared_wred_context_id, wred_profile_id, error);\n }\n@@ -164,6 +174,7 @@ int rte_tm_shared_wred_context_delete(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_shared_wred_context_delete(port_id, shared_wred_context_id);\n \treturn RTE_TM_FUNC(port_id, shared_wred_context_delete)(dev,\n \t\tshared_wred_context_id, error);\n }\n@@ -175,6 +186,7 @@ int rte_tm_shaper_profile_add(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_shaper_profile_add(port_id, shaper_profile_id, profile);\n \treturn RTE_TM_FUNC(port_id, shaper_profile_add)(dev,\n \t\tshaper_profile_id, profile, error);\n }\n@@ -185,6 +197,7 @@ int rte_tm_shaper_profile_delete(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_shaper_profile_delete(port_id, shaper_profile_id);\n \treturn RTE_TM_FUNC(port_id, shaper_profile_delete)(dev,\n \t\tshaper_profile_id, error);\n }\n@@ -196,6 +209,8 @@ int rte_tm_shared_shaper_add_update(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_shared_shaper_add_update(port_id, shared_shaper_id,\n+\t\t\t\t\t      shaper_profile_id);\n \treturn RTE_TM_FUNC(port_id, shared_shaper_add_update)(dev,\n \t\tshared_shaper_id, shaper_profile_id, error);\n }\n@@ -206,6 +221,7 @@ int rte_tm_shared_shaper_delete(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_shared_shaper_delete(port_id, shared_shaper_id);\n \treturn RTE_TM_FUNC(port_id, shared_shaper_delete)(dev,\n \t\tshared_shaper_id, error);\n }\n@@ -221,6 +237,8 @@ int rte_tm_node_add(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_node_add(port_id, node_id, parent_node_id, priority,\n+\t\t\t      weight, level_id, params);\n \treturn RTE_TM_FUNC(port_id, node_add)(dev,\n \t\tnode_id, parent_node_id, priority, weight, level_id,\n \t\tparams, error);\n@@ -232,6 +250,7 @@ int rte_tm_node_delete(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_node_delete(port_id, node_id);\n \treturn RTE_TM_FUNC(port_id, node_delete)(dev,\n \t\tnode_id, error);\n }\n@@ -242,6 +261,7 @@ int rte_tm_node_suspend(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_node_suspend(port_id, node_id);\n \treturn RTE_TM_FUNC(port_id, node_suspend)(dev,\n \t\tnode_id, error);\n }\n@@ -252,6 +272,7 @@ int rte_tm_node_resume(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_node_resume(port_id, node_id);\n \treturn RTE_TM_FUNC(port_id, node_resume)(dev,\n \t\tnode_id, error);\n }\n@@ -262,6 +283,7 @@ int rte_tm_hierarchy_commit(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_hierarchy_commit(port_id, clear_on_fail);\n \treturn RTE_TM_FUNC(port_id, hierarchy_commit)(dev,\n \t\tclear_on_fail, error);\n }\n@@ -275,6 +297,8 @@ int rte_tm_node_parent_update(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_node_parent_update(port_id, node_id, parent_node_id,\n+\t\t\t\t\tpriority, weight);\n \treturn RTE_TM_FUNC(port_id, node_parent_update)(dev,\n \t\tnode_id, parent_node_id, priority, weight, error);\n }\n@@ -286,6 +310,7 @@ int rte_tm_node_shaper_update(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_node_shaper_update(port_id, node_id, shaper_profile_id);\n \treturn RTE_TM_FUNC(port_id, node_shaper_update)(dev,\n \t\tnode_id, shaper_profile_id, error);\n }\n@@ -298,6 +323,8 @@ int rte_tm_node_shared_shaper_update(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_node_shared_shaper_update(port_id, node_id, shared_shaper_id,\n+\t\t\t\t\t       add);\n \treturn RTE_TM_FUNC(port_id, node_shared_shaper_update)(dev,\n \t\tnode_id, shared_shaper_id, add, error);\n }\n@@ -309,6 +336,7 @@ int rte_tm_node_stats_update(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_node_stats_update(port_id, node_id, stats_mask);\n \treturn RTE_TM_FUNC(port_id, node_stats_update)(dev,\n \t\tnode_id, stats_mask, error);\n }\n@@ -321,6 +349,8 @@ int rte_tm_node_wfq_weight_mode_update(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_node_wfq_weight_mode_update(port_id, node_id, wfq_weight_mode,\n+\t\t\t\t\t\t n_sp_priorities);\n \treturn RTE_TM_FUNC(port_id, node_wfq_weight_mode_update)(dev,\n \t\tnode_id, wfq_weight_mode, n_sp_priorities, error);\n }\n@@ -332,6 +362,7 @@ int rte_tm_node_cman_update(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_node_cman_update(port_id, node_id, cman);\n \treturn RTE_TM_FUNC(port_id, node_cman_update)(dev,\n \t\tnode_id, cman, error);\n }\n@@ -343,6 +374,7 @@ int rte_tm_node_wred_context_update(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_node_wred_context_update(port_id, node_id, wred_profile_id);\n \treturn RTE_TM_FUNC(port_id, node_wred_context_update)(dev,\n \t\tnode_id, wred_profile_id, error);\n }\n@@ -355,6 +387,9 @@ int rte_tm_node_shared_wred_context_update(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_node_shared_wred_context_update(port_id, node_id,\n+\t\t\t\t\t\t     shared_wred_context_id,\n+\t\t\t\t\t\t     add);\n \treturn RTE_TM_FUNC(port_id, node_shared_wred_context_update)(dev,\n \t\tnode_id, shared_wred_context_id, add, error);\n }\n@@ -368,6 +403,8 @@ int rte_tm_node_stats_read(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_node_stats_read(port_id, node_id, stats, stats_mask,\n+\t\t\t\t     clear);\n \treturn RTE_TM_FUNC(port_id, node_stats_read)(dev,\n \t\tnode_id, stats, stats_mask, clear, error);\n }\n@@ -380,6 +417,7 @@ int rte_tm_mark_vlan_dei(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_mark_vlan_dei(port_id, mark_green, mark_yellow, mark_red);\n \treturn RTE_TM_FUNC(port_id, mark_vlan_dei)(dev,\n \t\tmark_green, mark_yellow, mark_red, error);\n }\n@@ -392,6 +430,7 @@ int rte_tm_mark_ip_ecn(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_mark_ip_ecn(port_id, mark_green, mark_yellow, mark_red);\n \treturn RTE_TM_FUNC(port_id, mark_ip_ecn)(dev,\n \t\tmark_green, mark_yellow, mark_red, error);\n }\n@@ -404,6 +443,7 @@ int rte_tm_mark_ip_dscp(uint16_t port_id,\n \tstruct rte_tm_error *error)\n {\n \tstruct rte_eth_dev *dev = &rte_eth_devices[port_id];\n+\trte_tm_trace_mark_ip_dscp(port_id, mark_green, mark_yellow, mark_red);\n \treturn RTE_TM_FUNC(port_id, mark_ip_dscp)(dev,\n \t\tmark_green, mark_yellow, mark_red, error);\n }\ndiff --git a/lib/ethdev/version.map b/lib/ethdev/version.map\nindex 2e282bb457..ee4012789f 100644\n--- a/lib/ethdev/version.map\n+++ b/lib/ethdev/version.map\n@@ -490,6 +490,36 @@ EXPERIMENTAL {\n \t__rte_mtr_trace_meter_vlan_table_update;\n \t__rte_mtr_trace_stats_read;\n \t__rte_mtr_trace_stats_update;\n+\t__rte_tm_trace_capabilities_get;\n+\t__rte_tm_trace_get_number_of_leaf_nodes;\n+\t__rte_tm_trace_hierarchy_commit;\n+\t__rte_tm_trace_level_capabilities_get;\n+\t__rte_tm_trace_mark_ip_dscp;\n+\t__rte_tm_trace_mark_ip_ecn;\n+\t__rte_tm_trace_mark_vlan_dei;\n+\t__rte_tm_trace_node_add;\n+\t__rte_tm_trace_node_capabilities_get;\n+\t__rte_tm_trace_node_cman_update;\n+\t__rte_tm_trace_node_delete;\n+\t__rte_tm_trace_node_parent_update;\n+\t__rte_tm_trace_node_resume;\n+\t__rte_tm_trace_node_shaper_update;\n+\t__rte_tm_trace_node_shared_shaper_update;\n+\t__rte_tm_trace_node_shared_wred_context_update;\n+\t__rte_tm_trace_node_stats_read;\n+\t__rte_tm_trace_node_stats_update;\n+\t__rte_tm_trace_node_suspend;\n+\t__rte_tm_trace_node_type_get;\n+\t__rte_tm_trace_node_wfq_weight_mode_update;\n+\t__rte_tm_trace_node_wred_context_update;\n+\t__rte_tm_trace_shaper_profile_add;\n+\t__rte_tm_trace_shaper_profile_delete;\n+\t__rte_tm_trace_shared_shaper_add_update;\n+\t__rte_tm_trace_shared_shaper_delete;\n+\t__rte_tm_trace_shared_wred_context_add_update;\n+\t__rte_tm_trace_shared_wred_context_delete;\n+\t__rte_tm_trace_wred_profile_add;\n+\t__rte_tm_trace_wred_profile_delete;\n };\n \n INTERNAL {\n",
    "prefixes": [
        "4/6"
    ]
}