trace.h 4.0 KB

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