github.com/cilium/ebpf@v0.10.0/internal/sys/types.go (about) 1 // Code generated by internal/cmd/gentypes; DO NOT EDIT. 2 3 package sys 4 5 import ( 6 "unsafe" 7 ) 8 9 type AdjRoomMode uint32 10 11 const ( 12 BPF_ADJ_ROOM_NET AdjRoomMode = 0 13 BPF_ADJ_ROOM_MAC AdjRoomMode = 1 14 ) 15 16 type AttachType uint32 17 18 const ( 19 BPF_CGROUP_INET_INGRESS AttachType = 0 20 BPF_CGROUP_INET_EGRESS AttachType = 1 21 BPF_CGROUP_INET_SOCK_CREATE AttachType = 2 22 BPF_CGROUP_SOCK_OPS AttachType = 3 23 BPF_SK_SKB_STREAM_PARSER AttachType = 4 24 BPF_SK_SKB_STREAM_VERDICT AttachType = 5 25 BPF_CGROUP_DEVICE AttachType = 6 26 BPF_SK_MSG_VERDICT AttachType = 7 27 BPF_CGROUP_INET4_BIND AttachType = 8 28 BPF_CGROUP_INET6_BIND AttachType = 9 29 BPF_CGROUP_INET4_CONNECT AttachType = 10 30 BPF_CGROUP_INET6_CONNECT AttachType = 11 31 BPF_CGROUP_INET4_POST_BIND AttachType = 12 32 BPF_CGROUP_INET6_POST_BIND AttachType = 13 33 BPF_CGROUP_UDP4_SENDMSG AttachType = 14 34 BPF_CGROUP_UDP6_SENDMSG AttachType = 15 35 BPF_LIRC_MODE2 AttachType = 16 36 BPF_FLOW_DISSECTOR AttachType = 17 37 BPF_CGROUP_SYSCTL AttachType = 18 38 BPF_CGROUP_UDP4_RECVMSG AttachType = 19 39 BPF_CGROUP_UDP6_RECVMSG AttachType = 20 40 BPF_CGROUP_GETSOCKOPT AttachType = 21 41 BPF_CGROUP_SETSOCKOPT AttachType = 22 42 BPF_TRACE_RAW_TP AttachType = 23 43 BPF_TRACE_FENTRY AttachType = 24 44 BPF_TRACE_FEXIT AttachType = 25 45 BPF_MODIFY_RETURN AttachType = 26 46 BPF_LSM_MAC AttachType = 27 47 BPF_TRACE_ITER AttachType = 28 48 BPF_CGROUP_INET4_GETPEERNAME AttachType = 29 49 BPF_CGROUP_INET6_GETPEERNAME AttachType = 30 50 BPF_CGROUP_INET4_GETSOCKNAME AttachType = 31 51 BPF_CGROUP_INET6_GETSOCKNAME AttachType = 32 52 BPF_XDP_DEVMAP AttachType = 33 53 BPF_CGROUP_INET_SOCK_RELEASE AttachType = 34 54 BPF_XDP_CPUMAP AttachType = 35 55 BPF_SK_LOOKUP AttachType = 36 56 BPF_XDP AttachType = 37 57 BPF_SK_SKB_VERDICT AttachType = 38 58 BPF_SK_REUSEPORT_SELECT AttachType = 39 59 BPF_SK_REUSEPORT_SELECT_OR_MIGRATE AttachType = 40 60 BPF_PERF_EVENT AttachType = 41 61 BPF_TRACE_KPROBE_MULTI AttachType = 42 62 __MAX_BPF_ATTACH_TYPE AttachType = 43 63 ) 64 65 type Cmd uint32 66 67 const ( 68 BPF_MAP_CREATE Cmd = 0 69 BPF_MAP_LOOKUP_ELEM Cmd = 1 70 BPF_MAP_UPDATE_ELEM Cmd = 2 71 BPF_MAP_DELETE_ELEM Cmd = 3 72 BPF_MAP_GET_NEXT_KEY Cmd = 4 73 BPF_PROG_LOAD Cmd = 5 74 BPF_OBJ_PIN Cmd = 6 75 BPF_OBJ_GET Cmd = 7 76 BPF_PROG_ATTACH Cmd = 8 77 BPF_PROG_DETACH Cmd = 9 78 BPF_PROG_TEST_RUN Cmd = 10 79 BPF_PROG_RUN Cmd = 10 80 BPF_PROG_GET_NEXT_ID Cmd = 11 81 BPF_MAP_GET_NEXT_ID Cmd = 12 82 BPF_PROG_GET_FD_BY_ID Cmd = 13 83 BPF_MAP_GET_FD_BY_ID Cmd = 14 84 BPF_OBJ_GET_INFO_BY_FD Cmd = 15 85 BPF_PROG_QUERY Cmd = 16 86 BPF_RAW_TRACEPOINT_OPEN Cmd = 17 87 BPF_BTF_LOAD Cmd = 18 88 BPF_BTF_GET_FD_BY_ID Cmd = 19 89 BPF_TASK_FD_QUERY Cmd = 20 90 BPF_MAP_LOOKUP_AND_DELETE_ELEM Cmd = 21 91 BPF_MAP_FREEZE Cmd = 22 92 BPF_BTF_GET_NEXT_ID Cmd = 23 93 BPF_MAP_LOOKUP_BATCH Cmd = 24 94 BPF_MAP_LOOKUP_AND_DELETE_BATCH Cmd = 25 95 BPF_MAP_UPDATE_BATCH Cmd = 26 96 BPF_MAP_DELETE_BATCH Cmd = 27 97 BPF_LINK_CREATE Cmd = 28 98 BPF_LINK_UPDATE Cmd = 29 99 BPF_LINK_GET_FD_BY_ID Cmd = 30 100 BPF_LINK_GET_NEXT_ID Cmd = 31 101 BPF_ENABLE_STATS Cmd = 32 102 BPF_ITER_CREATE Cmd = 33 103 BPF_LINK_DETACH Cmd = 34 104 BPF_PROG_BIND_MAP Cmd = 35 105 ) 106 107 type FunctionId uint32 108 109 const ( 110 BPF_FUNC_unspec FunctionId = 0 111 BPF_FUNC_map_lookup_elem FunctionId = 1 112 BPF_FUNC_map_update_elem FunctionId = 2 113 BPF_FUNC_map_delete_elem FunctionId = 3 114 BPF_FUNC_probe_read FunctionId = 4 115 BPF_FUNC_ktime_get_ns FunctionId = 5 116 BPF_FUNC_trace_printk FunctionId = 6 117 BPF_FUNC_get_prandom_u32 FunctionId = 7 118 BPF_FUNC_get_smp_processor_id FunctionId = 8 119 BPF_FUNC_skb_store_bytes FunctionId = 9 120 BPF_FUNC_l3_csum_replace FunctionId = 10 121 BPF_FUNC_l4_csum_replace FunctionId = 11 122 BPF_FUNC_tail_call FunctionId = 12 123 BPF_FUNC_clone_redirect FunctionId = 13 124 BPF_FUNC_get_current_pid_tgid FunctionId = 14 125 BPF_FUNC_get_current_uid_gid FunctionId = 15 126 BPF_FUNC_get_current_comm FunctionId = 16 127 BPF_FUNC_get_cgroup_classid FunctionId = 17 128 BPF_FUNC_skb_vlan_push FunctionId = 18 129 BPF_FUNC_skb_vlan_pop FunctionId = 19 130 BPF_FUNC_skb_get_tunnel_key FunctionId = 20 131 BPF_FUNC_skb_set_tunnel_key FunctionId = 21 132 BPF_FUNC_perf_event_read FunctionId = 22 133 BPF_FUNC_redirect FunctionId = 23 134 BPF_FUNC_get_route_realm FunctionId = 24 135 BPF_FUNC_perf_event_output FunctionId = 25 136 BPF_FUNC_skb_load_bytes FunctionId = 26 137 BPF_FUNC_get_stackid FunctionId = 27 138 BPF_FUNC_csum_diff FunctionId = 28 139 BPF_FUNC_skb_get_tunnel_opt FunctionId = 29 140 BPF_FUNC_skb_set_tunnel_opt FunctionId = 30 141 BPF_FUNC_skb_change_proto FunctionId = 31 142 BPF_FUNC_skb_change_type FunctionId = 32 143 BPF_FUNC_skb_under_cgroup FunctionId = 33 144 BPF_FUNC_get_hash_recalc FunctionId = 34 145 BPF_FUNC_get_current_task FunctionId = 35 146 BPF_FUNC_probe_write_user FunctionId = 36 147 BPF_FUNC_current_task_under_cgroup FunctionId = 37 148 BPF_FUNC_skb_change_tail FunctionId = 38 149 BPF_FUNC_skb_pull_data FunctionId = 39 150 BPF_FUNC_csum_update FunctionId = 40 151 BPF_FUNC_set_hash_invalid FunctionId = 41 152 BPF_FUNC_get_numa_node_id FunctionId = 42 153 BPF_FUNC_skb_change_head FunctionId = 43 154 BPF_FUNC_xdp_adjust_head FunctionId = 44 155 BPF_FUNC_probe_read_str FunctionId = 45 156 BPF_FUNC_get_socket_cookie FunctionId = 46 157 BPF_FUNC_get_socket_uid FunctionId = 47 158 BPF_FUNC_set_hash FunctionId = 48 159 BPF_FUNC_setsockopt FunctionId = 49 160 BPF_FUNC_skb_adjust_room FunctionId = 50 161 BPF_FUNC_redirect_map FunctionId = 51 162 BPF_FUNC_sk_redirect_map FunctionId = 52 163 BPF_FUNC_sock_map_update FunctionId = 53 164 BPF_FUNC_xdp_adjust_meta FunctionId = 54 165 BPF_FUNC_perf_event_read_value FunctionId = 55 166 BPF_FUNC_perf_prog_read_value FunctionId = 56 167 BPF_FUNC_getsockopt FunctionId = 57 168 BPF_FUNC_override_return FunctionId = 58 169 BPF_FUNC_sock_ops_cb_flags_set FunctionId = 59 170 BPF_FUNC_msg_redirect_map FunctionId = 60 171 BPF_FUNC_msg_apply_bytes FunctionId = 61 172 BPF_FUNC_msg_cork_bytes FunctionId = 62 173 BPF_FUNC_msg_pull_data FunctionId = 63 174 BPF_FUNC_bind FunctionId = 64 175 BPF_FUNC_xdp_adjust_tail FunctionId = 65 176 BPF_FUNC_skb_get_xfrm_state FunctionId = 66 177 BPF_FUNC_get_stack FunctionId = 67 178 BPF_FUNC_skb_load_bytes_relative FunctionId = 68 179 BPF_FUNC_fib_lookup FunctionId = 69 180 BPF_FUNC_sock_hash_update FunctionId = 70 181 BPF_FUNC_msg_redirect_hash FunctionId = 71 182 BPF_FUNC_sk_redirect_hash FunctionId = 72 183 BPF_FUNC_lwt_push_encap FunctionId = 73 184 BPF_FUNC_lwt_seg6_store_bytes FunctionId = 74 185 BPF_FUNC_lwt_seg6_adjust_srh FunctionId = 75 186 BPF_FUNC_lwt_seg6_action FunctionId = 76 187 BPF_FUNC_rc_repeat FunctionId = 77 188 BPF_FUNC_rc_keydown FunctionId = 78 189 BPF_FUNC_skb_cgroup_id FunctionId = 79 190 BPF_FUNC_get_current_cgroup_id FunctionId = 80 191 BPF_FUNC_get_local_storage FunctionId = 81 192 BPF_FUNC_sk_select_reuseport FunctionId = 82 193 BPF_FUNC_skb_ancestor_cgroup_id FunctionId = 83 194 BPF_FUNC_sk_lookup_tcp FunctionId = 84 195 BPF_FUNC_sk_lookup_udp FunctionId = 85 196 BPF_FUNC_sk_release FunctionId = 86 197 BPF_FUNC_map_push_elem FunctionId = 87 198 BPF_FUNC_map_pop_elem FunctionId = 88 199 BPF_FUNC_map_peek_elem FunctionId = 89 200 BPF_FUNC_msg_push_data FunctionId = 90 201 BPF_FUNC_msg_pop_data FunctionId = 91 202 BPF_FUNC_rc_pointer_rel FunctionId = 92 203 BPF_FUNC_spin_lock FunctionId = 93 204 BPF_FUNC_spin_unlock FunctionId = 94 205 BPF_FUNC_sk_fullsock FunctionId = 95 206 BPF_FUNC_tcp_sock FunctionId = 96 207 BPF_FUNC_skb_ecn_set_ce FunctionId = 97 208 BPF_FUNC_get_listener_sock FunctionId = 98 209 BPF_FUNC_skc_lookup_tcp FunctionId = 99 210 BPF_FUNC_tcp_check_syncookie FunctionId = 100 211 BPF_FUNC_sysctl_get_name FunctionId = 101 212 BPF_FUNC_sysctl_get_current_value FunctionId = 102 213 BPF_FUNC_sysctl_get_new_value FunctionId = 103 214 BPF_FUNC_sysctl_set_new_value FunctionId = 104 215 BPF_FUNC_strtol FunctionId = 105 216 BPF_FUNC_strtoul FunctionId = 106 217 BPF_FUNC_sk_storage_get FunctionId = 107 218 BPF_FUNC_sk_storage_delete FunctionId = 108 219 BPF_FUNC_send_signal FunctionId = 109 220 BPF_FUNC_tcp_gen_syncookie FunctionId = 110 221 BPF_FUNC_skb_output FunctionId = 111 222 BPF_FUNC_probe_read_user FunctionId = 112 223 BPF_FUNC_probe_read_kernel FunctionId = 113 224 BPF_FUNC_probe_read_user_str FunctionId = 114 225 BPF_FUNC_probe_read_kernel_str FunctionId = 115 226 BPF_FUNC_tcp_send_ack FunctionId = 116 227 BPF_FUNC_send_signal_thread FunctionId = 117 228 BPF_FUNC_jiffies64 FunctionId = 118 229 BPF_FUNC_read_branch_records FunctionId = 119 230 BPF_FUNC_get_ns_current_pid_tgid FunctionId = 120 231 BPF_FUNC_xdp_output FunctionId = 121 232 BPF_FUNC_get_netns_cookie FunctionId = 122 233 BPF_FUNC_get_current_ancestor_cgroup_id FunctionId = 123 234 BPF_FUNC_sk_assign FunctionId = 124 235 BPF_FUNC_ktime_get_boot_ns FunctionId = 125 236 BPF_FUNC_seq_printf FunctionId = 126 237 BPF_FUNC_seq_write FunctionId = 127 238 BPF_FUNC_sk_cgroup_id FunctionId = 128 239 BPF_FUNC_sk_ancestor_cgroup_id FunctionId = 129 240 BPF_FUNC_ringbuf_output FunctionId = 130 241 BPF_FUNC_ringbuf_reserve FunctionId = 131 242 BPF_FUNC_ringbuf_submit FunctionId = 132 243 BPF_FUNC_ringbuf_discard FunctionId = 133 244 BPF_FUNC_ringbuf_query FunctionId = 134 245 BPF_FUNC_csum_level FunctionId = 135 246 BPF_FUNC_skc_to_tcp6_sock FunctionId = 136 247 BPF_FUNC_skc_to_tcp_sock FunctionId = 137 248 BPF_FUNC_skc_to_tcp_timewait_sock FunctionId = 138 249 BPF_FUNC_skc_to_tcp_request_sock FunctionId = 139 250 BPF_FUNC_skc_to_udp6_sock FunctionId = 140 251 BPF_FUNC_get_task_stack FunctionId = 141 252 BPF_FUNC_load_hdr_opt FunctionId = 142 253 BPF_FUNC_store_hdr_opt FunctionId = 143 254 BPF_FUNC_reserve_hdr_opt FunctionId = 144 255 BPF_FUNC_inode_storage_get FunctionId = 145 256 BPF_FUNC_inode_storage_delete FunctionId = 146 257 BPF_FUNC_d_path FunctionId = 147 258 BPF_FUNC_copy_from_user FunctionId = 148 259 BPF_FUNC_snprintf_btf FunctionId = 149 260 BPF_FUNC_seq_printf_btf FunctionId = 150 261 BPF_FUNC_skb_cgroup_classid FunctionId = 151 262 BPF_FUNC_redirect_neigh FunctionId = 152 263 BPF_FUNC_per_cpu_ptr FunctionId = 153 264 BPF_FUNC_this_cpu_ptr FunctionId = 154 265 BPF_FUNC_redirect_peer FunctionId = 155 266 BPF_FUNC_task_storage_get FunctionId = 156 267 BPF_FUNC_task_storage_delete FunctionId = 157 268 BPF_FUNC_get_current_task_btf FunctionId = 158 269 BPF_FUNC_bprm_opts_set FunctionId = 159 270 BPF_FUNC_ktime_get_coarse_ns FunctionId = 160 271 BPF_FUNC_ima_inode_hash FunctionId = 161 272 BPF_FUNC_sock_from_file FunctionId = 162 273 BPF_FUNC_check_mtu FunctionId = 163 274 BPF_FUNC_for_each_map_elem FunctionId = 164 275 BPF_FUNC_snprintf FunctionId = 165 276 BPF_FUNC_sys_bpf FunctionId = 166 277 BPF_FUNC_btf_find_by_name_kind FunctionId = 167 278 BPF_FUNC_sys_close FunctionId = 168 279 BPF_FUNC_timer_init FunctionId = 169 280 BPF_FUNC_timer_set_callback FunctionId = 170 281 BPF_FUNC_timer_start FunctionId = 171 282 BPF_FUNC_timer_cancel FunctionId = 172 283 BPF_FUNC_get_func_ip FunctionId = 173 284 BPF_FUNC_get_attach_cookie FunctionId = 174 285 BPF_FUNC_task_pt_regs FunctionId = 175 286 BPF_FUNC_get_branch_snapshot FunctionId = 176 287 BPF_FUNC_trace_vprintk FunctionId = 177 288 BPF_FUNC_skc_to_unix_sock FunctionId = 178 289 BPF_FUNC_kallsyms_lookup_name FunctionId = 179 290 BPF_FUNC_find_vma FunctionId = 180 291 BPF_FUNC_loop FunctionId = 181 292 BPF_FUNC_strncmp FunctionId = 182 293 BPF_FUNC_get_func_arg FunctionId = 183 294 BPF_FUNC_get_func_ret FunctionId = 184 295 BPF_FUNC_get_func_arg_cnt FunctionId = 185 296 BPF_FUNC_get_retval FunctionId = 186 297 BPF_FUNC_set_retval FunctionId = 187 298 BPF_FUNC_xdp_get_buff_len FunctionId = 188 299 BPF_FUNC_xdp_load_bytes FunctionId = 189 300 BPF_FUNC_xdp_store_bytes FunctionId = 190 301 BPF_FUNC_copy_from_user_task FunctionId = 191 302 BPF_FUNC_skb_set_tstamp FunctionId = 192 303 BPF_FUNC_ima_file_hash FunctionId = 193 304 __BPF_FUNC_MAX_ID FunctionId = 194 305 ) 306 307 type HdrStartOff uint32 308 309 const ( 310 BPF_HDR_START_MAC HdrStartOff = 0 311 BPF_HDR_START_NET HdrStartOff = 1 312 ) 313 314 type LinkType uint32 315 316 const ( 317 BPF_LINK_TYPE_UNSPEC LinkType = 0 318 BPF_LINK_TYPE_RAW_TRACEPOINT LinkType = 1 319 BPF_LINK_TYPE_TRACING LinkType = 2 320 BPF_LINK_TYPE_CGROUP LinkType = 3 321 BPF_LINK_TYPE_ITER LinkType = 4 322 BPF_LINK_TYPE_NETNS LinkType = 5 323 BPF_LINK_TYPE_XDP LinkType = 6 324 BPF_LINK_TYPE_PERF_EVENT LinkType = 7 325 BPF_LINK_TYPE_KPROBE_MULTI LinkType = 8 326 MAX_BPF_LINK_TYPE LinkType = 9 327 ) 328 329 type MapType uint32 330 331 const ( 332 BPF_MAP_TYPE_UNSPEC MapType = 0 333 BPF_MAP_TYPE_HASH MapType = 1 334 BPF_MAP_TYPE_ARRAY MapType = 2 335 BPF_MAP_TYPE_PROG_ARRAY MapType = 3 336 BPF_MAP_TYPE_PERF_EVENT_ARRAY MapType = 4 337 BPF_MAP_TYPE_PERCPU_HASH MapType = 5 338 BPF_MAP_TYPE_PERCPU_ARRAY MapType = 6 339 BPF_MAP_TYPE_STACK_TRACE MapType = 7 340 BPF_MAP_TYPE_CGROUP_ARRAY MapType = 8 341 BPF_MAP_TYPE_LRU_HASH MapType = 9 342 BPF_MAP_TYPE_LRU_PERCPU_HASH MapType = 10 343 BPF_MAP_TYPE_LPM_TRIE MapType = 11 344 BPF_MAP_TYPE_ARRAY_OF_MAPS MapType = 12 345 BPF_MAP_TYPE_HASH_OF_MAPS MapType = 13 346 BPF_MAP_TYPE_DEVMAP MapType = 14 347 BPF_MAP_TYPE_SOCKMAP MapType = 15 348 BPF_MAP_TYPE_CPUMAP MapType = 16 349 BPF_MAP_TYPE_XSKMAP MapType = 17 350 BPF_MAP_TYPE_SOCKHASH MapType = 18 351 BPF_MAP_TYPE_CGROUP_STORAGE MapType = 19 352 BPF_MAP_TYPE_REUSEPORT_SOCKARRAY MapType = 20 353 BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE MapType = 21 354 BPF_MAP_TYPE_QUEUE MapType = 22 355 BPF_MAP_TYPE_STACK MapType = 23 356 BPF_MAP_TYPE_SK_STORAGE MapType = 24 357 BPF_MAP_TYPE_DEVMAP_HASH MapType = 25 358 BPF_MAP_TYPE_STRUCT_OPS MapType = 26 359 BPF_MAP_TYPE_RINGBUF MapType = 27 360 BPF_MAP_TYPE_INODE_STORAGE MapType = 28 361 BPF_MAP_TYPE_TASK_STORAGE MapType = 29 362 BPF_MAP_TYPE_BLOOM_FILTER MapType = 30 363 ) 364 365 type ProgType uint32 366 367 const ( 368 BPF_PROG_TYPE_UNSPEC ProgType = 0 369 BPF_PROG_TYPE_SOCKET_FILTER ProgType = 1 370 BPF_PROG_TYPE_KPROBE ProgType = 2 371 BPF_PROG_TYPE_SCHED_CLS ProgType = 3 372 BPF_PROG_TYPE_SCHED_ACT ProgType = 4 373 BPF_PROG_TYPE_TRACEPOINT ProgType = 5 374 BPF_PROG_TYPE_XDP ProgType = 6 375 BPF_PROG_TYPE_PERF_EVENT ProgType = 7 376 BPF_PROG_TYPE_CGROUP_SKB ProgType = 8 377 BPF_PROG_TYPE_CGROUP_SOCK ProgType = 9 378 BPF_PROG_TYPE_LWT_IN ProgType = 10 379 BPF_PROG_TYPE_LWT_OUT ProgType = 11 380 BPF_PROG_TYPE_LWT_XMIT ProgType = 12 381 BPF_PROG_TYPE_SOCK_OPS ProgType = 13 382 BPF_PROG_TYPE_SK_SKB ProgType = 14 383 BPF_PROG_TYPE_CGROUP_DEVICE ProgType = 15 384 BPF_PROG_TYPE_SK_MSG ProgType = 16 385 BPF_PROG_TYPE_RAW_TRACEPOINT ProgType = 17 386 BPF_PROG_TYPE_CGROUP_SOCK_ADDR ProgType = 18 387 BPF_PROG_TYPE_LWT_SEG6LOCAL ProgType = 19 388 BPF_PROG_TYPE_LIRC_MODE2 ProgType = 20 389 BPF_PROG_TYPE_SK_REUSEPORT ProgType = 21 390 BPF_PROG_TYPE_FLOW_DISSECTOR ProgType = 22 391 BPF_PROG_TYPE_CGROUP_SYSCTL ProgType = 23 392 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE ProgType = 24 393 BPF_PROG_TYPE_CGROUP_SOCKOPT ProgType = 25 394 BPF_PROG_TYPE_TRACING ProgType = 26 395 BPF_PROG_TYPE_STRUCT_OPS ProgType = 27 396 BPF_PROG_TYPE_EXT ProgType = 28 397 BPF_PROG_TYPE_LSM ProgType = 29 398 BPF_PROG_TYPE_SK_LOOKUP ProgType = 30 399 BPF_PROG_TYPE_SYSCALL ProgType = 31 400 ) 401 402 type RetCode uint32 403 404 const ( 405 BPF_OK RetCode = 0 406 BPF_DROP RetCode = 2 407 BPF_REDIRECT RetCode = 7 408 BPF_LWT_REROUTE RetCode = 128 409 ) 410 411 type SkAction uint32 412 413 const ( 414 SK_DROP SkAction = 0 415 SK_PASS SkAction = 1 416 ) 417 418 type StackBuildIdStatus uint32 419 420 const ( 421 BPF_STACK_BUILD_ID_EMPTY StackBuildIdStatus = 0 422 BPF_STACK_BUILD_ID_VALID StackBuildIdStatus = 1 423 BPF_STACK_BUILD_ID_IP StackBuildIdStatus = 2 424 ) 425 426 type StatsType uint32 427 428 const ( 429 BPF_STATS_RUN_TIME StatsType = 0 430 ) 431 432 type XdpAction uint32 433 434 const ( 435 XDP_ABORTED XdpAction = 0 436 XDP_DROP XdpAction = 1 437 XDP_PASS XdpAction = 2 438 XDP_TX XdpAction = 3 439 XDP_REDIRECT XdpAction = 4 440 ) 441 442 type BtfInfo struct { 443 Btf Pointer 444 BtfSize uint32 445 Id BTFID 446 Name Pointer 447 NameLen uint32 448 KernelBtf uint32 449 } 450 451 type FuncInfo struct { 452 InsnOff uint32 453 TypeId uint32 454 } 455 456 type LineInfo struct { 457 InsnOff uint32 458 FileNameOff uint32 459 LineOff uint32 460 LineCol uint32 461 } 462 463 type LinkInfo struct { 464 Type LinkType 465 Id LinkID 466 ProgId uint32 467 _ [4]byte 468 Extra [16]uint8 469 } 470 471 type MapInfo struct { 472 Type uint32 473 Id uint32 474 KeySize uint32 475 ValueSize uint32 476 MaxEntries uint32 477 MapFlags MapFlags 478 Name ObjName 479 Ifindex uint32 480 BtfVmlinuxValueTypeId uint32 481 NetnsDev uint64 482 NetnsIno uint64 483 BtfId uint32 484 BtfKeyTypeId uint32 485 BtfValueTypeId uint32 486 _ [4]byte 487 MapExtra uint64 488 } 489 490 type ProgInfo struct { 491 Type uint32 492 Id uint32 493 Tag [8]uint8 494 JitedProgLen uint32 495 XlatedProgLen uint32 496 JitedProgInsns uint64 497 XlatedProgInsns Pointer 498 LoadTime uint64 499 CreatedByUid uint32 500 NrMapIds uint32 501 MapIds Pointer 502 Name ObjName 503 Ifindex uint32 504 _ [4]byte /* unsupported bitfield */ 505 NetnsDev uint64 506 NetnsIno uint64 507 NrJitedKsyms uint32 508 NrJitedFuncLens uint32 509 JitedKsyms uint64 510 JitedFuncLens uint64 511 BtfId uint32 512 FuncInfoRecSize uint32 513 FuncInfo uint64 514 NrFuncInfo uint32 515 NrLineInfo uint32 516 LineInfo uint64 517 JitedLineInfo uint64 518 NrJitedLineInfo uint32 519 LineInfoRecSize uint32 520 JitedLineInfoRecSize uint32 521 NrProgTags uint32 522 ProgTags uint64 523 RunTimeNs uint64 524 RunCnt uint64 525 RecursionMisses uint64 526 VerifiedInsns uint32 527 _ [4]byte 528 } 529 530 type SkLookup struct { 531 Cookie uint64 532 Family uint32 533 Protocol uint32 534 RemoteIp4 [4]uint8 535 RemoteIp6 [16]uint8 536 RemotePort uint16 537 _ [2]byte 538 LocalIp4 [4]uint8 539 LocalIp6 [16]uint8 540 LocalPort uint32 541 IngressIfindex uint32 542 _ [4]byte 543 } 544 545 type XdpMd struct { 546 Data uint32 547 DataEnd uint32 548 DataMeta uint32 549 IngressIfindex uint32 550 RxQueueIndex uint32 551 EgressIfindex uint32 552 } 553 554 type BtfGetFdByIdAttr struct{ Id uint32 } 555 556 func BtfGetFdById(attr *BtfGetFdByIdAttr) (*FD, error) { 557 fd, err := BPF(BPF_BTF_GET_FD_BY_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 558 if err != nil { 559 return nil, err 560 } 561 return NewFD(int(fd)) 562 } 563 564 type BtfGetNextIdAttr struct { 565 Id BTFID 566 NextId BTFID 567 } 568 569 func BtfGetNextId(attr *BtfGetNextIdAttr) error { 570 _, err := BPF(BPF_BTF_GET_NEXT_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 571 return err 572 } 573 574 type BtfLoadAttr struct { 575 Btf Pointer 576 BtfLogBuf Pointer 577 BtfSize uint32 578 BtfLogSize uint32 579 BtfLogLevel uint32 580 _ [4]byte 581 } 582 583 func BtfLoad(attr *BtfLoadAttr) (*FD, error) { 584 fd, err := BPF(BPF_BTF_LOAD, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 585 if err != nil { 586 return nil, err 587 } 588 return NewFD(int(fd)) 589 } 590 591 type EnableStatsAttr struct{ Type uint32 } 592 593 func EnableStats(attr *EnableStatsAttr) (*FD, error) { 594 fd, err := BPF(BPF_ENABLE_STATS, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 595 if err != nil { 596 return nil, err 597 } 598 return NewFD(int(fd)) 599 } 600 601 type IterCreateAttr struct { 602 LinkFd uint32 603 Flags uint32 604 } 605 606 func IterCreate(attr *IterCreateAttr) (*FD, error) { 607 fd, err := BPF(BPF_ITER_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 608 if err != nil { 609 return nil, err 610 } 611 return NewFD(int(fd)) 612 } 613 614 type LinkCreateAttr struct { 615 ProgFd uint32 616 TargetFd uint32 617 AttachType AttachType 618 Flags uint32 619 TargetBtfId uint32 620 _ [28]byte 621 } 622 623 func LinkCreate(attr *LinkCreateAttr) (*FD, error) { 624 fd, err := BPF(BPF_LINK_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 625 if err != nil { 626 return nil, err 627 } 628 return NewFD(int(fd)) 629 } 630 631 type LinkCreateIterAttr struct { 632 ProgFd uint32 633 TargetFd uint32 634 AttachType AttachType 635 Flags uint32 636 IterInfo Pointer 637 IterInfoLen uint32 638 _ [20]byte 639 } 640 641 func LinkCreateIter(attr *LinkCreateIterAttr) (*FD, error) { 642 fd, err := BPF(BPF_LINK_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 643 if err != nil { 644 return nil, err 645 } 646 return NewFD(int(fd)) 647 } 648 649 type LinkCreateKprobeMultiAttr struct { 650 ProgFd uint32 651 TargetFd uint32 652 AttachType AttachType 653 Flags uint32 654 KprobeMultiFlags uint32 655 Count uint32 656 Syms Pointer 657 Addrs Pointer 658 Cookies Pointer 659 } 660 661 func LinkCreateKprobeMulti(attr *LinkCreateKprobeMultiAttr) (*FD, error) { 662 fd, err := BPF(BPF_LINK_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 663 if err != nil { 664 return nil, err 665 } 666 return NewFD(int(fd)) 667 } 668 669 type LinkCreatePerfEventAttr struct { 670 ProgFd uint32 671 TargetFd uint32 672 AttachType AttachType 673 Flags uint32 674 BpfCookie uint64 675 _ [24]byte 676 } 677 678 func LinkCreatePerfEvent(attr *LinkCreatePerfEventAttr) (*FD, error) { 679 fd, err := BPF(BPF_LINK_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 680 if err != nil { 681 return nil, err 682 } 683 return NewFD(int(fd)) 684 } 685 686 type LinkUpdateAttr struct { 687 LinkFd uint32 688 NewProgFd uint32 689 Flags uint32 690 OldProgFd uint32 691 } 692 693 func LinkUpdate(attr *LinkUpdateAttr) error { 694 _, err := BPF(BPF_LINK_UPDATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 695 return err 696 } 697 698 type MapCreateAttr struct { 699 MapType MapType 700 KeySize uint32 701 ValueSize uint32 702 MaxEntries uint32 703 MapFlags MapFlags 704 InnerMapFd uint32 705 NumaNode uint32 706 MapName ObjName 707 MapIfindex uint32 708 BtfFd uint32 709 BtfKeyTypeId uint32 710 BtfValueTypeId uint32 711 BtfVmlinuxValueTypeId uint32 712 MapExtra uint64 713 } 714 715 func MapCreate(attr *MapCreateAttr) (*FD, error) { 716 fd, err := BPF(BPF_MAP_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 717 if err != nil { 718 return nil, err 719 } 720 return NewFD(int(fd)) 721 } 722 723 type MapDeleteBatchAttr struct { 724 InBatch Pointer 725 OutBatch Pointer 726 Keys Pointer 727 Values Pointer 728 Count uint32 729 MapFd uint32 730 ElemFlags uint64 731 Flags uint64 732 } 733 734 func MapDeleteBatch(attr *MapDeleteBatchAttr) error { 735 _, err := BPF(BPF_MAP_DELETE_BATCH, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 736 return err 737 } 738 739 type MapDeleteElemAttr struct { 740 MapFd uint32 741 _ [4]byte 742 Key Pointer 743 Value Pointer 744 Flags uint64 745 } 746 747 func MapDeleteElem(attr *MapDeleteElemAttr) error { 748 _, err := BPF(BPF_MAP_DELETE_ELEM, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 749 return err 750 } 751 752 type MapFreezeAttr struct{ MapFd uint32 } 753 754 func MapFreeze(attr *MapFreezeAttr) error { 755 _, err := BPF(BPF_MAP_FREEZE, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 756 return err 757 } 758 759 type MapGetFdByIdAttr struct{ Id uint32 } 760 761 func MapGetFdById(attr *MapGetFdByIdAttr) (*FD, error) { 762 fd, err := BPF(BPF_MAP_GET_FD_BY_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 763 if err != nil { 764 return nil, err 765 } 766 return NewFD(int(fd)) 767 } 768 769 type MapGetNextIdAttr struct { 770 Id uint32 771 NextId uint32 772 } 773 774 func MapGetNextId(attr *MapGetNextIdAttr) error { 775 _, err := BPF(BPF_MAP_GET_NEXT_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 776 return err 777 } 778 779 type MapGetNextKeyAttr struct { 780 MapFd uint32 781 _ [4]byte 782 Key Pointer 783 NextKey Pointer 784 } 785 786 func MapGetNextKey(attr *MapGetNextKeyAttr) error { 787 _, err := BPF(BPF_MAP_GET_NEXT_KEY, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 788 return err 789 } 790 791 type MapLookupAndDeleteBatchAttr struct { 792 InBatch Pointer 793 OutBatch Pointer 794 Keys Pointer 795 Values Pointer 796 Count uint32 797 MapFd uint32 798 ElemFlags uint64 799 Flags uint64 800 } 801 802 func MapLookupAndDeleteBatch(attr *MapLookupAndDeleteBatchAttr) error { 803 _, err := BPF(BPF_MAP_LOOKUP_AND_DELETE_BATCH, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 804 return err 805 } 806 807 type MapLookupAndDeleteElemAttr struct { 808 MapFd uint32 809 _ [4]byte 810 Key Pointer 811 Value Pointer 812 Flags uint64 813 } 814 815 func MapLookupAndDeleteElem(attr *MapLookupAndDeleteElemAttr) error { 816 _, err := BPF(BPF_MAP_LOOKUP_AND_DELETE_ELEM, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 817 return err 818 } 819 820 type MapLookupBatchAttr struct { 821 InBatch Pointer 822 OutBatch Pointer 823 Keys Pointer 824 Values Pointer 825 Count uint32 826 MapFd uint32 827 ElemFlags uint64 828 Flags uint64 829 } 830 831 func MapLookupBatch(attr *MapLookupBatchAttr) error { 832 _, err := BPF(BPF_MAP_LOOKUP_BATCH, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 833 return err 834 } 835 836 type MapLookupElemAttr struct { 837 MapFd uint32 838 _ [4]byte 839 Key Pointer 840 Value Pointer 841 Flags uint64 842 } 843 844 func MapLookupElem(attr *MapLookupElemAttr) error { 845 _, err := BPF(BPF_MAP_LOOKUP_ELEM, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 846 return err 847 } 848 849 type MapUpdateBatchAttr struct { 850 InBatch Pointer 851 OutBatch Pointer 852 Keys Pointer 853 Values Pointer 854 Count uint32 855 MapFd uint32 856 ElemFlags uint64 857 Flags uint64 858 } 859 860 func MapUpdateBatch(attr *MapUpdateBatchAttr) error { 861 _, err := BPF(BPF_MAP_UPDATE_BATCH, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 862 return err 863 } 864 865 type MapUpdateElemAttr struct { 866 MapFd uint32 867 _ [4]byte 868 Key Pointer 869 Value Pointer 870 Flags uint64 871 } 872 873 func MapUpdateElem(attr *MapUpdateElemAttr) error { 874 _, err := BPF(BPF_MAP_UPDATE_ELEM, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 875 return err 876 } 877 878 type ObjGetAttr struct { 879 Pathname Pointer 880 BpfFd uint32 881 FileFlags uint32 882 } 883 884 func ObjGet(attr *ObjGetAttr) (*FD, error) { 885 fd, err := BPF(BPF_OBJ_GET, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 886 if err != nil { 887 return nil, err 888 } 889 return NewFD(int(fd)) 890 } 891 892 type ObjGetInfoByFdAttr struct { 893 BpfFd uint32 894 InfoLen uint32 895 Info Pointer 896 } 897 898 func ObjGetInfoByFd(attr *ObjGetInfoByFdAttr) error { 899 _, err := BPF(BPF_OBJ_GET_INFO_BY_FD, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 900 return err 901 } 902 903 type ObjPinAttr struct { 904 Pathname Pointer 905 BpfFd uint32 906 FileFlags uint32 907 } 908 909 func ObjPin(attr *ObjPinAttr) error { 910 _, err := BPF(BPF_OBJ_PIN, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 911 return err 912 } 913 914 type ProgAttachAttr struct { 915 TargetFd uint32 916 AttachBpfFd uint32 917 AttachType uint32 918 AttachFlags uint32 919 ReplaceBpfFd uint32 920 } 921 922 func ProgAttach(attr *ProgAttachAttr) error { 923 _, err := BPF(BPF_PROG_ATTACH, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 924 return err 925 } 926 927 type ProgBindMapAttr struct { 928 ProgFd uint32 929 MapFd uint32 930 Flags uint32 931 } 932 933 func ProgBindMap(attr *ProgBindMapAttr) error { 934 _, err := BPF(BPF_PROG_BIND_MAP, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 935 return err 936 } 937 938 type ProgDetachAttr struct { 939 TargetFd uint32 940 AttachBpfFd uint32 941 AttachType uint32 942 } 943 944 func ProgDetach(attr *ProgDetachAttr) error { 945 _, err := BPF(BPF_PROG_DETACH, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 946 return err 947 } 948 949 type ProgGetFdByIdAttr struct{ Id uint32 } 950 951 func ProgGetFdById(attr *ProgGetFdByIdAttr) (*FD, error) { 952 fd, err := BPF(BPF_PROG_GET_FD_BY_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 953 if err != nil { 954 return nil, err 955 } 956 return NewFD(int(fd)) 957 } 958 959 type ProgGetNextIdAttr struct { 960 Id uint32 961 NextId uint32 962 } 963 964 func ProgGetNextId(attr *ProgGetNextIdAttr) error { 965 _, err := BPF(BPF_PROG_GET_NEXT_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 966 return err 967 } 968 969 type ProgLoadAttr struct { 970 ProgType ProgType 971 InsnCnt uint32 972 Insns Pointer 973 License Pointer 974 LogLevel LogLevel 975 LogSize uint32 976 LogBuf Pointer 977 KernVersion uint32 978 ProgFlags uint32 979 ProgName ObjName 980 ProgIfindex uint32 981 ExpectedAttachType AttachType 982 ProgBtfFd uint32 983 FuncInfoRecSize uint32 984 FuncInfo Pointer 985 FuncInfoCnt uint32 986 LineInfoRecSize uint32 987 LineInfo Pointer 988 LineInfoCnt uint32 989 AttachBtfId uint32 990 AttachBtfObjFd uint32 991 CoreReloCnt uint32 992 FdArray Pointer 993 CoreRelos Pointer 994 CoreReloRecSize uint32 995 _ [4]byte 996 } 997 998 func ProgLoad(attr *ProgLoadAttr) (*FD, error) { 999 fd, err := BPF(BPF_PROG_LOAD, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 1000 if err != nil { 1001 return nil, err 1002 } 1003 return NewFD(int(fd)) 1004 } 1005 1006 type ProgQueryAttr struct { 1007 TargetFd uint32 1008 AttachType AttachType 1009 QueryFlags uint32 1010 AttachFlags uint32 1011 ProgIds Pointer 1012 ProgCount uint32 1013 _ [4]byte 1014 } 1015 1016 func ProgQuery(attr *ProgQueryAttr) error { 1017 _, err := BPF(BPF_PROG_QUERY, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 1018 return err 1019 } 1020 1021 type ProgRunAttr struct { 1022 ProgFd uint32 1023 Retval uint32 1024 DataSizeIn uint32 1025 DataSizeOut uint32 1026 DataIn Pointer 1027 DataOut Pointer 1028 Repeat uint32 1029 Duration uint32 1030 CtxSizeIn uint32 1031 CtxSizeOut uint32 1032 CtxIn Pointer 1033 CtxOut Pointer 1034 Flags uint32 1035 Cpu uint32 1036 BatchSize uint32 1037 _ [4]byte 1038 } 1039 1040 func ProgRun(attr *ProgRunAttr) error { 1041 _, err := BPF(BPF_PROG_TEST_RUN, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 1042 return err 1043 } 1044 1045 type RawTracepointOpenAttr struct { 1046 Name Pointer 1047 ProgFd uint32 1048 _ [4]byte 1049 } 1050 1051 func RawTracepointOpen(attr *RawTracepointOpenAttr) (*FD, error) { 1052 fd, err := BPF(BPF_RAW_TRACEPOINT_OPEN, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 1053 if err != nil { 1054 return nil, err 1055 } 1056 return NewFD(int(fd)) 1057 } 1058 1059 type CgroupLinkInfo struct { 1060 CgroupId uint64 1061 AttachType AttachType 1062 _ [4]byte 1063 } 1064 1065 type IterLinkInfo struct { 1066 TargetName Pointer 1067 TargetNameLen uint32 1068 } 1069 1070 type NetNsLinkInfo struct { 1071 NetnsIno uint32 1072 AttachType AttachType 1073 } 1074 1075 type RawTracepointLinkInfo struct { 1076 TpName Pointer 1077 TpNameLen uint32 1078 _ [4]byte 1079 } 1080 1081 type TracingLinkInfo struct { 1082 AttachType AttachType 1083 TargetObjId uint32 1084 TargetBtfId uint32 1085 } 1086 1087 type XDPLinkInfo struct{ Ifindex uint32 }