get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 123465,
    "url": "http://patches.dpdk.org/api/patches/123465/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20230208132824.775985-7-adwivedi@marvell.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": "<20230208132824.775985-7-adwivedi@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230208132824.775985-7-adwivedi@marvell.com",
    "date": "2023-02-08T13:28:24",
    "name": "[v10,6/6] ethdev: add trace points for tm",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "b9dec830099f1c03aa03cbbf32e1797c2d4085c2",
    "submitter": {
        "id": 1561,
        "url": "http://patches.dpdk.org/api/people/1561/?format=api",
        "name": "Ankur Dwivedi",
        "email": "adwivedi@marvell.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20230208132824.775985-7-adwivedi@marvell.com/mbox/",
    "series": [
        {
            "id": 26891,
            "url": "http://patches.dpdk.org/api/series/26891/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=26891",
            "date": "2023-02-08T13:28:18",
            "name": "add trace points in ethdev library",
            "version": 10,
            "mbox": "http://patches.dpdk.org/series/26891/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/123465/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/123465/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 0E0ED41C40;\n\tWed,  8 Feb 2023 14:34:04 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id EB10F4014F;\n\tWed,  8 Feb 2023 14:34:03 +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 90C3640141\n for <dev@dpdk.org>; Wed,  8 Feb 2023 14:34:01 +0100 (CET)",
            "from pps.filterd (m0045849.ppops.net [127.0.0.1])\n by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id\n 318DUR3b009409; Wed, 8 Feb 2023 05:31:31 -0800",
            "from dc5-exch01.marvell.com ([199.233.59.181])\n by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3nkdyrw57j-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);\n Wed, 08 Feb 2023 05:31:30 -0800",
            "from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com\n (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.42;\n Wed, 8 Feb 2023 05:31:29 -0800",
            "from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com\n (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.42 via Frontend\n Transport; Wed, 8 Feb 2023 05:31:29 -0800",
            "from localhost.localdomain (unknown [10.28.36.185])\n by maili.marvell.com (Postfix) with ESMTP id 77ADD3F7099;\n Wed,  8 Feb 2023 05:31:07 -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=0aUE8IG4cNCm2DzXQSNaKQlbaJmYsSp5UH+ikK2NjeU=;\n b=DyOdgATUjz0jx+oKONZW6Ai6rzvhil4TqME+GdexXi4Yn1Nd7McSD+f5RP6PzDCV50zT\n 69kMjfL3ixZlfcYCLRqTGGGiuEu8fwm9uBRNqDY7zh0fXQxD0D6dG0TGOeVU7+DNfZh1\n pfM8c4ZJ6Dh8royRwBqVv+R8+9xYNzkP3r3bOIuhxjxAmVAwDJavbzA1CzHGdW2khzxu\n AWCgc78P2zR0PJq1nQjN0ro0INN/ii2gbaritncewy23B3AE/YMnvRPAbH5a7qOjJq1E\n RVwVI3TG4B3hKYyEcnEF5/1SYmaf5FeDvlFjOlsDiw20pCgtcCJvzm4Uk/71XpmLRo4G 1A==",
        "From": "Ankur Dwivedi <adwivedi@marvell.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<thomas@monjalon.net>, <david.marchand@redhat.com>, <mdr@ashroe.eu>,\n <orika@nvidia.com>, <ferruh.yigit@amd.com>, <chas3@att.com>,\n <humin29@huawei.com>, <linville@tuxdriver.com>,\n <ciara.loftus@intel.com>, <qi.z.zhang@intel.com>, <mw@semihalf.com>,\n <mk@semihalf.com>, <shaibran@amazon.com>, <evgenys@amazon.com>,\n <igorch@amazon.com>, <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 <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 <mb@smartsharesystems.com>, Ankur Dwivedi <adwivedi@marvell.com>",
        "Subject": "[PATCH v10 6/6] ethdev: add trace points for tm",
        "Date": "Wed, 8 Feb 2023 18:58:24 +0530",
        "Message-ID": "<20230208132824.775985-7-adwivedi@marvell.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20230208132824.775985-1-adwivedi@marvell.com>",
        "References": "<20230207063254.401538-1-adwivedi@marvell.com>\n <20230208132824.775985-1-adwivedi@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Proofpoint-ORIG-GUID": "GPkKv9nBvo7bBGZBCO73bxCzoThLXCto",
        "X-Proofpoint-GUID": "GPkKv9nBvo7bBGZBCO73bxCzoThLXCto",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1\n definitions=2023-02-08_05,2023-02-08_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.h        | 304 +++++++++++++++++++++++++++++++\n lib/ethdev/ethdev_trace_points.c |  90 +++++++++\n lib/ethdev/rte_tm.c              | 225 ++++++++++++++++++++---\n 3 files changed, 590 insertions(+), 29 deletions(-)",
    "diff": "diff --git a/lib/ethdev/ethdev_trace.h b/lib/ethdev/ethdev_trace.h\nindex 973e2ac6d4..0b0a791aeb 100644\n--- a/lib/ethdev/ethdev_trace.h\n+++ b/lib/ethdev/ethdev_trace.h\n@@ -20,6 +20,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@@ -1831,6 +1832,309 @@ RTE_TRACE_POINT(\n \trte_trace_point_emit_int(ret);\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+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(n_leaf_nodes);\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, int is_leaf,\n+\t\tint ret),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_int(is_leaf);\n+\trte_trace_point_emit_int(ret);\n+)\n+\n+RTE_TRACE_POINT(\n+\trte_tm_trace_capabilities_get,\n+\tRTE_TRACE_POINT_ARGS(uint16_t port_id,\n+\t\tconst struct rte_tm_capabilities *cap, int ret),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_ptr(cap);\n+\trte_trace_point_emit_int(ret);\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\tconst struct rte_tm_level_capabilities *cap, int ret),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(level_id);\n+\trte_trace_point_emit_ptr(cap);\n+\trte_trace_point_emit_int(ret);\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\tconst struct rte_tm_node_capabilities *cap, int ret),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_ptr(cap);\n+\trte_trace_point_emit_int(ret);\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\tconst struct rte_tm_wred_params *profile, int ret),\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(ret);\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+\t\tint ret),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(wred_profile_id);\n+\trte_trace_point_emit_int(ret);\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, int ret),\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+\trte_trace_point_emit_int(ret);\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+\t\tint ret),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(shared_wred_context_id);\n+\trte_trace_point_emit_int(ret);\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\tconst struct rte_tm_shaper_params *profile, int ret),\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_int(ret);\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+\t\tint ret),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(shaper_profile_id);\n+\trte_trace_point_emit_int(ret);\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, int ret),\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+\trte_trace_point_emit_int(ret);\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+\t\tint ret),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(shared_shaper_id);\n+\trte_trace_point_emit_int(ret);\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\tconst struct rte_tm_node_params *params, int ret),\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_int(ret);\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, int ret),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_int(ret);\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, int ret),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_int(ret);\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, int ret),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_int(ret);\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, int ret),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_int(clear_on_fail);\n+\trte_trace_point_emit_int(ret);\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, int ret),\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_int(ret);\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, int ret),\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+\trte_trace_point_emit_int(ret);\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, int ret),\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+\trte_trace_point_emit_int(ret);\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, int ret),\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+\trte_trace_point_emit_int(ret);\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\tconst int *wfq_weight_mode, uint32_t n_sp_priorities,\n+\t\tint ret),\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+\trte_trace_point_emit_int(ret);\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, int ret),\n+\trte_trace_point_emit_u16(port_id);\n+\trte_trace_point_emit_u32(node_id);\n+\trte_trace_point_emit_int(cman);\n+\trte_trace_point_emit_int(ret);\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, int ret),\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+\trte_trace_point_emit_int(ret);\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, int ret),\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+\trte_trace_point_emit_int(ret);\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\tconst struct rte_tm_node_stats *stats,\n+\t\tuint64_t stats_mask, int clear, int ret),\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_u64(stats_mask);\n+\trte_trace_point_emit_int(clear);\n+\trte_trace_point_emit_int(ret);\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, int ret),\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+\trte_trace_point_emit_int(ret);\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, int ret),\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+\trte_trace_point_emit_int(ret);\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, int ret),\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+\trte_trace_point_emit_int(ret);\n+)\n+\n /* Fast path trace points */\n \n /* Called in loop in examples/qos_sched and examples/distributor */\ndiff --git a/lib/ethdev/ethdev_trace_points.c b/lib/ethdev/ethdev_trace_points.c\nindex c34c06941c..34d12e2859 100644\n--- a/lib/ethdev/ethdev_trace_points.c\n+++ b/lib/ethdev/ethdev_trace_points.c\n@@ -654,3 +654,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_tm.c b/lib/ethdev/rte_tm.c\nindex 9709454f35..2d08141133 100644\n--- a/lib/ethdev/rte_tm.c\n+++ b/lib/ethdev/rte_tm.c\n@@ -5,6 +5,7 @@\n #include <stdint.h>\n \n #include <rte_errno.h>\n+#include \"ethdev_trace.h\"\n #include \"rte_ethdev.h\"\n #include \"rte_tm_driver.h\"\n #include \"rte_tm.h\"\n@@ -79,6 +80,9 @@ 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+\n+\trte_tm_trace_get_number_of_leaf_nodes(port_id, *n_leaf_nodes);\n+\n \treturn 0;\n }\n \n@@ -90,8 +94,13 @@ 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-\treturn RTE_TM_FUNC(port_id, node_type_get)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, node_type_get)(dev,\n \t\tnode_id, is_leaf, error);\n+\n+\trte_tm_trace_node_type_get(port_id, node_id, *is_leaf, ret);\n+\n+\treturn ret;\n }\n \n /* Get capabilities */\n@@ -100,8 +109,13 @@ 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-\treturn RTE_TM_FUNC(port_id, capabilities_get)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, capabilities_get)(dev,\n \t\tcap, error);\n+\n+\trte_tm_trace_capabilities_get(port_id, cap, ret);\n+\n+\treturn ret;\n }\n \n /* Get level capabilities */\n@@ -111,8 +125,13 @@ 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-\treturn RTE_TM_FUNC(port_id, level_capabilities_get)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, level_capabilities_get)(dev,\n \t\tlevel_id, cap, error);\n+\n+\trte_tm_trace_level_capabilities_get(port_id, level_id, cap, ret);\n+\n+\treturn ret;\n }\n \n /* Get node capabilities */\n@@ -122,8 +141,13 @@ 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-\treturn RTE_TM_FUNC(port_id, node_capabilities_get)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, node_capabilities_get)(dev,\n \t\tnode_id, cap, error);\n+\n+\trte_tm_trace_node_capabilities_get(port_id, node_id, cap, ret);\n+\n+\treturn ret;\n }\n \n /* Add WRED profile */\n@@ -133,8 +157,13 @@ 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-\treturn RTE_TM_FUNC(port_id, wred_profile_add)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, wred_profile_add)(dev,\n \t\twred_profile_id, profile, error);\n+\n+\trte_tm_trace_wred_profile_add(port_id, wred_profile_id, profile, ret);\n+\n+\treturn ret;\n }\n \n /* Delete WRED profile */\n@@ -143,8 +172,13 @@ 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-\treturn RTE_TM_FUNC(port_id, wred_profile_delete)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, wred_profile_delete)(dev,\n \t\twred_profile_id, error);\n+\n+\trte_tm_trace_wred_profile_delete(port_id, wred_profile_id, ret);\n+\n+\treturn ret;\n }\n \n /* Add/update shared WRED context */\n@@ -154,8 +188,15 @@ 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-\treturn RTE_TM_FUNC(port_id, shared_wred_context_add_update)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, shared_wred_context_add_update)(dev,\n \t\tshared_wred_context_id, wred_profile_id, error);\n+\n+\trte_tm_trace_shared_wred_context_add_update(port_id,\n+\t\t\t\t\t\t    shared_wred_context_id,\n+\t\t\t\t\t\t    wred_profile_id, ret);\n+\n+\treturn ret;\n }\n \n /* Delete shared WRED context */\n@@ -164,8 +205,14 @@ 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-\treturn RTE_TM_FUNC(port_id, shared_wred_context_delete)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, shared_wred_context_delete)(dev,\n \t\tshared_wred_context_id, error);\n+\n+\trte_tm_trace_shared_wred_context_delete(port_id,\n+\t\t\t\t\t\tshared_wred_context_id, ret);\n+\n+\treturn ret;\n }\n \n /* Add shaper profile */\n@@ -175,8 +222,14 @@ 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-\treturn RTE_TM_FUNC(port_id, shaper_profile_add)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, shaper_profile_add)(dev,\n \t\tshaper_profile_id, profile, error);\n+\n+\trte_tm_trace_shaper_profile_add(port_id, shaper_profile_id, profile,\n+\t\t\t\t\tret);\n+\n+\treturn ret;\n }\n \n /* Delete WRED profile */\n@@ -185,8 +238,13 @@ 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-\treturn RTE_TM_FUNC(port_id, shaper_profile_delete)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, shaper_profile_delete)(dev,\n \t\tshaper_profile_id, error);\n+\n+\trte_tm_trace_shaper_profile_delete(port_id, shaper_profile_id, ret);\n+\n+\treturn ret;\n }\n \n /* Add shared shaper */\n@@ -196,8 +254,14 @@ 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-\treturn RTE_TM_FUNC(port_id, shared_shaper_add_update)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, shared_shaper_add_update)(dev,\n \t\tshared_shaper_id, shaper_profile_id, error);\n+\n+\trte_tm_trace_shared_shaper_add_update(port_id, shared_shaper_id,\n+\t\t\t\t\t      shaper_profile_id, ret);\n+\n+\treturn ret;\n }\n \n /* Delete shared shaper */\n@@ -206,8 +270,13 @@ 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-\treturn RTE_TM_FUNC(port_id, shared_shaper_delete)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, shared_shaper_delete)(dev,\n \t\tshared_shaper_id, error);\n+\n+\trte_tm_trace_shared_shaper_delete(port_id, shared_shaper_id, ret);\n+\n+\treturn ret;\n }\n \n /* Add node to port traffic manager hierarchy */\n@@ -221,9 +290,15 @@ 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-\treturn RTE_TM_FUNC(port_id, node_add)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, node_add)(dev,\n \t\tnode_id, parent_node_id, priority, weight, level_id,\n \t\tparams, error);\n+\n+\trte_tm_trace_node_add(port_id, node_id, parent_node_id, priority,\n+\t\t\t      weight, level_id, params, ret);\n+\n+\treturn ret;\n }\n \n /* Delete node from traffic manager hierarchy */\n@@ -232,8 +307,13 @@ 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-\treturn RTE_TM_FUNC(port_id, node_delete)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, node_delete)(dev,\n \t\tnode_id, error);\n+\n+\trte_tm_trace_node_delete(port_id, node_id, ret);\n+\n+\treturn ret;\n }\n \n /* Suspend node */\n@@ -242,8 +322,13 @@ 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-\treturn RTE_TM_FUNC(port_id, node_suspend)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, node_suspend)(dev,\n \t\tnode_id, error);\n+\n+\trte_tm_trace_node_suspend(port_id, node_id, ret);\n+\n+\treturn ret;\n }\n \n /* Resume node */\n@@ -252,8 +337,13 @@ 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-\treturn RTE_TM_FUNC(port_id, node_resume)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, node_resume)(dev,\n \t\tnode_id, error);\n+\n+\trte_tm_trace_node_resume(port_id, node_id, ret);\n+\n+\treturn ret;\n }\n \n /* Commit the initial port traffic manager hierarchy */\n@@ -262,8 +352,13 @@ 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-\treturn RTE_TM_FUNC(port_id, hierarchy_commit)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, hierarchy_commit)(dev,\n \t\tclear_on_fail, error);\n+\n+\trte_tm_trace_hierarchy_commit(port_id, clear_on_fail, ret);\n+\n+\treturn ret;\n }\n \n /* Update node parent  */\n@@ -275,8 +370,14 @@ 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-\treturn RTE_TM_FUNC(port_id, node_parent_update)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, node_parent_update)(dev,\n \t\tnode_id, parent_node_id, priority, weight, error);\n+\n+\trte_tm_trace_node_parent_update(port_id, node_id, parent_node_id,\n+\t\t\t\t\tpriority, weight, ret);\n+\n+\treturn ret;\n }\n \n /* Update node private shaper */\n@@ -286,8 +387,14 @@ 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-\treturn RTE_TM_FUNC(port_id, node_shaper_update)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, node_shaper_update)(dev,\n \t\tnode_id, shaper_profile_id, error);\n+\n+\trte_tm_trace_node_shaper_update(port_id, node_id, shaper_profile_id,\n+\t\t\t\t\tret);\n+\n+\treturn ret;\n }\n \n /* Update node shared shapers */\n@@ -298,8 +405,14 @@ 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-\treturn RTE_TM_FUNC(port_id, node_shared_shaper_update)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, node_shared_shaper_update)(dev,\n \t\tnode_id, shared_shaper_id, add, error);\n+\n+\trte_tm_trace_node_shared_shaper_update(port_id, node_id,\n+\t\t\t\t\t       shared_shaper_id, add, ret);\n+\n+\treturn ret;\n }\n \n /* Update node stats */\n@@ -309,8 +422,13 @@ 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-\treturn RTE_TM_FUNC(port_id, node_stats_update)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, node_stats_update)(dev,\n \t\tnode_id, stats_mask, error);\n+\n+\trte_tm_trace_node_stats_update(port_id, node_id, stats_mask, ret);\n+\n+\treturn ret;\n }\n \n /* Update WFQ weight mode */\n@@ -321,8 +439,15 @@ 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-\treturn RTE_TM_FUNC(port_id, node_wfq_weight_mode_update)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, node_wfq_weight_mode_update)(dev,\n \t\tnode_id, wfq_weight_mode, n_sp_priorities, error);\n+\n+\trte_tm_trace_node_wfq_weight_mode_update(port_id, node_id,\n+\t\t\t\t\t\t wfq_weight_mode,\n+\t\t\t\t\t\t n_sp_priorities, ret);\n+\n+\treturn ret;\n }\n \n /* Update node congestion management mode */\n@@ -332,8 +457,13 @@ 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-\treturn RTE_TM_FUNC(port_id, node_cman_update)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, node_cman_update)(dev,\n \t\tnode_id, cman, error);\n+\n+\trte_tm_trace_node_cman_update(port_id, node_id, cman, ret);\n+\n+\treturn ret;\n }\n \n /* Update node private WRED context */\n@@ -343,8 +473,14 @@ 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-\treturn RTE_TM_FUNC(port_id, node_wred_context_update)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, node_wred_context_update)(dev,\n \t\tnode_id, wred_profile_id, error);\n+\n+\trte_tm_trace_node_wred_context_update(port_id, node_id, wred_profile_id,\n+\t\t\t\t\t      ret);\n+\n+\treturn ret;\n }\n \n /* Update node shared WRED context */\n@@ -355,8 +491,15 @@ 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-\treturn RTE_TM_FUNC(port_id, node_shared_wred_context_update)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, node_shared_wred_context_update)(dev,\n \t\tnode_id, shared_wred_context_id, add, error);\n+\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, ret);\n+\n+\treturn ret;\n }\n \n /* Read and/or clear stats counters for specific node */\n@@ -368,8 +511,14 @@ 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-\treturn RTE_TM_FUNC(port_id, node_stats_read)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, node_stats_read)(dev,\n \t\tnode_id, stats, stats_mask, clear, error);\n+\n+\trte_tm_trace_node_stats_read(port_id, node_id, stats, *stats_mask,\n+\t\t\t\t     clear, ret);\n+\n+\treturn ret;\n }\n \n /* Packet marking - VLAN DEI */\n@@ -380,8 +529,14 @@ 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-\treturn RTE_TM_FUNC(port_id, mark_vlan_dei)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, mark_vlan_dei)(dev,\n \t\tmark_green, mark_yellow, mark_red, error);\n+\n+\trte_tm_trace_mark_vlan_dei(port_id, mark_green, mark_yellow, mark_red,\n+\t\t\t\t   ret);\n+\n+\treturn ret;\n }\n \n /* Packet marking - IPv4/IPv6 ECN */\n@@ -392,8 +547,14 @@ 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-\treturn RTE_TM_FUNC(port_id, mark_ip_ecn)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, mark_ip_ecn)(dev,\n \t\tmark_green, mark_yellow, mark_red, error);\n+\n+\trte_tm_trace_mark_ip_ecn(port_id, mark_green, mark_yellow, mark_red,\n+\t\t\t\t ret);\n+\n+\treturn ret;\n }\n \n /* Packet marking - IPv4/IPv6 DSCP */\n@@ -404,6 +565,12 @@ 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-\treturn RTE_TM_FUNC(port_id, mark_ip_dscp)(dev,\n+\tint ret;\n+\tret = RTE_TM_FUNC(port_id, mark_ip_dscp)(dev,\n \t\tmark_green, mark_yellow, mark_red, error);\n+\n+\trte_tm_trace_mark_ip_dscp(port_id, mark_green, mark_yellow, mark_red,\n+\t\t\t\t  ret);\n+\n+\treturn ret;\n }\n",
    "prefixes": [
        "v10",
        "6/6"
    ]
}