162306a36Sopenharmony_ci/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ 262306a36Sopenharmony_ci/* Copyright (C) 2019 Netronome Systems, Inc. */ 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci#undef TRACE_SYSTEM 562306a36Sopenharmony_ci#define TRACE_SYSTEM tls 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#if !defined(_TLS_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 862306a36Sopenharmony_ci#define _TLS_TRACE_H_ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#include <asm/unaligned.h> 1162306a36Sopenharmony_ci#include <linux/tracepoint.h> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cistruct sock; 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciTRACE_EVENT(tls_device_offload_set, 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci TP_PROTO(struct sock *sk, int dir, u32 tcp_seq, u8 *rec_no, int ret), 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci TP_ARGS(sk, dir, tcp_seq, rec_no, ret), 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci TP_STRUCT__entry( 2262306a36Sopenharmony_ci __field( struct sock *, sk ) 2362306a36Sopenharmony_ci __field( u64, rec_no ) 2462306a36Sopenharmony_ci __field( int, dir ) 2562306a36Sopenharmony_ci __field( u32, tcp_seq ) 2662306a36Sopenharmony_ci __field( int, ret ) 2762306a36Sopenharmony_ci ), 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci TP_fast_assign( 3062306a36Sopenharmony_ci __entry->sk = sk; 3162306a36Sopenharmony_ci __entry->rec_no = get_unaligned_be64(rec_no); 3262306a36Sopenharmony_ci __entry->dir = dir; 3362306a36Sopenharmony_ci __entry->tcp_seq = tcp_seq; 3462306a36Sopenharmony_ci __entry->ret = ret; 3562306a36Sopenharmony_ci ), 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci TP_printk( 3862306a36Sopenharmony_ci "sk=%p direction=%d tcp_seq=%u rec_no=%llu ret=%d", 3962306a36Sopenharmony_ci __entry->sk, __entry->dir, __entry->tcp_seq, __entry->rec_no, 4062306a36Sopenharmony_ci __entry->ret 4162306a36Sopenharmony_ci ) 4262306a36Sopenharmony_ci); 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciTRACE_EVENT(tls_device_decrypted, 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci TP_PROTO(struct sock *sk, u32 tcp_seq, u8 *rec_no, u32 rec_len, 4762306a36Sopenharmony_ci bool encrypted, bool decrypted), 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci TP_ARGS(sk, tcp_seq, rec_no, rec_len, encrypted, decrypted), 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci TP_STRUCT__entry( 5262306a36Sopenharmony_ci __field( struct sock *, sk ) 5362306a36Sopenharmony_ci __field( u64, rec_no ) 5462306a36Sopenharmony_ci __field( u32, tcp_seq ) 5562306a36Sopenharmony_ci __field( u32, rec_len ) 5662306a36Sopenharmony_ci __field( bool, encrypted ) 5762306a36Sopenharmony_ci __field( bool, decrypted ) 5862306a36Sopenharmony_ci ), 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci TP_fast_assign( 6162306a36Sopenharmony_ci __entry->sk = sk; 6262306a36Sopenharmony_ci __entry->rec_no = get_unaligned_be64(rec_no); 6362306a36Sopenharmony_ci __entry->tcp_seq = tcp_seq; 6462306a36Sopenharmony_ci __entry->rec_len = rec_len; 6562306a36Sopenharmony_ci __entry->encrypted = encrypted; 6662306a36Sopenharmony_ci __entry->decrypted = decrypted; 6762306a36Sopenharmony_ci ), 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci TP_printk( 7062306a36Sopenharmony_ci "sk=%p tcp_seq=%u rec_no=%llu len=%u encrypted=%d decrypted=%d", 7162306a36Sopenharmony_ci __entry->sk, __entry->tcp_seq, 7262306a36Sopenharmony_ci __entry->rec_no, __entry->rec_len, 7362306a36Sopenharmony_ci __entry->encrypted, __entry->decrypted 7462306a36Sopenharmony_ci ) 7562306a36Sopenharmony_ci); 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ciTRACE_EVENT(tls_device_rx_resync_send, 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci TP_PROTO(struct sock *sk, u32 tcp_seq, u8 *rec_no, int sync_type), 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci TP_ARGS(sk, tcp_seq, rec_no, sync_type), 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci TP_STRUCT__entry( 8462306a36Sopenharmony_ci __field( struct sock *, sk ) 8562306a36Sopenharmony_ci __field( u64, rec_no ) 8662306a36Sopenharmony_ci __field( u32, tcp_seq ) 8762306a36Sopenharmony_ci __field( int, sync_type ) 8862306a36Sopenharmony_ci ), 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci TP_fast_assign( 9162306a36Sopenharmony_ci __entry->sk = sk; 9262306a36Sopenharmony_ci __entry->rec_no = get_unaligned_be64(rec_no); 9362306a36Sopenharmony_ci __entry->tcp_seq = tcp_seq; 9462306a36Sopenharmony_ci __entry->sync_type = sync_type; 9562306a36Sopenharmony_ci ), 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci TP_printk( 9862306a36Sopenharmony_ci "sk=%p tcp_seq=%u rec_no=%llu sync_type=%d", 9962306a36Sopenharmony_ci __entry->sk, __entry->tcp_seq, __entry->rec_no, 10062306a36Sopenharmony_ci __entry->sync_type 10162306a36Sopenharmony_ci ) 10262306a36Sopenharmony_ci); 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ciTRACE_EVENT(tls_device_rx_resync_nh_schedule, 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci TP_PROTO(struct sock *sk), 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci TP_ARGS(sk), 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci TP_STRUCT__entry( 11162306a36Sopenharmony_ci __field( struct sock *, sk ) 11262306a36Sopenharmony_ci ), 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ci TP_fast_assign( 11562306a36Sopenharmony_ci __entry->sk = sk; 11662306a36Sopenharmony_ci ), 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci TP_printk( 11962306a36Sopenharmony_ci "sk=%p", __entry->sk 12062306a36Sopenharmony_ci ) 12162306a36Sopenharmony_ci); 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ciTRACE_EVENT(tls_device_rx_resync_nh_delay, 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci TP_PROTO(struct sock *sk, u32 sock_data, u32 rec_len), 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ci TP_ARGS(sk, sock_data, rec_len), 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci TP_STRUCT__entry( 13062306a36Sopenharmony_ci __field( struct sock *, sk ) 13162306a36Sopenharmony_ci __field( u32, sock_data ) 13262306a36Sopenharmony_ci __field( u32, rec_len ) 13362306a36Sopenharmony_ci ), 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci TP_fast_assign( 13662306a36Sopenharmony_ci __entry->sk = sk; 13762306a36Sopenharmony_ci __entry->sock_data = sock_data; 13862306a36Sopenharmony_ci __entry->rec_len = rec_len; 13962306a36Sopenharmony_ci ), 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ci TP_printk( 14262306a36Sopenharmony_ci "sk=%p sock_data=%u rec_len=%u", 14362306a36Sopenharmony_ci __entry->sk, __entry->sock_data, __entry->rec_len 14462306a36Sopenharmony_ci ) 14562306a36Sopenharmony_ci); 14662306a36Sopenharmony_ci 14762306a36Sopenharmony_ciTRACE_EVENT(tls_device_tx_resync_req, 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ci TP_PROTO(struct sock *sk, u32 tcp_seq, u32 exp_tcp_seq), 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci TP_ARGS(sk, tcp_seq, exp_tcp_seq), 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ci TP_STRUCT__entry( 15462306a36Sopenharmony_ci __field( struct sock *, sk ) 15562306a36Sopenharmony_ci __field( u32, tcp_seq ) 15662306a36Sopenharmony_ci __field( u32, exp_tcp_seq ) 15762306a36Sopenharmony_ci ), 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ci TP_fast_assign( 16062306a36Sopenharmony_ci __entry->sk = sk; 16162306a36Sopenharmony_ci __entry->tcp_seq = tcp_seq; 16262306a36Sopenharmony_ci __entry->exp_tcp_seq = exp_tcp_seq; 16362306a36Sopenharmony_ci ), 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_ci TP_printk( 16662306a36Sopenharmony_ci "sk=%p tcp_seq=%u exp_tcp_seq=%u", 16762306a36Sopenharmony_ci __entry->sk, __entry->tcp_seq, __entry->exp_tcp_seq 16862306a36Sopenharmony_ci ) 16962306a36Sopenharmony_ci); 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ciTRACE_EVENT(tls_device_tx_resync_send, 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ci TP_PROTO(struct sock *sk, u32 tcp_seq, u8 *rec_no), 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci TP_ARGS(sk, tcp_seq, rec_no), 17662306a36Sopenharmony_ci 17762306a36Sopenharmony_ci TP_STRUCT__entry( 17862306a36Sopenharmony_ci __field( struct sock *, sk ) 17962306a36Sopenharmony_ci __field( u64, rec_no ) 18062306a36Sopenharmony_ci __field( u32, tcp_seq ) 18162306a36Sopenharmony_ci ), 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_ci TP_fast_assign( 18462306a36Sopenharmony_ci __entry->sk = sk; 18562306a36Sopenharmony_ci __entry->rec_no = get_unaligned_be64(rec_no); 18662306a36Sopenharmony_ci __entry->tcp_seq = tcp_seq; 18762306a36Sopenharmony_ci ), 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ci TP_printk( 19062306a36Sopenharmony_ci "sk=%p tcp_seq=%u rec_no=%llu", 19162306a36Sopenharmony_ci __entry->sk, __entry->tcp_seq, __entry->rec_no 19262306a36Sopenharmony_ci ) 19362306a36Sopenharmony_ci); 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ci#endif /* _TLS_TRACE_H_ */ 19662306a36Sopenharmony_ci 19762306a36Sopenharmony_ci#undef TRACE_INCLUDE_PATH 19862306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH . 19962306a36Sopenharmony_ci#undef TRACE_INCLUDE_FILE 20062306a36Sopenharmony_ci#define TRACE_INCLUDE_FILE trace 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ci#include <trace/define_trace.h> 203