18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (c) 2018 Oracle. All rights reserved. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Trace point definitions for the "rpcgss" subsystem. 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#undef TRACE_SYSTEM 98c2ecf20Sopenharmony_ci#define TRACE_SYSTEM rpcgss 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#if !defined(_TRACE_RPCRDMA_H) || defined(TRACE_HEADER_MULTI_READ) 128c2ecf20Sopenharmony_ci#define _TRACE_RPCGSS_H 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci#include <linux/tracepoint.h> 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci/** 178c2ecf20Sopenharmony_ci ** GSS-API related trace events 188c2ecf20Sopenharmony_ci **/ 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(RPC_GSS_SVC_NONE); 218c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(RPC_GSS_SVC_INTEGRITY); 228c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(RPC_GSS_SVC_PRIVACY); 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci#define show_gss_service(x) \ 258c2ecf20Sopenharmony_ci __print_symbolic(x, \ 268c2ecf20Sopenharmony_ci { RPC_GSS_SVC_NONE, "none" }, \ 278c2ecf20Sopenharmony_ci { RPC_GSS_SVC_INTEGRITY, "integrity" }, \ 288c2ecf20Sopenharmony_ci { RPC_GSS_SVC_PRIVACY, "privacy" }) 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_BAD_MECH); 318c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_BAD_NAME); 328c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_BAD_NAMETYPE); 338c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_BAD_BINDINGS); 348c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_BAD_STATUS); 358c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_BAD_SIG); 368c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_NO_CRED); 378c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_NO_CONTEXT); 388c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_DEFECTIVE_TOKEN); 398c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_DEFECTIVE_CREDENTIAL); 408c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_CREDENTIALS_EXPIRED); 418c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_CONTEXT_EXPIRED); 428c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_FAILURE); 438c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_BAD_QOP); 448c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_UNAUTHORIZED); 458c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_UNAVAILABLE); 468c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_DUPLICATE_ELEMENT); 478c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_NAME_NOT_MN); 488c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_CONTINUE_NEEDED); 498c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_DUPLICATE_TOKEN); 508c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_OLD_TOKEN); 518c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_UNSEQ_TOKEN); 528c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(GSS_S_GAP_TOKEN); 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci#define show_gss_status(x) \ 558c2ecf20Sopenharmony_ci __print_flags(x, "|", \ 568c2ecf20Sopenharmony_ci { GSS_S_BAD_MECH, "GSS_S_BAD_MECH" }, \ 578c2ecf20Sopenharmony_ci { GSS_S_BAD_NAME, "GSS_S_BAD_NAME" }, \ 588c2ecf20Sopenharmony_ci { GSS_S_BAD_NAMETYPE, "GSS_S_BAD_NAMETYPE" }, \ 598c2ecf20Sopenharmony_ci { GSS_S_BAD_BINDINGS, "GSS_S_BAD_BINDINGS" }, \ 608c2ecf20Sopenharmony_ci { GSS_S_BAD_STATUS, "GSS_S_BAD_STATUS" }, \ 618c2ecf20Sopenharmony_ci { GSS_S_BAD_SIG, "GSS_S_BAD_SIG" }, \ 628c2ecf20Sopenharmony_ci { GSS_S_NO_CRED, "GSS_S_NO_CRED" }, \ 638c2ecf20Sopenharmony_ci { GSS_S_NO_CONTEXT, "GSS_S_NO_CONTEXT" }, \ 648c2ecf20Sopenharmony_ci { GSS_S_DEFECTIVE_TOKEN, "GSS_S_DEFECTIVE_TOKEN" }, \ 658c2ecf20Sopenharmony_ci { GSS_S_DEFECTIVE_CREDENTIAL, "GSS_S_DEFECTIVE_CREDENTIAL" }, \ 668c2ecf20Sopenharmony_ci { GSS_S_CREDENTIALS_EXPIRED, "GSS_S_CREDENTIALS_EXPIRED" }, \ 678c2ecf20Sopenharmony_ci { GSS_S_CONTEXT_EXPIRED, "GSS_S_CONTEXT_EXPIRED" }, \ 688c2ecf20Sopenharmony_ci { GSS_S_FAILURE, "GSS_S_FAILURE" }, \ 698c2ecf20Sopenharmony_ci { GSS_S_BAD_QOP, "GSS_S_BAD_QOP" }, \ 708c2ecf20Sopenharmony_ci { GSS_S_UNAUTHORIZED, "GSS_S_UNAUTHORIZED" }, \ 718c2ecf20Sopenharmony_ci { GSS_S_UNAVAILABLE, "GSS_S_UNAVAILABLE" }, \ 728c2ecf20Sopenharmony_ci { GSS_S_DUPLICATE_ELEMENT, "GSS_S_DUPLICATE_ELEMENT" }, \ 738c2ecf20Sopenharmony_ci { GSS_S_NAME_NOT_MN, "GSS_S_NAME_NOT_MN" }, \ 748c2ecf20Sopenharmony_ci { GSS_S_CONTINUE_NEEDED, "GSS_S_CONTINUE_NEEDED" }, \ 758c2ecf20Sopenharmony_ci { GSS_S_DUPLICATE_TOKEN, "GSS_S_DUPLICATE_TOKEN" }, \ 768c2ecf20Sopenharmony_ci { GSS_S_OLD_TOKEN, "GSS_S_OLD_TOKEN" }, \ 778c2ecf20Sopenharmony_ci { GSS_S_UNSEQ_TOKEN, "GSS_S_UNSEQ_TOKEN" }, \ 788c2ecf20Sopenharmony_ci { GSS_S_GAP_TOKEN, "GSS_S_GAP_TOKEN" }) 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(rpcgss_gssapi_event, 828c2ecf20Sopenharmony_ci TP_PROTO( 838c2ecf20Sopenharmony_ci const struct rpc_task *task, 848c2ecf20Sopenharmony_ci u32 maj_stat 858c2ecf20Sopenharmony_ci ), 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci TP_ARGS(task, maj_stat), 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ci TP_STRUCT__entry( 908c2ecf20Sopenharmony_ci __field(unsigned int, task_id) 918c2ecf20Sopenharmony_ci __field(unsigned int, client_id) 928c2ecf20Sopenharmony_ci __field(u32, maj_stat) 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ci ), 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci TP_fast_assign( 978c2ecf20Sopenharmony_ci __entry->task_id = task->tk_pid; 988c2ecf20Sopenharmony_ci __entry->client_id = task->tk_client->cl_clid; 998c2ecf20Sopenharmony_ci __entry->maj_stat = maj_stat; 1008c2ecf20Sopenharmony_ci ), 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ci TP_printk("task:%u@%u maj_stat=%s", 1038c2ecf20Sopenharmony_ci __entry->task_id, __entry->client_id, 1048c2ecf20Sopenharmony_ci __entry->maj_stat == 0 ? 1058c2ecf20Sopenharmony_ci "GSS_S_COMPLETE" : show_gss_status(__entry->maj_stat)) 1068c2ecf20Sopenharmony_ci); 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci#define DEFINE_GSSAPI_EVENT(name) \ 1098c2ecf20Sopenharmony_ci DEFINE_EVENT(rpcgss_gssapi_event, rpcgss_##name, \ 1108c2ecf20Sopenharmony_ci TP_PROTO( \ 1118c2ecf20Sopenharmony_ci const struct rpc_task *task, \ 1128c2ecf20Sopenharmony_ci u32 maj_stat \ 1138c2ecf20Sopenharmony_ci ), \ 1148c2ecf20Sopenharmony_ci TP_ARGS(task, maj_stat)) 1158c2ecf20Sopenharmony_ci 1168c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_import_ctx, 1178c2ecf20Sopenharmony_ci TP_PROTO( 1188c2ecf20Sopenharmony_ci int status 1198c2ecf20Sopenharmony_ci ), 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ci TP_ARGS(status), 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ci TP_STRUCT__entry( 1248c2ecf20Sopenharmony_ci __field(int, status) 1258c2ecf20Sopenharmony_ci ), 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ci TP_fast_assign( 1288c2ecf20Sopenharmony_ci __entry->status = status; 1298c2ecf20Sopenharmony_ci ), 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ci TP_printk("status=%d", __entry->status) 1328c2ecf20Sopenharmony_ci); 1338c2ecf20Sopenharmony_ci 1348c2ecf20Sopenharmony_ciDEFINE_GSSAPI_EVENT(get_mic); 1358c2ecf20Sopenharmony_ciDEFINE_GSSAPI_EVENT(verify_mic); 1368c2ecf20Sopenharmony_ciDEFINE_GSSAPI_EVENT(wrap); 1378c2ecf20Sopenharmony_ciDEFINE_GSSAPI_EVENT(unwrap); 1388c2ecf20Sopenharmony_ci 1398c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(rpcgss_ctx_class, 1408c2ecf20Sopenharmony_ci TP_PROTO( 1418c2ecf20Sopenharmony_ci const struct gss_cred *gc 1428c2ecf20Sopenharmony_ci ), 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ci TP_ARGS(gc), 1458c2ecf20Sopenharmony_ci 1468c2ecf20Sopenharmony_ci TP_STRUCT__entry( 1478c2ecf20Sopenharmony_ci __field(const void *, cred) 1488c2ecf20Sopenharmony_ci __field(unsigned long, service) 1498c2ecf20Sopenharmony_ci __string(principal, gc->gc_principal) 1508c2ecf20Sopenharmony_ci ), 1518c2ecf20Sopenharmony_ci 1528c2ecf20Sopenharmony_ci TP_fast_assign( 1538c2ecf20Sopenharmony_ci __entry->cred = gc; 1548c2ecf20Sopenharmony_ci __entry->service = gc->gc_service; 1558c2ecf20Sopenharmony_ci __assign_str(principal, gc->gc_principal) 1568c2ecf20Sopenharmony_ci ), 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_ci TP_printk("cred=%p service=%s principal='%s'", 1598c2ecf20Sopenharmony_ci __entry->cred, show_gss_service(__entry->service), 1608c2ecf20Sopenharmony_ci __get_str(principal)) 1618c2ecf20Sopenharmony_ci); 1628c2ecf20Sopenharmony_ci 1638c2ecf20Sopenharmony_ci#define DEFINE_CTX_EVENT(name) \ 1648c2ecf20Sopenharmony_ci DEFINE_EVENT(rpcgss_ctx_class, rpcgss_ctx_##name, \ 1658c2ecf20Sopenharmony_ci TP_PROTO( \ 1668c2ecf20Sopenharmony_ci const struct gss_cred *gc \ 1678c2ecf20Sopenharmony_ci ), \ 1688c2ecf20Sopenharmony_ci TP_ARGS(gc)) 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_ciDEFINE_CTX_EVENT(init); 1718c2ecf20Sopenharmony_ciDEFINE_CTX_EVENT(destroy); 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(rpcgss_svc_gssapi_class, 1748c2ecf20Sopenharmony_ci TP_PROTO( 1758c2ecf20Sopenharmony_ci const struct svc_rqst *rqstp, 1768c2ecf20Sopenharmony_ci u32 maj_stat 1778c2ecf20Sopenharmony_ci ), 1788c2ecf20Sopenharmony_ci 1798c2ecf20Sopenharmony_ci TP_ARGS(rqstp, maj_stat), 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ci TP_STRUCT__entry( 1828c2ecf20Sopenharmony_ci __field(u32, xid) 1838c2ecf20Sopenharmony_ci __field(u32, maj_stat) 1848c2ecf20Sopenharmony_ci __string(addr, rqstp->rq_xprt->xpt_remotebuf) 1858c2ecf20Sopenharmony_ci ), 1868c2ecf20Sopenharmony_ci 1878c2ecf20Sopenharmony_ci TP_fast_assign( 1888c2ecf20Sopenharmony_ci __entry->xid = __be32_to_cpu(rqstp->rq_xid); 1898c2ecf20Sopenharmony_ci __entry->maj_stat = maj_stat; 1908c2ecf20Sopenharmony_ci __assign_str(addr, rqstp->rq_xprt->xpt_remotebuf); 1918c2ecf20Sopenharmony_ci ), 1928c2ecf20Sopenharmony_ci 1938c2ecf20Sopenharmony_ci TP_printk("addr=%s xid=0x%08x maj_stat=%s", 1948c2ecf20Sopenharmony_ci __get_str(addr), __entry->xid, 1958c2ecf20Sopenharmony_ci __entry->maj_stat == 0 ? 1968c2ecf20Sopenharmony_ci "GSS_S_COMPLETE" : show_gss_status(__entry->maj_stat)) 1978c2ecf20Sopenharmony_ci); 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ci#define DEFINE_SVC_GSSAPI_EVENT(name) \ 2008c2ecf20Sopenharmony_ci DEFINE_EVENT(rpcgss_svc_gssapi_class, rpcgss_svc_##name, \ 2018c2ecf20Sopenharmony_ci TP_PROTO( \ 2028c2ecf20Sopenharmony_ci const struct svc_rqst *rqstp, \ 2038c2ecf20Sopenharmony_ci u32 maj_stat \ 2048c2ecf20Sopenharmony_ci ), \ 2058c2ecf20Sopenharmony_ci TP_ARGS(rqstp, maj_stat)) 2068c2ecf20Sopenharmony_ci 2078c2ecf20Sopenharmony_ciDEFINE_SVC_GSSAPI_EVENT(unwrap); 2088c2ecf20Sopenharmony_ciDEFINE_SVC_GSSAPI_EVENT(mic); 2098c2ecf20Sopenharmony_ci 2108c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_svc_unwrap_failed, 2118c2ecf20Sopenharmony_ci TP_PROTO( 2128c2ecf20Sopenharmony_ci const struct svc_rqst *rqstp 2138c2ecf20Sopenharmony_ci ), 2148c2ecf20Sopenharmony_ci 2158c2ecf20Sopenharmony_ci TP_ARGS(rqstp), 2168c2ecf20Sopenharmony_ci 2178c2ecf20Sopenharmony_ci TP_STRUCT__entry( 2188c2ecf20Sopenharmony_ci __field(u32, xid) 2198c2ecf20Sopenharmony_ci __string(addr, rqstp->rq_xprt->xpt_remotebuf) 2208c2ecf20Sopenharmony_ci ), 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_ci TP_fast_assign( 2238c2ecf20Sopenharmony_ci __entry->xid = be32_to_cpu(rqstp->rq_xid); 2248c2ecf20Sopenharmony_ci __assign_str(addr, rqstp->rq_xprt->xpt_remotebuf); 2258c2ecf20Sopenharmony_ci ), 2268c2ecf20Sopenharmony_ci 2278c2ecf20Sopenharmony_ci TP_printk("addr=%s xid=0x%08x", __get_str(addr), __entry->xid) 2288c2ecf20Sopenharmony_ci); 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_svc_seqno_bad, 2318c2ecf20Sopenharmony_ci TP_PROTO( 2328c2ecf20Sopenharmony_ci const struct svc_rqst *rqstp, 2338c2ecf20Sopenharmony_ci u32 expected, 2348c2ecf20Sopenharmony_ci u32 received 2358c2ecf20Sopenharmony_ci ), 2368c2ecf20Sopenharmony_ci 2378c2ecf20Sopenharmony_ci TP_ARGS(rqstp, expected, received), 2388c2ecf20Sopenharmony_ci 2398c2ecf20Sopenharmony_ci TP_STRUCT__entry( 2408c2ecf20Sopenharmony_ci __field(u32, expected) 2418c2ecf20Sopenharmony_ci __field(u32, received) 2428c2ecf20Sopenharmony_ci __field(u32, xid) 2438c2ecf20Sopenharmony_ci __string(addr, rqstp->rq_xprt->xpt_remotebuf) 2448c2ecf20Sopenharmony_ci ), 2458c2ecf20Sopenharmony_ci 2468c2ecf20Sopenharmony_ci TP_fast_assign( 2478c2ecf20Sopenharmony_ci __entry->expected = expected; 2488c2ecf20Sopenharmony_ci __entry->received = received; 2498c2ecf20Sopenharmony_ci __entry->xid = __be32_to_cpu(rqstp->rq_xid); 2508c2ecf20Sopenharmony_ci __assign_str(addr, rqstp->rq_xprt->xpt_remotebuf); 2518c2ecf20Sopenharmony_ci ), 2528c2ecf20Sopenharmony_ci 2538c2ecf20Sopenharmony_ci TP_printk("addr=%s xid=0x%08x expected seqno %u, received seqno %u", 2548c2ecf20Sopenharmony_ci __get_str(addr), __entry->xid, 2558c2ecf20Sopenharmony_ci __entry->expected, __entry->received) 2568c2ecf20Sopenharmony_ci); 2578c2ecf20Sopenharmony_ci 2588c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_svc_accept_upcall, 2598c2ecf20Sopenharmony_ci TP_PROTO( 2608c2ecf20Sopenharmony_ci const struct svc_rqst *rqstp, 2618c2ecf20Sopenharmony_ci u32 major_status, 2628c2ecf20Sopenharmony_ci u32 minor_status 2638c2ecf20Sopenharmony_ci ), 2648c2ecf20Sopenharmony_ci 2658c2ecf20Sopenharmony_ci TP_ARGS(rqstp, major_status, minor_status), 2668c2ecf20Sopenharmony_ci 2678c2ecf20Sopenharmony_ci TP_STRUCT__entry( 2688c2ecf20Sopenharmony_ci __field(u32, minor_status) 2698c2ecf20Sopenharmony_ci __field(unsigned long, major_status) 2708c2ecf20Sopenharmony_ci __field(u32, xid) 2718c2ecf20Sopenharmony_ci __string(addr, rqstp->rq_xprt->xpt_remotebuf) 2728c2ecf20Sopenharmony_ci ), 2738c2ecf20Sopenharmony_ci 2748c2ecf20Sopenharmony_ci TP_fast_assign( 2758c2ecf20Sopenharmony_ci __entry->minor_status = minor_status; 2768c2ecf20Sopenharmony_ci __entry->major_status = major_status; 2778c2ecf20Sopenharmony_ci __entry->xid = be32_to_cpu(rqstp->rq_xid); 2788c2ecf20Sopenharmony_ci __assign_str(addr, rqstp->rq_xprt->xpt_remotebuf); 2798c2ecf20Sopenharmony_ci ), 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_ci TP_printk("addr=%s xid=0x%08x major_status=%s (0x%08lx) minor_status=%u", 2828c2ecf20Sopenharmony_ci __get_str(addr), __entry->xid, 2838c2ecf20Sopenharmony_ci (__entry->major_status == 0) ? "GSS_S_COMPLETE" : 2848c2ecf20Sopenharmony_ci show_gss_status(__entry->major_status), 2858c2ecf20Sopenharmony_ci __entry->major_status, __entry->minor_status 2868c2ecf20Sopenharmony_ci ) 2878c2ecf20Sopenharmony_ci); 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_svc_authenticate, 2908c2ecf20Sopenharmony_ci TP_PROTO( 2918c2ecf20Sopenharmony_ci const struct svc_rqst *rqstp, 2928c2ecf20Sopenharmony_ci const struct rpc_gss_wire_cred *gc 2938c2ecf20Sopenharmony_ci ), 2948c2ecf20Sopenharmony_ci 2958c2ecf20Sopenharmony_ci TP_ARGS(rqstp, gc), 2968c2ecf20Sopenharmony_ci 2978c2ecf20Sopenharmony_ci TP_STRUCT__entry( 2988c2ecf20Sopenharmony_ci __field(u32, seqno) 2998c2ecf20Sopenharmony_ci __field(u32, xid) 3008c2ecf20Sopenharmony_ci __string(addr, rqstp->rq_xprt->xpt_remotebuf) 3018c2ecf20Sopenharmony_ci ), 3028c2ecf20Sopenharmony_ci 3038c2ecf20Sopenharmony_ci TP_fast_assign( 3048c2ecf20Sopenharmony_ci __entry->xid = be32_to_cpu(rqstp->rq_xid); 3058c2ecf20Sopenharmony_ci __entry->seqno = gc->gc_seq; 3068c2ecf20Sopenharmony_ci __assign_str(addr, rqstp->rq_xprt->xpt_remotebuf); 3078c2ecf20Sopenharmony_ci ), 3088c2ecf20Sopenharmony_ci 3098c2ecf20Sopenharmony_ci TP_printk("addr=%s xid=0x%08x seqno=%u", __get_str(addr), 3108c2ecf20Sopenharmony_ci __entry->xid, __entry->seqno) 3118c2ecf20Sopenharmony_ci); 3128c2ecf20Sopenharmony_ci 3138c2ecf20Sopenharmony_ci 3148c2ecf20Sopenharmony_ci/** 3158c2ecf20Sopenharmony_ci ** GSS auth unwrap failures 3168c2ecf20Sopenharmony_ci **/ 3178c2ecf20Sopenharmony_ci 3188c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_unwrap_failed, 3198c2ecf20Sopenharmony_ci TP_PROTO( 3208c2ecf20Sopenharmony_ci const struct rpc_task *task 3218c2ecf20Sopenharmony_ci ), 3228c2ecf20Sopenharmony_ci 3238c2ecf20Sopenharmony_ci TP_ARGS(task), 3248c2ecf20Sopenharmony_ci 3258c2ecf20Sopenharmony_ci TP_STRUCT__entry( 3268c2ecf20Sopenharmony_ci __field(unsigned int, task_id) 3278c2ecf20Sopenharmony_ci __field(unsigned int, client_id) 3288c2ecf20Sopenharmony_ci ), 3298c2ecf20Sopenharmony_ci 3308c2ecf20Sopenharmony_ci TP_fast_assign( 3318c2ecf20Sopenharmony_ci __entry->task_id = task->tk_pid; 3328c2ecf20Sopenharmony_ci __entry->client_id = task->tk_client->cl_clid; 3338c2ecf20Sopenharmony_ci ), 3348c2ecf20Sopenharmony_ci 3358c2ecf20Sopenharmony_ci TP_printk("task:%u@%u", __entry->task_id, __entry->client_id) 3368c2ecf20Sopenharmony_ci); 3378c2ecf20Sopenharmony_ci 3388c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_bad_seqno, 3398c2ecf20Sopenharmony_ci TP_PROTO( 3408c2ecf20Sopenharmony_ci const struct rpc_task *task, 3418c2ecf20Sopenharmony_ci u32 expected, 3428c2ecf20Sopenharmony_ci u32 received 3438c2ecf20Sopenharmony_ci ), 3448c2ecf20Sopenharmony_ci 3458c2ecf20Sopenharmony_ci TP_ARGS(task, expected, received), 3468c2ecf20Sopenharmony_ci 3478c2ecf20Sopenharmony_ci TP_STRUCT__entry( 3488c2ecf20Sopenharmony_ci __field(unsigned int, task_id) 3498c2ecf20Sopenharmony_ci __field(unsigned int, client_id) 3508c2ecf20Sopenharmony_ci __field(u32, expected) 3518c2ecf20Sopenharmony_ci __field(u32, received) 3528c2ecf20Sopenharmony_ci ), 3538c2ecf20Sopenharmony_ci 3548c2ecf20Sopenharmony_ci TP_fast_assign( 3558c2ecf20Sopenharmony_ci __entry->task_id = task->tk_pid; 3568c2ecf20Sopenharmony_ci __entry->client_id = task->tk_client->cl_clid; 3578c2ecf20Sopenharmony_ci __entry->expected = expected; 3588c2ecf20Sopenharmony_ci __entry->received = received; 3598c2ecf20Sopenharmony_ci ), 3608c2ecf20Sopenharmony_ci 3618c2ecf20Sopenharmony_ci TP_printk("task:%u@%u expected seqno %u, received seqno %u", 3628c2ecf20Sopenharmony_ci __entry->task_id, __entry->client_id, 3638c2ecf20Sopenharmony_ci __entry->expected, __entry->received) 3648c2ecf20Sopenharmony_ci); 3658c2ecf20Sopenharmony_ci 3668c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_seqno, 3678c2ecf20Sopenharmony_ci TP_PROTO( 3688c2ecf20Sopenharmony_ci const struct rpc_task *task 3698c2ecf20Sopenharmony_ci ), 3708c2ecf20Sopenharmony_ci 3718c2ecf20Sopenharmony_ci TP_ARGS(task), 3728c2ecf20Sopenharmony_ci 3738c2ecf20Sopenharmony_ci TP_STRUCT__entry( 3748c2ecf20Sopenharmony_ci __field(unsigned int, task_id) 3758c2ecf20Sopenharmony_ci __field(unsigned int, client_id) 3768c2ecf20Sopenharmony_ci __field(u32, xid) 3778c2ecf20Sopenharmony_ci __field(u32, seqno) 3788c2ecf20Sopenharmony_ci ), 3798c2ecf20Sopenharmony_ci 3808c2ecf20Sopenharmony_ci TP_fast_assign( 3818c2ecf20Sopenharmony_ci const struct rpc_rqst *rqst = task->tk_rqstp; 3828c2ecf20Sopenharmony_ci 3838c2ecf20Sopenharmony_ci __entry->task_id = task->tk_pid; 3848c2ecf20Sopenharmony_ci __entry->client_id = task->tk_client->cl_clid; 3858c2ecf20Sopenharmony_ci __entry->xid = be32_to_cpu(rqst->rq_xid); 3868c2ecf20Sopenharmony_ci __entry->seqno = rqst->rq_seqno; 3878c2ecf20Sopenharmony_ci ), 3888c2ecf20Sopenharmony_ci 3898c2ecf20Sopenharmony_ci TP_printk("task:%u@%u xid=0x%08x seqno=%u", 3908c2ecf20Sopenharmony_ci __entry->task_id, __entry->client_id, 3918c2ecf20Sopenharmony_ci __entry->xid, __entry->seqno) 3928c2ecf20Sopenharmony_ci); 3938c2ecf20Sopenharmony_ci 3948c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_need_reencode, 3958c2ecf20Sopenharmony_ci TP_PROTO( 3968c2ecf20Sopenharmony_ci const struct rpc_task *task, 3978c2ecf20Sopenharmony_ci u32 seq_xmit, 3988c2ecf20Sopenharmony_ci bool ret 3998c2ecf20Sopenharmony_ci ), 4008c2ecf20Sopenharmony_ci 4018c2ecf20Sopenharmony_ci TP_ARGS(task, seq_xmit, ret), 4028c2ecf20Sopenharmony_ci 4038c2ecf20Sopenharmony_ci TP_STRUCT__entry( 4048c2ecf20Sopenharmony_ci __field(unsigned int, task_id) 4058c2ecf20Sopenharmony_ci __field(unsigned int, client_id) 4068c2ecf20Sopenharmony_ci __field(u32, xid) 4078c2ecf20Sopenharmony_ci __field(u32, seq_xmit) 4088c2ecf20Sopenharmony_ci __field(u32, seqno) 4098c2ecf20Sopenharmony_ci __field(bool, ret) 4108c2ecf20Sopenharmony_ci ), 4118c2ecf20Sopenharmony_ci 4128c2ecf20Sopenharmony_ci TP_fast_assign( 4138c2ecf20Sopenharmony_ci __entry->task_id = task->tk_pid; 4148c2ecf20Sopenharmony_ci __entry->client_id = task->tk_client->cl_clid; 4158c2ecf20Sopenharmony_ci __entry->xid = be32_to_cpu(task->tk_rqstp->rq_xid); 4168c2ecf20Sopenharmony_ci __entry->seq_xmit = seq_xmit; 4178c2ecf20Sopenharmony_ci __entry->seqno = task->tk_rqstp->rq_seqno; 4188c2ecf20Sopenharmony_ci __entry->ret = ret; 4198c2ecf20Sopenharmony_ci ), 4208c2ecf20Sopenharmony_ci 4218c2ecf20Sopenharmony_ci TP_printk("task:%u@%u xid=0x%08x rq_seqno=%u seq_xmit=%u reencode %sneeded", 4228c2ecf20Sopenharmony_ci __entry->task_id, __entry->client_id, 4238c2ecf20Sopenharmony_ci __entry->xid, __entry->seqno, __entry->seq_xmit, 4248c2ecf20Sopenharmony_ci __entry->ret ? "" : "un") 4258c2ecf20Sopenharmony_ci); 4268c2ecf20Sopenharmony_ci 4278c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_update_slack, 4288c2ecf20Sopenharmony_ci TP_PROTO( 4298c2ecf20Sopenharmony_ci const struct rpc_task *task, 4308c2ecf20Sopenharmony_ci const struct rpc_auth *auth 4318c2ecf20Sopenharmony_ci ), 4328c2ecf20Sopenharmony_ci 4338c2ecf20Sopenharmony_ci TP_ARGS(task, auth), 4348c2ecf20Sopenharmony_ci 4358c2ecf20Sopenharmony_ci TP_STRUCT__entry( 4368c2ecf20Sopenharmony_ci __field(unsigned int, task_id) 4378c2ecf20Sopenharmony_ci __field(unsigned int, client_id) 4388c2ecf20Sopenharmony_ci __field(u32, xid) 4398c2ecf20Sopenharmony_ci __field(const void *, auth) 4408c2ecf20Sopenharmony_ci __field(unsigned int, rslack) 4418c2ecf20Sopenharmony_ci __field(unsigned int, ralign) 4428c2ecf20Sopenharmony_ci __field(unsigned int, verfsize) 4438c2ecf20Sopenharmony_ci ), 4448c2ecf20Sopenharmony_ci 4458c2ecf20Sopenharmony_ci TP_fast_assign( 4468c2ecf20Sopenharmony_ci __entry->task_id = task->tk_pid; 4478c2ecf20Sopenharmony_ci __entry->client_id = task->tk_client->cl_clid; 4488c2ecf20Sopenharmony_ci __entry->xid = be32_to_cpu(task->tk_rqstp->rq_xid); 4498c2ecf20Sopenharmony_ci __entry->auth = auth; 4508c2ecf20Sopenharmony_ci __entry->rslack = auth->au_rslack; 4518c2ecf20Sopenharmony_ci __entry->ralign = auth->au_ralign; 4528c2ecf20Sopenharmony_ci __entry->verfsize = auth->au_verfsize; 4538c2ecf20Sopenharmony_ci ), 4548c2ecf20Sopenharmony_ci 4558c2ecf20Sopenharmony_ci TP_printk("task:%u@%u xid=0x%08x auth=%p rslack=%u ralign=%u verfsize=%u\n", 4568c2ecf20Sopenharmony_ci __entry->task_id, __entry->client_id, __entry->xid, 4578c2ecf20Sopenharmony_ci __entry->auth, __entry->rslack, __entry->ralign, 4588c2ecf20Sopenharmony_ci __entry->verfsize) 4598c2ecf20Sopenharmony_ci); 4608c2ecf20Sopenharmony_ci 4618c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(rpcgss_svc_seqno_class, 4628c2ecf20Sopenharmony_ci TP_PROTO( 4638c2ecf20Sopenharmony_ci const struct svc_rqst *rqstp, 4648c2ecf20Sopenharmony_ci u32 seqno 4658c2ecf20Sopenharmony_ci ), 4668c2ecf20Sopenharmony_ci 4678c2ecf20Sopenharmony_ci TP_ARGS(rqstp, seqno), 4688c2ecf20Sopenharmony_ci 4698c2ecf20Sopenharmony_ci TP_STRUCT__entry( 4708c2ecf20Sopenharmony_ci __field(u32, xid) 4718c2ecf20Sopenharmony_ci __field(u32, seqno) 4728c2ecf20Sopenharmony_ci ), 4738c2ecf20Sopenharmony_ci 4748c2ecf20Sopenharmony_ci TP_fast_assign( 4758c2ecf20Sopenharmony_ci __entry->xid = be32_to_cpu(rqstp->rq_xid); 4768c2ecf20Sopenharmony_ci __entry->seqno = seqno; 4778c2ecf20Sopenharmony_ci ), 4788c2ecf20Sopenharmony_ci 4798c2ecf20Sopenharmony_ci TP_printk("xid=0x%08x seqno=%u", 4808c2ecf20Sopenharmony_ci __entry->xid, __entry->seqno) 4818c2ecf20Sopenharmony_ci); 4828c2ecf20Sopenharmony_ci 4838c2ecf20Sopenharmony_ci#define DEFINE_SVC_SEQNO_EVENT(name) \ 4848c2ecf20Sopenharmony_ci DEFINE_EVENT(rpcgss_svc_seqno_class, rpcgss_svc_seqno_##name, \ 4858c2ecf20Sopenharmony_ci TP_PROTO( \ 4868c2ecf20Sopenharmony_ci const struct svc_rqst *rqstp, \ 4878c2ecf20Sopenharmony_ci u32 seqno \ 4888c2ecf20Sopenharmony_ci ), \ 4898c2ecf20Sopenharmony_ci TP_ARGS(rqstp, seqno)) 4908c2ecf20Sopenharmony_ci 4918c2ecf20Sopenharmony_ciDEFINE_SVC_SEQNO_EVENT(large); 4928c2ecf20Sopenharmony_ciDEFINE_SVC_SEQNO_EVENT(seen); 4938c2ecf20Sopenharmony_ci 4948c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_svc_seqno_low, 4958c2ecf20Sopenharmony_ci TP_PROTO( 4968c2ecf20Sopenharmony_ci const struct svc_rqst *rqstp, 4978c2ecf20Sopenharmony_ci u32 seqno, 4988c2ecf20Sopenharmony_ci u32 min, 4998c2ecf20Sopenharmony_ci u32 max 5008c2ecf20Sopenharmony_ci ), 5018c2ecf20Sopenharmony_ci 5028c2ecf20Sopenharmony_ci TP_ARGS(rqstp, seqno, min, max), 5038c2ecf20Sopenharmony_ci 5048c2ecf20Sopenharmony_ci TP_STRUCT__entry( 5058c2ecf20Sopenharmony_ci __field(u32, xid) 5068c2ecf20Sopenharmony_ci __field(u32, seqno) 5078c2ecf20Sopenharmony_ci __field(u32, min) 5088c2ecf20Sopenharmony_ci __field(u32, max) 5098c2ecf20Sopenharmony_ci ), 5108c2ecf20Sopenharmony_ci 5118c2ecf20Sopenharmony_ci TP_fast_assign( 5128c2ecf20Sopenharmony_ci __entry->xid = be32_to_cpu(rqstp->rq_xid); 5138c2ecf20Sopenharmony_ci __entry->seqno = seqno; 5148c2ecf20Sopenharmony_ci __entry->min = min; 5158c2ecf20Sopenharmony_ci __entry->max = max; 5168c2ecf20Sopenharmony_ci ), 5178c2ecf20Sopenharmony_ci 5188c2ecf20Sopenharmony_ci TP_printk("xid=0x%08x seqno=%u window=[%u..%u]", 5198c2ecf20Sopenharmony_ci __entry->xid, __entry->seqno, __entry->min, __entry->max) 5208c2ecf20Sopenharmony_ci); 5218c2ecf20Sopenharmony_ci 5228c2ecf20Sopenharmony_ci/** 5238c2ecf20Sopenharmony_ci ** gssd upcall related trace events 5248c2ecf20Sopenharmony_ci **/ 5258c2ecf20Sopenharmony_ci 5268c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_upcall_msg, 5278c2ecf20Sopenharmony_ci TP_PROTO( 5288c2ecf20Sopenharmony_ci const char *buf 5298c2ecf20Sopenharmony_ci ), 5308c2ecf20Sopenharmony_ci 5318c2ecf20Sopenharmony_ci TP_ARGS(buf), 5328c2ecf20Sopenharmony_ci 5338c2ecf20Sopenharmony_ci TP_STRUCT__entry( 5348c2ecf20Sopenharmony_ci __string(msg, buf) 5358c2ecf20Sopenharmony_ci ), 5368c2ecf20Sopenharmony_ci 5378c2ecf20Sopenharmony_ci TP_fast_assign( 5388c2ecf20Sopenharmony_ci __assign_str(msg, buf) 5398c2ecf20Sopenharmony_ci ), 5408c2ecf20Sopenharmony_ci 5418c2ecf20Sopenharmony_ci TP_printk("msg='%s'", __get_str(msg)) 5428c2ecf20Sopenharmony_ci); 5438c2ecf20Sopenharmony_ci 5448c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_upcall_result, 5458c2ecf20Sopenharmony_ci TP_PROTO( 5468c2ecf20Sopenharmony_ci u32 uid, 5478c2ecf20Sopenharmony_ci int result 5488c2ecf20Sopenharmony_ci ), 5498c2ecf20Sopenharmony_ci 5508c2ecf20Sopenharmony_ci TP_ARGS(uid, result), 5518c2ecf20Sopenharmony_ci 5528c2ecf20Sopenharmony_ci TP_STRUCT__entry( 5538c2ecf20Sopenharmony_ci __field(u32, uid) 5548c2ecf20Sopenharmony_ci __field(int, result) 5558c2ecf20Sopenharmony_ci 5568c2ecf20Sopenharmony_ci ), 5578c2ecf20Sopenharmony_ci 5588c2ecf20Sopenharmony_ci TP_fast_assign( 5598c2ecf20Sopenharmony_ci __entry->uid = uid; 5608c2ecf20Sopenharmony_ci __entry->result = result; 5618c2ecf20Sopenharmony_ci ), 5628c2ecf20Sopenharmony_ci 5638c2ecf20Sopenharmony_ci TP_printk("for uid %u, result=%d", __entry->uid, __entry->result) 5648c2ecf20Sopenharmony_ci); 5658c2ecf20Sopenharmony_ci 5668c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_context, 5678c2ecf20Sopenharmony_ci TP_PROTO( 5688c2ecf20Sopenharmony_ci u32 window_size, 5698c2ecf20Sopenharmony_ci unsigned long expiry, 5708c2ecf20Sopenharmony_ci unsigned long now, 5718c2ecf20Sopenharmony_ci unsigned int timeout, 5728c2ecf20Sopenharmony_ci unsigned int len, 5738c2ecf20Sopenharmony_ci const u8 *data 5748c2ecf20Sopenharmony_ci ), 5758c2ecf20Sopenharmony_ci 5768c2ecf20Sopenharmony_ci TP_ARGS(window_size, expiry, now, timeout, len, data), 5778c2ecf20Sopenharmony_ci 5788c2ecf20Sopenharmony_ci TP_STRUCT__entry( 5798c2ecf20Sopenharmony_ci __field(unsigned long, expiry) 5808c2ecf20Sopenharmony_ci __field(unsigned long, now) 5818c2ecf20Sopenharmony_ci __field(unsigned int, timeout) 5828c2ecf20Sopenharmony_ci __field(u32, window_size) 5838c2ecf20Sopenharmony_ci __field(int, len) 5848c2ecf20Sopenharmony_ci __string(acceptor, data) 5858c2ecf20Sopenharmony_ci ), 5868c2ecf20Sopenharmony_ci 5878c2ecf20Sopenharmony_ci TP_fast_assign( 5888c2ecf20Sopenharmony_ci __entry->expiry = expiry; 5898c2ecf20Sopenharmony_ci __entry->now = now; 5908c2ecf20Sopenharmony_ci __entry->timeout = timeout; 5918c2ecf20Sopenharmony_ci __entry->window_size = window_size; 5928c2ecf20Sopenharmony_ci __entry->len = len; 5938c2ecf20Sopenharmony_ci strncpy(__get_str(acceptor), data, len); 5948c2ecf20Sopenharmony_ci ), 5958c2ecf20Sopenharmony_ci 5968c2ecf20Sopenharmony_ci TP_printk("win_size=%u expiry=%lu now=%lu timeout=%u acceptor=%.*s", 5978c2ecf20Sopenharmony_ci __entry->window_size, __entry->expiry, __entry->now, 5988c2ecf20Sopenharmony_ci __entry->timeout, __entry->len, __get_str(acceptor)) 5998c2ecf20Sopenharmony_ci); 6008c2ecf20Sopenharmony_ci 6018c2ecf20Sopenharmony_ci 6028c2ecf20Sopenharmony_ci/** 6038c2ecf20Sopenharmony_ci ** Miscellaneous events 6048c2ecf20Sopenharmony_ci */ 6058c2ecf20Sopenharmony_ci 6068c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(RPC_AUTH_GSS_KRB5); 6078c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(RPC_AUTH_GSS_KRB5I); 6088c2ecf20Sopenharmony_ciTRACE_DEFINE_ENUM(RPC_AUTH_GSS_KRB5P); 6098c2ecf20Sopenharmony_ci 6108c2ecf20Sopenharmony_ci#define show_pseudoflavor(x) \ 6118c2ecf20Sopenharmony_ci __print_symbolic(x, \ 6128c2ecf20Sopenharmony_ci { RPC_AUTH_GSS_KRB5, "RPC_AUTH_GSS_KRB5" }, \ 6138c2ecf20Sopenharmony_ci { RPC_AUTH_GSS_KRB5I, "RPC_AUTH_GSS_KRB5I" }, \ 6148c2ecf20Sopenharmony_ci { RPC_AUTH_GSS_KRB5P, "RPC_AUTH_GSS_KRB5P" }) 6158c2ecf20Sopenharmony_ci 6168c2ecf20Sopenharmony_ci 6178c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_createauth, 6188c2ecf20Sopenharmony_ci TP_PROTO( 6198c2ecf20Sopenharmony_ci unsigned int flavor, 6208c2ecf20Sopenharmony_ci int error 6218c2ecf20Sopenharmony_ci ), 6228c2ecf20Sopenharmony_ci 6238c2ecf20Sopenharmony_ci TP_ARGS(flavor, error), 6248c2ecf20Sopenharmony_ci 6258c2ecf20Sopenharmony_ci TP_STRUCT__entry( 6268c2ecf20Sopenharmony_ci __field(unsigned int, flavor) 6278c2ecf20Sopenharmony_ci __field(int, error) 6288c2ecf20Sopenharmony_ci 6298c2ecf20Sopenharmony_ci ), 6308c2ecf20Sopenharmony_ci 6318c2ecf20Sopenharmony_ci TP_fast_assign( 6328c2ecf20Sopenharmony_ci __entry->flavor = flavor; 6338c2ecf20Sopenharmony_ci __entry->error = error; 6348c2ecf20Sopenharmony_ci ), 6358c2ecf20Sopenharmony_ci 6368c2ecf20Sopenharmony_ci TP_printk("flavor=%s error=%d", 6378c2ecf20Sopenharmony_ci show_pseudoflavor(__entry->flavor), __entry->error) 6388c2ecf20Sopenharmony_ci); 6398c2ecf20Sopenharmony_ci 6408c2ecf20Sopenharmony_ciTRACE_EVENT(rpcgss_oid_to_mech, 6418c2ecf20Sopenharmony_ci TP_PROTO( 6428c2ecf20Sopenharmony_ci const char *oid 6438c2ecf20Sopenharmony_ci ), 6448c2ecf20Sopenharmony_ci 6458c2ecf20Sopenharmony_ci TP_ARGS(oid), 6468c2ecf20Sopenharmony_ci 6478c2ecf20Sopenharmony_ci TP_STRUCT__entry( 6488c2ecf20Sopenharmony_ci __string(oid, oid) 6498c2ecf20Sopenharmony_ci ), 6508c2ecf20Sopenharmony_ci 6518c2ecf20Sopenharmony_ci TP_fast_assign( 6528c2ecf20Sopenharmony_ci __assign_str(oid, oid); 6538c2ecf20Sopenharmony_ci ), 6548c2ecf20Sopenharmony_ci 6558c2ecf20Sopenharmony_ci TP_printk("mech for oid %s was not found", __get_str(oid)) 6568c2ecf20Sopenharmony_ci); 6578c2ecf20Sopenharmony_ci 6588c2ecf20Sopenharmony_ci#endif /* _TRACE_RPCGSS_H */ 6598c2ecf20Sopenharmony_ci 6608c2ecf20Sopenharmony_ci#include <trace/define_trace.h> 661