eBPF Talk: 优化 XDP ACL 2023-05-21 eBPF eBPF Talk 约 1476 字 预计阅读 3 分钟 书接上回 ,本文讲解对高性能 XDP ACL 的开源项目 xdp_acl 的优化内容: 按需开启 eBPF 中的 debug 日志 动态调整 bitmap 大小 使用 PERCPU ARRAY 优化规则 bpf map 动态增删 ACL 规则的处理 以下代码片段 阅读更多
eBPF Talk: 再论高性能 eBPF ACL 2023-05-21 eBPF eBPF Talk 约 1230 字 预计阅读 3 分钟 因为近期又得搞基于 eBPF 的 ACL,所以再次研究基于 eBPF 的 ACL 的几篇论文和一个开源项目。 以前,我研究过 「eBPF技术实践:高性能ACL」,并实现了一个 阅读更多
eBPF Talk: SKB 工作原理【译】 2023-05-21 eBPF eBPF Talk 约 2210 字 预计阅读 5 分钟 翻译自 How SKBs work。 数据区域的布局 第一张图描述的是 SKB 数据区域的布局,以及几个 struct sk_buff 中的指针。 本文余下内容将讲解 SKB 数据区域的操作:通过修改这些指 阅读更多
eBPF Talk: bpf helpers 的另一面 2023-05-20 eBPF eBPF Talk 约 1659 字 预计阅读 4 分钟 本文不讲解 bpf helpers 的使用,也不讲解 bpf helpers 的源代码。本文讲解的是,verifier 是怎么处理 bpf helpers 的。 书接上回 eBPF Talk: 揭秘 XDP 转发网络包,本文解答: 为什么 XDP 阅读更多
eBPF Talk: 揭秘 XDP 转发网络包 2023-05-20 eBPF eBPF Talk 约 1354 字 预计阅读 3 分钟 书接上回 eBPF Talk: 解密 XDP generic 模式,本文从源代码层面剖析 XDP 转发网络包的实现。 demo 按需将网络包从另一张网卡转发走。 1 2 3 4 5 6 7 8 9 static volatile const u32 REDIRECT_IFINDEX = 0xFFFFFFFF; SEC("xdp") int xdp_redirect(struct xdp_md 阅读更多
eBPF Talk: 解密 XDP generic 模式 2023-05-20 eBPF eBPF Talk 约 1270 字 预计阅读 3 分钟 近期又得搞 XDP 了,就顺手研究了下 XDP generic 模式的源代码。 XDP generic 模式的函数位置 已知,内核协议栈会对每个 skb 都执行一次 XDP generic 模式处理,当然是启用了 XDP generic 模式的情 阅读更多
eBPF Talk: 好用的 histogram 2023-05-20 eBPF eBPF Talk 约 632 字 预计阅读 2 分钟 最近 eBPF 轮子造的多了后,发现需要用 histogram 的时候,要写的代码就一个模板,如下。 以下内容以 syscalldist 为例。 用于 histogram 的 C 代码 参考(抄袭) libbpf-tools 里 histogram 的实现,用于 histogram 的 C 代 阅读更多
eBPF Talk: bpf2bpf 特性揭秘 2023-05-20 eBPF eBPF Talk 约 1770 字 预计阅读 4 分钟 在 eBPF Talk: bpf2bpf 特性简介 中已介绍了 bpf2bpf 特性,同时有 demo 介绍该怎么使用该特性。 在该特性神秘面纱的背后,到底是怎样的呢?让我娓娓道来。 编译阶段 不懂编译器 clang 中 阅读更多
eBPF Talk: cilium/ebpf 中 bpf map 的诞生 2023-05-20 eBPF eBPF Talk 约 537 字 预计阅读 2 分钟 在博客 eBPF Talk: 揭秘 BPF map 前生今世,已讲解了 bpf map 从定义到创建的整个过程。 不过博客中讲解的加载器是 C 语言的 libbpf。 在此,就讲解一下纯 Go 语言的加载 阅读更多
eBPF Talk: bpf map 源码导读 2023-01-04 eBPF eBPF Talk 约 899 字 预计阅读 2 分钟 eBPF map 有诸多类型。如果想要理解它们的实现,该如何去阅读它们的源代码呢? 类型接口 在内核的源代码海洋中,接口的定义一般是:结构体的字段都是函数指针 阅读更多