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