Linux 内核版本的 BPF 功能
eBPF支持
| 内核版本 | 提交 |
|---|---|
| 3.15 | bd4cf0ed331a |
JIT编译
可以使用以下命令获取内核支持的体系结构列表:
git grep HAVE_EBPF_JIT arch/
| 功能 / 体系结构 | 内核版本 | 提交 |
|---|---|---|
| x86_64 | 3.16 | 622582786c9e |
| ARM64 | 3.18 | e54bcde3d69d |
| s390 | 4.1 | 054623105728 |
| JIT机器的常量混淆 | 4.7 | 4f3446bb809f |
| PowerPC64 | 4.8 | 156d0e290e96 |
| 常量混淆 - PowerPC64 | 4.9 | b7b7013cac55 |
| Sparc64 | 4.12 | 7a12b5031c6b |
| MIPS | 4.13 | f381bf6d82f0 |
| ARM32 | 4.14 | 39c13c204bb1 |
| x86_32 | 4.18 | 03f5781be2c7 |
| RISC-V RV64G | 5.1 | 2353ecc6f91fRISC-V RV32G |
| PowerPC32 | 5.13 | 51c66ad849a7 |
| LoongArch | 6.1 | 5dc615520c4d |
主要特性
其中几个(但不是全部)主要特性 可以转换为 eBPF 程序类型。
您的内核支持的此类程序类型的列表可以在文件 include/uapi/linux/bpf.h 中找到:
git grep -W 'bpf_prog_type {' include/uapi/linux/bpf.h
| 特性 | 内核版本 | 提交 |
|---|---|---|
AF_PACKET (libpcap/tcpdump, cls_bpf 分类器, netfilter 的 xt_bpf, team 驱动程序的负载均衡模式…) | 3.15 | bd4cf0ed331a |
| 内核助手 | 3.15 | bd4cf0ed331a |
bpf() 系统调用 | 3.18 | 99c55f7d47c0 |
| Maps (又名 表; 详见下文) | 3.18 | 99c55f7d47c0 |
| BPF 附加到套接字 | 3.19 | 89aa075832b0 |
BPF 附加到 kprobes | 4.1 | 2541517c32be |
cls_bpf / act_bpf 用于 tc | 4.1 | e2e9b6541dd4 |
| 尾调用 | 4.2 | 04fd61ab36ec非根程序上的套接字 |
| 持久映射和程序(虚拟文件系统) | 4.4 | b2197755b263 |
tc的direct-action(da)模式 | 4.4 | 045efa82ff56 |
tc的clsactqdisc | 4.5 | 1f211a1b929c |
| BPF连接到跟踪点 | 4.7 | 98b5c2c65c29 |
| 直接数据包访问 | 4.7 | 969bf05eb3ce |
| XDP(参见下文) | 4.8 | 6a773a15a1e8 |
| BPF连接到性能事件 | 4.9 | 0515e5999a46 |
tc的cls_bpf的硬件卸载 | 4.9 | 332ae8e2f6ec |
| 验证器暴露和内部钩子 | 4.9 | 13a27dfc6697 |
| BPF连接到 cgroups 用于套接字过滤 | 4.10 | 0e33661de493 |
| 轻量级隧道封装 | 4.10 | 3a0af8fd61f9 |
eBPF对xt_bpf模块(iptables)的支持 | 4.10 | 2c16d6033264 |
| BPF程序标签 | 4.10 | 7bd509e311f4跟踪点以调试BPF |
| 测试/基准测试BPF程序 | 4.12 | 1cf1cae963c2 |
| BPF程序和映射ID | 4.13 | dc4bb0e23561 |
BPF对sock_ops的支持 | 4.13 | 40304b2a1567 |
| BPF对套接字上的skb的支持 | 4.14 | b005fd189cec |
| 内核源码中的bpftool实用程序 | 4.15 | 71bb428fe2c1 |
| BPF附加到cgroups作为设备控制器 | 4.15 | ebc614f68736 |
| bpf2bpf函数调用 | 4.16 | cc8b0b92a169 |
| BPF用于监视套接字RX/TX数据 | 4.17 | 4f738adba30a |
| BPF附加到原始跟踪点 | 4.17 | c4f6699dfcb8 |
BPF附加到bind()系统调用 | 4.17 | 4fbac77d2d09 aac3fc320d94 |
BPF附加到connect()系统调用 | 4.17 | d74bad4e74eeBPF 类型格式(BTF) |
| AF_XDP | 4.18 | fbfc504a24f5 |
| bpfilter | 4.18 | d2ba09c17a06 |
| seg6local LWT 的 End.BPF 操作 | 4.18 | 004d4b274e2a |
| BPF 附加到 LIRC 设备 | 4.18 | f4364dcfc86d |
| 将映射值传递给映射助手 | 4.18 | d71962f3e627 |
| BPF 套接字复用端口 | 4.19 | 2dbb9b9e6df6 |
| BPF 流解剖器 | 4.20 | d58e468b1112 |
| BPF 1M 指令限制 | 5.2 | c04c0d2b968a |
| BPF 控制组 sysctl | 5.2 | 7b146cebe30c |
| BPF 原始跟踪点可写 | 5.2 | 9df1c28bb752 |
| BPF 有界循环 | 5.3 | 2589726d12a1 |
| BPF 跳板 | 5.5 | fec56f5890d9 |
| BPF LSM 钩子 | 5.7 | fc611f47f218 641cd7b06c91 |
| BPF 迭代器 | 5.8 | 180139dca8b3BPF套接字查找挂钩 |
| 可睡眠的BPF程序 | 5.10 | 1e6c62a88215 |
程序类型
| 程序类型 | 内核版本 | 提交 | 枚举 |
|---|---|---|---|
| 套接字过滤器 | 3.19 | ddd872bc3098 | BPF_PROG_TYPE_SOCKET_FILTER |
| Kprobe | 4.1 | 2541517c32be | BPF_PROG_TYPE_KPROBE |
| 流量控制(TC) | 4.1 | 96be4325f443 | BPF_PROG_TYPE_SCHED_CLS |
| 流量控制(TC) | 4.1 | 94caee8c312d | BPF_PROG_TYPE_SCHED_ACT |
| 跟踪点 | 4.7 | 98b5c2c65c29 | BPF_PROG_TYPE_TRACEPOINT |
| XDP | 4.8 | 6a773a15a1e8 | BPF_PROG_TYPE_XDP |
| 性能事件 | 4.9 | 0515e5999a46 | BPF_PROG_TYPE_PERF_EVENT |
| cgroup套接字过滤 | 4.10 | 0e33661de493 | BPF_PROG_TYPE_CGROUP_SKB |
| cgroup套接字修改 | 4.10 | 610236587600 | BPF_PROG_TYPE_CGROUP_SOCK |
| 轻量级隧道(IN) | 4.10 | 3a0af8fd61f9 | BPF_PROG_TYPE_LWT_IN".lightweight tunnel (OUT) |
| 轻量级隧道 (OUT) | 4.10 | 3a0af8fd61f9 | BPF_PROG_TYPE_LWT_OUT |
lightweight tunnel (XMIT) | 4.10 | 3a0af8fd61f9 | BPF_PROG_TYPE_LWT_XMIT
轻量级隧道 (XMIT) | 4.10 | 3a0af8fd61f9 | BPF_PROG_TYPE_LWT_XMIT
cgroup sock ops (per conn) | 4.13 | 40304b2a1567 | BPF_PROG_TYPE_SOCK_OPS
cgroup sock操作 (每个连接) | 4.13 | 40304b2a1567 | BPF_PROG_TYPE_SOCK_OPS
stream parser / stream verdict | 4.14 | b005fd189cec | BPF_PROG_TYPE_SK_SKB
流分析器 / 流判定 | 4.14 | b005fd189cec | BPF_PROG_TYPE_SK_SKB
cgroup device manager | 4.15 | ebc614f68736 | BPF_PROG_TYPE_CGROUP_DEVICE
cgroup设备管理器 | 4.15 | ebc614f68736 | BPF_PROG_TYPE_CGROUP_DEVICE
socket msg verdict | 4.17 | 4f738adba30a | BPF_PROG_TYPE_SK_MSG
套接字消息判定 | 4.17 | 4f738adba30a | BPF_PROG_TYPE_SK_MSG
Raw tracepoint | 4.17 | c4f6699dfcb8 | BPF_PROG_TYPE_RAW_TRACEPOINT
裸跟踪点 | 4.17 | c4f6699dfcb8 | BPF_PROG_TYPE_RAW_TRACEPOINT
socket binding | 4.17 | 4fbac77d2d09 | BPF_PROG_TYPE_CGROUP_SOCK_ADDR
套接字绑定 | 4.17 | 4fbac77d2d09 | BPF_PROG_TYPE_CGROUP_SOCK_ADDR
LWT seg6local | 4.18 | 004d4b274e2a | BPF_PROG_TYPE_LWT_SEG6LOCAL
轻量级隧道seg6local | 4.18 | 004d4b274e2a | BPF_PROG_TYPE_LWT_SEG6LOCAL
lirc devices | 4.18 | f4364dcfc86d | BPF_PROG_TYPE_LIRC_MODE2
lirc设备 | 4.18 | f4364dcfc86d | BPF_PROG_TYPE_LIRC_MODE2
lookup SO_REUSEPORT socket | 4.19 | 2dbb9b9e6df6 | BPF_PROG_TYPE_SK_REUSEPORT
查找SO_REUSEPORT套接字 | 4.19 | 2dbb9b9e6df6 | BPF_PROG_TYPE_SK_REUSEPORT
flow dissector | 4.20 | d58e468b1112 | BPF_PROG_TYPE_FLOW_DISSECTOR
流解析器 | 4.20 | d58e468b1112 | BPF_PROG_TYPE_FLOW_DISSECTORcgroup sysctl | 5.2 | 7b146cebe30c | BPF_PROG_TYPE_CGROUP_SYSCTL
可控 cgroup | 5.2 | 7b146cebe30c | BPF_PROG_TYPE_CGROUP_SYSCTL
writable raw tracepoints | 5.2 | 9df1c28bb752 | BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE
可写原始跟踪点 | 5.2 | 9df1c28bb752 | BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE
cgroup getsockopt/setsockopt | 5.3 | 0d01da6afc54 | BPF_PROG_TYPE_CGROUP_SOCKOPT
cgroup getsockopt/setsockopt | 5.3 | 0d01da6afc54 | BPF_PROG_TYPE_CGROUP_SOCKOPT
Tracing (BTF/BPF trampoline) | 5.5 | f1b9509c2fb0 | BPF_PROG_TYPE_TRACING
追踪 (BTF/BPF 弹跳) | 5.5 | f1b9509c2fb0 | BPF_PROG_TYPE_TRACING
struct ops | 5.6 | 27ae7997a661 | BPF_PROG_TYPE_STRUCT_OPS
结构操作 | 5.6 | 27ae7997a661 | BPF_PROG_TYPE_STRUCT_OPS
extensions | 5.6 | be8704ff07d2 | BPF_PROG_TYPE_EXT
扩展 | 5.6 | be8704ff07d2 | BPF_PROG_TYPE_EXT
LSM | 5.7 | fc611f47f218 | BPF_PROG_TYPE_LSM
LSM (Linux安全模块) | 5.7 | fc611f47f218 | BPF_PROG_TYPE_LSM
lookup listening socket | 5.9 | e9ddbb7707ff | BPF_PROG_TYPE_SK_LOOKUP
查询监听套接字 | 5.9 | e9ddbb7707ff | BPF_PROG_TYPE_SK_LOOKUP
Allow executing syscalls | 5.15 | 79a7f8bdb159 | BPF_PROG_TYPE_SYSCALL
允许执行系统调用 | 5.15 | 79a7f8bdb159 | BPF_PROG_TYPE_SYSCALL
Map types (a.k.a. 表格, 在 BCC 术语中)
Map 类型
您内核支持的 Map 类型列表可以在文件 include/uapi/linux/bpf.h 中找到:
git grep -W 'bpf_map_type {' include/uapi/linux/bpf.h
| Map 类型 | 内核版本 | 提交 | 枚举 |
|---|---|---|---|
| 哈希 | 3.19 | 0f8e4bd8a1fc | BPF_MAP_TYPE_HASH".Array |
| Prog array | 4.2 | 04fd61ab36ec | BPF_MAP_TYPE_PROG_ARRAY |
| Perf events | 4.3 | ea317b267e9d | BPF_MAP_TYPE_PERF_EVENT_ARRAY |
| Per-CPU hash | 4.6 | 824bd0ce6c7c | BPF_MAP_TYPE_PERCPU_HASH |
| Per-CPU array | 4.6 | a10423b87a7e | BPF_MAP_TYPE_PERCPU_ARRAY |
| Stack trace | 4.6 | d5a3b1f69186 | BPF_MAP_TYPE_STACK_TRACE |
| cgroup array | 4.8 | 4ed8ec521ed5 | BPF_MAP_TYPE_CGROUP_ARRAY |
| LRU hash | 4.10 | 29ba732acbee 3a08c2fd7634 | BPF_MAP_TYPE_LRU_HASH |
| LRU per-CPU hash | 4.10 | 8f8449384ec3 961578b63474 | BPF_MAP_TYPE_LRU_PERCPU_HASH |
| LPM trie (longest-prefix match) | 4.11 | b95a5c4db09b | BPF_MAP_TYPE_LPM_TRIE |
| Array of maps | 4.12 | 56f668dfe00d | BPF_MAP_TYPE_ARRAY_OF_MAPSHash of maps |
| Netdevice references (array) | 4.14 | 546ac1ffb70d | BPF_MAP_TYPE_DEVMAP |
| Socket references (array) | 4.14 | 174a79ff9515 | BPF_MAP_TYPE_SOCKMAP |
| CPU references | 4.15 | 6710e1126934 | BPF_MAP_TYPE_CPUMAP |
| AF_XDP socket (XSK) references | 4.18 | fbfc504a24f5 | BPF_MAP_TYPE_XSKMAP |
| Socket references (hashmap) | 4.18 | 81110384441a | BPF_MAP_TYPE_SOCKHASH |
| cgroup storage | 4.19 | de9cbbaadba5 | BPF_MAP_TYPE_CGROUP_STORAGE |
| reuseport sockarray | 4.19 | 5dc4c4b7d4e8 | BPF_MAP_TYPE_REUSEPORT_SOCKARRAY |
| precpu cgroup storage | 4.20 | b741f1630346 | BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE |
| queue | 4.20 | f1a2e44a3aec | BPF_MAP_TYPE_QUEUE |
| stack | 4.20 | f1a2e44a3aec | BPF_MAP_TYPE_STACK |
| socket local storage | 5.2 | 6ac99e8f23d4 | BPF_MAP_TYPE_SK_STORAGENetdevice references (hashmap) |
| struct ops | 5.6 | 85d33df357b6 | BPF_MAP_TYPE_STRUCT_OPS |
| ring buffer | 5.8 | 457f44363a88 | BPF_MAP_TYPE_RINGBUF |
| inode storage | 5.10 | 8ea636848aca | BPF_MAP_TYPE_INODE_STORAGE |
| task storage | 5.11 | 4cf1bc1f1045 | BPF_MAP_TYPE_TASK_STORAGE |
| Bloom filter | 5.16 | 9330986c0300 | BPF_MAP_TYPE_BLOOM_FILTER |
| user ringbuf | 6.1 | 583c1f420173 | BPF_MAP_TYPE_USER_RINGBUF |
Map userspace API
Some (but not all) of these API features translate to a subcommand beginning with BPF_MAP_.
The list of subcommands supported in your kernel can be found in file
include/uapi/linux/bpf.h:
git grep -W 'bpf_cmd {' include/uapi/linux/bpf.h
| Feature | Kernel version | Commit |
|---|---|---|
Basic operations (lookup, update, delete, GET_NEXT_KEY) | 3.18 | db20fd2b0108 |
Pass flags to UPDATE_ELEM | 3.19 | 3274f52073d8 |
| Pre-alloc map memory by default | 4.6 | 6c9059817432传递NULL给GET_NEXT_KEY |
| 创建: 选择NUMA节点 | 4.14 | 96eabe7a40aa |
| 限制从系统调用方面的访问 | 4.15 | 6e71b04a8224 |
| 创建: 指定映射名称 | 4.15 | ad5b177bd73f |
LOOKUP_AND_DELETE_ELEM | 4.20 | bd513cd08f10 |
创建: BPF_F_ZERO_SEED | 5.0 | 96b3b6c9091d |
查找/更新的BPF_F_LOCK标志 | 5.1 | 96049f3afd50 |
| 限制从BPF方面的访问 | 5.2 | 591fe9888d78 |
FREEZE | 5.2 | 87df15de441b |
| 数组映射的mmap()支持 | 5.5 | fc9702273e2e |
LOOKUP_BATCH | 5.6 | cb4d03ab499d |
UPDATE_BATCH, DELETE_BATCH | 5.6 | aa2e93b8e58e |
LOOKUP_AND_DELETE_BATCH | 5.6 | 057996380a42 |
LOOKUP_AND_DELETE_ELEM哈希映射的支持 | 5.14 | 3e87f192b405 |
XDP
您的内核支持XDP程序的驱动程序或组件的近似列表可以用以下命令检索: ```sh````git grep -l XDP_SETUP_PROG drivers/
| 功能/驱动 | 内核版本 | 提交 |
|---|---|---|
| XDP核心架构 | 4.8 | 6a773a15a1e8 |
| 操作:丢弃 | 4.8 | 6a773a15a1e8 |
| 操作:传递到堆栈 | 4.8 | 6a773a15a1e8 |
| 直接转发(同一端口) | 4.8 | 6ce96ca348a9 |
| 直接数据包数据写入 | 4.8 | 4acf6c0b84c9 |
Mellanox mlx4驱动 | 4.8 | 47a38e155037 |
Mellanox mlx5驱动 | 4.9 | 86994156c736 |
Netronome nfp驱动 | 4.10 | ecd63a0217d5 |
QLogic(Cavium)qed*驱动 | 4.10 | 496e05170958 |
virtio_net驱动 | 4.10 | f600b6905015 |
Broadcom bnxt_en驱动 | 4.11 | c6d30e8391b8 |
Intel ixgbe*驱动 | 4.12 | 924708081629 |
Cavium thunderx驱动 | 4.12 | 05c773f52b96 |
| 通用XDP | 4.12 | b5cdae3291f7` |
注意: 本次翻译仅包括翻译部分,不包括原始文本。## 帮助者
您的内核支持的辅助者列表可在文件中找到。
Intel i40e 驱动程序 | 4.13 | 0c8493d90b6b
操作:重定向 | 4.14 | 6453073987ba
支持 tap | 4.14 | 761876c857cb
支持 veth | 4.14 | d445516966dc
Intel ixgbevf 驱动程序 | 4.17 | c7aec59657b6
Freescale dpaa2 驱动程序 | 5.0 | 7e273a8ebdd3
Socionext netsec 驱动程序 | 5.3 | ba2b232108d3
TI cpsw 驱动程序 | 5.3 | 9ed4050c0d75
Intel ice 驱动程序 |5.5| efc2214b6047
Solarflare sfc 驱动程序 | 5.5 | eb9a36be7f3e
Marvell mvneta 驱动程序 | 5.5 | 0db51da7a8e9
Microsoft hv_netvsc 驱动程序 | 5.6 | 351e1581395f
Amazon ena 驱动程序 | 5.6 | 838c93dc5449
xen-netfront 驱动程序 | 5.9 | 6c5aa6fc4def
Intel gi 驱动程序 | 5.10 | 9cbc948b5a20include/uapi/linux/bpf.h: include/uapi/linux/bpf.h:
git grep ' FN(' include/uapi/linux/bpf.h
按字母顺序排列
| Helper | 内核版本 | 授权许可 | 提交记录 |
|---|---|---|---|
BPF_FUNC_bind() | 4.17 | d74bad4e74ee | |
BPF_FUNC_bprm_opts_set() | 5.11 | 3f6719c7b62f | |
BPF_FUNC_btf_find_by_name_kind() | 5.14 | 3d78417b60fb | |
BPF_FUNC_cgrp_storage_delete() | 6.2 | c4bcfb38a95e | |
BPF_FUNC_cgrp_storage_get() | 6.2 | c4bcfb38a95e | |
BPF_FUNC_check_mtu() | 5.12 | 34b2021cc616 | |
BPF_FUNC_clone_redirect() | 4.2 | 3896d655f4d4 | |
BPF_FUNC_copy_from_user() | 5.10 | 07be4c4a3e7a | |
BPF_FUNC_copy_from_user_task() | 5.18 | GPL | 376040e47334 |
BPF_FUNC_csum_diff() | 4.6 | 7d672345ed29 | |
BPF_FUNC_csum_level() | 5.7 | 7cdec54f9713 | |
BPF_FUNC_csum_update() | 4.9 | 36bbef52c7eb"BPF_FUNC_current_task_under_cgroup() | |
BPF_FUNC_d_path() | 5.10 | 6e22ab9da793 | |
BPF_FUNC_dynptr_data() | 5.19 | 34d4ef5775f7 | |
BPF_FUNC_dynptr_from_mem() | 5.19 | 263ae152e962 | |
BPF_FUNC_dynptr_read() | 5.19 | 13bbbfbea759 | |
BPF_FUNC_dynptr_write() | 5.19 | 13bbbfbea759 | |
BPF_FUNC_fib_lookup() | 4.18 | GPL | 87f5fc7e48dd |
BPF_FUNC_find_vma() | 5.17 | 7c7e3d31e785 | |
BPF_FUNC_for_each_map_elem() | 5.13 | 69c087ba6225 | |
BPF_FUNC_get_attach_cookie() | 5.15 | 7adfc6c9b315 | |
BPF_FUNC_get_branch_snapshot() | 5.16 | GPL | 856c02dbce4f |
BPF_FUNC_get_current_ancestor_cgroup_id() | 5.6 | b4490c5c4e02 | |
BPF_FUNC_get_cgroup_classid() | 4.3 | 8d20aabe1c76 | |
BPF_FUNC_get_current_cgroup_id() | 4.18 | bf6fa2c893c5 | |
BPF_FUNC_current_task_under_cgroup() | 4.9 | 60d20f9195b2 | |
BPF_FUNC_d_path() | 5.10 | 6e22ab9da793 | |
BPF_FUNC_dynptr_data() | 5.19 | 34d4ef5775f7 | |
BPF_FUNC_dynptr_from_mem() | 5.19 | 263ae152e962 | |
BPF_FUNC_dynptr_read() | 5.19 | 13bbbfbea759 | |
BPF_FUNC_dynptr_write() | 5.19 | 13bbbfbea759 | |
BPF_FUNC_fib_lookup() | 4.18 | GPL | 87f5fc7e48dd |
BPF_FUNC_find_vma() | 5.17 | 7c7e3d31e785 | |
BPF_FUNC_for_each_map_elem() | 5.13 | 69c087ba6225 | |
BPF_FUNC_get_attach_cookie() | 5.15 | 7adfc6c9b315 | |
BPF_FUNC_get_branch_snapshot() | 5.16 | GPL | 856c02dbce4f |
BPF_FUNC_get_current_ancestor_cgroup_id() | 5.6 | b4490c5c4e02 | |
BPF_FUNC_get_cgroup_classid() | 4.3 | 8d20aabe1c76 | |
BPF_FUNC_get_current_cgroup_id() | 4.18 | bf6fa2c893c5"."BPF_FUNC_get_current_comm() | |
BPF_FUNC_get_current_pid_tgid() | 4.2 | ffeedafbf023 | |
BPF_FUNC_get_current_task() | 4.8 | GPL | 606274c5abd8 |
BPF_FUNC_get_current_task_btf() | 5.11 | GPL | 3ca1032ab7ab |
BPF_FUNC_get_current_uid_gid() | 4.2 | ffeedafbf023 | |
BPF_FUNC_get_func_arg() | 5.17 | f92c1e183604 | |
BPF_FUNC_get_func_arg_cnt() | 5.17 | f92c1e183604 | |
BPF_FUNC_get_func_ip() | 5.15 | 5d8b583d04ae | |
BPF_FUNC_get_func_ret() | 5.17 | f92c1e183604 | |
BPF_FUNC_get_retval() | 5.18 | b44123b4a3dc | |
BPF_FUNC_get_hash_recalc() | 4.8 | 13c5c240f789 | |
BPF_FUNC_get_listener_sock() | 5.1 | dbafd7ddd623 | |
BPF_FUNC_get_local_storage() | 4.19 | cd3394317653 | |
BPF_FUNC_get_netns_cookie() | 5.7 | f318903c0bf4BPF_FUNC_get_ns_current_pid_tgid() | |
BPF_FUNC_get_numa_node_id() | 4.10 | 2d0e30c30f84 | |
BPF_FUNC_get_prandom_u32() | 4.1 | 03e69b508b6f | |
BPF_FUNC_get_route_realm() | 4.4 | c46646d0484f | |
BPF_FUNC_get_smp_processor_id() | 4.1 | c04167ce2ca0 | |
BPF_FUNC_get_socket_cookie() | 4.12 | 91b8270f2a4d | |
BPF_FUNC_get_socket_uid() | 4.12 | 6acc5c291068 | |
BPF_FUNC_get_stack() | 4.18 | GPL | de2ff05f48af |
BPF_FUNC_get_stackid() | 4.6 | GPL | d5a3b1f69186 |
BPF_FUNC_get_task_stack() | 5.9 | fa28dcb82a38 | |
BPF_FUNC_getsockopt() | 4.15 | cd86d1fd2102 | |
BPF_FUNC_ima_file_hash() | 5.18 | 174b16946e39 | |
BPF_FUNC_ima_inode_hash() | 5.11 | 27672f0d280a | |
BPF_FUNC_inode_storage_delete() | 5.10 | 8ea636848aca | |
| RPC_FUNC_get_ns_current_pid_tgid() | 5.7 | b4490c5c4e02 | |
| RPC_FUNC_get_numa_node_id() | 4.10 | 2d0e30c30f84 | |
| RPC_FUNC_get_prandom_u32() | 4.1 | 03e69b508b6f | |
| RPC_FUNC_get_route_realm() | 4.4 | c46646d0484f | |
| RPC_FUNC_get_smp_processor_id() | 4.1 | c04167ce2ca0 | |
| RPC_FUNC_get_socket_cookie() | 4.12 | 91b8270f2a4d | |
| RPC_FUNC_get_socket_uid() | 4.12 | 6acc5c291068 | |
| RPC_FUNC_get_stack() | 4.18 | GPL | de2ff05f48af |
| RPC_FUNC_get_stackid() | 4.6 | GPL | d5a3b1f69186 |
| RPC_FUNC_get_task_stack() | 5.9 | fa28dcb82a38 | |
| RPC_FUNC_getsockopt() | 4.15 | cd86d1fd2102 | |
| RPC_FUNC_ima_file_hash() | 5.18 | 174b16946e39 | |
| RPC_FUNC_ima_inode_hash() | 5.11 | 27672f0d280a | |
| RPC_FUNC_inode_storage_delete() | 5.10 | 8ea636848aca"."BPF_FUNC_inode_storage_get() | |
BPF_FUNC_jiffies64() | 5.5 | 5576b991e9c1 | |
BPF_FUNC_kallsyms_lookup_name() | 5.16 | d6aef08a872b | |
BPF_FUNC_kptr_xchg() | 5.19 | c0a5a21c25f3 | |
BPF_FUNC_ktime_get_boot_ns() | 5.8 | 71d19214776e | |
BPF_FUNC_ktime_get_coarse_ns() | 5.11 | d05512618056 | |
BPF_FUNC_ktime_get_ns() | 4.1 | d9847d310ab4 | |
BPF_FUNC_ktime_get_tai_ns() | 6.1 | c8996c98f703 | |
BPF_FUNC_l3_csum_replace() | 4.1 | 91bc4822c3d6 | |
BPF_FUNC_l4_csum_replace() | 4.1 | 91bc4822c3d6 | |
BPF_FUNC_load_hdr_opt() | 5.10 | 0813a841566f | |
BPF_FUNC_loop() | 5.17 | e6f2dd0f8067 | |
BPF_FUNC_lwt_push_encap() | 4.18 | fe94cc290f53 | |
BPF_FUNC_lwt_seg6_action() | 4.18 | fe94cc290f53`BPF_FUNC_lwt_seg6_adjust_srh()` | |
| `BPF_FUNC_lwt_seg6_store_bytes()` | 4.18 | fe94cc290f53 | |
| `BPF_FUNC_map_delete_elem()` | 3.19 | d0003ec01c66 | |
| `BPF_FUNC_map_lookup_elem()` | 3.19 | d0003ec01c66 | |
| `BPF_FUNC_map_lookup_percpu_elem()` | 5.19 | 07343110b293 | |
| `BPF_FUNC_map_peek_elem()` | 4.20 | f1a2e44a3aec | |
| `BPF_FUNC_map_pop_elem()` | 4.20 | f1a2e44a3aec | |
| `BPF_FUNC_map_push_elem()` | 4.20 | f1a2e44a3aec | |
| `BPF_FUNC_map_update_elem()` | 3.19 | d0003ec01c66 | |
| `BPF_FUNC_msg_apply_bytes()` | 4.17 | 2a100317c9eb | |
| `BPF_FUNC_msg_cork_bytes()` | 4.17 | 91843d540a13 | |
| `BPF_FUNC_msg_pop_data()` | 5.0 | 7246d8ed4dcc | |
| `BPF_FUNC_msg_pull_data()` | 4.17 | 015632bb30da | |
| `BPF_FUNC_msg_push_data()` | 4.20 | 6fff607e2f14".BPF_FUNC_msg_redirect_hash() | |
BPF_FUNC_msg_redirect_map() | 4.17 | 4f738adba30a | |
BPF_FUNC_per_cpu_ptr() | 5.10 | eaa6bcb71ef6 | |
BPF_FUNC_perf_event_output() | 4.4 | GPL | a43eec304259 |
BPF_FUNC_perf_event_read() | 4.3 | GPL | 35578d798400 |
BPF_FUNC_perf_event_read_value() | 4.15 | GPL | 908432ca84fc |
BPF_FUNC_perf_prog_read_value() | 4.15 | GPL | 4bebdc7a85aa |
BPF_FUNC_probe_read() | 4.1 | GPL | 2541517c32be |
BPF_FUNC_probe_read_kernel() | 5.5 | GPL | 6ae08ae3dea2 |
BPF_FUNC_probe_read_kernel_str() | 5.5 | GPL | 6ae08ae3dea2 |
BPF_FUNC_probe_read_user() | 5.5 | GPL | 6ae08ae3dea2 |
BPF_FUNC_probe_read_user_str() | 5.5 | GPL | 6ae08ae3dea2 |
BPF_FUNC_probe_read_str() | 4.11 | GPL | a5e8c07059d0 |
BPF_FUNC_probe_write_user() | 4.8 | GPL | 96ae52279594"BPF_FUNC_rc_keydown() |
BPF_FUNC_rc_pointer_rel() | 5.0 | GPL | 01d3240a04f4 |
BPF_FUNC_rc_repeat() | 4.18 | GPL | f4364dcfc86d |
BPF_FUNC_read_branch_records() | 5.6 | GPL | fff7b64355ea |
BPF_FUNC_redirect() | 4.4 | 27b29f63058d | |
BPF_FUNC_redirect_map() | 4.14 | 97f91a7cf04f | |
BPF_FUNC_redirect_neigh() | 5.10 | b4ab31414970 | |
BPF_FUNC_redirect_peer() | 5.10 | 9aa1206e8f48 | |
BPF_FUNC_reserve_hdr_opt() | 5.10 | 0813a841566f | |
BPF_FUNC_ringbuf_discard() | 5.8 | 457f44363a88 | |
BPF_FUNC_ringbuf_discard_dynptr() | 5.19 | bc34dee65a65 | |
BPF_FUNC_ringbuf_output() | 5.8 | 457f44363a88 | |
BPF_FUNC_ringbuf_query() | 5.8 | 457f44363a88 | |
BPF_FUNC_ringbuf_reserve() | 5.8 | 457f44363a88 | |
BPF_FUNC_ringbuf_reserve_dynptr() | 5.19 | bc34dee65a65 | |
BPF_FUNC_ringbuf_submit() | 5.8 | 457f44363a88 | |
BPF_FUNC_ringbuf_submit_dynptr() | 5.19 | bc34dee65a65 | |
BPF_FUNC_send_signal() | 5.3 | 8b401f9ed244 | |
BPF_FUNC_send_signal_thread() | 5.5 | 8482941f0906 | |
BPF_FUNC_seq_printf() | 5.7 | GPL | 492e639f0c22 |
BPF_FUNC_seq_printf_btf() | 5.10 | eb411377aed9 | |
BPF_FUNC_seq_write() | 5.7 | GPL | 492e639f0c22 |
BPF_FUNC_set_hash() | 4.13 | ded092cd73c2 | |
BPF_FUNC_set_hash_invalid() | 4.9 | 7a4b28c6cc9f | |
BPF_FUNC_set_retval() | 5.18 | b44123b4a3dc | |
BPF_FUNC_setsockopt() | 4.13 | 8c4b4c7e9ff0 | |
BPF_FUNC_sk_ancestor_cgroup_id() | 5.7 | f307fa2cb4c9 | |
BPF_FUNC_sk_assign() | 5.6 | cf7fbe660f2dBPF_FUNC_ringbuf_reserve_dynptr() | |
BPF_FUNC_ringbuf_submit() | 5.8 | 457f44363a88 | |
BPF_FUNC_ringbuf_submit_dynptr() | 5.19 | bc34dee65a65 | |
BPF_FUNC_send_signal() | 5.3 | 8b401f9ed244 | |
BPF_FUNC_send_signal_thread() | 5.5 | 8482941f0906 | |
BPF_FUNC_seq_printf() | 5.7 | GPL | 492e639f0c22 |
BPF_FUNC_seq_printf_btf() | 5.10 | eb411377aed9 | |
BPF_FUNC_seq_write() | 5.7 | GPL | 492e639f0c22 |
BPF_FUNC_set_hash() | 4.13 | ded092cd73c2 | |
BPF_FUNC_set_hash_invalid() | 4.9 | 7a4b28c6cc9f | |
BPF_FUNC_set_retval() | 5.18 | b44123b4a3dc | |
BPF_FUNC_setsockopt() | 4.13 | 8c4b4c7e9ff0 | |
BPF_FUNC_sk_ancestor_cgroup_id() | 5.7 | f307fa2cb4c9 | |
BPF_FUNC_sk_assign() | 5.6 | cf7fbe660f2d | |
BPF_FUNC_ringbuf_reserve_dynptr() | 5.19 | bc34dee65a65 | |
BPF_FUNC_ringbuf_submit() | 5.8 | 457f44363a88 | |
BPF_FUNC_ringbuf_submit_dynptr() | 5.19 | bc34dee65a65 | |
BPF_FUNC_send_signal() | 5.3 | 8b401f9ed244 | |
BPF_FUNC_send_signal_thread() | 5.5 | 8482941f0906 | |
BPF_FUNC_seq_printf() | 5.7 | GPL | 492e639f0c22 |
BPF_FUNC_seq_printf_btf() | 5.10 | eb411377aed9 | |
BPF_FUNC_seq_write() | 5.7 | GPL | 492e639f0c22 |
BPF_FUNC_set_hash() | 4.13 | ded092cd73c2 | |
BPF_FUNC_set_hash_invalid() | 4.9 | 7a4b28c6cc9f | |
BPF_FUNC_set_retval() | 5.18 | b44123b4a3dc | |
BPF_FUNC_setsockopt() | 4.13 | 8c4b4c7e9ff0 | |
BPF_FUNC_sk_ancestor_cgroup_id() | 5.7 | f307fa2cb4c9 | |
BPF_FUNC_sk_assign() | 5.6 | cf7fbe660f2d"."BPF_FUNC_sk_cgroup_id() | |
BPF_FUNC_sk_fullsock() | 5.1 | 46f8bc92758c | |
BPF_FUNC_sk_lookup_tcp() | 4.20 | 6acc9b432e67 | |
BPF_FUNC_sk_lookup_udp() | 4.20 | 6acc9b432e67 | |
BPF_FUNC_sk_redirect_hash() | 4.18 | 81110384441a | |
BPF_FUNC_sk_redirect_map() | 4.14 | 174a79ff9515 | |
BPF_FUNC_sk_release() | 4.20 | 6acc9b432e67 | |
BPF_FUNC_sk_select_reuseport() | 4.19 | 2dbb9b9e6df6 | |
BPF_FUNC_sk_storage_delete() | 5.2 | 6ac99e8f23d4 | |
BPF_FUNC_sk_storage_get() | 5.2 | 6ac99e8f23d4 | |
BPF_FUNC_skb_adjust_room() | 4.13 | 2be7e212d541 | |
BPF_FUNC_skb_ancestor_cgroup_id() | 4.19 | 7723628101aa | |
BPF_FUNC_skb_change_head() | 4.10 | 3a0af8fd61f9 | |
BPF_FUNC_skb_change_proto() | 4.8 | 6578171a7ff0 | |
BPF_FUNC_sk_cgroup_id() | 5.7 | f307fa2cb4c9 | |
BPF_FUNC_sk_fullsock() | 5.1 | 46f8bc92758c | |
BPF_FUNC_sk_lookup_tcp() | 4.20 | 6acc9b432e67 | |
BPF_FUNC_sk_lookup_udp() | 4.20 | 6acc9b432e67 | |
BPF_FUNC_sk_redirect_hash() | 4.18 | 81110384441a | |
BPF_FUNC_sk_redirect_map() | 4.14 | 174a79ff9515 | |
BPF_FUNC_sk_release() | 4.20 | 6acc9b432e67 | |
BPF_FUNC_sk_select_reuseport() | 4.19 | 2dbb9b9e6df6 | |
BPF_FUNC_sk_storage_delete() | 5.2 | 6ac99e8f23d4 | |
BPF_FUNC_sk_storage_get() | 5.2 | 6ac99e8f23d4 | |
BPF_FUNC_skb_adjust_room() | 4.13 | 2be7e212d541 | |
BPF_FUNC_skb_ancestor_cgroup_id() | 4.19 | 7723628101aa | |
BPF_FUNC_skb_change_head() | 4.10 | 3a0af8fd61f9 | |
BPF_FUNC_skb_change_proto() | 4.8 | 6578171a7ff0。"BPF_FUNC_skb_change_tail()` | |
BPF_FUNC_skb_change_type() | 4.8 | d2485c4242a8 | |
BPF_FUNC_skb_cgroup_classid() | 5.10 | b426ce83baa7 | |
BPF_FUNC_skb_cgroup_id() | 4.18 | cb20b08ead40 | |
BPF_FUNC_skb_ecn_set_ce() | 5.1 | f7c917ba11a6 | |
BPF_FUNC_skb_get_tunnel_key() | 4.3 | d3aa45ce6b94 | |
BPF_FUNC_skb_get_tunnel_opt() | 4.6 | 14ca0751c96f | |
BPF_FUNC_skb_get_xfrm_state() | 4.18 | 12bed760a78d | |
BPF_FUNC_skb_load_bytes() | 4.5 | 05c74e5e53f6 | |
BPF_FUNC_skb_load_bytes_relative() | 4.18 | 4e1ec56cdc59 | |
BPF_FUNC_skb_output() | 5.5 | a7658e1a4164 | |
BPF_FUNC_skb_pull_data() | 4.9 | 36bbef52c7eb | |
BPF_FUNC_skb_set_tstamp() | 5.18 | 9bb984f28d5b | |
BPF_FUNC_skb_set_tunnel_key() | 4.3 | d3aa45ce6b94 | |
BPF_FUNC_skb_set_tunnel_opt() | 4.6 | 14ca0751c96f | |
BPF_FUNC_skb_store_bytes() | 4.1 | 91bc4822c3d6 | |
BPF_FUNC_skb_under_cgroup() | 4.8 | 4a482f34afcc | |
BPF_FUNC_skb_vlan_pop() | 4.3 | 4e10df9a60d9 | |
BPF_FUNC_skb_vlan_push() | 4.3 | 4e10df9a60d9 | |
BPF_FUNC_skc_lookup_tcp() | 5.2 | edbf8c01de5a | |
BPF_FUNC_skc_to_mctcp_sock() | 5.19 | 3bc253c2e652 | |
BPF_FUNC_skc_to_tcp_sock() | 5.9 | 478cfbdf5f13 | |
BPF_FUNC_skc_to_tcp_request_sock() | 5.9 | 478cfbdf5f13 | |
BPF_FUNC_skc_to_tcp_timewait_sock() | 5.9 | 478cfbdf5f13 | |
BPF_FUNC_skc_to_tcp6_sock() | 5.9 | af7ec1383361 | |
BPF_FUNC_skc_to_udp6_sock() | 5.9 | 0d4fad3e57df | |
BPF_FUNC_skc_to_unix_sock() | 5.16 | 9eeb3aa33ae0 | |
BPF_FUNC_snprintf() | 5.13 | 7b15523a989b"."BPF_FUNC_snprintf_btf() | |
BPF_FUNC_sock_from_file() | 5.11 | 4f19cab76136 | |
BPF_FUNC_sock_hash_update() | 4.18 | 81110384441a | |
BPF_FUNC_sock_map_update() | 4.14 | 174a79ff9515 | |
BPF_FUNC_spin_lock() | 5.1 | d83525ca62cf | |
BPF_FUNC_spin_unlock() | 5.1 | d83525ca62cf | |
BPF_FUNC_store_hdr_opt() | 5.10 | 0813a841566f | |
BPF_FUNC_strncmp() | 5.17 | c5fb19937455 | |
BPF_FUNC_strtol() | 5.2 | d7a4cb9b6705 | |
BPF_FUNC_strtoul() | 5.2 | d7a4cb9b6705 | |
BPF_FUNC_sys_bpf() | 5.14 | 79a7f8bdb159 | |
BPF_FUNC_sys_close() | 5.14 | 3abea089246f | |
BPF_FUNC_sysctl_get_current_value() | 5.2 | 1d11b3016cec | |
BPF_FUNC_sysctl_get_name() | 5.2 | 808649fb787d". | |
格式:只返回翻译后的内容,不包括原文。BPF_FUNC_sysctl_get_new_value()| 5.2| | 4e63acdff864 | |||
BPF_FUNC_sysctl_set_new_value()|5.2| | 4e63acdff864 | |||
BPF_FUNC_tail_call()|4.2| | 04fd61ab36ec | |||
BPF_FUNC_task_pt_regs()|5.15| GPL | dd6e10fbd9f | |||
BPF_FUNC_task_storage_delete()|5.11| | 4cf1bc1f1045 | |||
BPF_FUNC_task_storage_get()|5.11| | 4cf1bc1f1045 | |||
BPF_FUNC_tcp_check_syncookie()|5.2| | 399040847084 | |||
BPF_FUNC_tcp_gen_syncookie()|5.3| | 70d66244317e | |||
BPF_FUNC_tcp_raw_check_syncookie_ipv4()|6.0| | 33bf9885040c | |||
BPF_FUNC_tcp_raw_check_syncookie_ipv6()|6.0| | 33bf9885040c | |||
BPF_FUNC_tcp_raw_gen_syncookie_ipv4()|6.0| | 33bf9885040c | |||
BPF_FUNC_tcp_raw_gen_syncookie_ipv6()|6.0| | 33bf9885040c | |||
BPF_FUNC_tcp_send_ack()|5.5 | | 206057fe020aBPF_FUNC_tcp_sock() | 5.1 | 655a51e536c0 | |
BPF_FUNC_this_cpu_ptr() | 5.10 | 63d9b80dcf2c | |
BPF_FUNC_timer_init() | 5.15 | b00628b1c7d5 | |
BPF_FUNC_timer_set_callback() | 5.15 | b00628b1c7d5 | |
BPF_FUNC_timer_start() | 5.15 | b00628b1c7d5 | |
BPF_FUNC_timer_cancel() | 5.15 | b00628b1c7d5 | |
BPF_FUNC_trace_printk() | 4.1 | GPL | 9c959c863f82 |
BPF_FUNC_trace_vprintk() | 5.16 | GPL | 10aceb629e19 |
BPF_FUNC_user_ringbuf_drain() | 6.1 | 205715673844 | |
BPF_FUNC_xdp_adjust_head() | 4.10 | 17bedab27231 | |
BPF_FUNC_xdp_adjust_meta() | 4.15 | de8f3a83b0a0 | |
BPF_FUNC_xdp_adjust_tail() | 4.18 | b32cc5b9a346 | |
BPF_FUNC_xdp_get_buff_len() | 5.18 | 0165cc817075 | |
BPF_FUNC_xdp_load_bytes() | 5.18 | 3f364222d032 | |
BPF_FUNC_xdp_store_bytes() | 5.18 | 3f364222d032 | |
BPF_FUNC_xdp_output() | 5.6 | GPL | d831ee84bfc9 |
BPF_FUNC_override_return() | 4.16 | GPL | 9802d86585db |
BPF_FUNC_sock_ops_cb_flags_set() | 4.16 | b13d88072172 |
注:仅GPL兼容的BPF助手需要GPL兼容的许可证。内核所认可的当前GPL兼容许可证有:
- GPL
- GPL v2
- GPL和其他权利
- 双BSD/GPL
- 双MIT/GPL
- 双MPL/GPL
在您的内核源代码中查看GPL兼容许可证的列表。
程序类型
可以使用以下命令获取程序类型和支持的辅助函数列表:
git grep -W 'func_proto(enum bpf_func_id func_id' kernel/ net/ drivers/
| 程序类型 | 辅助函数 |
|---|---|
BPF_PROG_TYPE_SOCKET_FILTER | BPF_FUNC_skb_load_bytes() BPF_FUNC_skb_load_bytes_relative() BPF_FUNC_get_socket_cookie() BPF_FUNC_get_socket_uid() BPF_FUNC_perf_event_output() 基础函数 |
BPF_PROG_TYPE_KPROBE | BPF_FUNC_perf_event_output() BPF_FUNC_get_stackid() BPF_FUNC_get_stack() BPF_FUNC_perf_event_read_value() BPF_FUNC_override_return() 跟踪函数 |
BPF_PROG_TYPE_TRACEPOINT | BPF_FUNC_perf_event_output() BPF_FUNC_get_stackid() BPF_FUNC_get_stack() BPF_FUNC_d_path() 跟踪函数 |
BPF_PROG_TYPE_XDP | BPF_FUNC_perf_event_output() BPF_FUNC_get_smp_processor_id() BPF_FUNC_csum_diff() BPF_FUNC_xdp_adjust_head() BPF_FUNC_xdp_adjust_meta() BPF_FUNC_redirect() BPF_FUNC_redirect_map() BPF_FUNC_xdp_adjust_tail() BPF_FUNC_fib_lookup() 基础函数 |
BPF_PROG_TYPE_PERF_EVENT | BPF_FUNC_perf_event_output() BPF_FUNC_get_stackid() BPF_FUNC_get_stack() BPF_FUNC_perf_prog_read_value() 跟踪函数 |
BPF_PROG_TYPE_CGROUP_SOCK | |BPF_FUNC_get_current_uid_gid() 基本功能 |
BPF_PROG_TYPE_LWT_IN | |BPF_FUNC_lwt_push_encap() LWT功能 基本功能 |
BPF_PROG_TYPE_LWT_OUT | LWT功能 基本功能 |
BPF_PROG_TYPE_LWT_XMIT | |BPF_FUNC_skb_get_tunnel_key() BPF_FUNC_skb_set_tunnel_key() BPF_FUNC_skb_get_tunnel_opt() BPF_FUNC_skb_set_tunnel_opt() BPF_FUNC_redirect() BPF_FUNC_clone_redirect() BPF_FUNC_skb_change_tail() BPF_FUNC_skb_change_head() BPF_FUNC_skb_store_bytes() BPF_FUNC_csum_update() BPF_FUNC_l3_csum_replace() BPF_FUNC_l4_csum_replace() BPF_FUNC_set_hash_invalid() LWT功能 |
BPF_PROG_TYPE_SOCK_OPS | |BPF_FUNC_setsockopt() BPF_FUNC_getsockopt() BPF_FUNC_sock_ops_cb_flags_set() BPF_FUNC_sock_map_update() BPF_FUNC_sock_hash_update() BPF_FUNC_get_socket_cookie() 基本功能 |
BPF_PROG_TYPE_SK_SKB | |BPF_FUNC_skb_store_bytes() BPF_FUNC_skb_load_bytes() BPF_FUNC_skb_pull_data() BPF_FUNC_skb_change_tail() BPF_FUNC_skb_change_head() BPF_FUNC_get_socket_cookie() BPF_FUNC_get_socket_uid() BPF_FUNC_sk_redirect_map() BPF_FUNC_sk_redirect_hash() BPF_FUNC_sk_lookup_tcp() BPF_FUNC_sk_lookup_udp() BPF_FUNC_sk_release() 基本功能 |
BPF_PROG_TYPE_CGROUP_DEVICE | |BPF_FUNC_map_lookup_elem() BPF_FUNC_map_update_elem() BPF_FUNC_map_delete_elem() BPF_FUNC_get_current_uid_gid() BPF_FUNC_trace_printk() |
BPF_PROG_TYPE_RAW_TRACEPOINT | BPF_FUNC_perf_event_output() BPF_FUNC_get_stackid() BPF_FUNC_get_stack() BPF_FUNC_skb_output() 跟踪功能 |
BPF_PROG_TYPE_CGROUP_SOCK_ADDR | BPF_FUNC_get_current_uid_gid() BPF_FUNC_bind() BPF_FUNC_get_socket_cookie() 基本功能 |
BPF_PROG_TYPE_LWT_SEG6LOCAL | BPF_FUNC_lwt_seg6_store_bytes() BPF_FUNC_lwt_seg6_action() BPF_FUNC_lwt_seg6_adjust_srh() LWT功能 |
BPF_PROG_TYPE_LIRC_MODE2 | BPF_FUNC_rc_repeat() BPF_FUNC_rc_keydown() BPF_FUNC_rc_pointer_rel() BPF_FUNC_map_lookup_elem() BPF_FUNC_map_update_elem() BPF_FUNC_map_delete_elem() BPF_FUNC_ktime_get_ns() BPF_FUNC_tail_call() BPF_FUNC_get_prandom_u32() BPF_FUNC_trace_printk() |
BPF_PROG_TYPE_SK_REUSEPORT | BPF_FUNC_sk_select_reuseport() BPF_FUNC_skb_load_bytes() BPF_FUNC_load_bytes_relative() 基本功能 |
BPF_PROG_TYPE_FLOW_DISSECTOR | BPF_FUNC_skb_load_bytes() 基本功能 |
| 功能组 | 功能 |
|---|---|
基本功能 | BPF_FUNC_map_lookup_elem() BPF_FUNC_map_update_elem() BPF_FUNC_map_delete_elem() BPF_FUNC_map_peek_elem() BPF_FUNC_map_pop_elem() BPF_FUNC_map_push_elem() BPF_FUNC_get_prandom_u32() BPF_FUNC_get_smp_processor_id() BPF_FUNC_get_numa_node_id() BPF_FUNC_tail_call() BPF_FUNC_ktime_get_boot_ns() BPF_FUNC_ktime_get_ns() BPF_FUNC_trace_printk() BPF_FUNC_spin_lock() BPF_FUNC_spin_unlock() |
LWT函数 | BPF_FUNC_skb_load_bytes() BPF_FUNC_skb_pull_data() BPF_FUNC_csum_diff() BPF_FUNC_get_cgroup_classid() BPF_FUNC_get_route_realm() BPF_FUNC_get_hash_recalc() BPF_FUNC_perf_event_output() BPF_FUNC_get_smp_processor_id() BPF_FUNC_skb_under_cgroup() |