~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/trace/events/rpcgss.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php