^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Copyright (c) 2018 Oracle. All rights reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * Trace point definitions for the "rpcgss" subsystem.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #define TRACE_SYSTEM rpcgss
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #if !defined(_TRACE_RPCRDMA_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define _TRACE_RPCGSS_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) ** GSS-API related trace events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) **/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) TRACE_DEFINE_ENUM(RPC_GSS_SVC_NONE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) TRACE_DEFINE_ENUM(RPC_GSS_SVC_INTEGRITY);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) TRACE_DEFINE_ENUM(RPC_GSS_SVC_PRIVACY);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) #define show_gss_service(x) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) __print_symbolic(x, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) { RPC_GSS_SVC_NONE, "none" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) { RPC_GSS_SVC_INTEGRITY, "integrity" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) { RPC_GSS_SVC_PRIVACY, "privacy" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) TRACE_DEFINE_ENUM(GSS_S_BAD_MECH);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) TRACE_DEFINE_ENUM(GSS_S_BAD_NAME);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) TRACE_DEFINE_ENUM(GSS_S_BAD_NAMETYPE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) TRACE_DEFINE_ENUM(GSS_S_BAD_BINDINGS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) TRACE_DEFINE_ENUM(GSS_S_BAD_STATUS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) TRACE_DEFINE_ENUM(GSS_S_BAD_SIG);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) TRACE_DEFINE_ENUM(GSS_S_NO_CRED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) TRACE_DEFINE_ENUM(GSS_S_NO_CONTEXT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) TRACE_DEFINE_ENUM(GSS_S_DEFECTIVE_TOKEN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) TRACE_DEFINE_ENUM(GSS_S_DEFECTIVE_CREDENTIAL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) TRACE_DEFINE_ENUM(GSS_S_CREDENTIALS_EXPIRED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) TRACE_DEFINE_ENUM(GSS_S_CONTEXT_EXPIRED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) TRACE_DEFINE_ENUM(GSS_S_FAILURE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) TRACE_DEFINE_ENUM(GSS_S_BAD_QOP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) TRACE_DEFINE_ENUM(GSS_S_UNAUTHORIZED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) TRACE_DEFINE_ENUM(GSS_S_UNAVAILABLE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) TRACE_DEFINE_ENUM(GSS_S_DUPLICATE_ELEMENT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) TRACE_DEFINE_ENUM(GSS_S_NAME_NOT_MN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) TRACE_DEFINE_ENUM(GSS_S_CONTINUE_NEEDED);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) TRACE_DEFINE_ENUM(GSS_S_DUPLICATE_TOKEN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) TRACE_DEFINE_ENUM(GSS_S_OLD_TOKEN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) TRACE_DEFINE_ENUM(GSS_S_UNSEQ_TOKEN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) TRACE_DEFINE_ENUM(GSS_S_GAP_TOKEN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) #define show_gss_status(x) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) __print_flags(x, "|", \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) { GSS_S_BAD_MECH, "GSS_S_BAD_MECH" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) { GSS_S_BAD_NAME, "GSS_S_BAD_NAME" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) { GSS_S_BAD_NAMETYPE, "GSS_S_BAD_NAMETYPE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) { GSS_S_BAD_BINDINGS, "GSS_S_BAD_BINDINGS" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) { GSS_S_BAD_STATUS, "GSS_S_BAD_STATUS" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) { GSS_S_BAD_SIG, "GSS_S_BAD_SIG" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) { GSS_S_NO_CRED, "GSS_S_NO_CRED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) { GSS_S_NO_CONTEXT, "GSS_S_NO_CONTEXT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) { GSS_S_DEFECTIVE_TOKEN, "GSS_S_DEFECTIVE_TOKEN" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) { GSS_S_DEFECTIVE_CREDENTIAL, "GSS_S_DEFECTIVE_CREDENTIAL" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) { GSS_S_CREDENTIALS_EXPIRED, "GSS_S_CREDENTIALS_EXPIRED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) { GSS_S_CONTEXT_EXPIRED, "GSS_S_CONTEXT_EXPIRED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) { GSS_S_FAILURE, "GSS_S_FAILURE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) { GSS_S_BAD_QOP, "GSS_S_BAD_QOP" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) { GSS_S_UNAUTHORIZED, "GSS_S_UNAUTHORIZED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) { GSS_S_UNAVAILABLE, "GSS_S_UNAVAILABLE" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) { GSS_S_DUPLICATE_ELEMENT, "GSS_S_DUPLICATE_ELEMENT" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) { GSS_S_NAME_NOT_MN, "GSS_S_NAME_NOT_MN" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) { GSS_S_CONTINUE_NEEDED, "GSS_S_CONTINUE_NEEDED" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) { GSS_S_DUPLICATE_TOKEN, "GSS_S_DUPLICATE_TOKEN" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) { GSS_S_OLD_TOKEN, "GSS_S_OLD_TOKEN" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) { GSS_S_UNSEQ_TOKEN, "GSS_S_UNSEQ_TOKEN" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) { GSS_S_GAP_TOKEN, "GSS_S_GAP_TOKEN" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) DECLARE_EVENT_CLASS(rpcgss_gssapi_event,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) const struct rpc_task *task,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) u32 maj_stat
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) TP_ARGS(task, maj_stat),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) __field(unsigned int, task_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) __field(unsigned int, client_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) __field(u32, maj_stat)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) __entry->task_id = task->tk_pid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) __entry->client_id = task->tk_client->cl_clid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) __entry->maj_stat = maj_stat;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) TP_printk("task:%u@%u maj_stat=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) __entry->task_id, __entry->client_id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) __entry->maj_stat == 0 ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) "GSS_S_COMPLETE" : show_gss_status(__entry->maj_stat))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) #define DEFINE_GSSAPI_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) DEFINE_EVENT(rpcgss_gssapi_event, rpcgss_##name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) const struct rpc_task *task, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) u32 maj_stat \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) TP_ARGS(task, maj_stat))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) TRACE_EVENT(rpcgss_import_ctx,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) int status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) TP_ARGS(status),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) __field(int, status)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) __entry->status = status;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) TP_printk("status=%d", __entry->status)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) DEFINE_GSSAPI_EVENT(get_mic);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) DEFINE_GSSAPI_EVENT(verify_mic);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) DEFINE_GSSAPI_EVENT(wrap);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) DEFINE_GSSAPI_EVENT(unwrap);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) DECLARE_EVENT_CLASS(rpcgss_ctx_class,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) const struct gss_cred *gc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) TP_ARGS(gc),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) __field(const void *, cred)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) __field(unsigned long, service)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) __string(principal, gc->gc_principal)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) __entry->cred = gc;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) __entry->service = gc->gc_service;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) __assign_str(principal, gc->gc_principal)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) TP_printk("cred=%p service=%s principal='%s'",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) __entry->cred, show_gss_service(__entry->service),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) __get_str(principal))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) #define DEFINE_CTX_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) DEFINE_EVENT(rpcgss_ctx_class, rpcgss_ctx_##name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) const struct gss_cred *gc \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) TP_ARGS(gc))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) DEFINE_CTX_EVENT(init);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) DEFINE_CTX_EVENT(destroy);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) DECLARE_EVENT_CLASS(rpcgss_svc_gssapi_class,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) const struct svc_rqst *rqstp,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) u32 maj_stat
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) TP_ARGS(rqstp, maj_stat),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) __field(u32, xid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) __field(u32, maj_stat)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) __string(addr, rqstp->rq_xprt->xpt_remotebuf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) __entry->xid = __be32_to_cpu(rqstp->rq_xid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) __entry->maj_stat = maj_stat;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) __assign_str(addr, rqstp->rq_xprt->xpt_remotebuf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) TP_printk("addr=%s xid=0x%08x maj_stat=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) __get_str(addr), __entry->xid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) __entry->maj_stat == 0 ?
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) "GSS_S_COMPLETE" : show_gss_status(__entry->maj_stat))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) #define DEFINE_SVC_GSSAPI_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) DEFINE_EVENT(rpcgss_svc_gssapi_class, rpcgss_svc_##name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) const struct svc_rqst *rqstp, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) u32 maj_stat \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) TP_ARGS(rqstp, maj_stat))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) DEFINE_SVC_GSSAPI_EVENT(unwrap);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) DEFINE_SVC_GSSAPI_EVENT(mic);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) TRACE_EVENT(rpcgss_svc_unwrap_failed,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) const struct svc_rqst *rqstp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) TP_ARGS(rqstp),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) __field(u32, xid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) __string(addr, rqstp->rq_xprt->xpt_remotebuf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) __entry->xid = be32_to_cpu(rqstp->rq_xid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) __assign_str(addr, rqstp->rq_xprt->xpt_remotebuf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) TP_printk("addr=%s xid=0x%08x", __get_str(addr), __entry->xid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) TRACE_EVENT(rpcgss_svc_seqno_bad,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) const struct svc_rqst *rqstp,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) u32 expected,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) u32 received
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) TP_ARGS(rqstp, expected, received),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) __field(u32, expected)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) __field(u32, received)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) __field(u32, xid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) __string(addr, rqstp->rq_xprt->xpt_remotebuf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) __entry->expected = expected;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) __entry->received = received;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) __entry->xid = __be32_to_cpu(rqstp->rq_xid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) __assign_str(addr, rqstp->rq_xprt->xpt_remotebuf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) TP_printk("addr=%s xid=0x%08x expected seqno %u, received seqno %u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) __get_str(addr), __entry->xid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) __entry->expected, __entry->received)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) TRACE_EVENT(rpcgss_svc_accept_upcall,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) const struct svc_rqst *rqstp,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) u32 major_status,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) u32 minor_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) TP_ARGS(rqstp, major_status, minor_status),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) __field(u32, minor_status)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) __field(unsigned long, major_status)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) __field(u32, xid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) __string(addr, rqstp->rq_xprt->xpt_remotebuf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) __entry->minor_status = minor_status;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) __entry->major_status = major_status;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) __entry->xid = be32_to_cpu(rqstp->rq_xid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) __assign_str(addr, rqstp->rq_xprt->xpt_remotebuf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) TP_printk("addr=%s xid=0x%08x major_status=%s (0x%08lx) minor_status=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) __get_str(addr), __entry->xid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) (__entry->major_status == 0) ? "GSS_S_COMPLETE" :
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) show_gss_status(__entry->major_status),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) __entry->major_status, __entry->minor_status
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) TRACE_EVENT(rpcgss_svc_authenticate,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) const struct svc_rqst *rqstp,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) const struct rpc_gss_wire_cred *gc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) TP_ARGS(rqstp, gc),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) __field(u32, seqno)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) __field(u32, xid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) __string(addr, rqstp->rq_xprt->xpt_remotebuf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) __entry->xid = be32_to_cpu(rqstp->rq_xid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) __entry->seqno = gc->gc_seq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) __assign_str(addr, rqstp->rq_xprt->xpt_remotebuf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) TP_printk("addr=%s xid=0x%08x seqno=%u", __get_str(addr),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) __entry->xid, __entry->seqno)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) ** GSS auth unwrap failures
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) **/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) TRACE_EVENT(rpcgss_unwrap_failed,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) const struct rpc_task *task
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) TP_ARGS(task),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) __field(unsigned int, task_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) __field(unsigned int, client_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) __entry->task_id = task->tk_pid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) __entry->client_id = task->tk_client->cl_clid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) TP_printk("task:%u@%u", __entry->task_id, __entry->client_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) TRACE_EVENT(rpcgss_bad_seqno,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) const struct rpc_task *task,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) u32 expected,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) u32 received
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) TP_ARGS(task, expected, received),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) __field(unsigned int, task_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) __field(unsigned int, client_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) __field(u32, expected)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) __field(u32, received)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) __entry->task_id = task->tk_pid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) __entry->client_id = task->tk_client->cl_clid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) __entry->expected = expected;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) __entry->received = received;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) TP_printk("task:%u@%u expected seqno %u, received seqno %u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) __entry->task_id, __entry->client_id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) __entry->expected, __entry->received)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) TRACE_EVENT(rpcgss_seqno,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) const struct rpc_task *task
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) TP_ARGS(task),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) __field(unsigned int, task_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) __field(unsigned int, client_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) __field(u32, xid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) __field(u32, seqno)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) const struct rpc_rqst *rqst = task->tk_rqstp;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) __entry->task_id = task->tk_pid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) __entry->client_id = task->tk_client->cl_clid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) __entry->xid = be32_to_cpu(rqst->rq_xid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) __entry->seqno = rqst->rq_seqno;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) TP_printk("task:%u@%u xid=0x%08x seqno=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) __entry->task_id, __entry->client_id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) __entry->xid, __entry->seqno)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) TRACE_EVENT(rpcgss_need_reencode,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) const struct rpc_task *task,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) u32 seq_xmit,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) bool ret
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) TP_ARGS(task, seq_xmit, ret),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) __field(unsigned int, task_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) __field(unsigned int, client_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) __field(u32, xid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) __field(u32, seq_xmit)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) __field(u32, seqno)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) __field(bool, ret)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) __entry->task_id = task->tk_pid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) __entry->client_id = task->tk_client->cl_clid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) __entry->xid = be32_to_cpu(task->tk_rqstp->rq_xid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) __entry->seq_xmit = seq_xmit;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) __entry->seqno = task->tk_rqstp->rq_seqno;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) __entry->ret = ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) TP_printk("task:%u@%u xid=0x%08x rq_seqno=%u seq_xmit=%u reencode %sneeded",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) __entry->task_id, __entry->client_id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) __entry->xid, __entry->seqno, __entry->seq_xmit,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) __entry->ret ? "" : "un")
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) TRACE_EVENT(rpcgss_update_slack,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) const struct rpc_task *task,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) const struct rpc_auth *auth
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) TP_ARGS(task, auth),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) __field(unsigned int, task_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) __field(unsigned int, client_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) __field(u32, xid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) __field(const void *, auth)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) __field(unsigned int, rslack)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) __field(unsigned int, ralign)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) __field(unsigned int, verfsize)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) __entry->task_id = task->tk_pid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) __entry->client_id = task->tk_client->cl_clid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) __entry->xid = be32_to_cpu(task->tk_rqstp->rq_xid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) __entry->auth = auth;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) __entry->rslack = auth->au_rslack;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) __entry->ralign = auth->au_ralign;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) __entry->verfsize = auth->au_verfsize;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) TP_printk("task:%u@%u xid=0x%08x auth=%p rslack=%u ralign=%u verfsize=%u\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) __entry->task_id, __entry->client_id, __entry->xid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) __entry->auth, __entry->rslack, __entry->ralign,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) __entry->verfsize)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) DECLARE_EVENT_CLASS(rpcgss_svc_seqno_class,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) const struct svc_rqst *rqstp,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) u32 seqno
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) TP_ARGS(rqstp, seqno),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) __field(u32, xid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) __field(u32, seqno)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) __entry->xid = be32_to_cpu(rqstp->rq_xid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) __entry->seqno = seqno;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) TP_printk("xid=0x%08x seqno=%u",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) __entry->xid, __entry->seqno)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) #define DEFINE_SVC_SEQNO_EVENT(name) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) DEFINE_EVENT(rpcgss_svc_seqno_class, rpcgss_svc_seqno_##name, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) TP_PROTO( \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) const struct svc_rqst *rqstp, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) u32 seqno \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) ), \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) TP_ARGS(rqstp, seqno))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) DEFINE_SVC_SEQNO_EVENT(large);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) DEFINE_SVC_SEQNO_EVENT(seen);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) TRACE_EVENT(rpcgss_svc_seqno_low,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) const struct svc_rqst *rqstp,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) u32 seqno,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) u32 min,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) u32 max
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) TP_ARGS(rqstp, seqno, min, max),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) __field(u32, xid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) __field(u32, seqno)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) __field(u32, min)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) __field(u32, max)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) __entry->xid = be32_to_cpu(rqstp->rq_xid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) __entry->seqno = seqno;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) __entry->min = min;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) __entry->max = max;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) TP_printk("xid=0x%08x seqno=%u window=[%u..%u]",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) __entry->xid, __entry->seqno, __entry->min, __entry->max)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) ** gssd upcall related trace events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) **/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) TRACE_EVENT(rpcgss_upcall_msg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) const char *buf
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) TP_ARGS(buf),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) __string(msg, buf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) __assign_str(msg, buf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) TP_printk("msg='%s'", __get_str(msg))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) TRACE_EVENT(rpcgss_upcall_result,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) u32 uid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) int result
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) TP_ARGS(uid, result),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) __field(u32, uid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) __field(int, result)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) __entry->uid = uid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) __entry->result = result;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) TP_printk("for uid %u, result=%d", __entry->uid, __entry->result)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) TRACE_EVENT(rpcgss_context,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) u32 window_size,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) unsigned long expiry,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) unsigned long now,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) unsigned int timeout,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) unsigned int len,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) const u8 *data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) TP_ARGS(window_size, expiry, now, timeout, len, data),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) __field(unsigned long, expiry)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) __field(unsigned long, now)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581) __field(unsigned int, timeout)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) __field(u32, window_size)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) __field(int, len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) __string(acceptor, data)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) __entry->expiry = expiry;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) __entry->now = now;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) __entry->timeout = timeout;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) __entry->window_size = window_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) __entry->len = len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) strncpy(__get_str(acceptor), data, len);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) TP_printk("win_size=%u expiry=%lu now=%lu timeout=%u acceptor=%.*s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) __entry->window_size, __entry->expiry, __entry->now,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) __entry->timeout, __entry->len, __get_str(acceptor))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) ** Miscellaneous events
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) TRACE_DEFINE_ENUM(RPC_AUTH_GSS_KRB5);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) TRACE_DEFINE_ENUM(RPC_AUTH_GSS_KRB5I);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) TRACE_DEFINE_ENUM(RPC_AUTH_GSS_KRB5P);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) #define show_pseudoflavor(x) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) __print_symbolic(x, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) { RPC_AUTH_GSS_KRB5, "RPC_AUTH_GSS_KRB5" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) { RPC_AUTH_GSS_KRB5I, "RPC_AUTH_GSS_KRB5I" }, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) { RPC_AUTH_GSS_KRB5P, "RPC_AUTH_GSS_KRB5P" })
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) TRACE_EVENT(rpcgss_createauth,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) unsigned int flavor,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) int error
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) TP_ARGS(flavor, error),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) __field(unsigned int, flavor)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) __field(int, error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) __entry->flavor = flavor;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) __entry->error = error;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) TP_printk("flavor=%s error=%d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) show_pseudoflavor(__entry->flavor), __entry->error)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640) TRACE_EVENT(rpcgss_oid_to_mech,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) TP_PROTO(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642) const char *oid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) TP_ARGS(oid),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) __string(oid, oid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652) __assign_str(oid, oid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) TP_printk("mech for oid %s was not found", __get_str(oid))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) #endif /* _TRACE_RPCGSS_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660) #include <trace/define_trace.h>