aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
authorPaul Chaignon <paul@cilium.io>2020-06-10 13:16:19 +0200
committerGitHub <noreply@github.com>2020-06-10 13:16:19 +0200
commitb4eca5502e5fc0504ae5e693659e2baa587017c7 (patch)
tree0f77d40cb963e72801bb6efed166b0f347115b6b /sys/linux
parent79bb873bd7c4dd844a6db412589de5be473c36c6 (diff)
sys/linux: BPF update for 5.8 merge window part 1
* sys/linux: update BPF constants Signed-off-by: Paul Chaignon <paul@cilium.io> * sys/linux: Add BPF_ENABLE_STATS bpf(2) command Signed-off-by: Paul Chaignon <paul@cilium.io> * sys/linux: Add BPF_ITER_CREATE bpf(2) command Signed-off-by: Paul Chaignon <paul@cilium.io> * sys/linux: Fix BPF_*_GET_NEXT_ID bpf(2) commands These commands are used to retrieve a new ID for various BPF objects. With the current command descriptions, however, the output 'next ID' is treated as an input field. Fix: c2dcd70 ("sys/linux: update BPF's anonymous structures") Signed-off-by: Paul Chaignon <paul@cilium.io> * sys/linux: Add LINK_GET_* bpf(2) commands Signed-off-by: Paul Chaignon <paul@cilium.io>
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/bpf.txt58
-rw-r--r--sys/linux/bpf_386.const12
-rw-r--r--sys/linux/bpf_amd64.const12
-rw-r--r--sys/linux/bpf_arm.const12
-rw-r--r--sys/linux/bpf_arm64.const12
-rw-r--r--sys/linux/bpf_mips64le.const12
-rw-r--r--sys/linux/bpf_ppc64le.const12
7 files changed, 120 insertions, 10 deletions
diff --git a/sys/linux/bpf.txt b/sys/linux/bpf.txt
index 17492ae0c..4e543e441 100644
--- a/sys/linux/bpf.txt
+++ b/sys/linux/bpf.txt
@@ -15,7 +15,9 @@ resource fd_btf[fd]
resource bpf_prog_id[int32]: 0, -1
resource bpf_map_id[int32]: 0, -1
resource bpf_btf_id[int32]: 0, -1
+resource bpf_link_id[int32]: 0, -1
resource fd_bpf_link[fd]
+resource fd_bpf_iter[fd]
# NEED: this is a random index in btf_header:types. We can't express this, so we just use a small index.
type btf_type_id int32[1:5]
@@ -39,9 +41,9 @@ bpf$OBJ_GET_PROG(cmd const[BPF_OBJ_GET], arg ptr[in, bpf_obj_get], size len[arg]
bpf$BPF_PROG_ATTACH(cmd const[BPF_PROG_ATTACH], arg ptr[in, bpf_attach_arg], size len[arg])
bpf$BPF_PROG_DETACH(cmd const[BPF_PROG_DETACH], arg ptr[in, bpf_detach_arg], size len[arg])
bpf$BPF_PROG_TEST_RUN(cmd const[BPF_PROG_TEST_RUN], arg ptr[in, bpf_test_prog_arg], size len[arg])
-bpf$BPF_PROG_GET_NEXT_ID(cmd const[BPF_PROG_GET_NEXT_ID], arg ptr[in, bpf_obj_get_next_id_arg], size len[arg])
-bpf$BPF_MAP_GET_NEXT_ID(cmd const[BPF_MAP_GET_NEXT_ID], arg ptr[in, bpf_obj_get_next_id_arg], size len[arg])
-bpf$BPF_BTF_GET_NEXT_ID(cmd const[BPF_BTF_GET_NEXT_ID], arg ptr[in, bpf_obj_get_next_id_arg], size len[arg])
+bpf$BPF_PROG_GET_NEXT_ID(cmd const[BPF_PROG_GET_NEXT_ID], arg ptr[inout, bpf_prog_get_next_id_arg], size len[arg])
+bpf$BPF_MAP_GET_NEXT_ID(cmd const[BPF_MAP_GET_NEXT_ID], arg ptr[inout, bpf_map_get_next_id_arg], size len[arg])
+bpf$BPF_BTF_GET_NEXT_ID(cmd const[BPF_BTF_GET_NEXT_ID], arg ptr[inout, bpf_btf_get_next_id_arg], size len[arg])
bpf$BPF_PROG_GET_FD_BY_ID(cmd const[BPF_PROG_GET_FD_BY_ID], arg ptr[in, bpf_prog_get_fd_by_id_arg], size len[arg]) fd_bpf_prog
bpf$BPF_MAP_GET_FD_BY_ID(cmd const[BPF_MAP_GET_FD_BY_ID], arg ptr[in, bpf_map_get_fd_by_id_arg], size len[arg]) fd_bpf_map
bpf$BPF_GET_PROG_INFO(cmd const[BPF_OBJ_GET_INFO_BY_FD], arg ptr[in, bpf_get_prog_info_arg], size len[arg])
@@ -60,6 +62,10 @@ bpf$MAP_DELETE_BATCH(cmd const[BPF_MAP_DELETE_BATCH], arg ptr[in, bpf_map_batch_
bpf$BPF_MAP_LOOKUP_AND_DELETE_BATCH(cmd const[BPF_MAP_LOOKUP_AND_DELETE_BATCH], arg ptr[in, bpf_map_batch_arg], size len[arg])
bpf$BPF_LINK_CREATE(cmd const[BPF_LINK_CREATE], arg ptr[in, bpf_link_create_arg], size len[arg]) fd_bpf_link
bpf$BPF_LINK_UPDATE(cmd const[BPF_LINK_UPDATE], arg ptr[in, bpf_link_update_arg], size len[arg])
+bpf$ENABLE_STATS(cmd const[BPF_ENABLE_STATS], arg ptr[in, bpf_enable_stats_arg], size len[arg])
+bpf$ITER_CREATE(cmd const[BPF_ITER_CREATE], arg ptr[in, bpf_iter_create_arg], size len[arg]) fd_bpf_iter
+bpf$LINK_GET_FD_BY_ID(cmd const[BPF_LINK_GET_FD_BY_ID], arg ptr[in, bpf_link_id], size len[arg]) fd_bpf_link
+bpf$LINK_GET_NEXT_ID(cmd const[BPF_LINK_GET_NEXT_ID], arg ptr[inout, bpf_link_get_next_id_arg], size len[arg])
bpf_map_create_arg {
type flags[bpf_map_type, int32]
@@ -136,6 +142,15 @@ bpf_link_update_arg {
old_prog_fd fd_bpf_prog
}
+bpf_enable_stats_arg {
+ type flags[bpf_stat_types, int32]
+}
+
+bpf_iter_create_arg {
+ link_fd fd_bpf_link
+ flags const[0, int32]
+}
+
bpf_batch_flags = BPF_F_LOCK
define BPF_LINE_INFO_SIZE sizeof(struct bpf_line_info)
@@ -415,10 +430,32 @@ bpf_test_prog_arg {
outctx ptr64[in, array[int8]]
}
-bpf_obj_get_next_id_arg {
+bpf_prog_get_next_id_arg {
+# NEED: part of fields are input here and part are output. We can't express this yet (#245).
start int32
- next int32
- flags const[0, int32]
+# Output field:
+ next_id bpf_prog_id
+}
+
+bpf_map_get_next_id_arg {
+# NEED: part of fields are input here and part are output. We can't express this yet (#245).
+ start int32
+# Output field:
+ next_id bpf_map_id
+}
+
+bpf_btf_get_next_id_arg {
+# NEED: part of fields are input here and part are output. We can't express this yet (#245).
+ start int32
+# Output field:
+ next_id bpf_btf_id
+}
+
+bpf_link_get_next_id_arg {
+# NEED: part of fields are input here and part are output. We can't express this yet (#245).
+ start int32
+# Output field:
+ next_id bpf_link_id[opt]
}
bpf_prog_get_fd_by_id_arg {
@@ -699,16 +736,17 @@ bpf_task_fd_query {
probe_addr const[0, int64]
}
-bpf_map_type = BPF_MAP_TYPE_HASH, BPF_MAP_TYPE_ARRAY, BPF_MAP_TYPE_PROG_ARRAY, BPF_MAP_TYPE_PERF_EVENT_ARRAY, BPF_MAP_TYPE_STACK_TRACE, BPF_MAP_TYPE_CGROUP_ARRAY, BPF_MAP_TYPE_PERCPU_HASH, BPF_MAP_TYPE_PERCPU_ARRAY, BPF_MAP_TYPE_LRU_HASH, BPF_MAP_TYPE_LRU_PERCPU_HASH, BPF_MAP_TYPE_LPM_TRIE, BPF_MAP_TYPE_ARRAY_OF_MAPS, BPF_MAP_TYPE_HASH_OF_MAPS, BPF_MAP_TYPE_DEVMAP, BPF_MAP_TYPE_SOCKMAP, BPF_MAP_TYPE_CPUMAP, BPF_MAP_TYPE_XSKMAP, BPF_MAP_TYPE_SOCKHASH, BPF_MAP_TYPE_CGROUP_STORAGE, BPF_MAP_TYPE_REUSEPORT_SOCKARRAY, BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE, BPF_MAP_TYPE_QUEUE, BPF_MAP_TYPE_STACK, BPF_MAP_TYPE_SK_STORAGE, BPF_MAP_TYPE_DEVMAP_HASH, BPF_MAP_TYPE_STRUCT_OPS
+bpf_map_type = BPF_MAP_TYPE_HASH, BPF_MAP_TYPE_ARRAY, BPF_MAP_TYPE_PROG_ARRAY, BPF_MAP_TYPE_PERF_EVENT_ARRAY, BPF_MAP_TYPE_STACK_TRACE, BPF_MAP_TYPE_CGROUP_ARRAY, BPF_MAP_TYPE_PERCPU_HASH, BPF_MAP_TYPE_PERCPU_ARRAY, BPF_MAP_TYPE_LRU_HASH, BPF_MAP_TYPE_LRU_PERCPU_HASH, BPF_MAP_TYPE_LPM_TRIE, BPF_MAP_TYPE_ARRAY_OF_MAPS, BPF_MAP_TYPE_HASH_OF_MAPS, BPF_MAP_TYPE_DEVMAP, BPF_MAP_TYPE_SOCKMAP, BPF_MAP_TYPE_CPUMAP, BPF_MAP_TYPE_XSKMAP, BPF_MAP_TYPE_SOCKHASH, BPF_MAP_TYPE_CGROUP_STORAGE, BPF_MAP_TYPE_REUSEPORT_SOCKARRAY, BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE, BPF_MAP_TYPE_QUEUE, BPF_MAP_TYPE_STACK, BPF_MAP_TYPE_SK_STORAGE, BPF_MAP_TYPE_DEVMAP_HASH, BPF_MAP_TYPE_STRUCT_OPS, BPF_MAP_TYPE_RINGBUF
bpf_map_flags = BPF_ANY, BPF_NOEXIST, BPF_EXIST, BPF_F_LOCK
bpf_lookup_flags = BPF_F_LOCK
bpf_prog_type = BPF_PROG_TYPE_SOCKET_FILTER, BPF_PROG_TYPE_KPROBE, BPF_PROG_TYPE_SCHED_CLS, BPF_PROG_TYPE_SCHED_ACT, BPF_PROG_TYPE_TRACEPOINT, BPF_PROG_TYPE_XDP, BPF_PROG_TYPE_PERF_EVENT, BPF_PROG_TYPE_CGROUP_SKB, BPF_PROG_TYPE_CGROUP_SOCK, BPF_PROG_TYPE_LWT_IN, BPF_PROG_TYPE_LWT_OUT, BPF_PROG_TYPE_LWT_XMIT, BPF_PROG_TYPE_SOCK_OPS, BPF_PROG_TYPE_SK_SKB, BPF_PROG_TYPE_CGROUP_DEVICE, BPF_PROG_TYPE_SK_MSG, BPF_PROG_TYPE_RAW_TRACEPOINT, BPF_PROG_TYPE_CGROUP_SOCK_ADDR, BPF_PROG_TYPE_LWT_SEG6LOCAL, BPF_PROG_TYPE_LIRC_MODE2, BPF_PROG_TYPE_SK_REUSEPORT, BPF_PROG_TYPE_FLOW_DISSECTOR, BPF_PROG_TYPE_CGROUP_SYSCTL, BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE, BPF_PROG_TYPE_CGROUP_SOCKOPT, BPF_PROG_TYPE_TRACING, BPF_PROG_TYPE_EXT, BPF_PROG_TYPE_STRUCT_OPS, BPF_PROG_TYPE_LSM
map_flags = BPF_F_NO_PREALLOC, BPF_F_NO_COMMON_LRU, BPF_F_NUMA_NODE, BPF_F_RDONLY, BPF_F_WRONLY, BPF_F_STACK_BUILD_ID, BPF_F_ZERO_SEED, BPF_F_RDONLY_PROG, BPF_F_WRONLY_PROG, BPF_F_CLONE, BPF_F_MMAPABLE
-bpf_attach_type = BPF_CGROUP_INET_INGRESS, BPF_CGROUP_INET_EGRESS, BPF_CGROUP_INET_SOCK_CREATE, BPF_CGROUP_SOCK_OPS, BPF_SK_SKB_STREAM_PARSER, BPF_SK_SKB_STREAM_VERDICT, BPF_CGROUP_DEVICE, BPF_SK_MSG_VERDICT, BPF_CGROUP_INET4_BIND, BPF_CGROUP_INET6_BIND, BPF_CGROUP_INET4_CONNECT, BPF_CGROUP_INET6_CONNECT, BPF_CGROUP_INET4_POST_BIND, BPF_CGROUP_INET6_POST_BIND, BPF_CGROUP_UDP4_SENDMSG, BPF_CGROUP_UDP6_SENDMSG, BPF_LIRC_MODE2, BPF_FLOW_DISSECTOR, BPF_CGROUP_SYSCTL, BPF_CGROUP_UDP4_RECVMSG, BPF_CGROUP_UDP6_RECVMSG, BPF_CGROUP_GETSOCKOPT, BPF_CGROUP_SETSOCKOPT, BPF_TRACE_RAW_TP, BPF_TRACE_FENTRY, BPF_TRACE_FEXIT, BPF_LSM_MAC, BPF_MODIFY_RETURN
-bpf_attach_types_link_create = BPF_CGROUP_INET_INGRESS, BPF_CGROUP_INET_EGRESS, BPF_CGROUP_INET_SOCK_CREATE, BPF_CGROUP_INET4_POST_BIND, BPF_CGROUP_INET6_POST_BIND, BPF_CGROUP_INET4_BIND, BPF_CGROUP_INET6_BIND, BPF_CGROUP_INET4_CONNECT, BPF_CGROUP_INET6_CONNECT, BPF_CGROUP_UDP4_SENDMSG, BPF_CGROUP_UDP6_SENDMSG, BPF_CGROUP_UDP4_RECVMSG, BPF_CGROUP_UDP6_RECVMSG, BPF_CGROUP_SOCK_OPS, BPF_CGROUP_DEVICE, BPF_SK_MSG_VERDICT, BPF_SK_SKB_STREAM_PARSER, BPF_SK_SKB_STREAM_VERDICT, BPF_LIRC_MODE2, BPF_FLOW_DISSECTOR, BPF_CGROUP_SYSCTL, BPF_CGROUP_GETSOCKOPT, BPF_CGROUP_SETSOCKOPT
+bpf_attach_type = BPF_CGROUP_INET_INGRESS, BPF_CGROUP_INET_EGRESS, BPF_CGROUP_INET_SOCK_CREATE, BPF_CGROUP_SOCK_OPS, BPF_SK_SKB_STREAM_PARSER, BPF_SK_SKB_STREAM_VERDICT, BPF_CGROUP_DEVICE, BPF_SK_MSG_VERDICT, BPF_CGROUP_INET4_BIND, BPF_CGROUP_INET6_BIND, BPF_CGROUP_INET4_CONNECT, BPF_CGROUP_INET6_CONNECT, BPF_CGROUP_INET4_POST_BIND, BPF_CGROUP_INET6_POST_BIND, BPF_CGROUP_UDP4_SENDMSG, BPF_CGROUP_UDP6_SENDMSG, BPF_LIRC_MODE2, BPF_FLOW_DISSECTOR, BPF_CGROUP_SYSCTL, BPF_CGROUP_UDP4_RECVMSG, BPF_CGROUP_UDP6_RECVMSG, BPF_CGROUP_GETSOCKOPT, BPF_CGROUP_SETSOCKOPT, BPF_TRACE_RAW_TP, BPF_TRACE_FENTRY, BPF_TRACE_FEXIT, BPF_LSM_MAC, BPF_MODIFY_RETURN, BPF_CGROUP_INET4_GETPEERNAME, BPF_CGROUP_INET4_GETSOCKNAME, BPF_CGROUP_INET6_GETPEERNAME, BPF_CGROUP_INET6_GETSOCKNAME, BPF_TRACE_ITER, BPF_XDP_DEVMAP
+bpf_attach_types_link_create = BPF_CGROUP_INET_INGRESS, BPF_CGROUP_INET_EGRESS, BPF_CGROUP_INET_SOCK_CREATE, BPF_CGROUP_INET4_POST_BIND, BPF_CGROUP_INET6_POST_BIND, BPF_CGROUP_INET4_BIND, BPF_CGROUP_INET6_BIND, BPF_CGROUP_INET4_CONNECT, BPF_CGROUP_INET6_CONNECT, BPF_CGROUP_UDP4_SENDMSG, BPF_CGROUP_UDP6_SENDMSG, BPF_CGROUP_UDP4_RECVMSG, BPF_CGROUP_UDP6_RECVMSG, BPF_CGROUP_SOCK_OPS, BPF_CGROUP_DEVICE, BPF_SK_MSG_VERDICT, BPF_SK_SKB_STREAM_PARSER, BPF_SK_SKB_STREAM_VERDICT, BPF_LIRC_MODE2, BPF_FLOW_DISSECTOR, BPF_CGROUP_SYSCTL, BPF_CGROUP_GETSOCKOPT, BPF_CGROUP_SETSOCKOPT, BPF_CGROUP_INET4_GETPEERNAME, BPF_CGROUP_INET4_GETSOCKNAME, BPF_CGROUP_INET6_GETPEERNAME, BPF_CGROUP_INET6_GETSOCKNAME, BPF_TRACE_ITER
bpf_prog_load_flags = BPF_F_STRICT_ALIGNMENT, BPF_F_ANY_ALIGNMENT, BPF_F_TEST_RND_HI32, BPF_F_TEST_STATE_FREQ
bpf_attach_flags = BPF_F_ALLOW_OVERRIDE, BPF_F_ALLOW_MULTI, BPF_F_REPLACE
bpf_link_update_flags = BPF_F_REPLACE
bpf_prog_query_flags = BPF_F_QUERY_EFFECTIVE
-bpf_prog_query_attach_type = BPF_CGROUP_INET_INGRESS, BPF_CGROUP_INET_EGRESS, BPF_CGROUP_INET_SOCK_CREATE, BPF_CGROUP_SOCK_OPS, BPF_CGROUP_DEVICE, BPF_CGROUP_INET4_BIND, BPF_CGROUP_INET4_CONNECT, BPF_CGROUP_INET4_POST_BIND, BPF_CGROUP_INET6_BIND, BPF_CGROUP_INET6_CONNECT, BPF_CGROUP_INET6_POST_BIND, BPF_CGROUP_UDP4_SENDMSG, BPF_CGROUP_UDP6_SENDMSG, BPF_LIRC_MODE2, BPF_CGROUP_SYSCTL, BPF_FLOW_DISSECTOR, BPF_CGROUP_UDP4_RECVMSG, BPF_CGROUP_UDP6_RECVMSG, BPF_CGROUP_GETSOCKOPT, BPF_CGROUP_SETSOCKOPT
+bpf_prog_query_attach_type = BPF_CGROUP_INET_INGRESS, BPF_CGROUP_INET_EGRESS, BPF_CGROUP_INET_SOCK_CREATE, BPF_CGROUP_SOCK_OPS, BPF_CGROUP_DEVICE, BPF_CGROUP_INET4_BIND, BPF_CGROUP_INET4_CONNECT, BPF_CGROUP_INET4_POST_BIND, BPF_CGROUP_INET6_BIND, BPF_CGROUP_INET6_CONNECT, BPF_CGROUP_INET6_POST_BIND, BPF_CGROUP_UDP4_SENDMSG, BPF_CGROUP_UDP6_SENDMSG, BPF_LIRC_MODE2, BPF_CGROUP_SYSCTL, BPF_FLOW_DISSECTOR, BPF_CGROUP_UDP4_RECVMSG, BPF_CGROUP_UDP6_RECVMSG, BPF_CGROUP_GETSOCKOPT, BPF_CGROUP_SETSOCKOPT, BPF_CGROUP_INET4_GETPEERNAME, BPF_CGROUP_INET4_GETSOCKNAME, BPF_CGROUP_INET6_GETPEERNAME, BPF_CGROUP_INET6_GETSOCKNAME
bpf_open_flags = BPF_F_RDONLY, BPF_F_WRONLY
+bpf_stat_types = BPF_STATS_RUN_TIME
diff --git a/sys/linux/bpf_386.const b/sys/linux/bpf_386.const
index a7b9cea50..0ccc141d6 100644
--- a/sys/linux/bpf_386.const
+++ b/sys/linux/bpf_386.const
@@ -15,9 +15,13 @@ BPF_CGROUP_DEVICE = 6
BPF_CGROUP_GETSOCKOPT = 21
BPF_CGROUP_INET4_BIND = 8
BPF_CGROUP_INET4_CONNECT = 10
+BPF_CGROUP_INET4_GETPEERNAME = 29
+BPF_CGROUP_INET4_GETSOCKNAME = 31
BPF_CGROUP_INET4_POST_BIND = 12
BPF_CGROUP_INET6_BIND = 9
BPF_CGROUP_INET6_CONNECT = 11
+BPF_CGROUP_INET6_GETPEERNAME = 30
+BPF_CGROUP_INET6_GETSOCKNAME = 32
BPF_CGROUP_INET6_POST_BIND = 13
BPF_CGROUP_INET_EGRESS = 1
BPF_CGROUP_INET_INGRESS = 0
@@ -31,6 +35,7 @@ BPF_CGROUP_UDP6_RECVMSG = 20
BPF_CGROUP_UDP6_SENDMSG = 15
BPF_DIV0 = 3
BPF_DW0 = 3
+BPF_ENABLE_STATS = 32
BPF_END0 = 13
BPF_EXIST = 2
BPF_EXIT0 = 9
@@ -59,6 +64,7 @@ BPF_F_ZERO_SEED = 64
BPF_H0 = 1
BPF_IMM0 = 0
BPF_IND0 = 2
+BPF_ITER_CREATE = 33
BPF_JA0 = 0
BPF_JEQ0 = 1
BPF_JGE0 = 3
@@ -76,6 +82,8 @@ BPF_LD = 0
BPF_LDX = 1
BPF_LINE_INFO_SIZE = 16
BPF_LINK_CREATE = 28
+BPF_LINK_GET_FD_BY_ID = 30
+BPF_LINK_GET_NEXT_ID = 31
BPF_LINK_UPDATE = 29
BPF_LIRC_MODE2 = 16
BPF_LSH0 = 6
@@ -110,6 +118,7 @@ BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4
BPF_MAP_TYPE_PROG_ARRAY = 3
BPF_MAP_TYPE_QUEUE = 22
BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20
+BPF_MAP_TYPE_RINGBUF = 27
BPF_MAP_TYPE_SK_STORAGE = 24
BPF_MAP_TYPE_SOCKHASH = 18
BPF_MAP_TYPE_SOCKMAP = 15
@@ -187,14 +196,17 @@ BPF_SK_MSG_VERDICT = 7
BPF_SK_SKB_STREAM_PARSER = 4
BPF_SK_SKB_STREAM_VERDICT = 5
BPF_ST = 2
+BPF_STATS_RUN_TIME = 0
BPF_STX = 3
BPF_SUB0 = 1
BPF_TASK_FD_QUERY = 20
BPF_TRACE_FENTRY = 24
BPF_TRACE_FEXIT = 25
+BPF_TRACE_ITER = 28
BPF_TRACE_RAW_TP = 23
BPF_W0 = 0
BPF_XADD0 = 6
+BPF_XDP_DEVMAP = 33
BPF_XOR0 = 10
BTF_INT_BOOL = 4
BTF_INT_CHAR = 2
diff --git a/sys/linux/bpf_amd64.const b/sys/linux/bpf_amd64.const
index d2dda67d2..42976bfce 100644
--- a/sys/linux/bpf_amd64.const
+++ b/sys/linux/bpf_amd64.const
@@ -15,9 +15,13 @@ BPF_CGROUP_DEVICE = 6
BPF_CGROUP_GETSOCKOPT = 21
BPF_CGROUP_INET4_BIND = 8
BPF_CGROUP_INET4_CONNECT = 10
+BPF_CGROUP_INET4_GETPEERNAME = 29
+BPF_CGROUP_INET4_GETSOCKNAME = 31
BPF_CGROUP_INET4_POST_BIND = 12
BPF_CGROUP_INET6_BIND = 9
BPF_CGROUP_INET6_CONNECT = 11
+BPF_CGROUP_INET6_GETPEERNAME = 30
+BPF_CGROUP_INET6_GETSOCKNAME = 32
BPF_CGROUP_INET6_POST_BIND = 13
BPF_CGROUP_INET_EGRESS = 1
BPF_CGROUP_INET_INGRESS = 0
@@ -31,6 +35,7 @@ BPF_CGROUP_UDP6_RECVMSG = 20
BPF_CGROUP_UDP6_SENDMSG = 15
BPF_DIV0 = 3
BPF_DW0 = 3
+BPF_ENABLE_STATS = 32
BPF_END0 = 13
BPF_EXIST = 2
BPF_EXIT0 = 9
@@ -59,6 +64,7 @@ BPF_F_ZERO_SEED = 64
BPF_H0 = 1
BPF_IMM0 = 0
BPF_IND0 = 2
+BPF_ITER_CREATE = 33
BPF_JA0 = 0
BPF_JEQ0 = 1
BPF_JGE0 = 3
@@ -76,6 +82,8 @@ BPF_LD = 0
BPF_LDX = 1
BPF_LINE_INFO_SIZE = 16
BPF_LINK_CREATE = 28
+BPF_LINK_GET_FD_BY_ID = 30
+BPF_LINK_GET_NEXT_ID = 31
BPF_LINK_UPDATE = 29
BPF_LIRC_MODE2 = 16
BPF_LSH0 = 6
@@ -110,6 +118,7 @@ BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4
BPF_MAP_TYPE_PROG_ARRAY = 3
BPF_MAP_TYPE_QUEUE = 22
BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20
+BPF_MAP_TYPE_RINGBUF = 27
BPF_MAP_TYPE_SK_STORAGE = 24
BPF_MAP_TYPE_SOCKHASH = 18
BPF_MAP_TYPE_SOCKMAP = 15
@@ -187,14 +196,17 @@ BPF_SK_MSG_VERDICT = 7
BPF_SK_SKB_STREAM_PARSER = 4
BPF_SK_SKB_STREAM_VERDICT = 5
BPF_ST = 2
+BPF_STATS_RUN_TIME = 0
BPF_STX = 3
BPF_SUB0 = 1
BPF_TASK_FD_QUERY = 20
BPF_TRACE_FENTRY = 24
BPF_TRACE_FEXIT = 25
+BPF_TRACE_ITER = 28
BPF_TRACE_RAW_TP = 23
BPF_W0 = 0
BPF_XADD0 = 6
+BPF_XDP_DEVMAP = 33
BPF_XOR0 = 10
BTF_INT_BOOL = 4
BTF_INT_CHAR = 2
diff --git a/sys/linux/bpf_arm.const b/sys/linux/bpf_arm.const
index 9ca4f606c..d57bb5fe9 100644
--- a/sys/linux/bpf_arm.const
+++ b/sys/linux/bpf_arm.const
@@ -15,9 +15,13 @@ BPF_CGROUP_DEVICE = 6
BPF_CGROUP_GETSOCKOPT = 21
BPF_CGROUP_INET4_BIND = 8
BPF_CGROUP_INET4_CONNECT = 10
+BPF_CGROUP_INET4_GETPEERNAME = 29
+BPF_CGROUP_INET4_GETSOCKNAME = 31
BPF_CGROUP_INET4_POST_BIND = 12
BPF_CGROUP_INET6_BIND = 9
BPF_CGROUP_INET6_CONNECT = 11
+BPF_CGROUP_INET6_GETPEERNAME = 30
+BPF_CGROUP_INET6_GETSOCKNAME = 32
BPF_CGROUP_INET6_POST_BIND = 13
BPF_CGROUP_INET_EGRESS = 1
BPF_CGROUP_INET_INGRESS = 0
@@ -31,6 +35,7 @@ BPF_CGROUP_UDP6_RECVMSG = 20
BPF_CGROUP_UDP6_SENDMSG = 15
BPF_DIV0 = 3
BPF_DW0 = 3
+BPF_ENABLE_STATS = 32
BPF_END0 = 13
BPF_EXIST = 2
BPF_EXIT0 = 9
@@ -59,6 +64,7 @@ BPF_F_ZERO_SEED = 64
BPF_H0 = 1
BPF_IMM0 = 0
BPF_IND0 = 2
+BPF_ITER_CREATE = 33
BPF_JA0 = 0
BPF_JEQ0 = 1
BPF_JGE0 = 3
@@ -76,6 +82,8 @@ BPF_LD = 0
BPF_LDX = 1
BPF_LINE_INFO_SIZE = 16
BPF_LINK_CREATE = 28
+BPF_LINK_GET_FD_BY_ID = 30
+BPF_LINK_GET_NEXT_ID = 31
BPF_LINK_UPDATE = 29
BPF_LIRC_MODE2 = 16
BPF_LSH0 = 6
@@ -110,6 +118,7 @@ BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4
BPF_MAP_TYPE_PROG_ARRAY = 3
BPF_MAP_TYPE_QUEUE = 22
BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20
+BPF_MAP_TYPE_RINGBUF = 27
BPF_MAP_TYPE_SK_STORAGE = 24
BPF_MAP_TYPE_SOCKHASH = 18
BPF_MAP_TYPE_SOCKMAP = 15
@@ -187,14 +196,17 @@ BPF_SK_MSG_VERDICT = 7
BPF_SK_SKB_STREAM_PARSER = 4
BPF_SK_SKB_STREAM_VERDICT = 5
BPF_ST = 2
+BPF_STATS_RUN_TIME = 0
BPF_STX = 3
BPF_SUB0 = 1
BPF_TASK_FD_QUERY = 20
BPF_TRACE_FENTRY = 24
BPF_TRACE_FEXIT = 25
+BPF_TRACE_ITER = 28
BPF_TRACE_RAW_TP = 23
BPF_W0 = 0
BPF_XADD0 = 6
+BPF_XDP_DEVMAP = 33
BPF_XOR0 = 10
BTF_INT_BOOL = 4
BTF_INT_CHAR = 2
diff --git a/sys/linux/bpf_arm64.const b/sys/linux/bpf_arm64.const
index 811e510c7..29aba4f29 100644
--- a/sys/linux/bpf_arm64.const
+++ b/sys/linux/bpf_arm64.const
@@ -15,9 +15,13 @@ BPF_CGROUP_DEVICE = 6
BPF_CGROUP_GETSOCKOPT = 21
BPF_CGROUP_INET4_BIND = 8
BPF_CGROUP_INET4_CONNECT = 10
+BPF_CGROUP_INET4_GETPEERNAME = 29
+BPF_CGROUP_INET4_GETSOCKNAME = 31
BPF_CGROUP_INET4_POST_BIND = 12
BPF_CGROUP_INET6_BIND = 9
BPF_CGROUP_INET6_CONNECT = 11
+BPF_CGROUP_INET6_GETPEERNAME = 30
+BPF_CGROUP_INET6_GETSOCKNAME = 32
BPF_CGROUP_INET6_POST_BIND = 13
BPF_CGROUP_INET_EGRESS = 1
BPF_CGROUP_INET_INGRESS = 0
@@ -31,6 +35,7 @@ BPF_CGROUP_UDP6_RECVMSG = 20
BPF_CGROUP_UDP6_SENDMSG = 15
BPF_DIV0 = 3
BPF_DW0 = 3
+BPF_ENABLE_STATS = 32
BPF_END0 = 13
BPF_EXIST = 2
BPF_EXIT0 = 9
@@ -59,6 +64,7 @@ BPF_F_ZERO_SEED = 64
BPF_H0 = 1
BPF_IMM0 = 0
BPF_IND0 = 2
+BPF_ITER_CREATE = 33
BPF_JA0 = 0
BPF_JEQ0 = 1
BPF_JGE0 = 3
@@ -76,6 +82,8 @@ BPF_LD = 0
BPF_LDX = 1
BPF_LINE_INFO_SIZE = 16
BPF_LINK_CREATE = 28
+BPF_LINK_GET_FD_BY_ID = 30
+BPF_LINK_GET_NEXT_ID = 31
BPF_LINK_UPDATE = 29
BPF_LIRC_MODE2 = 16
BPF_LSH0 = 6
@@ -110,6 +118,7 @@ BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4
BPF_MAP_TYPE_PROG_ARRAY = 3
BPF_MAP_TYPE_QUEUE = 22
BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20
+BPF_MAP_TYPE_RINGBUF = 27
BPF_MAP_TYPE_SK_STORAGE = 24
BPF_MAP_TYPE_SOCKHASH = 18
BPF_MAP_TYPE_SOCKMAP = 15
@@ -187,14 +196,17 @@ BPF_SK_MSG_VERDICT = 7
BPF_SK_SKB_STREAM_PARSER = 4
BPF_SK_SKB_STREAM_VERDICT = 5
BPF_ST = 2
+BPF_STATS_RUN_TIME = 0
BPF_STX = 3
BPF_SUB0 = 1
BPF_TASK_FD_QUERY = 20
BPF_TRACE_FENTRY = 24
BPF_TRACE_FEXIT = 25
+BPF_TRACE_ITER = 28
BPF_TRACE_RAW_TP = 23
BPF_W0 = 0
BPF_XADD0 = 6
+BPF_XDP_DEVMAP = 33
BPF_XOR0 = 10
BTF_INT_BOOL = 4
BTF_INT_CHAR = 2
diff --git a/sys/linux/bpf_mips64le.const b/sys/linux/bpf_mips64le.const
index 0648b1ce0..3b2629fa2 100644
--- a/sys/linux/bpf_mips64le.const
+++ b/sys/linux/bpf_mips64le.const
@@ -15,9 +15,13 @@ BPF_CGROUP_DEVICE = 6
BPF_CGROUP_GETSOCKOPT = 21
BPF_CGROUP_INET4_BIND = 8
BPF_CGROUP_INET4_CONNECT = 10
+BPF_CGROUP_INET4_GETPEERNAME = 29
+BPF_CGROUP_INET4_GETSOCKNAME = 31
BPF_CGROUP_INET4_POST_BIND = 12
BPF_CGROUP_INET6_BIND = 9
BPF_CGROUP_INET6_CONNECT = 11
+BPF_CGROUP_INET6_GETPEERNAME = 30
+BPF_CGROUP_INET6_GETSOCKNAME = 32
BPF_CGROUP_INET6_POST_BIND = 13
BPF_CGROUP_INET_EGRESS = 1
BPF_CGROUP_INET_INGRESS = 0
@@ -31,6 +35,7 @@ BPF_CGROUP_UDP6_RECVMSG = 20
BPF_CGROUP_UDP6_SENDMSG = 15
BPF_DIV0 = 3
BPF_DW0 = 3
+BPF_ENABLE_STATS = 32
BPF_END0 = 13
BPF_EXIST = 2
BPF_EXIT0 = 9
@@ -59,6 +64,7 @@ BPF_F_ZERO_SEED = 64
BPF_H0 = 1
BPF_IMM0 = 0
BPF_IND0 = 2
+BPF_ITER_CREATE = 33
BPF_JA0 = 0
BPF_JEQ0 = 1
BPF_JGE0 = 3
@@ -76,6 +82,8 @@ BPF_LD = 0
BPF_LDX = 1
BPF_LINE_INFO_SIZE = 16
BPF_LINK_CREATE = 28
+BPF_LINK_GET_FD_BY_ID = 30
+BPF_LINK_GET_NEXT_ID = 31
BPF_LINK_UPDATE = 29
BPF_LIRC_MODE2 = 16
BPF_LSH0 = 6
@@ -110,6 +118,7 @@ BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4
BPF_MAP_TYPE_PROG_ARRAY = 3
BPF_MAP_TYPE_QUEUE = 22
BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20
+BPF_MAP_TYPE_RINGBUF = 27
BPF_MAP_TYPE_SK_STORAGE = 24
BPF_MAP_TYPE_SOCKHASH = 18
BPF_MAP_TYPE_SOCKMAP = 15
@@ -187,14 +196,17 @@ BPF_SK_MSG_VERDICT = 7
BPF_SK_SKB_STREAM_PARSER = 4
BPF_SK_SKB_STREAM_VERDICT = 5
BPF_ST = 2
+BPF_STATS_RUN_TIME = 0
BPF_STX = 3
BPF_SUB0 = 1
BPF_TASK_FD_QUERY = 20
BPF_TRACE_FENTRY = 24
BPF_TRACE_FEXIT = 25
+BPF_TRACE_ITER = 28
BPF_TRACE_RAW_TP = 23
BPF_W0 = 0
BPF_XADD0 = 6
+BPF_XDP_DEVMAP = 33
BPF_XOR0 = 10
BTF_INT_BOOL = 4
BTF_INT_CHAR = 2
diff --git a/sys/linux/bpf_ppc64le.const b/sys/linux/bpf_ppc64le.const
index d45d7ca4b..2827d7f0c 100644
--- a/sys/linux/bpf_ppc64le.const
+++ b/sys/linux/bpf_ppc64le.const
@@ -15,9 +15,13 @@ BPF_CGROUP_DEVICE = 6
BPF_CGROUP_GETSOCKOPT = 21
BPF_CGROUP_INET4_BIND = 8
BPF_CGROUP_INET4_CONNECT = 10
+BPF_CGROUP_INET4_GETPEERNAME = 29
+BPF_CGROUP_INET4_GETSOCKNAME = 31
BPF_CGROUP_INET4_POST_BIND = 12
BPF_CGROUP_INET6_BIND = 9
BPF_CGROUP_INET6_CONNECT = 11
+BPF_CGROUP_INET6_GETPEERNAME = 30
+BPF_CGROUP_INET6_GETSOCKNAME = 32
BPF_CGROUP_INET6_POST_BIND = 13
BPF_CGROUP_INET_EGRESS = 1
BPF_CGROUP_INET_INGRESS = 0
@@ -31,6 +35,7 @@ BPF_CGROUP_UDP6_RECVMSG = 20
BPF_CGROUP_UDP6_SENDMSG = 15
BPF_DIV0 = 3
BPF_DW0 = 3
+BPF_ENABLE_STATS = 32
BPF_END0 = 13
BPF_EXIST = 2
BPF_EXIT0 = 9
@@ -59,6 +64,7 @@ BPF_F_ZERO_SEED = 64
BPF_H0 = 1
BPF_IMM0 = 0
BPF_IND0 = 2
+BPF_ITER_CREATE = 33
BPF_JA0 = 0
BPF_JEQ0 = 1
BPF_JGE0 = 3
@@ -76,6 +82,8 @@ BPF_LD = 0
BPF_LDX = 1
BPF_LINE_INFO_SIZE = 16
BPF_LINK_CREATE = 28
+BPF_LINK_GET_FD_BY_ID = 30
+BPF_LINK_GET_NEXT_ID = 31
BPF_LINK_UPDATE = 29
BPF_LIRC_MODE2 = 16
BPF_LSH0 = 6
@@ -110,6 +118,7 @@ BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4
BPF_MAP_TYPE_PROG_ARRAY = 3
BPF_MAP_TYPE_QUEUE = 22
BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20
+BPF_MAP_TYPE_RINGBUF = 27
BPF_MAP_TYPE_SK_STORAGE = 24
BPF_MAP_TYPE_SOCKHASH = 18
BPF_MAP_TYPE_SOCKMAP = 15
@@ -187,14 +196,17 @@ BPF_SK_MSG_VERDICT = 7
BPF_SK_SKB_STREAM_PARSER = 4
BPF_SK_SKB_STREAM_VERDICT = 5
BPF_ST = 2
+BPF_STATS_RUN_TIME = 0
BPF_STX = 3
BPF_SUB0 = 1
BPF_TASK_FD_QUERY = 20
BPF_TRACE_FENTRY = 24
BPF_TRACE_FEXIT = 25
+BPF_TRACE_ITER = 28
BPF_TRACE_RAW_TP = 23
BPF_W0 = 0
BPF_XADD0 = 6
+BPF_XDP_DEVMAP = 33
BPF_XOR0 = 10
BTF_INT_BOOL = 4
BTF_INT_CHAR = 2