eBPF 代码分析
代码目录
eBPF C 代码在 bpf
目录下,包含以下代码文件:
bpf_alignchecker.c
: TODObpf_host.c
: TODObpf_lxc.c
: TODObpf_network.c
: TODObpf_overlay.c
: TODObpf_probes.c
: TODObpf_sock.c
: TODObpf_sock_term.c
: TODObpf_wireguard.c
: TODObpf_xdp.c
: TODO
另外还 include 了一些辅助函数和宏,在 bpf/include
目录下:
bpf/include/bpf
: 一些 cilium 专用的辅助函数和宏。bpf/include/linux
: 一些 linux 内核中的数据结构、常量和枚举类型。
cilium 辅助宏和函数
bpf/include/bpf/helpers.h
- BPF_FUNC_REMAP:
bpf_lxc.c
TAIL_CT_LOOKUP4/TAIL_CT_LOOKUP6
: 定义一个名为 NAME 的函数并指定尾调用 ID 号,该函数中会判断当前数据包是否命中 conntrack 且符合CONDITION
,如果都满足,则会调用另一个名为TARGET_NAME
的函数(尾调用 ID 为TAEGET_ID
)。