xref: /aosp_15_r20/external/bcc/libbpf-tools/tcpconnect.h (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1*387f9dfdSAndroid Build Coastguard Worker // SPDX-License-Identifier: GPL-2.0
2*387f9dfdSAndroid Build Coastguard Worker // Copyright (c) 2020 Anton Protopopov
3*387f9dfdSAndroid Build Coastguard Worker #ifndef __TCPCONNECT_H
4*387f9dfdSAndroid Build Coastguard Worker #define __TCPCONNECT_H
5*387f9dfdSAndroid Build Coastguard Worker 
6*387f9dfdSAndroid Build Coastguard Worker /* The maximum number of items in maps */
7*387f9dfdSAndroid Build Coastguard Worker #define MAX_ENTRIES 8192
8*387f9dfdSAndroid Build Coastguard Worker 
9*387f9dfdSAndroid Build Coastguard Worker /* The maximum number of ports to filter */
10*387f9dfdSAndroid Build Coastguard Worker #define MAX_PORTS 64
11*387f9dfdSAndroid Build Coastguard Worker 
12*387f9dfdSAndroid Build Coastguard Worker #define TASK_COMM_LEN 16
13*387f9dfdSAndroid Build Coastguard Worker 
14*387f9dfdSAndroid Build Coastguard Worker struct ipv4_flow_key {
15*387f9dfdSAndroid Build Coastguard Worker 	__u32 saddr;
16*387f9dfdSAndroid Build Coastguard Worker 	__u32 daddr;
17*387f9dfdSAndroid Build Coastguard Worker 	__u16 sport;
18*387f9dfdSAndroid Build Coastguard Worker 	__u16 dport;
19*387f9dfdSAndroid Build Coastguard Worker };
20*387f9dfdSAndroid Build Coastguard Worker 
21*387f9dfdSAndroid Build Coastguard Worker struct ipv6_flow_key {
22*387f9dfdSAndroid Build Coastguard Worker 	__u8 saddr[16];
23*387f9dfdSAndroid Build Coastguard Worker 	__u8 daddr[16];
24*387f9dfdSAndroid Build Coastguard Worker 	__u16 sport;
25*387f9dfdSAndroid Build Coastguard Worker 	__u16 dport;
26*387f9dfdSAndroid Build Coastguard Worker };
27*387f9dfdSAndroid Build Coastguard Worker 
28*387f9dfdSAndroid Build Coastguard Worker struct event {
29*387f9dfdSAndroid Build Coastguard Worker 	union {
30*387f9dfdSAndroid Build Coastguard Worker 		__u32 saddr_v4;
31*387f9dfdSAndroid Build Coastguard Worker 		__u8 saddr_v6[16];
32*387f9dfdSAndroid Build Coastguard Worker 	};
33*387f9dfdSAndroid Build Coastguard Worker 	union {
34*387f9dfdSAndroid Build Coastguard Worker 		__u32 daddr_v4;
35*387f9dfdSAndroid Build Coastguard Worker 		__u8 daddr_v6[16];
36*387f9dfdSAndroid Build Coastguard Worker 	};
37*387f9dfdSAndroid Build Coastguard Worker 	char task[TASK_COMM_LEN];
38*387f9dfdSAndroid Build Coastguard Worker 	__u64 ts_us;
39*387f9dfdSAndroid Build Coastguard Worker 	__u32 af; // AF_INET or AF_INET6
40*387f9dfdSAndroid Build Coastguard Worker 	__u32 pid;
41*387f9dfdSAndroid Build Coastguard Worker 	__u32 uid;
42*387f9dfdSAndroid Build Coastguard Worker 	__u16 sport;
43*387f9dfdSAndroid Build Coastguard Worker 	__u16 dport;
44*387f9dfdSAndroid Build Coastguard Worker };
45*387f9dfdSAndroid Build Coastguard Worker 
46*387f9dfdSAndroid Build Coastguard Worker #endif /* __TCPCONNECT_H */
47