Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) #define TRACE_SYSTEM tcp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) #if !defined(_TRACE_TCP_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) #define _TRACE_TCP_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) #include <linux/ipv6.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) #include <linux/tcp.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) #include <net/ipv6.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) #include <net/tcp.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) #include <linux/sock_diag.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) #define TP_STORE_V4MAPPED(__entry, saddr, daddr)		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 	do {							\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 		struct in6_addr *pin6;				\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 								\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 		pin6 = (struct in6_addr *)__entry->saddr_v6;	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 		ipv6_addr_set_v4mapped(saddr, pin6);		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 		pin6 = (struct in6_addr *)__entry->daddr_v6;	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 		ipv6_addr_set_v4mapped(daddr, pin6);		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 	} while (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) #if IS_ENABLED(CONFIG_IPV6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) #define TP_STORE_ADDRS(__entry, saddr, daddr, saddr6, daddr6)		\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 	do {								\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 		if (sk->sk_family == AF_INET6) {			\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 			struct in6_addr *pin6;				\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 									\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 			pin6 = (struct in6_addr *)__entry->saddr_v6;	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 			*pin6 = saddr6;					\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 			pin6 = (struct in6_addr *)__entry->daddr_v6;	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 			*pin6 = daddr6;					\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 		} else {						\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 			TP_STORE_V4MAPPED(__entry, saddr, daddr);	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 		}							\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 	} while (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) #define TP_STORE_ADDRS(__entry, saddr, daddr, saddr6, daddr6)	\
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 	TP_STORE_V4MAPPED(__entry, saddr, daddr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45)  * tcp event with arguments sk and skb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47)  * Note: this class requires a valid sk pointer; while skb pointer could
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48)  *       be NULL.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) DECLARE_EVENT_CLASS(tcp_event_sk_skb,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 	TP_PROTO(const struct sock *sk, const struct sk_buff *skb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 	TP_ARGS(sk, skb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 		__field(const void *, skbaddr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 		__field(const void *, skaddr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 		__field(int, state)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 		__field(__u16, sport)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 		__field(__u16, dport)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 		__array(__u8, saddr, 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 		__array(__u8, daddr, 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 		__array(__u8, saddr_v6, 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 		__array(__u8, daddr_v6, 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 		struct inet_sock *inet = inet_sk(sk);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 		__be32 *p32;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 		__entry->skbaddr = skb;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 		__entry->skaddr = sk;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 		__entry->state = sk->sk_state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 		__entry->sport = ntohs(inet->inet_sport);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 		__entry->dport = ntohs(inet->inet_dport);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 		p32 = (__be32 *) __entry->saddr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 		*p32 = inet->inet_saddr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 		p32 = (__be32 *) __entry->daddr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 		*p32 =  inet->inet_daddr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 		TP_STORE_ADDRS(__entry, inet->inet_saddr, inet->inet_daddr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 			      sk->sk_v6_rcv_saddr, sk->sk_v6_daddr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	TP_printk("sport=%hu dport=%hu saddr=%pI4 daddr=%pI4 saddrv6=%pI6c daddrv6=%pI6c state=%s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 		  __entry->sport, __entry->dport, __entry->saddr, __entry->daddr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 		  __entry->saddr_v6, __entry->daddr_v6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 		  show_tcp_state_name(__entry->state))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) DEFINE_EVENT(tcp_event_sk_skb, tcp_retransmit_skb,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 	TP_PROTO(const struct sock *sk, const struct sk_buff *skb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	TP_ARGS(sk, skb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)  * skb of trace_tcp_send_reset is the skb that caused RST. In case of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)  * active reset, skb should be NULL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) DEFINE_EVENT(tcp_event_sk_skb, tcp_send_reset,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	TP_PROTO(const struct sock *sk, const struct sk_buff *skb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 	TP_ARGS(sk, skb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114)  * tcp event with arguments sk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)  * Note: this class requires a valid sk pointer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) DECLARE_EVENT_CLASS(tcp_event_sk,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 	TP_PROTO(struct sock *sk),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 	TP_ARGS(sk),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 		__field(const void *, skaddr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 		__field(__u16, sport)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 		__field(__u16, dport)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 		__array(__u8, saddr, 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 		__array(__u8, daddr, 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 		__array(__u8, saddr_v6, 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 		__array(__u8, daddr_v6, 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 		__field(__u64, sock_cookie)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) 		struct inet_sock *inet = inet_sk(sk);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 		__be32 *p32;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) 		__entry->skaddr = sk;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) 		__entry->sport = ntohs(inet->inet_sport);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 		__entry->dport = ntohs(inet->inet_dport);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 		p32 = (__be32 *) __entry->saddr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 		*p32 = inet->inet_saddr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 		p32 = (__be32 *) __entry->daddr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) 		*p32 =  inet->inet_daddr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 		TP_STORE_ADDRS(__entry, inet->inet_saddr, inet->inet_daddr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) 			       sk->sk_v6_rcv_saddr, sk->sk_v6_daddr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) 		__entry->sock_cookie = sock_gen_cookie(sk);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 	TP_printk("sport=%hu dport=%hu saddr=%pI4 daddr=%pI4 saddrv6=%pI6c daddrv6=%pI6c sock_cookie=%llx",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) 		  __entry->sport, __entry->dport,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) 		  __entry->saddr, __entry->daddr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) 		  __entry->saddr_v6, __entry->daddr_v6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 		  __entry->sock_cookie)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) DEFINE_EVENT(tcp_event_sk, tcp_receive_reset,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) 	TP_PROTO(struct sock *sk),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) 	TP_ARGS(sk)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) DEFINE_EVENT(tcp_event_sk, tcp_destroy_sock,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) 	TP_PROTO(struct sock *sk),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) 	TP_ARGS(sk)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) DEFINE_EVENT(tcp_event_sk, tcp_rcv_space_adjust,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) 	TP_PROTO(struct sock *sk),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) 	TP_ARGS(sk)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) TRACE_EVENT(tcp_retransmit_synack,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 	TP_PROTO(const struct sock *sk, const struct request_sock *req),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) 	TP_ARGS(sk, req),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 		__field(const void *, skaddr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) 		__field(const void *, req)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) 		__field(__u16, sport)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) 		__field(__u16, dport)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 		__array(__u8, saddr, 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) 		__array(__u8, daddr, 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 		__array(__u8, saddr_v6, 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 		__array(__u8, daddr_v6, 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) 		struct inet_request_sock *ireq = inet_rsk(req);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 		__be32 *p32;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 		__entry->skaddr = sk;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) 		__entry->req = req;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 		__entry->sport = ireq->ir_num;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) 		__entry->dport = ntohs(ireq->ir_rmt_port);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) 		p32 = (__be32 *) __entry->saddr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) 		*p32 = ireq->ir_loc_addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) 		p32 = (__be32 *) __entry->daddr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) 		*p32 = ireq->ir_rmt_addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) 		TP_STORE_ADDRS(__entry, ireq->ir_loc_addr, ireq->ir_rmt_addr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) 			      ireq->ir_v6_loc_addr, ireq->ir_v6_rmt_addr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) 	TP_printk("sport=%hu dport=%hu saddr=%pI4 daddr=%pI4 saddrv6=%pI6c daddrv6=%pI6c",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) 		  __entry->sport, __entry->dport,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) 		  __entry->saddr, __entry->daddr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) 		  __entry->saddr_v6, __entry->daddr_v6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) #include <trace/events/net_probe_common.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) TRACE_EVENT(tcp_probe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) 	TP_PROTO(struct sock *sk, struct sk_buff *skb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) 	TP_ARGS(sk, skb),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) 	TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) 		/* sockaddr_in6 is always bigger than sockaddr_in */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) 		__array(__u8, saddr, sizeof(struct sockaddr_in6))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) 		__array(__u8, daddr, sizeof(struct sockaddr_in6))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) 		__field(__u16, sport)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) 		__field(__u16, dport)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) 		__field(__u32, mark)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) 		__field(__u16, data_len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) 		__field(__u32, snd_nxt)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) 		__field(__u32, snd_una)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) 		__field(__u32, snd_cwnd)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) 		__field(__u32, ssthresh)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) 		__field(__u32, snd_wnd)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) 		__field(__u32, srtt)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) 		__field(__u32, rcv_wnd)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) 		__field(__u64, sock_cookie)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) 	TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) 		const struct tcphdr *th = (const struct tcphdr *)skb->data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) 		const struct inet_sock *inet = inet_sk(sk);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) 		const struct tcp_sock *tp = tcp_sk(sk);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) 		memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) 		memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) 		TP_STORE_ADDR_PORTS(__entry, inet, sk);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) 		/* For filtering use */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) 		__entry->sport = ntohs(inet->inet_sport);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) 		__entry->dport = ntohs(inet->inet_dport);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) 		__entry->mark = skb->mark;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) 		__entry->data_len = skb->len - __tcp_hdrlen(th);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) 		__entry->snd_nxt = tp->snd_nxt;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) 		__entry->snd_una = tp->snd_una;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) 		__entry->snd_cwnd = tp->snd_cwnd;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) 		__entry->snd_wnd = tp->snd_wnd;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) 		__entry->rcv_wnd = tp->rcv_wnd;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) 		__entry->ssthresh = tcp_current_ssthresh(sk);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) 		__entry->srtt = tp->srtt_us >> 3;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) 		__entry->sock_cookie = sock_gen_cookie(sk);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) 	),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) 	TP_printk("src=%pISpc dest=%pISpc mark=%#x data_len=%d snd_nxt=%#x snd_una=%#x snd_cwnd=%u ssthresh=%u snd_wnd=%u srtt=%u rcv_wnd=%u sock_cookie=%llx",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) 		  __entry->saddr, __entry->daddr, __entry->mark,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) 		  __entry->data_len, __entry->snd_nxt, __entry->snd_una,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) 		  __entry->snd_cwnd, __entry->ssthresh, __entry->snd_wnd,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) 		  __entry->srtt, __entry->rcv_wnd, __entry->sock_cookie)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) #endif /* _TRACE_TCP_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) /* This part must be outside protection */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) #include <trace/define_trace.h>