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