18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ 28c2ecf20Sopenharmony_ci/* Copyright (C) 2019 Netronome Systems, Inc. */ 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci#undef TRACE_SYSTEM 58c2ecf20Sopenharmony_ci#define TRACE_SYSTEM tls 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci#if !defined(_TLS_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 88c2ecf20Sopenharmony_ci#define _TLS_TRACE_H_ 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#include <asm/unaligned.h> 118c2ecf20Sopenharmony_ci#include <linux/tracepoint.h> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cistruct sock; 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ciTRACE_EVENT(tls_device_offload_set, 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci TP_PROTO(struct sock *sk, int dir, u32 tcp_seq, u8 *rec_no, int ret), 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci TP_ARGS(sk, dir, tcp_seq, rec_no, ret), 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci TP_STRUCT__entry( 228c2ecf20Sopenharmony_ci __field( struct sock *, sk ) 238c2ecf20Sopenharmony_ci __field( u64, rec_no ) 248c2ecf20Sopenharmony_ci __field( int, dir ) 258c2ecf20Sopenharmony_ci __field( u32, tcp_seq ) 268c2ecf20Sopenharmony_ci __field( int, ret ) 278c2ecf20Sopenharmony_ci ), 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci TP_fast_assign( 308c2ecf20Sopenharmony_ci __entry->sk = sk; 318c2ecf20Sopenharmony_ci __entry->rec_no = get_unaligned_be64(rec_no); 328c2ecf20Sopenharmony_ci __entry->dir = dir; 338c2ecf20Sopenharmony_ci __entry->tcp_seq = tcp_seq; 348c2ecf20Sopenharmony_ci __entry->ret = ret; 358c2ecf20Sopenharmony_ci ), 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci TP_printk( 388c2ecf20Sopenharmony_ci "sk=%p direction=%d tcp_seq=%u rec_no=%llu ret=%d", 398c2ecf20Sopenharmony_ci __entry->sk, __entry->dir, __entry->tcp_seq, __entry->rec_no, 408c2ecf20Sopenharmony_ci __entry->ret 418c2ecf20Sopenharmony_ci ) 428c2ecf20Sopenharmony_ci); 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ciTRACE_EVENT(tls_device_decrypted, 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci TP_PROTO(struct sock *sk, u32 tcp_seq, u8 *rec_no, u32 rec_len, 478c2ecf20Sopenharmony_ci bool encrypted, bool decrypted), 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci TP_ARGS(sk, tcp_seq, rec_no, rec_len, encrypted, decrypted), 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ci TP_STRUCT__entry( 528c2ecf20Sopenharmony_ci __field( struct sock *, sk ) 538c2ecf20Sopenharmony_ci __field( u64, rec_no ) 548c2ecf20Sopenharmony_ci __field( u32, tcp_seq ) 558c2ecf20Sopenharmony_ci __field( u32, rec_len ) 568c2ecf20Sopenharmony_ci __field( bool, encrypted ) 578c2ecf20Sopenharmony_ci __field( bool, decrypted ) 588c2ecf20Sopenharmony_ci ), 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci TP_fast_assign( 618c2ecf20Sopenharmony_ci __entry->sk = sk; 628c2ecf20Sopenharmony_ci __entry->rec_no = get_unaligned_be64(rec_no); 638c2ecf20Sopenharmony_ci __entry->tcp_seq = tcp_seq; 648c2ecf20Sopenharmony_ci __entry->rec_len = rec_len; 658c2ecf20Sopenharmony_ci __entry->encrypted = encrypted; 668c2ecf20Sopenharmony_ci __entry->decrypted = decrypted; 678c2ecf20Sopenharmony_ci ), 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci TP_printk( 708c2ecf20Sopenharmony_ci "sk=%p tcp_seq=%u rec_no=%llu len=%u encrypted=%d decrypted=%d", 718c2ecf20Sopenharmony_ci __entry->sk, __entry->tcp_seq, 728c2ecf20Sopenharmony_ci __entry->rec_no, __entry->rec_len, 738c2ecf20Sopenharmony_ci __entry->encrypted, __entry->decrypted 748c2ecf20Sopenharmony_ci ) 758c2ecf20Sopenharmony_ci); 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ciTRACE_EVENT(tls_device_rx_resync_send, 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci TP_PROTO(struct sock *sk, u32 tcp_seq, u8 *rec_no, int sync_type), 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci TP_ARGS(sk, tcp_seq, rec_no, sync_type), 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ci TP_STRUCT__entry( 848c2ecf20Sopenharmony_ci __field( struct sock *, sk ) 858c2ecf20Sopenharmony_ci __field( u64, rec_no ) 868c2ecf20Sopenharmony_ci __field( u32, tcp_seq ) 878c2ecf20Sopenharmony_ci __field( int, sync_type ) 888c2ecf20Sopenharmony_ci ), 898c2ecf20Sopenharmony_ci 908c2ecf20Sopenharmony_ci TP_fast_assign( 918c2ecf20Sopenharmony_ci __entry->sk = sk; 928c2ecf20Sopenharmony_ci __entry->rec_no = get_unaligned_be64(rec_no); 938c2ecf20Sopenharmony_ci __entry->tcp_seq = tcp_seq; 948c2ecf20Sopenharmony_ci __entry->sync_type = sync_type; 958c2ecf20Sopenharmony_ci ), 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ci TP_printk( 988c2ecf20Sopenharmony_ci "sk=%p tcp_seq=%u rec_no=%llu sync_type=%d", 998c2ecf20Sopenharmony_ci __entry->sk, __entry->tcp_seq, __entry->rec_no, 1008c2ecf20Sopenharmony_ci __entry->sync_type 1018c2ecf20Sopenharmony_ci ) 1028c2ecf20Sopenharmony_ci); 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ciTRACE_EVENT(tls_device_rx_resync_nh_schedule, 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ci TP_PROTO(struct sock *sk), 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci TP_ARGS(sk), 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ci TP_STRUCT__entry( 1118c2ecf20Sopenharmony_ci __field( struct sock *, sk ) 1128c2ecf20Sopenharmony_ci ), 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci TP_fast_assign( 1158c2ecf20Sopenharmony_ci __entry->sk = sk; 1168c2ecf20Sopenharmony_ci ), 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci TP_printk( 1198c2ecf20Sopenharmony_ci "sk=%p", __entry->sk 1208c2ecf20Sopenharmony_ci ) 1218c2ecf20Sopenharmony_ci); 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ciTRACE_EVENT(tls_device_rx_resync_nh_delay, 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_ci TP_PROTO(struct sock *sk, u32 sock_data, u32 rec_len), 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ci TP_ARGS(sk, sock_data, rec_len), 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ci TP_STRUCT__entry( 1308c2ecf20Sopenharmony_ci __field( struct sock *, sk ) 1318c2ecf20Sopenharmony_ci __field( u32, sock_data ) 1328c2ecf20Sopenharmony_ci __field( u32, rec_len ) 1338c2ecf20Sopenharmony_ci ), 1348c2ecf20Sopenharmony_ci 1358c2ecf20Sopenharmony_ci TP_fast_assign( 1368c2ecf20Sopenharmony_ci __entry->sk = sk; 1378c2ecf20Sopenharmony_ci __entry->sock_data = sock_data; 1388c2ecf20Sopenharmony_ci __entry->rec_len = rec_len; 1398c2ecf20Sopenharmony_ci ), 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci TP_printk( 1428c2ecf20Sopenharmony_ci "sk=%p sock_data=%u rec_len=%u", 1438c2ecf20Sopenharmony_ci __entry->sk, __entry->sock_data, __entry->rec_len 1448c2ecf20Sopenharmony_ci ) 1458c2ecf20Sopenharmony_ci); 1468c2ecf20Sopenharmony_ci 1478c2ecf20Sopenharmony_ciTRACE_EVENT(tls_device_tx_resync_req, 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ci TP_PROTO(struct sock *sk, u32 tcp_seq, u32 exp_tcp_seq), 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ci TP_ARGS(sk, tcp_seq, exp_tcp_seq), 1528c2ecf20Sopenharmony_ci 1538c2ecf20Sopenharmony_ci TP_STRUCT__entry( 1548c2ecf20Sopenharmony_ci __field( struct sock *, sk ) 1558c2ecf20Sopenharmony_ci __field( u32, tcp_seq ) 1568c2ecf20Sopenharmony_ci __field( u32, exp_tcp_seq ) 1578c2ecf20Sopenharmony_ci ), 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ci TP_fast_assign( 1608c2ecf20Sopenharmony_ci __entry->sk = sk; 1618c2ecf20Sopenharmony_ci __entry->tcp_seq = tcp_seq; 1628c2ecf20Sopenharmony_ci __entry->exp_tcp_seq = exp_tcp_seq; 1638c2ecf20Sopenharmony_ci ), 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ci TP_printk( 1668c2ecf20Sopenharmony_ci "sk=%p tcp_seq=%u exp_tcp_seq=%u", 1678c2ecf20Sopenharmony_ci __entry->sk, __entry->tcp_seq, __entry->exp_tcp_seq 1688c2ecf20Sopenharmony_ci ) 1698c2ecf20Sopenharmony_ci); 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ciTRACE_EVENT(tls_device_tx_resync_send, 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ci TP_PROTO(struct sock *sk, u32 tcp_seq, u8 *rec_no), 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ci TP_ARGS(sk, tcp_seq, rec_no), 1768c2ecf20Sopenharmony_ci 1778c2ecf20Sopenharmony_ci TP_STRUCT__entry( 1788c2ecf20Sopenharmony_ci __field( struct sock *, sk ) 1798c2ecf20Sopenharmony_ci __field( u64, rec_no ) 1808c2ecf20Sopenharmony_ci __field( u32, tcp_seq ) 1818c2ecf20Sopenharmony_ci ), 1828c2ecf20Sopenharmony_ci 1838c2ecf20Sopenharmony_ci TP_fast_assign( 1848c2ecf20Sopenharmony_ci __entry->sk = sk; 1858c2ecf20Sopenharmony_ci __entry->rec_no = get_unaligned_be64(rec_no); 1868c2ecf20Sopenharmony_ci __entry->tcp_seq = tcp_seq; 1878c2ecf20Sopenharmony_ci ), 1888c2ecf20Sopenharmony_ci 1898c2ecf20Sopenharmony_ci TP_printk( 1908c2ecf20Sopenharmony_ci "sk=%p tcp_seq=%u rec_no=%llu", 1918c2ecf20Sopenharmony_ci __entry->sk, __entry->tcp_seq, __entry->rec_no 1928c2ecf20Sopenharmony_ci ) 1938c2ecf20Sopenharmony_ci); 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_ci#endif /* _TLS_TRACE_H_ */ 1968c2ecf20Sopenharmony_ci 1978c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_PATH 1988c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_PATH . 1998c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_FILE 2008c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_FILE trace 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ci#include <trace/define_trace.h> 203