-
kernel/bpf
:该目录包含eBPF子系统的核心代码,包括eBPF虚拟机和相关数据结构的实现,还有与eBPF程序加载和验证相关的代码。 -
相关头文件:
include/uapi/linux/bpf.h
:该文件定义了与eBPF程序和eBPF虚拟机相关的常量和数据结构,供用户空间程序使用。include/uapi/linux/bpf_common.h
: 定义了一些通用的常量和宏,这些常量和宏用于内核中的不同模块中,包括eBPF模块在内。因此,bpf_common.h通常用于内核模块编写中,以便在内核中共享这些通用的定义。bpf_perf_event.h
: 是 Linux 内核中与性能计数器相关的 BPF(Berkeley Packet Filter)接口的头文件之一,它定义了 BPF 程序可以使用的一组函数和数据结构,用于从内核性能计数器中读取计数器数据bpfilter.h
:是 Linux 内核中与 BPF(Berkeley Packet Filter)过滤器相关的头文件之一,它定义了 Linux 内核中 BPF 程序用于操作和控制 BPF 过滤器的一组函数和数据结构。这些函数和数据结构允许用户空间的 BPF 程序在内核中创建和操作 BPF 过滤器,从而对输入和输出的网络数据流进行过滤和修改。用户空间的 BPF 程序可以使用这些接口来控制网络数据流,实现防火墙、数据包捕获和网络监控等网络安全和性能分析用途。
-
samples/bpf
:该目录包含一些使用eBPF的示例程序,用于演示eBPF在不同方面的应用。 -
tools/bpf
:该目录包含一些与eBPF相关的实用程序,如bpftrace和bpftool等,它们用于诊断和调试eBPF程序。 -
net/core/filter.c
:该文件包含了Linux内核网络子系统中与eBPF相关的代码,它允许用户空间程序使用eBPF程序来过滤和修改网络数据包。
ebpf子系统在Linux内核源码中的分布情况
于 2023-02-26 00:08:02 首次发布