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