xref: /kernel/linux/linux-6.6/net/tls/trace.h (revision 62306a36)
1/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
2/* Copyright (C) 2019 Netronome Systems, Inc. */
3
4#undef TRACE_SYSTEM
5#define TRACE_SYSTEM tls
6
7#if !defined(_TLS_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
8#define _TLS_TRACE_H_
9
10#include <asm/unaligned.h>
11#include <linux/tracepoint.h>
12
13struct sock;
14
15TRACE_EVENT(tls_device_offload_set,
16
17	TP_PROTO(struct sock *sk, int dir, u32 tcp_seq, u8 *rec_no, int ret),
18
19	TP_ARGS(sk, dir, tcp_seq, rec_no, ret),
20
21	TP_STRUCT__entry(
22		__field(	struct sock *,	sk		)
23		__field(	u64,		rec_no		)
24		__field(	int,		dir		)
25		__field(	u32,		tcp_seq		)
26		__field(	int,		ret		)
27	),
28
29	TP_fast_assign(
30		__entry->sk = sk;
31		__entry->rec_no = get_unaligned_be64(rec_no);
32		__entry->dir = dir;
33		__entry->tcp_seq = tcp_seq;
34		__entry->ret = ret;
35	),
36
37	TP_printk(
38		"sk=%p direction=%d tcp_seq=%u rec_no=%llu ret=%d",
39		__entry->sk, __entry->dir, __entry->tcp_seq, __entry->rec_no,
40		__entry->ret
41	)
42);
43
44TRACE_EVENT(tls_device_decrypted,
45
46	TP_PROTO(struct sock *sk, u32 tcp_seq, u8 *rec_no, u32 rec_len,
47		 bool encrypted, bool decrypted),
48
49	TP_ARGS(sk, tcp_seq, rec_no, rec_len, encrypted, decrypted),
50
51	TP_STRUCT__entry(
52		__field(	struct sock *,	sk		)
53		__field(	u64,		rec_no		)
54		__field(	u32,		tcp_seq		)
55		__field(	u32,		rec_len		)
56		__field(	bool,		encrypted	)
57		__field(	bool,		decrypted	)
58	),
59
60	TP_fast_assign(
61		__entry->sk = sk;
62		__entry->rec_no = get_unaligned_be64(rec_no);
63		__entry->tcp_seq = tcp_seq;
64		__entry->rec_len = rec_len;
65		__entry->encrypted = encrypted;
66		__entry->decrypted = decrypted;
67	),
68
69	TP_printk(
70		"sk=%p tcp_seq=%u rec_no=%llu len=%u encrypted=%d decrypted=%d",
71		__entry->sk, __entry->tcp_seq,
72		__entry->rec_no, __entry->rec_len,
73		__entry->encrypted, __entry->decrypted
74	)
75);
76
77TRACE_EVENT(tls_device_rx_resync_send,
78
79	TP_PROTO(struct sock *sk, u32 tcp_seq, u8 *rec_no, int sync_type),
80
81	TP_ARGS(sk, tcp_seq, rec_no, sync_type),
82
83	TP_STRUCT__entry(
84		__field(	struct sock *,	sk		)
85		__field(	u64,		rec_no		)
86		__field(	u32,		tcp_seq		)
87		__field(	int,		sync_type	)
88	),
89
90	TP_fast_assign(
91		__entry->sk = sk;
92		__entry->rec_no = get_unaligned_be64(rec_no);
93		__entry->tcp_seq = tcp_seq;
94		__entry->sync_type = sync_type;
95	),
96
97	TP_printk(
98		"sk=%p tcp_seq=%u rec_no=%llu sync_type=%d",
99		__entry->sk, __entry->tcp_seq, __entry->rec_no,
100		__entry->sync_type
101	)
102);
103
104TRACE_EVENT(tls_device_rx_resync_nh_schedule,
105
106	TP_PROTO(struct sock *sk),
107
108	TP_ARGS(sk),
109
110	TP_STRUCT__entry(
111		__field(	struct sock *,	sk		)
112	),
113
114	TP_fast_assign(
115		__entry->sk = sk;
116	),
117
118	TP_printk(
119		"sk=%p", __entry->sk
120	)
121);
122
123TRACE_EVENT(tls_device_rx_resync_nh_delay,
124
125	TP_PROTO(struct sock *sk, u32 sock_data, u32 rec_len),
126
127	TP_ARGS(sk, sock_data, rec_len),
128
129	TP_STRUCT__entry(
130		__field(	struct sock *,	sk		)
131		__field(	u32,		sock_data	)
132		__field(	u32,		rec_len		)
133	),
134
135	TP_fast_assign(
136		__entry->sk = sk;
137		__entry->sock_data = sock_data;
138		__entry->rec_len = rec_len;
139	),
140
141	TP_printk(
142		"sk=%p sock_data=%u rec_len=%u",
143		__entry->sk, __entry->sock_data, __entry->rec_len
144	)
145);
146
147TRACE_EVENT(tls_device_tx_resync_req,
148
149	TP_PROTO(struct sock *sk, u32 tcp_seq, u32 exp_tcp_seq),
150
151	TP_ARGS(sk, tcp_seq, exp_tcp_seq),
152
153	TP_STRUCT__entry(
154		__field(	struct sock *,	sk		)
155		__field(	u32,		tcp_seq		)
156		__field(	u32,		exp_tcp_seq	)
157	),
158
159	TP_fast_assign(
160		__entry->sk = sk;
161		__entry->tcp_seq = tcp_seq;
162		__entry->exp_tcp_seq = exp_tcp_seq;
163	),
164
165	TP_printk(
166		"sk=%p tcp_seq=%u exp_tcp_seq=%u",
167		__entry->sk, __entry->tcp_seq, __entry->exp_tcp_seq
168	)
169);
170
171TRACE_EVENT(tls_device_tx_resync_send,
172
173	TP_PROTO(struct sock *sk, u32 tcp_seq, u8 *rec_no),
174
175	TP_ARGS(sk, tcp_seq, rec_no),
176
177	TP_STRUCT__entry(
178		__field(	struct sock *,	sk		)
179		__field(	u64,		rec_no		)
180		__field(	u32,		tcp_seq		)
181	),
182
183	TP_fast_assign(
184		__entry->sk = sk;
185		__entry->rec_no = get_unaligned_be64(rec_no);
186		__entry->tcp_seq = tcp_seq;
187	),
188
189	TP_printk(
190		"sk=%p tcp_seq=%u rec_no=%llu",
191		__entry->sk, __entry->tcp_seq, __entry->rec_no
192	)
193);
194
195#endif /* _TLS_TRACE_H_ */
196
197#undef TRACE_INCLUDE_PATH
198#define TRACE_INCLUDE_PATH .
199#undef TRACE_INCLUDE_FILE
200#define TRACE_INCLUDE_FILE trace
201
202#include <trace/define_trace.h>
203