xref: /aosp_15_r20/external/bcc/tools/tcpdrop_example.txt (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1*387f9dfdSAndroid Build Coastguard WorkerDemonstrations of tcpdrop, the Linux BPF/bcc version.
2*387f9dfdSAndroid Build Coastguard Worker
3*387f9dfdSAndroid Build Coastguard Worker
4*387f9dfdSAndroid Build Coastguard Workertcpdrop prints details of TCP packets or segments that were dropped by the
5*387f9dfdSAndroid Build Coastguard Workerkernel, including the kernel stack trace that led to the drop:
6*387f9dfdSAndroid Build Coastguard Worker
7*387f9dfdSAndroid Build Coastguard Worker# ./tcpdrop.py
8*387f9dfdSAndroid Build Coastguard WorkerTIME     PID    IP SADDR:SPORT          > DADDR:DPORT          STATE (FLAGS)
9*387f9dfdSAndroid Build Coastguard Worker20:49:06 0      4  10.32.119.56:443     > 10.66.65.252:22912   CLOSE (ACK)
10*387f9dfdSAndroid Build Coastguard Worker	tcp_drop+0x1
11*387f9dfdSAndroid Build Coastguard Worker	tcp_v4_do_rcv+0x135
12*387f9dfdSAndroid Build Coastguard Worker	tcp_v4_rcv+0x9c7
13*387f9dfdSAndroid Build Coastguard Worker	ip_local_deliver_finish+0x62
14*387f9dfdSAndroid Build Coastguard Worker	ip_local_deliver+0x6f
15*387f9dfdSAndroid Build Coastguard Worker	ip_rcv_finish+0x129
16*387f9dfdSAndroid Build Coastguard Worker	ip_rcv+0x28f
17*387f9dfdSAndroid Build Coastguard Worker	__netif_receive_skb_core+0x432
18*387f9dfdSAndroid Build Coastguard Worker	__netif_receive_skb+0x18
19*387f9dfdSAndroid Build Coastguard Worker	netif_receive_skb_internal+0x37
20*387f9dfdSAndroid Build Coastguard Worker	napi_gro_receive+0xc5
21*387f9dfdSAndroid Build Coastguard Worker	ena_clean_rx_irq+0x3c3
22*387f9dfdSAndroid Build Coastguard Worker	ena_io_poll+0x33f
23*387f9dfdSAndroid Build Coastguard Worker	net_rx_action+0x140
24*387f9dfdSAndroid Build Coastguard Worker	__softirqentry_text_start+0xdf
25*387f9dfdSAndroid Build Coastguard Worker	irq_exit+0xb6
26*387f9dfdSAndroid Build Coastguard Worker	do_IRQ+0x82
27*387f9dfdSAndroid Build Coastguard Worker	ret_from_intr+0x0
28*387f9dfdSAndroid Build Coastguard Worker	native_safe_halt+0x6
29*387f9dfdSAndroid Build Coastguard Worker	default_idle+0x20
30*387f9dfdSAndroid Build Coastguard Worker	arch_cpu_idle+0x15
31*387f9dfdSAndroid Build Coastguard Worker	default_idle_call+0x23
32*387f9dfdSAndroid Build Coastguard Worker	do_idle+0x17f
33*387f9dfdSAndroid Build Coastguard Worker	cpu_startup_entry+0x73
34*387f9dfdSAndroid Build Coastguard Worker	rest_init+0xae
35*387f9dfdSAndroid Build Coastguard Worker	start_kernel+0x4dc
36*387f9dfdSAndroid Build Coastguard Worker	x86_64_start_reservations+0x24
37*387f9dfdSAndroid Build Coastguard Worker	x86_64_start_kernel+0x74
38*387f9dfdSAndroid Build Coastguard Worker	secondary_startup_64+0xa5
39*387f9dfdSAndroid Build Coastguard Worker
40*387f9dfdSAndroid Build Coastguard Worker20:49:50 12431  4  127.0.0.1:8198       > 127.0.0.1:48280      CLOSE (RST|ACK)
41*387f9dfdSAndroid Build Coastguard Worker	tcp_drop+0x1
42*387f9dfdSAndroid Build Coastguard Worker	tcp_v4_do_rcv+0x135
43*387f9dfdSAndroid Build Coastguard Worker	__release_sock+0x88
44*387f9dfdSAndroid Build Coastguard Worker	release_sock+0x30
45*387f9dfdSAndroid Build Coastguard Worker	inet_stream_connect+0x47
46*387f9dfdSAndroid Build Coastguard Worker	SYSC_connect+0x9e
47*387f9dfdSAndroid Build Coastguard Worker	sys_connect+0xe
48*387f9dfdSAndroid Build Coastguard Worker	do_syscall_64+0x73
49*387f9dfdSAndroid Build Coastguard Worker	entry_SYSCALL_64_after_hwframe+0x3d
50*387f9dfdSAndroid Build Coastguard Worker
51*387f9dfdSAndroid Build Coastguard Worker[...]
52*387f9dfdSAndroid Build Coastguard Worker
53*387f9dfdSAndroid Build Coastguard WorkerThe last two columns show the state of the TCP session, and the TCP flags.
54*387f9dfdSAndroid Build Coastguard WorkerThese two examples show packets arriving for a session in the closed state,
55*387f9dfdSAndroid Build Coastguard Workerthat were dropped by the kernel.
56*387f9dfdSAndroid Build Coastguard Worker
57*387f9dfdSAndroid Build Coastguard WorkerThis tool is useful for debugging high rates of drops, which can cause the
58*387f9dfdSAndroid Build Coastguard Workerremote end to do timer-based retransmits, hurting performance.
59*387f9dfdSAndroid Build Coastguard Worker
60*387f9dfdSAndroid Build Coastguard Worker
61*387f9dfdSAndroid Build Coastguard WorkerUSAGE:
62*387f9dfdSAndroid Build Coastguard Worker
63*387f9dfdSAndroid Build Coastguard Worker# ./tcpdrop.py -h
64*387f9dfdSAndroid Build Coastguard Workerusage: tcpdrop.py [-4 | -6] [-h]
65*387f9dfdSAndroid Build Coastguard Worker
66*387f9dfdSAndroid Build Coastguard WorkerTrace TCP drops by the kernel
67*387f9dfdSAndroid Build Coastguard Worker
68*387f9dfdSAndroid Build Coastguard Workeroptional arguments:
69*387f9dfdSAndroid Build Coastguard Worker  -4, --ipv4  trace IPv4 family only
70*387f9dfdSAndroid Build Coastguard Worker  -6, --ipv6  trace IPv6 family only
71*387f9dfdSAndroid Build Coastguard Worker  -h, --help  show this help message and exit
72*387f9dfdSAndroid Build Coastguard Worker
73*387f9dfdSAndroid Build Coastguard Workerexamples:
74*387f9dfdSAndroid Build Coastguard Worker    ./tcpdrop           # trace kernel TCP drops
75*387f9dfdSAndroid Build Coastguard Worker    ./tcpdrop -4        # trace IPv4 family only
76*387f9dfdSAndroid Build Coastguard Worker    ./tcpdrop -6        # trace IPv6 family only
77