github.com/kubeshark/ebpf@v0.9.2/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 int32 10 11 const ( 12 BPF_ADJ_ROOM_NET AdjRoomMode = 0 13 BPF_ADJ_ROOM_MAC AdjRoomMode = 1 14 ) 15 16 type AttachType int32 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 int32 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 int32 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 int32 308 309 const ( 310 BPF_HDR_START_MAC HdrStartOff = 0 311 BPF_HDR_START_NET HdrStartOff = 1 312 ) 313 314 type LinkType int32 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 int32 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 int32 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 int32 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 int32 412 413 const ( 414 SK_DROP SkAction = 0 415 SK_PASS SkAction = 1 416 ) 417 418 type StackBuildIdStatus int32 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 int32 427 428 const ( 429 BPF_STATS_RUN_TIME StatsType = 0 430 ) 431 432 type XdpAction int32 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 uint32 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 LinkCreatePerfEventAttr struct { 650 ProgFd uint32 651 TargetFd uint32 652 AttachType AttachType 653 Flags uint32 654 BpfCookie uint64 655 _ [24]byte 656 } 657 658 func LinkCreatePerfEvent(attr *LinkCreatePerfEventAttr) (*FD, error) { 659 fd, err := BPF(BPF_LINK_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 660 if err != nil { 661 return nil, err 662 } 663 return NewFD(int(fd)) 664 } 665 666 type LinkUpdateAttr struct { 667 LinkFd uint32 668 NewProgFd uint32 669 Flags uint32 670 OldProgFd uint32 671 } 672 673 func LinkUpdate(attr *LinkUpdateAttr) error { 674 _, err := BPF(BPF_LINK_UPDATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 675 return err 676 } 677 678 type MapCreateAttr struct { 679 MapType MapType 680 KeySize uint32 681 ValueSize uint32 682 MaxEntries uint32 683 MapFlags uint32 684 InnerMapFd uint32 685 NumaNode uint32 686 MapName ObjName 687 MapIfindex uint32 688 BtfFd uint32 689 BtfKeyTypeId uint32 690 BtfValueTypeId uint32 691 BtfVmlinuxValueTypeId uint32 692 MapExtra uint64 693 } 694 695 func MapCreate(attr *MapCreateAttr) (*FD, error) { 696 fd, err := BPF(BPF_MAP_CREATE, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 697 if err != nil { 698 return nil, err 699 } 700 return NewFD(int(fd)) 701 } 702 703 type MapDeleteBatchAttr struct { 704 InBatch Pointer 705 OutBatch Pointer 706 Keys Pointer 707 Values Pointer 708 Count uint32 709 MapFd uint32 710 ElemFlags uint64 711 Flags uint64 712 } 713 714 func MapDeleteBatch(attr *MapDeleteBatchAttr) error { 715 _, err := BPF(BPF_MAP_DELETE_BATCH, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 716 return err 717 } 718 719 type MapDeleteElemAttr struct { 720 MapFd uint32 721 _ [4]byte 722 Key Pointer 723 Value Pointer 724 Flags uint64 725 } 726 727 func MapDeleteElem(attr *MapDeleteElemAttr) error { 728 _, err := BPF(BPF_MAP_DELETE_ELEM, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 729 return err 730 } 731 732 type MapFreezeAttr struct{ MapFd uint32 } 733 734 func MapFreeze(attr *MapFreezeAttr) error { 735 _, err := BPF(BPF_MAP_FREEZE, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 736 return err 737 } 738 739 type MapGetFdByIdAttr struct{ Id uint32 } 740 741 func MapGetFdById(attr *MapGetFdByIdAttr) (*FD, error) { 742 fd, err := BPF(BPF_MAP_GET_FD_BY_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 743 if err != nil { 744 return nil, err 745 } 746 return NewFD(int(fd)) 747 } 748 749 type MapGetNextIdAttr struct { 750 Id uint32 751 NextId uint32 752 } 753 754 func MapGetNextId(attr *MapGetNextIdAttr) error { 755 _, err := BPF(BPF_MAP_GET_NEXT_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 756 return err 757 } 758 759 type MapGetNextKeyAttr struct { 760 MapFd uint32 761 _ [4]byte 762 Key Pointer 763 NextKey Pointer 764 } 765 766 func MapGetNextKey(attr *MapGetNextKeyAttr) error { 767 _, err := BPF(BPF_MAP_GET_NEXT_KEY, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 768 return err 769 } 770 771 type MapLookupAndDeleteBatchAttr struct { 772 InBatch Pointer 773 OutBatch Pointer 774 Keys Pointer 775 Values Pointer 776 Count uint32 777 MapFd uint32 778 ElemFlags uint64 779 Flags uint64 780 } 781 782 func MapLookupAndDeleteBatch(attr *MapLookupAndDeleteBatchAttr) error { 783 _, err := BPF(BPF_MAP_LOOKUP_AND_DELETE_BATCH, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 784 return err 785 } 786 787 type MapLookupAndDeleteElemAttr struct { 788 MapFd uint32 789 _ [4]byte 790 Key Pointer 791 Value Pointer 792 Flags uint64 793 } 794 795 func MapLookupAndDeleteElem(attr *MapLookupAndDeleteElemAttr) error { 796 _, err := BPF(BPF_MAP_LOOKUP_AND_DELETE_ELEM, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 797 return err 798 } 799 800 type MapLookupBatchAttr struct { 801 InBatch Pointer 802 OutBatch Pointer 803 Keys Pointer 804 Values Pointer 805 Count uint32 806 MapFd uint32 807 ElemFlags uint64 808 Flags uint64 809 } 810 811 func MapLookupBatch(attr *MapLookupBatchAttr) error { 812 _, err := BPF(BPF_MAP_LOOKUP_BATCH, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 813 return err 814 } 815 816 type MapLookupElemAttr struct { 817 MapFd uint32 818 _ [4]byte 819 Key Pointer 820 Value Pointer 821 Flags uint64 822 } 823 824 func MapLookupElem(attr *MapLookupElemAttr) error { 825 _, err := BPF(BPF_MAP_LOOKUP_ELEM, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 826 return err 827 } 828 829 type MapUpdateBatchAttr struct { 830 InBatch Pointer 831 OutBatch Pointer 832 Keys Pointer 833 Values Pointer 834 Count uint32 835 MapFd uint32 836 ElemFlags uint64 837 Flags uint64 838 } 839 840 func MapUpdateBatch(attr *MapUpdateBatchAttr) error { 841 _, err := BPF(BPF_MAP_UPDATE_BATCH, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 842 return err 843 } 844 845 type MapUpdateElemAttr struct { 846 MapFd uint32 847 _ [4]byte 848 Key Pointer 849 Value Pointer 850 Flags uint64 851 } 852 853 func MapUpdateElem(attr *MapUpdateElemAttr) error { 854 _, err := BPF(BPF_MAP_UPDATE_ELEM, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 855 return err 856 } 857 858 type ObjGetAttr struct { 859 Pathname Pointer 860 BpfFd uint32 861 FileFlags uint32 862 } 863 864 func ObjGet(attr *ObjGetAttr) (*FD, error) { 865 fd, err := BPF(BPF_OBJ_GET, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 866 if err != nil { 867 return nil, err 868 } 869 return NewFD(int(fd)) 870 } 871 872 type ObjGetInfoByFdAttr struct { 873 BpfFd uint32 874 InfoLen uint32 875 Info Pointer 876 } 877 878 func ObjGetInfoByFd(attr *ObjGetInfoByFdAttr) error { 879 _, err := BPF(BPF_OBJ_GET_INFO_BY_FD, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 880 return err 881 } 882 883 type ObjPinAttr struct { 884 Pathname Pointer 885 BpfFd uint32 886 FileFlags uint32 887 } 888 889 func ObjPin(attr *ObjPinAttr) error { 890 _, err := BPF(BPF_OBJ_PIN, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 891 return err 892 } 893 894 type ProgAttachAttr struct { 895 TargetFd uint32 896 AttachBpfFd uint32 897 AttachType uint32 898 AttachFlags uint32 899 ReplaceBpfFd uint32 900 } 901 902 func ProgAttach(attr *ProgAttachAttr) error { 903 _, err := BPF(BPF_PROG_ATTACH, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 904 return err 905 } 906 907 type ProgBindMapAttr struct { 908 ProgFd uint32 909 MapFd uint32 910 Flags uint32 911 } 912 913 func ProgBindMap(attr *ProgBindMapAttr) error { 914 _, err := BPF(BPF_PROG_BIND_MAP, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 915 return err 916 } 917 918 type ProgDetachAttr struct { 919 TargetFd uint32 920 AttachBpfFd uint32 921 AttachType uint32 922 } 923 924 func ProgDetach(attr *ProgDetachAttr) error { 925 _, err := BPF(BPF_PROG_DETACH, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 926 return err 927 } 928 929 type ProgGetFdByIdAttr struct{ Id uint32 } 930 931 func ProgGetFdById(attr *ProgGetFdByIdAttr) (*FD, error) { 932 fd, err := BPF(BPF_PROG_GET_FD_BY_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 933 if err != nil { 934 return nil, err 935 } 936 return NewFD(int(fd)) 937 } 938 939 type ProgGetNextIdAttr struct { 940 Id uint32 941 NextId uint32 942 } 943 944 func ProgGetNextId(attr *ProgGetNextIdAttr) error { 945 _, err := BPF(BPF_PROG_GET_NEXT_ID, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 946 return err 947 } 948 949 type ProgLoadAttr struct { 950 ProgType ProgType 951 InsnCnt uint32 952 Insns Pointer 953 License Pointer 954 LogLevel uint32 955 LogSize uint32 956 LogBuf Pointer 957 KernVersion uint32 958 ProgFlags uint32 959 ProgName ObjName 960 ProgIfindex uint32 961 ExpectedAttachType AttachType 962 ProgBtfFd uint32 963 FuncInfoRecSize uint32 964 FuncInfo Pointer 965 FuncInfoCnt uint32 966 LineInfoRecSize uint32 967 LineInfo Pointer 968 LineInfoCnt uint32 969 AttachBtfId uint32 970 AttachProgFd uint32 971 CoreReloCnt uint32 972 FdArray Pointer 973 CoreRelos Pointer 974 CoreReloRecSize uint32 975 _ [4]byte 976 } 977 978 func ProgLoad(attr *ProgLoadAttr) (*FD, error) { 979 fd, err := BPF(BPF_PROG_LOAD, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 980 if err != nil { 981 return nil, err 982 } 983 return NewFD(int(fd)) 984 } 985 986 type ProgRunAttr struct { 987 ProgFd uint32 988 Retval uint32 989 DataSizeIn uint32 990 DataSizeOut uint32 991 DataIn Pointer 992 DataOut Pointer 993 Repeat uint32 994 Duration uint32 995 CtxSizeIn uint32 996 CtxSizeOut uint32 997 CtxIn Pointer 998 CtxOut Pointer 999 Flags uint32 1000 Cpu uint32 1001 BatchSize uint32 1002 _ [4]byte 1003 } 1004 1005 func ProgRun(attr *ProgRunAttr) error { 1006 _, err := BPF(BPF_PROG_TEST_RUN, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 1007 return err 1008 } 1009 1010 type RawTracepointOpenAttr struct { 1011 Name Pointer 1012 ProgFd uint32 1013 _ [4]byte 1014 } 1015 1016 func RawTracepointOpen(attr *RawTracepointOpenAttr) (*FD, error) { 1017 fd, err := BPF(BPF_RAW_TRACEPOINT_OPEN, unsafe.Pointer(attr), unsafe.Sizeof(*attr)) 1018 if err != nil { 1019 return nil, err 1020 } 1021 return NewFD(int(fd)) 1022 } 1023 1024 type CgroupLinkInfo struct { 1025 CgroupId uint64 1026 AttachType AttachType 1027 _ [4]byte 1028 } 1029 1030 type IterLinkInfo struct { 1031 TargetName Pointer 1032 TargetNameLen uint32 1033 } 1034 1035 type NetNsLinkInfo struct { 1036 NetnsIno uint32 1037 AttachType AttachType 1038 } 1039 1040 type RawTracepointLinkInfo struct { 1041 TpName Pointer 1042 TpNameLen uint32 1043 _ [4]byte 1044 } 1045 1046 type TracingLinkInfo struct { 1047 AttachType AttachType 1048 TargetObjId uint32 1049 TargetBtfId uint32 1050 } 1051 1052 type XDPLinkInfo struct{ Ifindex uint32 }