xref: /aosp_15_r20/external/bcc/libbpf-tools/tcptracer.h (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1*387f9dfdSAndroid Build Coastguard Worker // SPDX-License-Identifier: GPL-2.0
2*387f9dfdSAndroid Build Coastguard Worker // Copyright (c) 2022 Microsoft Corporation
3*387f9dfdSAndroid Build Coastguard Worker //
4*387f9dfdSAndroid Build Coastguard Worker // Based on tcptracer(8) from BCC by Kinvolk GmbH and
5*387f9dfdSAndroid Build Coastguard Worker // tcpconnect(8) by Anton Protopopov
6*387f9dfdSAndroid Build Coastguard Worker 
7*387f9dfdSAndroid Build Coastguard Worker #ifndef __TCPTRACER_H
8*387f9dfdSAndroid Build Coastguard Worker #define __TCPTRACER_H
9*387f9dfdSAndroid Build Coastguard Worker 
10*387f9dfdSAndroid Build Coastguard Worker /* The maximum number of items in maps */
11*387f9dfdSAndroid Build Coastguard Worker #define MAX_ENTRIES 8192
12*387f9dfdSAndroid Build Coastguard Worker 
13*387f9dfdSAndroid Build Coastguard Worker #define TASK_COMM_LEN 16
14*387f9dfdSAndroid Build Coastguard Worker 
15*387f9dfdSAndroid Build Coastguard Worker enum event_type {
16*387f9dfdSAndroid Build Coastguard Worker 	TCP_EVENT_TYPE_CONNECT,
17*387f9dfdSAndroid Build Coastguard Worker 	TCP_EVENT_TYPE_ACCEPT,
18*387f9dfdSAndroid Build Coastguard Worker 	TCP_EVENT_TYPE_CLOSE,
19*387f9dfdSAndroid Build Coastguard Worker };
20*387f9dfdSAndroid Build Coastguard Worker 
21*387f9dfdSAndroid Build Coastguard Worker struct event {
22*387f9dfdSAndroid Build Coastguard Worker 	union {
23*387f9dfdSAndroid Build Coastguard Worker 		__u32 saddr_v4;
24*387f9dfdSAndroid Build Coastguard Worker 		unsigned __int128 saddr_v6;
25*387f9dfdSAndroid Build Coastguard Worker 	};
26*387f9dfdSAndroid Build Coastguard Worker 	union {
27*387f9dfdSAndroid Build Coastguard Worker 		__u32 daddr_v4;
28*387f9dfdSAndroid Build Coastguard Worker 		unsigned __int128 daddr_v6;
29*387f9dfdSAndroid Build Coastguard Worker 	};
30*387f9dfdSAndroid Build Coastguard Worker 	char task[TASK_COMM_LEN];
31*387f9dfdSAndroid Build Coastguard Worker 	__u64 ts_us;
32*387f9dfdSAndroid Build Coastguard Worker 	__u32 af; /* AF_INET or AF_INET6 */
33*387f9dfdSAndroid Build Coastguard Worker 	__u32 pid;
34*387f9dfdSAndroid Build Coastguard Worker 	__u32 uid;
35*387f9dfdSAndroid Build Coastguard Worker 	__u32 netns;
36*387f9dfdSAndroid Build Coastguard Worker 	__u16 dport;
37*387f9dfdSAndroid Build Coastguard Worker 	__u16 sport;
38*387f9dfdSAndroid Build Coastguard Worker 	__u8 type;
39*387f9dfdSAndroid Build Coastguard Worker };
40*387f9dfdSAndroid Build Coastguard Worker 
41*387f9dfdSAndroid Build Coastguard Worker 
42*387f9dfdSAndroid Build Coastguard Worker #endif /* __TCPTRACER_H */
43