重要修复:v0.26 及之前的 agent/sampler 无法运行
此前发布的 xdp-agent / xdp-sampler 内嵌的是空 eBPF bytecode,启动即报 bytecode 为空。本版是第一个真正可运行的数据面二进制。
已用 cilium/ebpf 验证内嵌 bytecode 可解析、map 齐全:
xdp_filter.o → src_ban_global(LPMTrie,65536) target_hosts(Hash,4096)
src_ban(LPMTrie,262144) counters(PerCPUArray,4)
xdp_sampler.o → sampling_rate flow_table global_stats samples(RingBuf)
同时修掉两个采样侧的真实缺陷
- 包长算错:此前用
ctx->data_meta - data,而data_meta指向元数据区、与包长无关 —— 上报的字节数全是垃圾。 - 采样退化成"全采或全不采":随机种子只用
rx_queue_index,同一队列上每个包算出的随机数相同,采样率形同虚设。现改为混入五元组与 ktime。
构建流程加固
make bpf-check 断言 .o 非空,build/dist 都依赖它 —— 忘跑 make bpf 时构建直接失败,而不是产出坏二进制。新增 make release 串起 bpf → check → dist。
预编译二进制(Linux amd64/arm64),下载即用。