• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0 */
2 
3 #undef TRACE_SYSTEM
4 #define TRACE_SYSTEM net
5 #define TRACE_INCLUDE_PATH trace/hooks
6 
7 #if !defined(_TRACE_HOOK_NET_VH_H) || defined(TRACE_HEADER_MULTI_READ)
8 #define _TRACE_HOOK_NET_VH_H
9 #include <trace/hooks/vendor_hooks.h>
10 
11 #ifndef TCP_STATE_CHANGE_REASON_H
12 #define TCP_STATE_CHANGE_REASON_H
13 enum tcp_state_change_reason {
14 	TCP_STATE_CHANGE_REASON_NORMAL,
15 	TCP_STATE_CHANGE_REASON_SYN_RST,
16 	TCP_STATE_CHANGE_REASON_SYN_TIMEOUT,
17 	TCP_STATE_CHANGE_REASON_RETRANSMIT
18 };
19 #endif
20 
21 struct packet_type;
22 struct list_head;
23 DECLARE_HOOK(android_vh_ptype_head,
24 	TP_PROTO(const struct packet_type *pt, struct list_head *vendor_pt),
25 	TP_ARGS(pt, vendor_pt));
26 
27 struct sock;
28 struct msghdr;
29 struct sk_buff;
30 struct sockaddr_in6;
31 struct net_device;
32 DECLARE_RESTRICTED_HOOK(android_rvh_tcp_sendmsg,
33 	TP_PROTO(struct sock *sk, struct msghdr *msg, size_t len),
34 	TP_ARGS(sk, msg, len), 1);
35 DECLARE_RESTRICTED_HOOK(android_rvh_tcp_recvmsg,
36 	TP_PROTO(struct sock *sk, struct msghdr *msg, size_t len, int flags, int *addr_len),
37 	TP_ARGS(sk, msg, len, flags, addr_len), 1);
38 DECLARE_RESTRICTED_HOOK(android_rvh_udp_sendmsg,
39 	TP_PROTO(struct sock *sk, struct msghdr *msg, size_t len),
40 	TP_ARGS(sk, msg, len), 1);
41 DECLARE_RESTRICTED_HOOK(android_rvh_udp_recvmsg,
42 	TP_PROTO(struct sock *sk, struct msghdr *msg, size_t len, int flags, int *addr_len),
43 	TP_ARGS(sk, msg, len, flags, addr_len), 1);
44 DECLARE_RESTRICTED_HOOK(android_rvh_udpv6_sendmsg,
45 	TP_PROTO(struct sock *sk, struct msghdr *msg, size_t len),
46 	TP_ARGS(sk, msg, len), 1);
47 DECLARE_RESTRICTED_HOOK(android_rvh_udpv6_recvmsg,
48 	TP_PROTO(struct sock *sk, struct msghdr *msg, size_t len, int flags, int *addr_len),
49 	TP_ARGS(sk, msg, len, flags, addr_len), 1);
50 DECLARE_RESTRICTED_HOOK(android_rvh_tcp_select_window,
51 	TP_PROTO(struct sock *sk, u32 *new_win), TP_ARGS(sk, new_win), 1);
52 DECLARE_RESTRICTED_HOOK(android_rvh_inet_sock_create,
53 	TP_PROTO(struct sock *sk), TP_ARGS(sk), 1);
54 DECLARE_RESTRICTED_HOOK(android_rvh_inet_sock_release,
55 	TP_PROTO(struct sock *sk), TP_ARGS(sk), 1);
56 DECLARE_RESTRICTED_HOOK(android_rvh_bpf_skb_load_bytes,
57 	TP_PROTO(const struct sk_buff *skb, u32 offset, void *to, u32 len,
58 		int *handled, int *err),
59 	TP_ARGS(skb, offset, to, len, handled, err), 1);
60 DECLARE_RESTRICTED_HOOK(android_rvh_tcp_rcv_spurious_retrans,
61 	TP_PROTO(struct sock *sk), TP_ARGS(sk), 1);
62 DECLARE_HOOK(android_vh_tcp_sock_error,
63 	TP_PROTO(struct sock *sk), TP_ARGS(sk));
64 DECLARE_HOOK(android_vh_tcp_fastsyn,
65 	TP_PROTO(struct sock *sk), TP_ARGS(sk));
66 DECLARE_HOOK(android_vh_tcp_select_window,
67 	TP_PROTO(struct sock *sk, uint32_t *win), TP_ARGS(sk, win));
68 DECLARE_HOOK(android_vh_tcp_state_change,
69 	TP_PROTO(struct sock *sk, enum tcp_state_change_reason reason, int state),
70 	TP_ARGS(sk, reason, state));
71 DECLARE_HOOK(android_vh_tcp_update_rtt,
72 	TP_PROTO(struct sock *sk, long rtt), TP_ARGS(sk, rtt));
73 DECLARE_HOOK(android_vh_dc_send_copy,
74 	TP_PROTO(struct sk_buff *skb, struct net_device *dev), TP_ARGS(skb, dev));
75 DECLARE_HOOK(android_vh_dc_receive,
76 	TP_PROTO(struct sk_buff *skb, int *flag), TP_ARGS(skb, flag));
77 DECLARE_HOOK(android_vh_tcp_v4_connect,
78 	TP_PROTO(struct sock *sk, struct sockaddr *uaddr), TP_ARGS(sk, uaddr));
79 DECLARE_HOOK(android_vh_tcp_v6_connect,
80 	TP_PROTO(struct sock *sk, struct sockaddr *uaddr), TP_ARGS(sk, uaddr));
81 DECLARE_HOOK(android_vh_udp_v4_connect,
82 	TP_PROTO(struct sock *sk, __be32 daddr, __be16 dport, uint16_t family),
83 	TP_ARGS(sk, daddr, dport, family));
84 DECLARE_HOOK(android_vh_udp_v6_connect,
85 	TP_PROTO(struct sock *sk, struct sockaddr_in6 *sin6), TP_ARGS(sk, sin6));
86 DECLARE_HOOK(android_vh_inet_create,
87 	TP_PROTO(struct sock *sk, bool err), TP_ARGS(sk, err));
88 DECLARE_HOOK(android_vh_uplink_send_msg,
89 	TP_PROTO(struct sock *sk), TP_ARGS(sk));
90 DECLARE_HOOK(android_vh_sock_create,
91 	TP_PROTO(struct sock *sk), TP_ARGS(sk));
92 DECLARE_HOOK(android_vh_tcp_rtt_estimator,
93 	TP_PROTO(struct sock *sk, long mrtt_us), TP_ARGS(sk, mrtt_us));
94 DECLARE_HOOK(android_vh_udp_enqueue_schedule_skb,
95 	TP_PROTO(struct sock *sk, struct sk_buff *skb), TP_ARGS(sk, skb));
96 DECLARE_HOOK(android_vh_build_skb_around,
97 	TP_PROTO(struct sk_buff *skb), TP_ARGS(skb));
98 DECLARE_HOOK(android_vh_tcp_write_timeout_estab_retrans,
99         TP_PROTO(struct sock *sk), TP_ARGS(sk));
100 DECLARE_HOOK(android_vh_tcp_connect,
101 	TP_PROTO(struct sk_buff *skb), TP_ARGS(skb));
102 DECLARE_HOOK(android_vh_sk_alloc,
103         TP_PROTO(struct sock *sk), TP_ARGS(sk));
104 DECLARE_HOOK(android_vh_sk_free,
105         TP_PROTO(struct sock *sk), TP_ARGS(sk));
106 DECLARE_HOOK(android_vh_sk_clone_lock,
107 	TP_PROTO(struct sock *nsk), TP_ARGS(nsk));
108 struct request_sock;
109 DECLARE_HOOK(android_vh_inet_csk_clone_lock,
110 	TP_PROTO(struct sock *newsk, const struct request_sock *req), TP_ARGS(newsk, req));
111 DECLARE_HOOK(android_vh_tcp_clean_rtx_queue,
112 	TP_PROTO(struct sock *sk, int flag, long seq_rtt_us),
113 	TP_ARGS(sk, flag, seq_rtt_us));
114 struct inet_connection_sock;
115 DECLARE_HOOK(android_vh_tcp_rcv_synack,
116 	TP_PROTO(struct inet_connection_sock *icsk), TP_ARGS(icsk));
117 /* macro versions of hooks are no longer required */
118 
119 #endif /* _TRACE_HOOK_NET_VH_H */
120 /* This part must be outside protection */
121 #include <trace/define_trace.h>
122