| /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ | |
| /* Copyright (C) 2019 Netronome Systems, Inc. */ | |
| #undef TRACE_SYSTEM | |
| #define TRACE_SYSTEM tls | |
| #if !defined(_TLS_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) | |
| #define _TLS_TRACE_H_ | |
| #include <linux/unaligned.h> | |
| #include <linux/tracepoint.h> | |
| struct sock; | |
| TRACE_EVENT(tls_device_offload_set, | |
| TP_PROTO(struct sock *sk, int dir, u32 tcp_seq, u8 *rec_no, int ret), | |
| TP_ARGS(sk, dir, tcp_seq, rec_no, ret), | |
| TP_STRUCT__entry( | |
| __field( struct sock *, sk ) | |
| __field( u64, rec_no ) | |
| __field( int, dir ) | |
| __field( u32, tcp_seq ) | |
| __field( int, ret ) | |
| ), | |
| TP_fast_assign( | |
| __entry->sk = sk; | |
| __entry->rec_no = get_unaligned_be64(rec_no); | |
| __entry->dir = dir; | |
| __entry->tcp_seq = tcp_seq; | |
| __entry->ret = ret; | |
| ), | |
| TP_printk( | |
| "sk=%p direction=%d tcp_seq=%u rec_no=%llu ret=%d", | |
| __entry->sk, __entry->dir, __entry->tcp_seq, __entry->rec_no, | |
| __entry->ret | |
| ) | |
| ); | |
| TRACE_EVENT(tls_device_decrypted, | |
| TP_PROTO(struct sock *sk, u32 tcp_seq, u8 *rec_no, u32 rec_len, | |
| bool encrypted, bool decrypted), | |
| TP_ARGS(sk, tcp_seq, rec_no, rec_len, encrypted, decrypted), | |
| TP_STRUCT__entry( | |
| __field( struct sock *, sk ) | |
| __field( u64, rec_no ) | |
| __field( u32, tcp_seq ) | |
| __field( u32, rec_len ) | |
| __field( bool, encrypted ) | |
| __field( bool, decrypted ) | |
| ), | |
| TP_fast_assign( | |
| __entry->sk = sk; | |
| __entry->rec_no = get_unaligned_be64(rec_no); | |
| __entry->tcp_seq = tcp_seq; | |
| __entry->rec_len = rec_len; | |
| __entry->encrypted = encrypted; | |
| __entry->decrypted = decrypted; | |
| ), | |
| TP_printk( | |
| "sk=%p tcp_seq=%u rec_no=%llu len=%u encrypted=%d decrypted=%d", | |
| __entry->sk, __entry->tcp_seq, | |
| __entry->rec_no, __entry->rec_len, | |
| __entry->encrypted, __entry->decrypted | |
| ) | |
| ); | |
| TRACE_EVENT(tls_device_rx_resync_send, | |
| TP_PROTO(struct sock *sk, u32 tcp_seq, u8 *rec_no, int sync_type), | |
| TP_ARGS(sk, tcp_seq, rec_no, sync_type), | |
| TP_STRUCT__entry( | |
| __field( struct sock *, sk ) | |
| __field( u64, rec_no ) | |
| __field( u32, tcp_seq ) | |
| __field( int, sync_type ) | |
| ), | |
| TP_fast_assign( | |
| __entry->sk = sk; | |
| __entry->rec_no = get_unaligned_be64(rec_no); | |
| __entry->tcp_seq = tcp_seq; | |
| __entry->sync_type = sync_type; | |
| ), | |
| TP_printk( | |
| "sk=%p tcp_seq=%u rec_no=%llu sync_type=%d", | |
| __entry->sk, __entry->tcp_seq, __entry->rec_no, | |
| __entry->sync_type | |
| ) | |
| ); | |
| TRACE_EVENT(tls_device_rx_resync_nh_schedule, | |
| TP_PROTO(struct sock *sk), | |
| TP_ARGS(sk), | |
| TP_STRUCT__entry( | |
| __field( struct sock *, sk ) | |
| ), | |
| TP_fast_assign( | |
| __entry->sk = sk; | |
| ), | |
| TP_printk( | |
| "sk=%p", __entry->sk | |
| ) | |
| ); | |
| TRACE_EVENT(tls_device_rx_resync_nh_delay, | |
| TP_PROTO(struct sock *sk, u32 sock_data, u32 rec_len), | |
| TP_ARGS(sk, sock_data, rec_len), | |
| TP_STRUCT__entry( | |
| __field( struct sock *, sk ) | |
| __field( u32, sock_data ) | |
| __field( u32, rec_len ) | |
| ), | |
| TP_fast_assign( | |
| __entry->sk = sk; | |
| __entry->sock_data = sock_data; | |
| __entry->rec_len = rec_len; | |
| ), | |
| TP_printk( | |
| "sk=%p sock_data=%u rec_len=%u", | |
| __entry->sk, __entry->sock_data, __entry->rec_len | |
| ) | |
| ); | |
| TRACE_EVENT(tls_device_tx_resync_req, | |
| TP_PROTO(struct sock *sk, u32 tcp_seq, u32 exp_tcp_seq), | |
| TP_ARGS(sk, tcp_seq, exp_tcp_seq), | |
| TP_STRUCT__entry( | |
| __field( struct sock *, sk ) | |
| __field( u32, tcp_seq ) | |
| __field( u32, exp_tcp_seq ) | |
| ), | |
| TP_fast_assign( | |
| __entry->sk = sk; | |
| __entry->tcp_seq = tcp_seq; | |
| __entry->exp_tcp_seq = exp_tcp_seq; | |
| ), | |
| TP_printk( | |
| "sk=%p tcp_seq=%u exp_tcp_seq=%u", | |
| __entry->sk, __entry->tcp_seq, __entry->exp_tcp_seq | |
| ) | |
| ); | |
| TRACE_EVENT(tls_device_tx_resync_send, | |
| TP_PROTO(struct sock *sk, u32 tcp_seq, u8 *rec_no), | |
| TP_ARGS(sk, tcp_seq, rec_no), | |
| TP_STRUCT__entry( | |
| __field( struct sock *, sk ) | |
| __field( u64, rec_no ) | |
| __field( u32, tcp_seq ) | |
| ), | |
| TP_fast_assign( | |
| __entry->sk = sk; | |
| __entry->rec_no = get_unaligned_be64(rec_no); | |
| __entry->tcp_seq = tcp_seq; | |
| ), | |
| TP_printk( | |
| "sk=%p tcp_seq=%u rec_no=%llu", | |
| __entry->sk, __entry->tcp_seq, __entry->rec_no | |
| ) | |
| ); | |
| #endif /* _TLS_TRACE_H_ */ | |
| #undef TRACE_INCLUDE_PATH | |
| #define TRACE_INCLUDE_PATH . | |
| #undef TRACE_INCLUDE_FILE | |
| #define TRACE_INCLUDE_FILE trace | |
| #include <trace/define_trace.h> |