Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.4-rc7 159 lines 3.7 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2#undef TRACE_SYSTEM 3#define TRACE_SYSTEM handshake 4 5#if !defined(_TRACE_HANDSHAKE_H) || defined(TRACE_HEADER_MULTI_READ) 6#define _TRACE_HANDSHAKE_H 7 8#include <linux/net.h> 9#include <linux/tracepoint.h> 10 11DECLARE_EVENT_CLASS(handshake_event_class, 12 TP_PROTO( 13 const struct net *net, 14 const struct handshake_req *req, 15 const struct sock *sk 16 ), 17 TP_ARGS(net, req, sk), 18 TP_STRUCT__entry( 19 __field(const void *, req) 20 __field(const void *, sk) 21 __field(unsigned int, netns_ino) 22 ), 23 TP_fast_assign( 24 __entry->req = req; 25 __entry->sk = sk; 26 __entry->netns_ino = net->ns.inum; 27 ), 28 TP_printk("req=%p sk=%p", 29 __entry->req, __entry->sk 30 ) 31); 32#define DEFINE_HANDSHAKE_EVENT(name) \ 33 DEFINE_EVENT(handshake_event_class, name, \ 34 TP_PROTO( \ 35 const struct net *net, \ 36 const struct handshake_req *req, \ 37 const struct sock *sk \ 38 ), \ 39 TP_ARGS(net, req, sk)) 40 41DECLARE_EVENT_CLASS(handshake_fd_class, 42 TP_PROTO( 43 const struct net *net, 44 const struct handshake_req *req, 45 const struct sock *sk, 46 int fd 47 ), 48 TP_ARGS(net, req, sk, fd), 49 TP_STRUCT__entry( 50 __field(const void *, req) 51 __field(const void *, sk) 52 __field(int, fd) 53 __field(unsigned int, netns_ino) 54 ), 55 TP_fast_assign( 56 __entry->req = req; 57 __entry->sk = req->hr_sk; 58 __entry->fd = fd; 59 __entry->netns_ino = net->ns.inum; 60 ), 61 TP_printk("req=%p sk=%p fd=%d", 62 __entry->req, __entry->sk, __entry->fd 63 ) 64); 65#define DEFINE_HANDSHAKE_FD_EVENT(name) \ 66 DEFINE_EVENT(handshake_fd_class, name, \ 67 TP_PROTO( \ 68 const struct net *net, \ 69 const struct handshake_req *req, \ 70 const struct sock *sk, \ 71 int fd \ 72 ), \ 73 TP_ARGS(net, req, sk, fd)) 74 75DECLARE_EVENT_CLASS(handshake_error_class, 76 TP_PROTO( 77 const struct net *net, 78 const struct handshake_req *req, 79 const struct sock *sk, 80 int err 81 ), 82 TP_ARGS(net, req, sk, err), 83 TP_STRUCT__entry( 84 __field(const void *, req) 85 __field(const void *, sk) 86 __field(int, err) 87 __field(unsigned int, netns_ino) 88 ), 89 TP_fast_assign( 90 __entry->req = req; 91 __entry->sk = sk; 92 __entry->err = err; 93 __entry->netns_ino = net->ns.inum; 94 ), 95 TP_printk("req=%p sk=%p err=%d", 96 __entry->req, __entry->sk, __entry->err 97 ) 98); 99#define DEFINE_HANDSHAKE_ERROR(name) \ 100 DEFINE_EVENT(handshake_error_class, name, \ 101 TP_PROTO( \ 102 const struct net *net, \ 103 const struct handshake_req *req, \ 104 const struct sock *sk, \ 105 int err \ 106 ), \ 107 TP_ARGS(net, req, sk, err)) 108 109 110/* 111 * Request lifetime events 112 */ 113 114DEFINE_HANDSHAKE_EVENT(handshake_submit); 115DEFINE_HANDSHAKE_ERROR(handshake_submit_err); 116DEFINE_HANDSHAKE_EVENT(handshake_cancel); 117DEFINE_HANDSHAKE_EVENT(handshake_cancel_none); 118DEFINE_HANDSHAKE_EVENT(handshake_cancel_busy); 119DEFINE_HANDSHAKE_EVENT(handshake_destruct); 120 121 122TRACE_EVENT(handshake_complete, 123 TP_PROTO( 124 const struct net *net, 125 const struct handshake_req *req, 126 const struct sock *sk, 127 int status 128 ), 129 TP_ARGS(net, req, sk, status), 130 TP_STRUCT__entry( 131 __field(const void *, req) 132 __field(const void *, sk) 133 __field(int, status) 134 __field(unsigned int, netns_ino) 135 ), 136 TP_fast_assign( 137 __entry->req = req; 138 __entry->sk = sk; 139 __entry->status = status; 140 __entry->netns_ino = net->ns.inum; 141 ), 142 TP_printk("req=%p sk=%p status=%d", 143 __entry->req, __entry->sk, __entry->status 144 ) 145); 146 147/* 148 * Netlink events 149 */ 150 151DEFINE_HANDSHAKE_ERROR(handshake_notify_err); 152DEFINE_HANDSHAKE_FD_EVENT(handshake_cmd_accept); 153DEFINE_HANDSHAKE_ERROR(handshake_cmd_accept_err); 154DEFINE_HANDSHAKE_FD_EVENT(handshake_cmd_done); 155DEFINE_HANDSHAKE_ERROR(handshake_cmd_done_err); 156 157#endif /* _TRACE_HANDSHAKE_H */ 158 159#include <trace/define_trace.h>