2022-04-18 15:54:42 +00:00
|
|
|
#ifndef COSMOPOLITAN_LIBC_CALLS_STRUCT_BPF_H_
|
|
|
|
#define COSMOPOLITAN_LIBC_CALLS_STRUCT_BPF_H_
|
|
|
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|
|
|
COSMOPOLITAN_C_START_
|
|
|
|
|
|
|
|
#define BPF_MAXINSNS 4096
|
|
|
|
|
|
|
|
#define BPF_CLASS(code) ((code)&0x07)
|
|
|
|
#define BPF_LD 0x00 /* load ops */
|
|
|
|
#define BPF_LDX 0x01 /* load into register */
|
|
|
|
#define BPF_ST 0x02 /* store from immediate */
|
|
|
|
#define BPF_STX 0x03 /* store from register */
|
|
|
|
#define BPF_ALU 0x04 /* 32-bit arithmetic */
|
|
|
|
#define BPF_JMP 0x05
|
|
|
|
#define BPF_RET 0x06
|
|
|
|
#define BPF_MISC 0x07
|
|
|
|
|
|
|
|
#define BPF_SIZE(code) ((code)&0x18)
|
|
|
|
#define BPF_W 0x00 /* 32-bit */
|
|
|
|
#define BPF_H 0x08 /* 16-bit */
|
|
|
|
#define BPF_B 0x10 /* 8-bit */
|
|
|
|
|
|
|
|
#define BPF_MODE(code) ((code)&0xe0)
|
|
|
|
#define BPF_IMM 0x00 /* 64-bit immediate */
|
|
|
|
#define BPF_ABS 0x20
|
|
|
|
#define BPF_IND 0x40
|
|
|
|
#define BPF_MEM 0x60
|
|
|
|
#define BPF_LEN 0x80
|
|
|
|
#define BPF_MSH 0xa0
|
|
|
|
|
|
|
|
#define BPF_OP(code) ((code)&0xf0)
|
|
|
|
#define BPF_ADD 0x00
|
|
|
|
#define BPF_SUB 0x10
|
|
|
|
#define BPF_MUL 0x20
|
|
|
|
#define BPF_DIV 0x30
|
|
|
|
#define BPF_OR 0x40
|
|
|
|
#define BPF_AND 0x50
|
|
|
|
#define BPF_LSH 0x60
|
|
|
|
#define BPF_RSH 0x70
|
|
|
|
#define BPF_NEG 0x80
|
|
|
|
#define BPF_MOD 0x90
|
|
|
|
#define BPF_XOR 0xa0
|
|
|
|
|
|
|
|
#define BPF_SRC(code) ((code)&0x08)
|
|
|
|
#define BPF_JA 0x00
|
|
|
|
#define BPF_JEQ 0x10
|
|
|
|
#define BPF_JGT 0x20
|
|
|
|
#define BPF_JGE 0x30
|
|
|
|
#define BPF_JSET 0x40
|
|
|
|
#define BPF_K 0x00
|
|
|
|
#define BPF_X 0x08
|
|
|
|
|
|
|
|
#define BPF_JMP32 0x06
|
|
|
|
#define BPF_ALU64 0x07
|
|
|
|
#define BPF_DW 0x18
|
|
|
|
#define BPF_ATOMIC 0xc0
|
|
|
|
#define BPF_XADD 0xc0
|
|
|
|
#define BPF_MOV 0xb0
|
|
|
|
#define BPF_ARSH 0xc0
|
|
|
|
#define BPF_END 0xd0
|
|
|
|
#define BPF_TO_LE 0x00
|
|
|
|
#define BPF_TO_BE 0x08
|
|
|
|
#define BPF_FROM_LE BPF_TO_LE
|
|
|
|
#define BPF_FROM_BE BPF_TO_BE
|
2022-06-27 20:01:58 +00:00
|
|
|
#define BPF_JNE 0x50 /* != */
|
|
|
|
#define BPF_JLT 0xa0 /* unsigned < */
|
|
|
|
#define BPF_JLE 0xb0 /* unsigned <= */
|
|
|
|
#define BPF_JSGT 0x60 /* signed > */
|
|
|
|
#define BPF_JSGE 0x70 /* signed >= */
|
|
|
|
#define BPF_JSLT 0xc0 /* signed < */
|
|
|
|
#define BPF_JSLE 0xd0 /* signed <= */
|
|
|
|
#define BPF_CALL 0x80 /* call */
|
|
|
|
#define BPF_EXIT 0x90 /* ret */
|
2022-04-18 15:54:42 +00:00
|
|
|
#define BPF_FETCH 0x01
|
|
|
|
#define BPF_XCHG (0xe0 | BPF_FETCH)
|
|
|
|
#define BPF_CMPXCHG (0xf0 | BPF_FETCH)
|
|
|
|
#define MAX_BPF_REG __MAX_BPF_REG
|
|
|
|
|
|
|
|
#define BPF_REG_0 0
|
|
|
|
#define BPF_REG_1 1
|
|
|
|
#define BPF_REG_2 2
|
|
|
|
#define BPF_REG_3 3
|
|
|
|
#define BPF_REG_4 4
|
|
|
|
#define BPF_REG_5 5
|
|
|
|
#define BPF_REG_6 6
|
|
|
|
#define BPF_REG_7 7
|
|
|
|
#define BPF_REG_8 8
|
|
|
|
#define BPF_REG_9 9
|
|
|
|
#define BPF_REG_10 10
|
|
|
|
#define __MAX_BPF_REG 11
|
|
|
|
|
|
|
|
#define BPF_MAP_CREATE 0
|
|
|
|
#define BPF_MAP_LOOKUP_ELEM 1
|
|
|
|
#define BPF_MAP_UPDATE_ELEM 2
|
|
|
|
#define BPF_MAP_DELETE_ELEM 3
|
|
|
|
#define BPF_MAP_GET_NEXT_KEY 4
|
|
|
|
#define BPF_PROG_LOAD 5
|
|
|
|
#define BPF_OBJ_PIN 6
|
|
|
|
#define BPF_OBJ_GET 7
|
|
|
|
#define BPF_PROG_ATTACH 8
|
|
|
|
#define BPF_PROG_DETACH 9
|
|
|
|
#define BPF_PROG_TEST_RUN 10
|
|
|
|
#define BPF_PROG_GET_NEXT_ID 11
|
|
|
|
#define BPF_MAP_GET_NEXT_ID 12
|
|
|
|
#define BPF_PROG_GET_FD_BY_ID 13
|
|
|
|
#define BPF_MAP_GET_FD_BY_ID 14
|
|
|
|
#define BPF_OBJ_GET_INFO_BY_FD 15
|
|
|
|
#define BPF_PROG_QUERY 16
|
|
|
|
#define BPF_RAW_TRACEPOINT_OPEN 17
|
|
|
|
#define BPF_BTF_LOAD 18
|
|
|
|
#define BPF_BTF_GET_FD_BY_ID 19
|
|
|
|
#define BPF_TASK_FD_QUERY 20
|
|
|
|
#define BPF_MAP_LOOKUP_AND_DELETE_ELEM 21
|
|
|
|
#define BPF_MAP_FREEZE 22
|
|
|
|
#define BPF_BTF_GET_NEXT_ID 23
|
|
|
|
#define BPF_MAP_LOOKUP_BATCH 24
|
|
|
|
#define BPF_MAP_LOOKUP_AND_DELETE_BATCH 25
|
|
|
|
#define BPF_MAP_UPDATE_BATCH 26
|
|
|
|
#define BPF_MAP_DELETE_BATCH 27
|
|
|
|
#define BPF_LINK_CREATE 28
|
|
|
|
#define BPF_LINK_UPDATE 29
|
|
|
|
#define BPF_LINK_GET_FD_BY_ID 30
|
|
|
|
#define BPF_LINK_GET_NEXT_ID 31
|
|
|
|
#define BPF_ENABLE_STATS 32
|
|
|
|
#define BPF_ITER_CREATE 33
|
|
|
|
#define BPF_LINK_DETACH 34
|
|
|
|
#define BPF_PROG_BIND_MAP 35
|
|
|
|
#define BPF_PROG_RUN BPF_PROG_TEST_RUN
|
|
|
|
|
|
|
|
#define BPF_MAP_TYPE_UNSPEC 0
|
|
|
|
#define BPF_MAP_TYPE_HASH 1
|
|
|
|
#define BPF_MAP_TYPE_ARRAY 2
|
|
|
|
#define BPF_MAP_TYPE_PROG_ARRAY 3
|
|
|
|
#define BPF_MAP_TYPE_PERF_EVENT_ARRAY 4
|
|
|
|
#define BPF_MAP_TYPE_PERCPU_HASH 5
|
|
|
|
#define BPF_MAP_TYPE_PERCPU_ARRAY 6
|
|
|
|
#define BPF_MAP_TYPE_STACK_TRACE 7
|
|
|
|
#define BPF_MAP_TYPE_CGROUP_ARRAY 8
|
|
|
|
#define BPF_MAP_TYPE_LRU_HASH 9
|
|
|
|
#define BPF_MAP_TYPE_LRU_PERCPU_HASH 10
|
|
|
|
#define BPF_MAP_TYPE_LPM_TRIE 11
|
|
|
|
#define BPF_MAP_TYPE_ARRAY_OF_MAPS 12
|
|
|
|
#define BPF_MAP_TYPE_HASH_OF_MAPS 13
|
|
|
|
#define BPF_MAP_TYPE_DEVMAP 14
|
|
|
|
#define BPF_MAP_TYPE_SOCKMAP 15
|
|
|
|
#define BPF_MAP_TYPE_CPUMAP 16
|
|
|
|
#define BPF_MAP_TYPE_XSKMAP 17
|
|
|
|
#define BPF_MAP_TYPE_SOCKHASH 18
|
|
|
|
#define BPF_MAP_TYPE_CGROUP_STORAGE 19
|
|
|
|
#define BPF_MAP_TYPE_REUSEPORT_SOCKARRAY 20
|
|
|
|
#define BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE 21
|
|
|
|
#define BPF_MAP_TYPE_QUEUE 22
|
|
|
|
#define BPF_MAP_TYPE_STACK 23
|
|
|
|
#define BPF_MAP_TYPE_SK_STORAGE 24
|
|
|
|
#define BPF_MAP_TYPE_DEVMAP_HASH 25
|
|
|
|
#define BPF_MAP_TYPE_STRUCT_OPS 26
|
|
|
|
#define BPF_MAP_TYPE_RINGBUF 27
|
|
|
|
#define BPF_MAP_TYPE_INODE_STORAGE 28
|
|
|
|
#define BPF_MAP_TYPE_TASK_STORAGE 29
|
|
|
|
|
|
|
|
#define BPF_PROG_TYPE_UNSPEC 0
|
|
|
|
#define BPF_PROG_TYPE_SOCKET_FILTER 1
|
|
|
|
#define BPF_PROG_TYPE_KPROBE 2
|
|
|
|
#define BPF_PROG_TYPE_SCHED_CLS 3
|
|
|
|
#define BPF_PROG_TYPE_SCHED_ACT 4
|
|
|
|
#define BPF_PROG_TYPE_TRACEPOINT 5
|
|
|
|
#define BPF_PROG_TYPE_XDP 6
|
|
|
|
#define BPF_PROG_TYPE_PERF_EVENT 7
|
|
|
|
#define BPF_PROG_TYPE_CGROUP_SKB 8
|
|
|
|
#define BPF_PROG_TYPE_CGROUP_SOCK 9
|
|
|
|
#define BPF_PROG_TYPE_LWT_IN 10
|
|
|
|
#define BPF_PROG_TYPE_LWT_OUT 11
|
|
|
|
#define BPF_PROG_TYPE_LWT_XMIT 12
|
|
|
|
#define BPF_PROG_TYPE_SOCK_OPS 13
|
|
|
|
#define BPF_PROG_TYPE_SK_SKB 14
|
|
|
|
#define BPF_PROG_TYPE_CGROUP_DEVICE 15
|
|
|
|
#define BPF_PROG_TYPE_SK_MSG 16
|
|
|
|
#define BPF_PROG_TYPE_RAW_TRACEPOINT 17
|
|
|
|
#define BPF_PROG_TYPE_CGROUP_SOCK_ADDR 18
|
|
|
|
#define BPF_PROG_TYPE_LWT_SEG6LOCAL 19
|
|
|
|
#define BPF_PROG_TYPE_LIRC_MODE2 20
|
|
|
|
#define BPF_PROG_TYPE_SK_REUSEPORT 21
|
|
|
|
#define BPF_PROG_TYPE_FLOW_DISSECTOR 22
|
|
|
|
#define BPF_PROG_TYPE_CGROUP_SYSCTL 23
|
|
|
|
#define BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE 24
|
|
|
|
#define BPF_PROG_TYPE_CGROUP_SOCKOPT 25
|
|
|
|
#define BPF_PROG_TYPE_TRACING 26
|
|
|
|
#define BPF_PROG_TYPE_STRUCT_OPS 27
|
|
|
|
#define BPF_PROG_TYPE_EXT 28
|
|
|
|
#define BPF_PROG_TYPE_LSM 29
|
|
|
|
#define BPF_PROG_TYPE_SK_LOOKUP 30
|
|
|
|
#define BPF_PROG_TYPE_SYSCALL 31
|
|
|
|
|
|
|
|
#define BPF_CGROUP_INET_INGRESS 0
|
|
|
|
#define BPF_CGROUP_INET_EGRESS 1
|
|
|
|
#define BPF_CGROUP_INET_SOCK_CREATE 2
|
|
|
|
#define BPF_CGROUP_SOCK_OPS 3
|
|
|
|
#define BPF_SK_SKB_STREAM_PARSER 4
|
|
|
|
#define BPF_SK_SKB_STREAM_VERDICT 5
|
|
|
|
#define BPF_CGROUP_DEVICE 6
|
|
|
|
#define BPF_SK_MSG_VERDICT 7
|
|
|
|
#define BPF_CGROUP_INET4_BIND 8
|
|
|
|
#define BPF_CGROUP_INET6_BIND 9
|
|
|
|
#define BPF_CGROUP_INET4_CONNECT 10
|
|
|
|
#define BPF_CGROUP_INET6_CONNECT 11
|
|
|
|
#define BPF_CGROUP_INET4_POST_BIND 12
|
|
|
|
#define BPF_CGROUP_INET6_POST_BIND 13
|
|
|
|
#define BPF_CGROUP_UDP4_SENDMSG 14
|
|
|
|
#define BPF_CGROUP_UDP6_SENDMSG 15
|
|
|
|
#define BPF_LIRC_MODE2 16
|
|
|
|
#define BPF_FLOW_DISSECTOR 17
|
|
|
|
#define BPF_CGROUP_SYSCTL 18
|
|
|
|
#define BPF_CGROUP_UDP4_RECVMSG 19
|
|
|
|
#define BPF_CGROUP_UDP6_RECVMSG 20
|
|
|
|
#define BPF_CGROUP_GETSOCKOPT 21
|
|
|
|
#define BPF_CGROUP_SETSOCKOPT 22
|
|
|
|
#define BPF_TRACE_RAW_TP 23
|
|
|
|
#define BPF_TRACE_FENTRY 24
|
|
|
|
#define BPF_TRACE_FEXIT 25
|
|
|
|
#define BPF_MODIFY_RETURN 26
|
|
|
|
#define BPF_LSM_MAC 27
|
|
|
|
#define BPF_TRACE_ITER 28
|
|
|
|
#define BPF_CGROUP_INET4_GETPEERNAME 29
|
|
|
|
#define BPF_CGROUP_INET6_GETPEERNAME 30
|
|
|
|
#define BPF_CGROUP_INET4_GETSOCKNAME 31
|
|
|
|
#define BPF_CGROUP_INET6_GETSOCKNAME 32
|
|
|
|
#define BPF_XDP_DEVMAP 33
|
|
|
|
#define BPF_CGROUP_INET_SOCK_RELEASE 34
|
|
|
|
#define BPF_XDP_CPUMAP 35
|
|
|
|
#define BPF_SK_LOOKUP 36
|
|
|
|
#define BPF_XDP 37
|
|
|
|
#define BPF_SK_SKB_VERDICT 38
|
|
|
|
#define BPF_SK_REUSEPORT_SELECT 39
|
|
|
|
#define BPF_SK_REUSEPORT_SELECT_OR_MIGRATE 40
|
|
|
|
#define __MAX_BPF_ATTACH_TYPE 41
|
|
|
|
|
|
|
|
#define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE
|
|
|
|
|
|
|
|
#define BPF_LINK_TYPE_UNSPEC 0
|
|
|
|
#define BPF_LINK_TYPE_RAW_TRACEPOINT 1
|
|
|
|
#define BPF_LINK_TYPE_TRACING 2
|
|
|
|
#define BPF_LINK_TYPE_CGROUP 3
|
|
|
|
#define BPF_LINK_TYPE_ITER 4
|
|
|
|
#define BPF_LINK_TYPE_NETNS 5
|
|
|
|
#define BPF_LINK_TYPE_XDP 6
|
|
|
|
#define MAX_BPF_LINK_TYPE 7
|
|
|
|
|
|
|
|
#define BPF_F_ALLOW_OVERRIDE (1U << 0)
|
|
|
|
#define BPF_F_ALLOW_MULTI (1U << 1)
|
|
|
|
#define BPF_F_REPLACE (1U << 2)
|
|
|
|
#define BPF_F_STRICT_ALIGNMENT (1U << 0)
|
|
|
|
#define BPF_F_ANY_ALIGNMENT (1U << 1)
|
|
|
|
#define BPF_F_TEST_RND_HI32 (1U << 2)
|
|
|
|
#define BPF_F_TEST_STATE_FREQ (1U << 3)
|
|
|
|
#define BPF_F_SLEEPABLE (1U << 4)
|
|
|
|
#define BPF_PSEUDO_MAP_FD 1
|
|
|
|
#define BPF_PSEUDO_MAP_IDX 5
|
|
|
|
#define BPF_PSEUDO_MAP_VALUE 2
|
|
|
|
#define BPF_PSEUDO_MAP_IDX_VALUE 6
|
|
|
|
#define BPF_PSEUDO_BTF_ID 3
|
|
|
|
#define BPF_PSEUDO_FUNC 4
|
|
|
|
#define BPF_PSEUDO_CALL 1
|
|
|
|
#define BPF_PSEUDO_KFUNC_CALL 2
|
|
|
|
|
|
|
|
#define BPF_ANY 0
|
|
|
|
#define BPF_NOEXIST 1
|
|
|
|
#define BPF_EXIST 2
|
|
|
|
#define BPF_F_LOCK 4
|
|
|
|
#define BPF_F_NO_PREALLOC (1U << 0)
|
|
|
|
#define BPF_F_NO_COMMON_LRU (1U << 1)
|
|
|
|
#define BPF_F_NUMA_NODE (1U << 2)
|
|
|
|
#define BPF_F_RDONLY (1U << 3)
|
|
|
|
#define BPF_F_WRONLY (1U << 4)
|
|
|
|
#define BPF_F_STACK_BUILD_ID (1U << 5)
|
|
|
|
#define BPF_F_ZERO_SEED (1U << 6)
|
|
|
|
#define BPF_F_RDONLY_PROG (1U << 7)
|
|
|
|
#define BPF_F_WRONLY_PROG (1U << 8)
|
|
|
|
#define BPF_F_CLONE (1U << 9)
|
|
|
|
#define BPF_F_MMAPABLE (1U << 10)
|
|
|
|
#define BPF_F_PRESERVE_ELEMS (1U << 11)
|
|
|
|
#define BPF_F_INNER_MAP (1U << 12)
|
|
|
|
#define BPF_F_QUERY_EFFECTIVE (1U << 0)
|
|
|
|
#define BPF_F_TEST_RUN_ON_CPU (1U << 0)
|
|
|
|
|
|
|
|
#define BPF_STATS_RUN_TIME 0
|
|
|
|
#define BPF_STACK_BUILD_ID_EMPTY 0
|
|
|
|
#define BPF_STACK_BUILD_ID_VALID 1
|
|
|
|
#define BPF_STACK_BUILD_ID_IP 2
|
|
|
|
#define BPF_BUILD_ID_SIZE 20
|
|
|
|
#define BPF_OBJ_NAME_LEN 16U
|
|
|
|
|
|
|
|
#define BPF_F_RECOMPUTE_CSUM (1ULL << 0)
|
|
|
|
#define BPF_F_INVALIDATE_HASH (1ULL << 1)
|
|
|
|
#define BPF_F_HDR_FIELD_MASK 0xfULL
|
|
|
|
#define BPF_F_PSEUDO_HDR (1ULL << 4)
|
|
|
|
#define BPF_F_MARK_MANGLED_0 (1ULL << 5)
|
|
|
|
#define BPF_F_MARK_ENFORCE (1ULL << 6)
|
|
|
|
#define BPF_F_INGRESS (1ULL << 0)
|
|
|
|
#define BPF_F_TUNINFO_IPV6 (1ULL << 0)
|
|
|
|
#define BPF_F_SKIP_FIELD_MASK 0xffULL
|
|
|
|
#define BPF_F_USER_STACK (1ULL << 8)
|
|
|
|
#define BPF_F_FAST_STACK_CMP (1ULL << 9)
|
|
|
|
#define BPF_F_REUSE_STACKID (1ULL << 10)
|
|
|
|
#define BPF_F_USER_BUILD_ID (1ULL << 11)
|
|
|
|
#define BPF_F_ZERO_CSUM_TX (1ULL << 1)
|
|
|
|
#define BPF_F_DONT_FRAGMENT (1ULL << 2)
|
|
|
|
#define BPF_F_SEQ_NUMBER (1ULL << 3)
|
|
|
|
#define BPF_F_INDEX_MASK 0xffffffffULL
|
|
|
|
#define BPF_F_CURRENT_CPU BPF_F_INDEX_MASK
|
|
|
|
#define BPF_F_CTXLEN_MASK (0xfffffULL << 32)
|
|
|
|
#define BPF_F_CURRENT_NETNS (-1L)
|
|
|
|
|
|
|
|
#define BPF_CSUM_LEVEL_QUERY 0
|
|
|
|
#define BPF_CSUM_LEVEL_INC 1
|
|
|
|
#define BPF_CSUM_LEVEL_DEC 2
|
|
|
|
#define BPF_CSUM_LEVEL_RESET 3
|
|
|
|
|
|
|
|
#define BPF_F_ADJ_ROOM_FIXED_GSO (1ULL << 0)
|
|
|
|
#define BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 (1ULL << 1)
|
|
|
|
#define BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 (1ULL << 2)
|
|
|
|
#define BPF_F_ADJ_ROOM_ENCAP_L4_GRE (1ULL << 3)
|
|
|
|
#define BPF_F_ADJ_ROOM_ENCAP_L4_UDP (1ULL << 4)
|
|
|
|
#define BPF_F_ADJ_ROOM_NO_CSUM_RESET (1ULL << 5)
|
|
|
|
#define BPF_F_ADJ_ROOM_ENCAP_L2_ETH (1ULL << 6)
|
|
|
|
#define BPF_ADJ_ROOM_ENCAP_L2_MASK 0xff
|
|
|
|
#define BPF_ADJ_ROOM_ENCAP_L2_SHIFT 56
|
|
|
|
|
2022-04-20 16:56:53 +00:00
|
|
|
#define BPF_F_ADJ_ROOM_ENCAP_L2(len) \
|
|
|
|
(((uint64_t)len & BPF_ADJ_ROOM_ENCAP_L2_MASK) << BPF_ADJ_ROOM_ENCAP_L2_SHIFT)
|
|
|
|
|
2022-04-18 15:54:42 +00:00
|
|
|
#define BPF_F_SYSCTL_BASE_NAME (1ULL << 0)
|
|
|
|
#define BPF_LOCAL_STORAGE_GET_F_CREATE (1ULL << 0)
|
|
|
|
#define BPF_SK_STORAGE_GET_F_CREATE BPF_LOCAL_STORAGE_GET_F_CREATE
|
|
|
|
#define BPF_F_GET_BRANCH_RECORDS_SIZE (1ULL << 0)
|
|
|
|
#define BPF_RB_NO_WAKEUP (1ULL << 0)
|
|
|
|
#define BPF_RB_FORCE_WAKEUP (1ULL << 1)
|
|
|
|
#define BPF_RB_AVAIL_DATA 0
|
|
|
|
#define BPF_RB_RING_SIZE 1
|
|
|
|
#define BPF_RB_CONS_POS 2
|
|
|
|
#define BPF_RB_PROD_POS 3
|
|
|
|
#define BPF_RINGBUF_BUSY_BIT (1U << 31)
|
|
|
|
#define BPF_RINGBUF_DISCARD_BIT (1U << 30)
|
|
|
|
#define BPF_RINGBUF_HDR_SZ 8
|
|
|
|
#define BPF_SK_LOOKUP_F_REPLACE (1ULL << 0)
|
|
|
|
#define BPF_SK_LOOKUP_F_NO_REUSEPORT (1ULL << 1)
|
|
|
|
|
|
|
|
#define BPF_ADJ_ROOM_NET 0
|
|
|
|
#define BPF_ADJ_ROOM_MAC 1
|
|
|
|
#define BPF_HDR_START_MAC 0
|
|
|
|
#define BPF_HDR_START_NET 1
|
|
|
|
#define BPF_LWT_ENCAP_SEG6 0
|
|
|
|
#define BPF_LWT_ENCAP_SEG6_INLINE 1
|
|
|
|
#define BPF_LWT_ENCAP_IP 2
|
|
|
|
#define BPF_F_BPRM_SECUREEXEC (1ULL << 0)
|
|
|
|
#define BPF_F_BROADCAST (1ULL << 3)
|
|
|
|
#define BPF_F_EXCLUDE_INGRESS (1ULL << 4)
|
|
|
|
|
2022-04-20 16:56:53 +00:00
|
|
|
#define XDP_PACKET_HEADROOM 256
|
|
|
|
#define BPF_TAG_SIZE 8
|
2022-04-18 15:54:42 +00:00
|
|
|
|
|
|
|
#define BPF_SOCK_OPS_RTO_CB_FLAG (1 << 0)
|
|
|
|
#define BPF_SOCK_OPS_RETRANS_CB_FLAG (1 << 1)
|
|
|
|
#define BPF_SOCK_OPS_STATE_CB_FLAG (1 << 2)
|
|
|
|
#define BPF_SOCK_OPS_RTT_CB_FLAG (1 << 3)
|
|
|
|
#define BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG (1 << 4)
|
|
|
|
#define BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG (1 << 5)
|
|
|
|
#define BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG (1 << 6)
|
|
|
|
#define BPF_SOCK_OPS_ALL_CB_FLAGS 0x7F
|
|
|
|
|
|
|
|
#define BPF_SOCK_OPS_VOID 0
|
|
|
|
#define BPF_SOCK_OPS_TIMEOUT_INIT 1
|
|
|
|
#define BPF_SOCK_OPS_RWND_INIT 2
|
|
|
|
#define BPF_SOCK_OPS_TCP_CONNECT_CB 3
|
|
|
|
#define BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB 4
|
|
|
|
#define BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB 5
|
|
|
|
#define BPF_SOCK_OPS_NEEDS_ECN 6
|
|
|
|
#define BPF_SOCK_OPS_BASE_RTT 7
|
|
|
|
#define BPF_SOCK_OPS_RTO_CB 8
|
|
|
|
#define BPF_SOCK_OPS_RETRANS_CB 9
|
|
|
|
#define BPF_SOCK_OPS_STATE_CB 10
|
|
|
|
#define BPF_SOCK_OPS_TCP_LISTEN_CB 11
|
|
|
|
#define BPF_SOCK_OPS_RTT_CB 12
|
|
|
|
#define BPF_SOCK_OPS_PARSE_HDR_OPT_CB 13
|
|
|
|
#define BPF_SOCK_OPS_HDR_OPT_LEN_CB 14
|
|
|
|
#define BPF_SOCK_OPS_WRITE_HDR_OPT_CB 15
|
|
|
|
|
|
|
|
#define BPF_TCP_ESTABLISHED 1
|
|
|
|
#define BPF_TCP_SYN_SENT 2
|
|
|
|
#define BPF_TCP_SYN_RECV 3
|
|
|
|
#define BPF_TCP_FIN_WAIT1 4
|
|
|
|
#define BPF_TCP_FIN_WAIT2 5
|
|
|
|
#define BPF_TCP_TIME_WAIT 6
|
|
|
|
#define BPF_TCP_CLOSE 7
|
|
|
|
#define BPF_TCP_CLOSE_WAIT 8
|
|
|
|
#define BPF_TCP_LAST_ACK 9
|
|
|
|
#define BPF_TCP_LISTEN 10
|
|
|
|
#define BPF_TCP_CLOSING 11
|
|
|
|
#define BPF_TCP_NEW_SYN_RECV 12
|
|
|
|
#define BPF_TCP_MAX_STATES 13
|
|
|
|
|
|
|
|
#define TCP_BPF_IW 1001
|
|
|
|
#define TCP_BPF_SNDCWND_CLAMP 1002
|
|
|
|
#define TCP_BPF_DELACK_MAX 1003
|
|
|
|
#define TCP_BPF_RTO_MIN 1004
|
|
|
|
#define TCP_BPF_SYN 1005
|
|
|
|
#define TCP_BPF_SYN_IP 1006
|
|
|
|
#define TCP_BPF_SYN_MAC 1007
|
|
|
|
#define BPF_LOAD_HDR_OPT_TCP_SYN (1ULL << 0)
|
|
|
|
#define BPF_WRITE_HDR_TCP_CURRENT_MSS 1
|
|
|
|
#define BPF_WRITE_HDR_TCP_SYNACK_COOKIE 2
|
|
|
|
|
|
|
|
#define BPF_DEVCG_ACC_MKNOD (1ULL << 0)
|
|
|
|
#define BPF_DEVCG_ACC_READ (1ULL << 1)
|
|
|
|
#define BPF_DEVCG_ACC_WRITE (1ULL << 2)
|
|
|
|
#define BPF_DEVCG_DEV_BLOCK (1ULL << 0)
|
|
|
|
#define BPF_DEVCG_DEV_CHAR (1ULL << 1)
|
|
|
|
|
|
|
|
#define BPF_FIB_LOOKUP_DIRECT (1U << 0)
|
|
|
|
#define BPF_FIB_LOOKUP_OUTPUT (1U << 1)
|
|
|
|
|
|
|
|
#define BPF_FIB_LKUP_RET_SUCCESS 0
|
|
|
|
#define BPF_FIB_LKUP_RET_BLACKHOLE 1
|
|
|
|
#define BPF_FIB_LKUP_RET_UNREACHABLE 2
|
|
|
|
#define BPF_FIB_LKUP_RET_PROHIBIT 3
|
|
|
|
#define BPF_FIB_LKUP_RET_NOT_FWDED 4
|
|
|
|
#define BPF_FIB_LKUP_RET_FWD_DISABLED 5
|
|
|
|
#define BPF_FIB_LKUP_RET_UNSUPP_LWT 6
|
|
|
|
#define BPF_FIB_LKUP_RET_NO_NEIGH 7
|
|
|
|
#define BPF_FIB_LKUP_RET_FRAG_NEEDED 8
|
|
|
|
|
|
|
|
#define BPF_MTU_CHK_SEGS (1U << 0)
|
|
|
|
#define BPF_MTU_CHK_RET_SUCCESS 0
|
|
|
|
#define BPF_MTU_CHK_RET_FRAG_NEEDED 1
|
|
|
|
#define BPF_MTU_CHK_RET_SEGS_TOOBIG 2
|
|
|
|
#define BPF_FD_TYPE_RAW_TRACEPOINT 0
|
|
|
|
#define BPF_FD_TYPE_TRACEPOINT 1
|
|
|
|
#define BPF_FD_TYPE_KPROBE 2
|
|
|
|
#define BPF_FD_TYPE_KRETPROBE 3
|
|
|
|
#define BPF_FD_TYPE_UPROBE 4
|
|
|
|
#define BPF_FD_TYPE_URETPROBE 5
|
|
|
|
#define BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG (1U << 0)
|
|
|
|
#define BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL (1U << 1)
|
|
|
|
#define BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP (1U << 2)
|
|
|
|
|
|
|
|
#define BPF_LINE_INFO_LINE_NUM(line_col) ((line_col) >> 10)
|
|
|
|
#define BPF_LINE_INFO_LINE_COL(line_col) ((line_col)&0x3ff)
|
|
|
|
|
|
|
|
#define BTF_F_COMPACT (1ULL << 0)
|
|
|
|
#define BTF_F_NONAME (1ULL << 1)
|
|
|
|
#define BTF_F_PTR_RAW (1ULL << 2)
|
|
|
|
#define BTF_F_ZERO (1ULL << 3)
|
|
|
|
|
|
|
|
#define BPF_OK 0
|
|
|
|
#define BPF_DROP 2
|
|
|
|
#define BPF_REDIRECT 7
|
|
|
|
#define BPF_LWT_REROUTE 128
|
|
|
|
|
2022-04-20 16:56:53 +00:00
|
|
|
#define BPF_FUNC_unspec 0
|
|
|
|
#define BPF_FUNC_map_lookup_elem 1
|
|
|
|
#define BPF_FUNC_map_update_elem 2
|
|
|
|
#define BPF_FUNC_map_delete_elem 3
|
|
|
|
#define BPF_FUNC_probe_read 4
|
|
|
|
#define BPF_FUNC_ktime_get_ns 5
|
|
|
|
#define BPF_FUNC_trace_printk 6
|
|
|
|
#define BPF_FUNC_get_prandom_u32 7
|
|
|
|
#define BPF_FUNC_get_smp_processor_id 8
|
|
|
|
#define BPF_FUNC_skb_store_bytes 9
|
|
|
|
#define BPF_FUNC_l3_csum_replace 10
|
|
|
|
#define BPF_FUNC_l4_csum_replace 11
|
|
|
|
#define BPF_FUNC_tail_call 12
|
|
|
|
#define BPF_FUNC_clone_redirect 13
|
|
|
|
#define BPF_FUNC_get_current_pid_tgid 14
|
|
|
|
#define BPF_FUNC_get_current_uid_gid 15
|
|
|
|
#define BPF_FUNC_get_current_comm 16
|
|
|
|
#define BPF_FUNC_get_cgroup_classid 17
|
|
|
|
#define BPF_FUNC_skb_vlan_push 18
|
|
|
|
#define BPF_FUNC_skb_vlan_pop 19
|
|
|
|
#define BPF_FUNC_skb_get_tunnel_key 20
|
|
|
|
#define BPF_FUNC_skb_set_tunnel_key 21
|
|
|
|
#define BPF_FUNC_perf_event_read 22
|
|
|
|
#define BPF_FUNC_redirect 23
|
|
|
|
#define BPF_FUNC_get_route_realm 24
|
|
|
|
#define BPF_FUNC_perf_event_output 25
|
|
|
|
#define BPF_FUNC_skb_load_bytes 26
|
|
|
|
#define BPF_FUNC_get_stackid 27
|
|
|
|
#define BPF_FUNC_csum_diff 28
|
|
|
|
#define BPF_FUNC_skb_get_tunnel_opt 29
|
|
|
|
#define BPF_FUNC_skb_set_tunnel_opt 30
|
|
|
|
#define BPF_FUNC_skb_change_proto 31
|
|
|
|
#define BPF_FUNC_skb_change_type 32
|
|
|
|
#define BPF_FUNC_skb_under_cgroup 33
|
|
|
|
#define BPF_FUNC_get_hash_recalc 34
|
|
|
|
#define BPF_FUNC_get_current_task 35
|
|
|
|
#define BPF_FUNC_probe_write_user 36
|
|
|
|
#define BPF_FUNC_current_task_under_cgroup 37
|
|
|
|
#define BPF_FUNC_skb_change_tail 38
|
|
|
|
#define BPF_FUNC_skb_pull_data 39
|
|
|
|
#define BPF_FUNC_csum_update 40
|
|
|
|
#define BPF_FUNC_set_hash_invalid 41
|
|
|
|
#define BPF_FUNC_get_numa_node_id 42
|
|
|
|
#define BPF_FUNC_skb_change_head 43
|
|
|
|
#define BPF_FUNC_xdp_adjust_head 44
|
|
|
|
#define BPF_FUNC_probe_read_str 45
|
|
|
|
#define BPF_FUNC_get_socket_cookie 46
|
|
|
|
#define BPF_FUNC_get_socket_uid 47
|
|
|
|
#define BPF_FUNC_set_hash 48
|
|
|
|
#define BPF_FUNC_setsockopt 49
|
|
|
|
#define BPF_FUNC_skb_adjust_room 50
|
|
|
|
#define BPF_FUNC_redirect_map 51
|
|
|
|
#define BPF_FUNC_sk_redirect_map 52
|
|
|
|
#define BPF_FUNC_sock_map_update 53
|
|
|
|
#define BPF_FUNC_xdp_adjust_meta 54
|
|
|
|
#define BPF_FUNC_perf_event_read_value 55
|
|
|
|
#define BPF_FUNC_perf_prog_read_value 56
|
|
|
|
#define BPF_FUNC_getsockopt 57
|
|
|
|
#define BPF_FUNC_override_return 58
|
|
|
|
#define BPF_FUNC_sock_ops_cb_flags_set 59
|
|
|
|
#define BPF_FUNC_msg_redirect_map 60
|
|
|
|
#define BPF_FUNC_msg_apply_bytes 61
|
|
|
|
#define BPF_FUNC_msg_cork_bytes 62
|
|
|
|
#define BPF_FUNC_msg_pull_data 63
|
|
|
|
#define BPF_FUNC_bind 64
|
|
|
|
#define BPF_FUNC_xdp_adjust_tail 65
|
|
|
|
#define BPF_FUNC_skb_get_xfrm_state 66
|
|
|
|
#define BPF_FUNC_get_stack 67
|
|
|
|
#define BPF_FUNC_skb_load_bytes_relative 68
|
|
|
|
#define BPF_FUNC_fib_lookup 69
|
|
|
|
#define BPF_FUNC_sock_hash_update 70
|
|
|
|
#define BPF_FUNC_msg_redirect_hash 71
|
|
|
|
#define BPF_FUNC_sk_redirect_hash 72
|
|
|
|
#define BPF_FUNC_lwt_push_encap 73
|
|
|
|
#define BPF_FUNC_lwt_seg6_store_bytes 74
|
|
|
|
#define BPF_FUNC_lwt_seg6_adjust_srh 75
|
|
|
|
#define BPF_FUNC_lwt_seg6_action 76
|
|
|
|
#define BPF_FUNC_rc_repeat 77
|
|
|
|
#define BPF_FUNC_rc_keydown 78
|
|
|
|
#define BPF_FUNC_skb_cgroup_id 79
|
|
|
|
#define BPF_FUNC_get_current_cgroup_id 80
|
|
|
|
#define BPF_FUNC_get_local_storage 81
|
|
|
|
#define BPF_FUNC_sk_select_reuseport 82
|
|
|
|
#define BPF_FUNC_skb_ancestor_cgroup_id 83
|
|
|
|
#define BPF_FUNC_sk_lookup_tcp 84
|
|
|
|
#define BPF_FUNC_sk_lookup_udp 85
|
|
|
|
#define BPF_FUNC_sk_release 86
|
|
|
|
#define BPF_FUNC_map_push_elem 87
|
|
|
|
#define BPF_FUNC_map_pop_elem 88
|
|
|
|
#define BPF_FUNC_map_peek_elem 89
|
|
|
|
#define BPF_FUNC_msg_push_data 90
|
|
|
|
#define BPF_FUNC_msg_pop_data 91
|
|
|
|
#define BPF_FUNC_rc_pointer_rel 92
|
|
|
|
#define BPF_FUNC_spin_lock 93
|
|
|
|
#define BPF_FUNC_spin_unlock 94
|
|
|
|
#define BPF_FUNC_sk_fullsock 95
|
|
|
|
#define BPF_FUNC_tcp_sock 96
|
|
|
|
#define BPF_FUNC_skb_ecn_set_ce 97
|
|
|
|
#define BPF_FUNC_get_listener_sock 98
|
|
|
|
#define BPF_FUNC_skc_lookup_tcp 99
|
|
|
|
#define BPF_FUNC_tcp_check_syncookie 100
|
|
|
|
#define BPF_FUNC_sysctl_get_name 101
|
|
|
|
#define BPF_FUNC_sysctl_get_current_value 102
|
|
|
|
#define BPF_FUNC_sysctl_get_new_value 103
|
|
|
|
#define BPF_FUNC_sysctl_set_new_value 104
|
|
|
|
#define BPF_FUNC_strtol 105
|
|
|
|
#define BPF_FUNC_strtoul 106
|
|
|
|
#define BPF_FUNC_sk_storage_get 107
|
|
|
|
#define BPF_FUNC_sk_storage_delete 108
|
|
|
|
#define BPF_FUNC_send_signal 109
|
|
|
|
#define BPF_FUNC_tcp_gen_syncookie 110
|
|
|
|
#define BPF_FUNC_skb_output 111
|
|
|
|
#define BPF_FUNC_probe_read_user 112
|
|
|
|
#define BPF_FUNC_probe_read_kernel 113
|
|
|
|
#define BPF_FUNC_probe_read_user_str 114
|
|
|
|
#define BPF_FUNC_probe_read_kernel_str 115
|
|
|
|
#define BPF_FUNC_tcp_send_ack 116
|
|
|
|
#define BPF_FUNC_send_signal_thread 117
|
|
|
|
#define BPF_FUNC_jiffies64 118
|
|
|
|
#define BPF_FUNC_read_branch_records 119
|
|
|
|
#define BPF_FUNC_get_ns_current_pid_tgid 120
|
|
|
|
#define BPF_FUNC_xdp_output 121
|
|
|
|
#define BPF_FUNC_get_netns_cookie 122
|
|
|
|
#define BPF_FUNC_get_current_ancestor_cgroup_id 123
|
|
|
|
#define BPF_FUNC_sk_assign 124
|
|
|
|
#define BPF_FUNC_ktime_get_boot_ns 125
|
|
|
|
#define BPF_FUNC_seq_printf 126
|
|
|
|
#define BPF_FUNC_seq_write 127
|
|
|
|
#define BPF_FUNC_sk_cgroup_id 128
|
|
|
|
#define BPF_FUNC_sk_ancestor_cgroup_id 129
|
|
|
|
#define BPF_FUNC_ringbuf_output 130
|
|
|
|
#define BPF_FUNC_ringbuf_reserve 131
|
|
|
|
#define BPF_FUNC_ringbuf_submit 132
|
|
|
|
#define BPF_FUNC_ringbuf_discard 133
|
|
|
|
#define BPF_FUNC_ringbuf_query 134
|
|
|
|
#define BPF_FUNC_csum_level 135
|
|
|
|
#define BPF_FUNC_skc_to_tcp6_sock 136
|
|
|
|
#define BPF_FUNC_skc_to_tcp_sock 137
|
|
|
|
#define BPF_FUNC_skc_to_tcp_timewait_sock 138
|
|
|
|
#define BPF_FUNC_skc_to_tcp_request_sock 139
|
|
|
|
#define BPF_FUNC_skc_to_udp6_sock 140
|
|
|
|
#define BPF_FUNC_get_task_stack 141
|
|
|
|
#define BPF_FUNC_load_hdr_opt 142
|
|
|
|
#define BPF_FUNC_store_hdr_opt 143
|
|
|
|
#define BPF_FUNC_reserve_hdr_opt 144
|
|
|
|
#define BPF_FUNC_inode_storage_get 145
|
|
|
|
#define BPF_FUNC_inode_storage_delete 146
|
|
|
|
#define BPF_FUNC_d_path 147
|
|
|
|
#define BPF_FUNC_copy_from_user 148
|
|
|
|
#define BPF_FUNC_snprintf_btf 149
|
|
|
|
#define BPF_FUNC_seq_printf_btf 150
|
|
|
|
#define BPF_FUNC_skb_cgroup_classid 151
|
|
|
|
#define BPF_FUNC_redirect_neigh 152
|
|
|
|
#define BPF_FUNC_per_cpu_ptr 153
|
|
|
|
#define BPF_FUNC_this_cpu_ptr 154
|
|
|
|
#define BPF_FUNC_redirect_peer 155
|
|
|
|
#define BPF_FUNC_task_storage_get 156
|
|
|
|
#define BPF_FUNC_task_storage_delete 157
|
|
|
|
#define BPF_FUNC_get_current_task_btf 158
|
|
|
|
#define BPF_FUNC_bprm_opts_set 159
|
|
|
|
#define BPF_FUNC_ktime_get_coarse_ns 160
|
|
|
|
#define BPF_FUNC_ima_inode_hash 161
|
|
|
|
#define BPF_FUNC_sock_from_file 162
|
|
|
|
#define BPF_FUNC_check_mtu 163
|
|
|
|
#define BPF_FUNC_for_each_map_elem 164
|
|
|
|
#define BPF_FUNC_snprintf 165
|
|
|
|
#define BPF_FUNC_sys_bpf 166
|
|
|
|
#define BPF_FUNC_btf_find_by_name_kind 167
|
|
|
|
#define BPF_FUNC_sys_close 168
|
|
|
|
#define __BPF_FUNC_MAX_ID 169
|
2022-04-18 15:54:42 +00:00
|
|
|
|
|
|
|
#define __bpf_md_ptr(type, name) \
|
|
|
|
union { \
|
|
|
|
type name; \
|
|
|
|
uint64_t : 64; \
|
|
|
|
} forcealign(8)
|
|
|
|
|
|
|
|
struct bpf_insn {
|
|
|
|
uint8_t code;
|
|
|
|
uint8_t dst_reg : 4;
|
|
|
|
uint8_t src_reg : 4;
|
|
|
|
int16_t off;
|
|
|
|
int32_t imm;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_lpm_trie_key {
|
|
|
|
uint32_t prefixlen;
|
|
|
|
uint8_t data[0];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_cgroup_storage_key {
|
|
|
|
uint64_t cgroup_inode_id;
|
|
|
|
uint32_t attach_type;
|
|
|
|
};
|
|
|
|
|
|
|
|
union bpf_iter_link_info {
|
|
|
|
struct {
|
|
|
|
uint32_t map_fd;
|
|
|
|
} map;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_stack_build_id {
|
|
|
|
int32_t status;
|
|
|
|
unsigned char build_id[BPF_BUILD_ID_SIZE];
|
|
|
|
union {
|
|
|
|
uint64_t offset;
|
|
|
|
uint64_t ip;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
union bpf_attr {
|
|
|
|
struct {
|
|
|
|
uint32_t map_type;
|
|
|
|
uint32_t key_size;
|
|
|
|
uint32_t value_size;
|
|
|
|
uint32_t max_entries;
|
|
|
|
uint32_t map_flags;
|
|
|
|
uint32_t inner_map_fd;
|
|
|
|
uint32_t numa_node;
|
|
|
|
char map_name[BPF_OBJ_NAME_LEN];
|
|
|
|
uint32_t map_ifindex;
|
|
|
|
uint32_t btf_fd;
|
|
|
|
uint32_t btf_key_type_id;
|
|
|
|
uint32_t btf_value_type_id;
|
|
|
|
uint32_t btf_vmlinux_value_type_id;
|
|
|
|
};
|
|
|
|
struct {
|
|
|
|
uint32_t map_fd;
|
|
|
|
uint64_t key;
|
|
|
|
union {
|
|
|
|
uint64_t value;
|
|
|
|
uint64_t next_key;
|
|
|
|
};
|
|
|
|
uint64_t flags;
|
|
|
|
};
|
|
|
|
struct {
|
|
|
|
uint64_t in_batch;
|
|
|
|
uint64_t out_batch;
|
|
|
|
uint64_t keys;
|
|
|
|
uint64_t values;
|
|
|
|
uint32_t count;
|
|
|
|
uint32_t map_fd;
|
|
|
|
uint64_t elem_flags;
|
|
|
|
uint64_t flags;
|
|
|
|
} batch;
|
|
|
|
struct {
|
|
|
|
uint32_t prog_type;
|
|
|
|
uint32_t insn_cnt;
|
|
|
|
uint64_t insns;
|
|
|
|
uint64_t license;
|
|
|
|
uint32_t log_level;
|
|
|
|
uint32_t log_size;
|
|
|
|
uint64_t log_buf;
|
|
|
|
uint32_t kern_version;
|
|
|
|
uint32_t prog_flags;
|
|
|
|
char prog_name[BPF_OBJ_NAME_LEN];
|
|
|
|
uint32_t prog_ifindex;
|
|
|
|
uint32_t expected_attach_type;
|
|
|
|
uint32_t prog_btf_fd;
|
|
|
|
uint32_t func_info_rec_size;
|
|
|
|
uint64_t func_info;
|
|
|
|
uint32_t func_info_cnt;
|
|
|
|
uint32_t line_info_rec_size;
|
|
|
|
uint64_t line_info;
|
|
|
|
uint32_t line_info_cnt;
|
|
|
|
uint32_t attach_btf_id;
|
|
|
|
union {
|
|
|
|
uint32_t attach_prog_fd;
|
|
|
|
uint32_t attach_btf_obj_fd;
|
|
|
|
};
|
|
|
|
uint32_t : 32;
|
|
|
|
uint64_t fd_array;
|
|
|
|
};
|
|
|
|
struct {
|
|
|
|
uint64_t pathname;
|
|
|
|
uint32_t bpf_fd;
|
|
|
|
uint32_t file_flags;
|
|
|
|
};
|
|
|
|
struct {
|
|
|
|
uint32_t target_fd;
|
|
|
|
uint32_t attach_bpf_fd;
|
|
|
|
uint32_t attach_type;
|
|
|
|
uint32_t attach_flags;
|
|
|
|
uint32_t replace_bpf_fd;
|
|
|
|
};
|
|
|
|
struct {
|
|
|
|
uint32_t prog_fd;
|
|
|
|
uint32_t retval;
|
|
|
|
uint32_t data_size_in;
|
|
|
|
uint32_t data_size_out;
|
|
|
|
uint64_t data_in;
|
|
|
|
uint64_t data_out;
|
|
|
|
uint32_t repeat;
|
|
|
|
uint32_t duration;
|
|
|
|
uint32_t ctx_size_in;
|
|
|
|
uint32_t ctx_size_out;
|
|
|
|
uint64_t ctx_in;
|
|
|
|
uint64_t ctx_out;
|
|
|
|
uint32_t flags;
|
|
|
|
uint32_t cpu;
|
|
|
|
} test;
|
|
|
|
struct {
|
|
|
|
union {
|
|
|
|
uint32_t start_id;
|
|
|
|
uint32_t prog_id;
|
|
|
|
uint32_t map_id;
|
|
|
|
uint32_t btf_id;
|
|
|
|
uint32_t link_id;
|
|
|
|
};
|
|
|
|
uint32_t next_id;
|
|
|
|
uint32_t open_flags;
|
|
|
|
};
|
|
|
|
struct {
|
|
|
|
uint32_t bpf_fd;
|
|
|
|
uint32_t info_len;
|
|
|
|
uint64_t info;
|
|
|
|
} info;
|
|
|
|
struct {
|
|
|
|
uint32_t target_fd;
|
|
|
|
uint32_t attach_type;
|
|
|
|
uint32_t query_flags;
|
|
|
|
uint32_t attach_flags;
|
|
|
|
uint64_t prog_ids;
|
|
|
|
uint32_t prog_cnt;
|
|
|
|
} query;
|
|
|
|
struct {
|
|
|
|
uint64_t name;
|
|
|
|
uint32_t prog_fd;
|
|
|
|
} raw_tracepoint;
|
|
|
|
struct {
|
|
|
|
uint64_t btf;
|
|
|
|
uint64_t btf_log_buf;
|
|
|
|
uint32_t btf_size;
|
|
|
|
uint32_t btf_log_size;
|
|
|
|
uint32_t btf_log_level;
|
|
|
|
};
|
|
|
|
struct {
|
|
|
|
uint32_t pid;
|
|
|
|
uint32_t fd;
|
|
|
|
uint32_t flags;
|
|
|
|
uint32_t buf_len;
|
|
|
|
uint64_t buf;
|
|
|
|
uint32_t prog_id;
|
|
|
|
uint32_t fd_type;
|
|
|
|
uint64_t probe_offset;
|
|
|
|
uint64_t probe_addr;
|
|
|
|
} task_fd_query;
|
|
|
|
struct {
|
|
|
|
uint32_t prog_fd;
|
|
|
|
union {
|
|
|
|
uint32_t target_fd;
|
|
|
|
uint32_t target_ifindex;
|
|
|
|
};
|
|
|
|
uint32_t attach_type;
|
|
|
|
uint32_t flags;
|
|
|
|
union {
|
|
|
|
uint32_t target_btf_id;
|
|
|
|
struct {
|
|
|
|
uint64_t iter_info;
|
|
|
|
uint32_t iter_info_len;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
} link_create;
|
|
|
|
struct {
|
|
|
|
uint32_t link_fd;
|
|
|
|
uint32_t new_prog_fd;
|
|
|
|
uint32_t flags;
|
|
|
|
uint32_t old_prog_fd;
|
|
|
|
} link_update;
|
|
|
|
struct {
|
|
|
|
uint32_t link_fd;
|
|
|
|
} link_detach;
|
|
|
|
struct {
|
|
|
|
uint32_t type;
|
|
|
|
} enable_stats;
|
|
|
|
struct {
|
|
|
|
uint32_t link_fd;
|
|
|
|
uint32_t flags;
|
|
|
|
} iter_create;
|
|
|
|
struct {
|
|
|
|
uint32_t prog_fd;
|
|
|
|
uint32_t map_fd;
|
|
|
|
uint32_t flags;
|
|
|
|
} prog_bind_map;
|
|
|
|
} forcealign(8);
|
|
|
|
|
|
|
|
struct __sk_buff {
|
|
|
|
uint32_t len;
|
|
|
|
uint32_t pkt_type;
|
|
|
|
uint32_t mark;
|
|
|
|
uint32_t queue_mapping;
|
|
|
|
uint32_t protocol;
|
|
|
|
uint32_t vlan_present;
|
|
|
|
uint32_t vlan_tci;
|
|
|
|
uint32_t vlan_proto;
|
|
|
|
uint32_t priority;
|
|
|
|
uint32_t ingress_ifindex;
|
|
|
|
uint32_t ifindex;
|
|
|
|
uint32_t tc_index;
|
|
|
|
uint32_t cb[5];
|
|
|
|
uint32_t hash;
|
|
|
|
uint32_t tc_classid;
|
|
|
|
uint32_t data;
|
|
|
|
uint32_t data_end;
|
|
|
|
uint32_t napi_id;
|
|
|
|
uint32_t family;
|
|
|
|
uint32_t remote_ip4;
|
|
|
|
uint32_t local_ip4;
|
|
|
|
uint32_t remote_ip6[4];
|
|
|
|
uint32_t local_ip6[4];
|
|
|
|
uint32_t remote_port;
|
|
|
|
uint32_t local_port;
|
|
|
|
uint32_t data_meta;
|
|
|
|
__bpf_md_ptr(struct bpf_flow_keys *, flow_keys);
|
|
|
|
uint64_t tstamp;
|
|
|
|
uint32_t wire_len;
|
|
|
|
uint32_t gso_segs;
|
|
|
|
__bpf_md_ptr(struct bpf_sock *, sk);
|
|
|
|
uint32_t gso_size;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_tunnel_key {
|
|
|
|
uint32_t tunnel_id;
|
|
|
|
union {
|
|
|
|
uint32_t remote_ipv4;
|
|
|
|
uint32_t remote_ipv6[4];
|
|
|
|
};
|
|
|
|
uint8_t tunnel_tos;
|
|
|
|
uint8_t tunnel_ttl;
|
|
|
|
uint16_t tunnel_ext;
|
|
|
|
uint32_t tunnel_label;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_xfrm_state {
|
|
|
|
uint32_t reqid;
|
|
|
|
uint32_t spi;
|
|
|
|
uint16_t family;
|
|
|
|
uint16_t ext;
|
|
|
|
union {
|
|
|
|
uint32_t remote_ipv4;
|
|
|
|
uint32_t remote_ipv6[4];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_sock {
|
|
|
|
uint32_t bound_dev_if;
|
|
|
|
uint32_t family;
|
|
|
|
uint32_t type;
|
|
|
|
uint32_t protocol;
|
|
|
|
uint32_t mark;
|
|
|
|
uint32_t priority;
|
|
|
|
uint32_t src_ip4;
|
|
|
|
uint32_t src_ip6[4];
|
|
|
|
uint32_t src_port;
|
|
|
|
uint32_t dst_port;
|
|
|
|
uint32_t dst_ip4;
|
|
|
|
uint32_t dst_ip6[4];
|
|
|
|
uint32_t state;
|
|
|
|
int32_t rx_queue_mapping;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_tcp_sock {
|
|
|
|
uint32_t snd_cwnd;
|
|
|
|
uint32_t srtt_us;
|
|
|
|
uint32_t rtt_min;
|
|
|
|
uint32_t snd_ssthresh;
|
|
|
|
uint32_t rcv_nxt;
|
|
|
|
uint32_t snd_nxt;
|
|
|
|
uint32_t snd_una;
|
|
|
|
uint32_t mss_cache;
|
|
|
|
uint32_t ecn_flags;
|
|
|
|
uint32_t rate_delivered;
|
|
|
|
uint32_t rate_interval_us;
|
|
|
|
uint32_t packets_out;
|
|
|
|
uint32_t retrans_out;
|
|
|
|
uint32_t total_retrans;
|
|
|
|
uint32_t segs_in;
|
|
|
|
uint32_t data_segs_in;
|
|
|
|
uint32_t segs_out;
|
|
|
|
uint32_t data_segs_out;
|
|
|
|
uint32_t lost_out;
|
|
|
|
uint32_t sacked_out;
|
|
|
|
uint64_t bytes_received;
|
|
|
|
uint64_t bytes_acked;
|
|
|
|
uint32_t dsack_dups;
|
|
|
|
uint32_t delivered;
|
|
|
|
uint32_t delivered_ce;
|
|
|
|
uint32_t icsk_retransmits;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_sock_tuple {
|
|
|
|
union {
|
|
|
|
struct {
|
|
|
|
uint32_t saddr; /* big endian */
|
|
|
|
uint32_t daddr; /* big endian */
|
|
|
|
uint16_t sport; /* big endian */
|
|
|
|
uint16_t dport; /* big endian */
|
|
|
|
} ipv4;
|
|
|
|
struct {
|
|
|
|
uint32_t saddr[4]; /* big endian */
|
|
|
|
uint32_t daddr[4]; /* big endian */
|
|
|
|
uint16_t sport; /* big endian */
|
|
|
|
uint16_t dport; /* big endian */
|
|
|
|
} ipv6;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_xdp_sock {
|
|
|
|
uint32_t queue_id;
|
|
|
|
};
|
|
|
|
|
|
|
|
enum xdp_action {
|
|
|
|
XDP_ABORTED = 0,
|
|
|
|
XDP_DROP,
|
|
|
|
XDP_PASS,
|
|
|
|
XDP_TX,
|
|
|
|
XDP_REDIRECT,
|
|
|
|
};
|
|
|
|
|
|
|
|
struct xdp_md {
|
|
|
|
uint32_t data;
|
|
|
|
uint32_t data_end;
|
|
|
|
uint32_t data_meta;
|
|
|
|
uint32_t ingress_ifindex;
|
|
|
|
uint32_t rx_queue_index;
|
|
|
|
uint32_t egress_ifindex;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_devmap_val {
|
|
|
|
uint32_t ifindex;
|
|
|
|
union {
|
|
|
|
int fd;
|
|
|
|
uint32_t id;
|
|
|
|
} bpf_prog;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_cpumap_val {
|
|
|
|
uint32_t qsize;
|
|
|
|
union {
|
|
|
|
int fd;
|
|
|
|
uint32_t id;
|
|
|
|
} bpf_prog;
|
|
|
|
};
|
|
|
|
|
|
|
|
enum sk_action {
|
|
|
|
SK_DROP = 0,
|
|
|
|
SK_PASS,
|
|
|
|
};
|
|
|
|
|
|
|
|
struct sk_msg_md {
|
|
|
|
__bpf_md_ptr(void *, data);
|
|
|
|
__bpf_md_ptr(void *, data_end);
|
|
|
|
uint32_t family;
|
|
|
|
uint32_t remote_ip4;
|
|
|
|
uint32_t local_ip4;
|
|
|
|
uint32_t remote_ip6[4];
|
|
|
|
uint32_t local_ip6[4];
|
|
|
|
uint32_t remote_port;
|
|
|
|
uint32_t local_port;
|
|
|
|
uint32_t size;
|
|
|
|
__bpf_md_ptr(struct bpf_sock *, sk);
|
|
|
|
};
|
|
|
|
|
|
|
|
struct sk_reuseport_md {
|
|
|
|
__bpf_md_ptr(void *, data);
|
|
|
|
__bpf_md_ptr(void *, data_end);
|
|
|
|
uint32_t len;
|
|
|
|
uint32_t eth_protocol;
|
|
|
|
uint32_t ip_protocol;
|
|
|
|
uint32_t bind_inany;
|
|
|
|
uint32_t hash;
|
|
|
|
__bpf_md_ptr(struct bpf_sock *, sk);
|
|
|
|
__bpf_md_ptr(struct bpf_sock *, migrating_sk);
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_prog_info {
|
|
|
|
uint32_t type;
|
|
|
|
uint32_t id;
|
|
|
|
uint8_t tag[BPF_TAG_SIZE];
|
|
|
|
uint32_t jited_prog_len;
|
|
|
|
uint32_t xlated_prog_len;
|
|
|
|
uint64_t jited_prog_insns;
|
|
|
|
uint64_t xlated_prog_insns;
|
|
|
|
uint64_t load_time;
|
|
|
|
uint32_t created_by_uid;
|
|
|
|
uint32_t nr_map_ids;
|
|
|
|
uint64_t map_ids;
|
|
|
|
char name[BPF_OBJ_NAME_LEN];
|
|
|
|
uint32_t ifindex;
|
|
|
|
uint32_t gpl_compatible : 1;
|
|
|
|
uint32_t : 31;
|
|
|
|
uint64_t netns_dev;
|
|
|
|
uint64_t netns_ino;
|
|
|
|
uint32_t nr_jited_ksyms;
|
|
|
|
uint32_t nr_jited_func_lens;
|
|
|
|
uint64_t jited_ksyms;
|
|
|
|
uint64_t jited_func_lens;
|
|
|
|
uint32_t btf_id;
|
|
|
|
uint32_t func_info_rec_size;
|
|
|
|
uint64_t func_info;
|
|
|
|
uint32_t nr_func_info;
|
|
|
|
uint32_t nr_line_info;
|
|
|
|
uint64_t line_info;
|
|
|
|
uint64_t jited_line_info;
|
|
|
|
uint32_t nr_jited_line_info;
|
|
|
|
uint32_t line_info_rec_size;
|
|
|
|
uint32_t jited_line_info_rec_size;
|
|
|
|
uint32_t nr_prog_tags;
|
|
|
|
uint64_t prog_tags;
|
|
|
|
uint64_t run_time_ns;
|
|
|
|
uint64_t run_cnt;
|
|
|
|
uint64_t recursion_misses;
|
|
|
|
} forcealign(8);
|
|
|
|
|
|
|
|
struct bpf_map_info {
|
|
|
|
uint32_t type;
|
|
|
|
uint32_t id;
|
|
|
|
uint32_t key_size;
|
|
|
|
uint32_t value_size;
|
|
|
|
uint32_t max_entries;
|
|
|
|
uint32_t map_flags;
|
|
|
|
char name[BPF_OBJ_NAME_LEN];
|
|
|
|
uint32_t ifindex;
|
|
|
|
uint32_t btf_vmlinux_value_type_id;
|
|
|
|
uint64_t netns_dev;
|
|
|
|
uint64_t netns_ino;
|
|
|
|
uint32_t btf_id;
|
|
|
|
uint32_t btf_key_type_id;
|
|
|
|
uint32_t btf_value_type_id;
|
|
|
|
} forcealign(8);
|
|
|
|
|
|
|
|
struct bpf_btf_info {
|
|
|
|
uint64_t btf;
|
|
|
|
uint32_t btf_size;
|
|
|
|
uint32_t id;
|
|
|
|
uint64_t name;
|
|
|
|
uint32_t name_len;
|
|
|
|
uint32_t kernel_btf;
|
|
|
|
} forcealign(8);
|
|
|
|
|
|
|
|
struct bpf_link_info {
|
|
|
|
uint32_t type;
|
|
|
|
uint32_t id;
|
|
|
|
uint32_t prog_id;
|
|
|
|
union {
|
|
|
|
struct {
|
|
|
|
uint64_t tp_name;
|
|
|
|
uint32_t tp_name_len;
|
|
|
|
} raw_tracepoint;
|
|
|
|
struct {
|
|
|
|
uint32_t attach_type;
|
|
|
|
uint32_t target_obj_id;
|
|
|
|
uint32_t target_btf_id;
|
|
|
|
} tracing;
|
|
|
|
struct {
|
|
|
|
uint64_t cgroup_id;
|
|
|
|
uint32_t attach_type;
|
|
|
|
} cgroup;
|
|
|
|
struct {
|
|
|
|
uint64_t target_name;
|
|
|
|
uint32_t target_name_len;
|
|
|
|
union {
|
|
|
|
struct {
|
|
|
|
uint32_t map_id;
|
|
|
|
} map;
|
|
|
|
};
|
|
|
|
} iter;
|
|
|
|
struct {
|
|
|
|
uint32_t netns_ino;
|
|
|
|
uint32_t attach_type;
|
|
|
|
} netns;
|
|
|
|
struct {
|
|
|
|
uint32_t ifindex;
|
|
|
|
} xdp;
|
|
|
|
};
|
|
|
|
} forcealign(8);
|
|
|
|
|
|
|
|
struct bpf_sock_addr {
|
|
|
|
uint32_t user_family;
|
|
|
|
uint32_t user_ip4;
|
|
|
|
uint32_t user_ip6[4];
|
|
|
|
uint32_t user_port;
|
|
|
|
uint32_t family;
|
|
|
|
uint32_t type;
|
|
|
|
uint32_t protocol;
|
|
|
|
uint32_t msg_src_ip4;
|
|
|
|
uint32_t msg_src_ip6[4];
|
|
|
|
__bpf_md_ptr(struct bpf_sock *, sk);
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_sock_ops {
|
|
|
|
uint32_t op;
|
|
|
|
union {
|
|
|
|
uint32_t args[4];
|
|
|
|
uint32_t reply;
|
|
|
|
uint32_t replylong[4];
|
|
|
|
};
|
|
|
|
uint32_t family;
|
|
|
|
uint32_t remote_ip4;
|
|
|
|
uint32_t local_ip4;
|
|
|
|
uint32_t remote_ip6[4];
|
|
|
|
uint32_t local_ip6[4];
|
|
|
|
uint32_t remote_port;
|
|
|
|
uint32_t local_port;
|
|
|
|
uint32_t is_fullsock;
|
|
|
|
uint32_t snd_cwnd;
|
|
|
|
uint32_t srtt_us;
|
|
|
|
uint32_t bpf_sock_ops_cb_flags;
|
|
|
|
uint32_t state;
|
|
|
|
uint32_t rtt_min;
|
|
|
|
uint32_t snd_ssthresh;
|
|
|
|
uint32_t rcv_nxt;
|
|
|
|
uint32_t snd_nxt;
|
|
|
|
uint32_t snd_una;
|
|
|
|
uint32_t mss_cache;
|
|
|
|
uint32_t ecn_flags;
|
|
|
|
uint32_t rate_delivered;
|
|
|
|
uint32_t rate_interval_us;
|
|
|
|
uint32_t packets_out;
|
|
|
|
uint32_t retrans_out;
|
|
|
|
uint32_t total_retrans;
|
|
|
|
uint32_t segs_in;
|
|
|
|
uint32_t data_segs_in;
|
|
|
|
uint32_t segs_out;
|
|
|
|
uint32_t data_segs_out;
|
|
|
|
uint32_t lost_out;
|
|
|
|
uint32_t sacked_out;
|
|
|
|
uint32_t sk_txhash;
|
|
|
|
uint64_t bytes_received;
|
|
|
|
uint64_t bytes_acked;
|
|
|
|
__bpf_md_ptr(struct bpf_sock *, sk);
|
|
|
|
__bpf_md_ptr(void *, skb_data);
|
|
|
|
__bpf_md_ptr(void *, skb_data_end);
|
|
|
|
uint32_t skb_len;
|
|
|
|
uint32_t skb_tcp_flags;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_perf_event_value {
|
|
|
|
uint64_t counter;
|
|
|
|
uint64_t enabled;
|
|
|
|
uint64_t running;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_cgroup_dev_ctx {
|
|
|
|
uint32_t access_type;
|
|
|
|
uint32_t major;
|
|
|
|
uint32_t minor;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_raw_tracepoint_args {
|
|
|
|
uint64_t args[0];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_fib_lookup {
|
|
|
|
uint8_t family;
|
|
|
|
uint8_t l4_protocol;
|
|
|
|
uint16_t sport; /* big endian */
|
|
|
|
uint16_t dport; /* big endian */
|
|
|
|
union {
|
|
|
|
uint16_t tot_len;
|
|
|
|
uint16_t mtu_result;
|
|
|
|
};
|
|
|
|
uint32_t ifindex;
|
|
|
|
union {
|
|
|
|
uint8_t tos;
|
|
|
|
uint32_t flowinfo; /* big endian */
|
|
|
|
uint32_t rt_metric;
|
|
|
|
};
|
|
|
|
union {
|
|
|
|
uint32_t ipv4_src; /* big endian */
|
|
|
|
uint32_t ipv6_src[4];
|
|
|
|
};
|
|
|
|
union {
|
|
|
|
uint32_t ipv4_dst; /* big endian */
|
|
|
|
uint32_t ipv6_dst[4];
|
|
|
|
};
|
|
|
|
uint16_t h_vlan_proto; /* big endian */
|
|
|
|
uint16_t h_vlan_TCI; /* big endian */
|
|
|
|
uint8_t smac[6];
|
|
|
|
uint8_t dmac[6];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_redir_neigh {
|
|
|
|
uint32_t nh_family;
|
|
|
|
union {
|
|
|
|
uint32_t ipv4_nh; /* big endian */
|
|
|
|
uint32_t ipv6_nh[4];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_flow_keys {
|
|
|
|
uint16_t nhoff;
|
|
|
|
uint16_t thoff;
|
|
|
|
uint16_t addr_proto;
|
|
|
|
uint8_t is_frag;
|
|
|
|
uint8_t is_first_frag;
|
|
|
|
uint8_t is_encap;
|
|
|
|
uint8_t ip_proto;
|
|
|
|
uint16_t n_proto; /* big endian */
|
|
|
|
uint16_t sport; /* big endian */
|
|
|
|
uint16_t dport; /* big endian */
|
|
|
|
union {
|
|
|
|
struct {
|
|
|
|
uint32_t ipv4_src; /* big endian */
|
|
|
|
uint32_t ipv4_dst; /* big endian */
|
|
|
|
};
|
|
|
|
struct {
|
|
|
|
uint32_t ipv6_src[4];
|
|
|
|
uint32_t ipv6_dst[4];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
uint32_t flags;
|
|
|
|
uint32_t flow_label;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_func_info {
|
|
|
|
uint32_t insn_off;
|
|
|
|
uint32_t type_id;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_line_info {
|
|
|
|
uint32_t insn_off;
|
|
|
|
uint32_t file_name_off;
|
|
|
|
uint32_t line_off;
|
|
|
|
uint32_t line_col;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_spin_lock {
|
|
|
|
uint32_t val;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_sysctl {
|
2022-04-21 16:15:36 +00:00
|
|
|
uint32_t write_;
|
2022-04-18 15:54:42 +00:00
|
|
|
uint32_t file_pos;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_sockopt {
|
|
|
|
__bpf_md_ptr(struct bpf_sock *, sk);
|
|
|
|
__bpf_md_ptr(void *, optval);
|
|
|
|
__bpf_md_ptr(void *, optval_end);
|
|
|
|
int32_t level;
|
|
|
|
int32_t optname;
|
|
|
|
int32_t optlen;
|
|
|
|
int32_t retval;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_pidns_info {
|
|
|
|
uint32_t pid;
|
|
|
|
uint32_t tgid;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct bpf_sk_lookup {
|
|
|
|
union {
|
|
|
|
__bpf_md_ptr(struct bpf_sock *, sk);
|
|
|
|
uint64_t cookie;
|
|
|
|
};
|
|
|
|
uint32_t family;
|
|
|
|
uint32_t protocol;
|
|
|
|
uint32_t remote_ip4;
|
|
|
|
uint32_t remote_ip6[4];
|
|
|
|
uint32_t remote_port;
|
|
|
|
uint32_t local_ip4;
|
|
|
|
uint32_t local_ip6[4];
|
|
|
|
uint32_t local_port;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct btf_ptr {
|
|
|
|
void *ptr;
|
|
|
|
uint32_t type_id;
|
|
|
|
uint32_t flags;
|
|
|
|
};
|
|
|
|
|
|
|
|
COSMOPOLITAN_C_END_
|
|
|
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
|
|
|
#endif /* COSMOPOLITAN_LIBC_CALLS_STRUCT_BPF_H_ */
|