Slide 9
Slide 9 text
cilium/ebpf
Cilium などでも利⽤されている eBPF ⽤の Go ライブラリ
eBPF プログラム(written in C)から各種 Go のコードを⽣成する bpf2go CLI
link, err := link.AttachXDP(link.XDPOptions{
Program: objs.CountPackets,
Interface: iface.Index,
})
var count uint64
err := objs.PktCount.Lookup(uint32(0), &count)
var objs counterObjects
if err := loadCounterObjects(&objs, nil);
各種トレースポイントに eBPF コードをアタッチする
⾃動⽣成されたコードを利⽤して eBPF map のデータを操作可能
eBPF ELF を読み込む
eBPF ELF ファイル
(バイトコード)
counter_bpfel.o
eBPF プログラム
counter_bpfel.go