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

source code of linux/net/tls/trace.h