Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: tracepoint: exposing sk_family in all tcp:tracepoints

Similar to sock:inet_sock_set_state tracepoint, expose sk_family to
distinguish AF_INET and AF_INET6 families.

The following tcp tracepoints are updated:
tcp:tcp_destroy_sock
tcp:tcp_rcv_space_adjust
tcp:tcp_retransmit_skb
tcp:tcp_send_reset
tcp:tcp_receive_reset
tcp:tcp_retransmit_synack
tcp:tcp_probe

Signed-off-by: Hariharan Ananthakrishnan <hari@netflix.com>
Signed-off-by: Brendan Gregg <bgregg@netflix.com>
Link: https://lore.kernel.org/r/20210129001210.344438-1-hari@netflix.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Hariharan Ananthakrishnan and committed by
Jakub Kicinski
3dd344ea f5a5589c

+16 -4
+16 -4
include/trace/events/tcp.h
··· 59 59 __field(int, state) 60 60 __field(__u16, sport) 61 61 __field(__u16, dport) 62 + __field(__u16, family) 62 63 __array(__u8, saddr, 4) 63 64 __array(__u8, daddr, 4) 64 65 __array(__u8, saddr_v6, 16) ··· 76 75 77 76 __entry->sport = ntohs(inet->inet_sport); 78 77 __entry->dport = ntohs(inet->inet_dport); 78 + __entry->family = sk->sk_family; 79 79 80 80 p32 = (__be32 *) __entry->saddr; 81 81 *p32 = inet->inet_saddr; ··· 88 86 sk->sk_v6_rcv_saddr, sk->sk_v6_daddr); 89 87 ), 90 88 91 - TP_printk("sport=%hu dport=%hu saddr=%pI4 daddr=%pI4 saddrv6=%pI6c daddrv6=%pI6c state=%s", 89 + TP_printk("family=%s sport=%hu dport=%hu saddr=%pI4 daddr=%pI4 saddrv6=%pI6c daddrv6=%pI6c state=%s", 90 + show_family_name(__entry->family), 92 91 __entry->sport, __entry->dport, __entry->saddr, __entry->daddr, 93 92 __entry->saddr_v6, __entry->daddr_v6, 94 93 show_tcp_state_name(__entry->state)) ··· 128 125 __field(const void *, skaddr) 129 126 __field(__u16, sport) 130 127 __field(__u16, dport) 128 + __field(__u16, family) 131 129 __array(__u8, saddr, 4) 132 130 __array(__u8, daddr, 4) 133 131 __array(__u8, saddr_v6, 16) ··· 144 140 145 141 __entry->sport = ntohs(inet->inet_sport); 146 142 __entry->dport = ntohs(inet->inet_dport); 143 + __entry->family = sk->sk_family; 147 144 148 145 p32 = (__be32 *) __entry->saddr; 149 146 *p32 = inet->inet_saddr; ··· 158 153 __entry->sock_cookie = sock_gen_cookie(sk); 159 154 ), 160 155 161 - TP_printk("sport=%hu dport=%hu saddr=%pI4 daddr=%pI4 saddrv6=%pI6c daddrv6=%pI6c sock_cookie=%llx", 156 + TP_printk("family=%s sport=%hu dport=%hu saddr=%pI4 daddr=%pI4 saddrv6=%pI6c daddrv6=%pI6c sock_cookie=%llx", 157 + show_family_name(__entry->family), 162 158 __entry->sport, __entry->dport, 163 159 __entry->saddr, __entry->daddr, 164 160 __entry->saddr_v6, __entry->daddr_v6, ··· 198 192 __field(const void *, req) 199 193 __field(__u16, sport) 200 194 __field(__u16, dport) 195 + __field(__u16, family) 201 196 __array(__u8, saddr, 4) 202 197 __array(__u8, daddr, 4) 203 198 __array(__u8, saddr_v6, 16) ··· 214 207 215 208 __entry->sport = ireq->ir_num; 216 209 __entry->dport = ntohs(ireq->ir_rmt_port); 210 + __entry->family = sk->sk_family; 217 211 218 212 p32 = (__be32 *) __entry->saddr; 219 213 *p32 = ireq->ir_loc_addr; ··· 226 218 ireq->ir_v6_loc_addr, ireq->ir_v6_rmt_addr); 227 219 ), 228 220 229 - TP_printk("sport=%hu dport=%hu saddr=%pI4 daddr=%pI4 saddrv6=%pI6c daddrv6=%pI6c", 221 + TP_printk("family=%s sport=%hu dport=%hu saddr=%pI4 daddr=%pI4 saddrv6=%pI6c daddrv6=%pI6c", 222 + show_family_name(__entry->family), 230 223 __entry->sport, __entry->dport, 231 224 __entry->saddr, __entry->daddr, 232 225 __entry->saddr_v6, __entry->daddr_v6) ··· 247 238 __array(__u8, daddr, sizeof(struct sockaddr_in6)) 248 239 __field(__u16, sport) 249 240 __field(__u16, dport) 241 + __field(__u16, family) 250 242 __field(__u32, mark) 251 243 __field(__u16, data_len) 252 244 __field(__u32, snd_nxt) ··· 274 264 __entry->sport = ntohs(inet->inet_sport); 275 265 __entry->dport = ntohs(inet->inet_dport); 276 266 __entry->mark = skb->mark; 267 + __entry->family = sk->sk_family; 277 268 278 269 __entry->data_len = skb->len - __tcp_hdrlen(th); 279 270 __entry->snd_nxt = tp->snd_nxt; ··· 287 276 __entry->sock_cookie = sock_gen_cookie(sk); 288 277 ), 289 278 290 - 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", 279 + TP_printk("family=%s 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", 280 + show_family_name(__entry->family), 291 281 __entry->saddr, __entry->daddr, __entry->mark, 292 282 __entry->data_len, __entry->snd_nxt, __entry->snd_una, 293 283 __entry->snd_cwnd, __entry->ssthresh, __entry->snd_wnd,