1
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
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 }
1053
View as plain text