eBPF Talk: bpf prog stats

根据以下两个 commit,可以看到,自 5.1 内核起,bpf prog 可以统计自己的运行情况了。 bpf: enable program stats 5.1 kernel. bpf: Sharing bpf runtime stats with BPF_ENABLE_STATS 5.8 kernel. bpf: Improve program stats run-time calculation 6.x kernel. stats 例子 以 bpf2bpf demo

eBPF Talk: packet range check

在 XDP 或者 tc-bpf 中,经常要直接访问网络包内容;而在访问网络包内容之前,总是需要先检查访问的内容是否在 data_end 之内。 So,学习一下 packet range check 相关 commit 的历史;以史

eBPF Talk: 踩坑 XDP on Mellanox

对 XDP 了解得越多,对 XDP 的信心越是膨胀。最近在 XDP on Mellanox 上踩了个坑,让我对 XDP 的认识又有了新的提升:就是需要保持对技术的敬畏之心,不要过于自信。 P.S. Mellanox 网

eBPF Talk: tc-bpf 转发网络包

在 tc-bpf 里转发网络包,跟 XDP 里转发网络包有什么不同呢? eBPF Talk: XDP 转发失败了 eBPF Talk: 揭秘 XDP 转发网络包 eBPF Talk: 揭秘 XDP 转发网络包【续】 呃,其实还是那个奇葩的需求,不

eBPF Talk: eBPF 程序模块化与单测构想

我们来复习一下以下两篇文章: eBPF Talk: freplace on x86【汇编慎入】 eBPF Talk: 给 XDP 程序写 unittest 一个构想:使用 replace 实现 eBPF 程序的模块化,使用 BPF_PROG_TEST_RUN 对 eBPF 程序模块进行单测。 eBPF 程序

eBPF Talk: 给 XDP 程序写 unittest

我们都知道写 unittest 是非常必要的,但是在 eBPF 程序里,该如何给 XDP 程序写 unittest 呢? bpf: introduce BPF_PROG_TEST_RUN command since 4.12 kernel 在 4.12 内核中,引入了 BPF_PROG_TEST_RUN 命令,可以用来给 XDP 和 tc-bpf 等 eBPF 程序写 unit

eBPF Talk: helpers for bpf map

通过学习 eBPF Talk: eBPF helpers 的另一面,我们知道 eBPF helpers 是通过 bpf_func_proto 结构体来实现的,不同的 helpers 函数对应不同的 bpf_func_proto;甚至,对于同一个 helpers 函数,不

eBPF Talk: 3.18 kernel 里的 CFG 检查

为了克服对 bpf verifier 的恐惧,打算从 verifier.c 最初的 commit 开始学习 verifier;这是因为最初版本的 verifier 并不复杂。相对而言,理解起来会容易一些。 bpf: verifier (add branch/goto checks) 在该 commit