pylwcb tutorial
pylwcb 是 lwcb 的 python 模块。我们可以利用它来进行开发 eBPF 程序,然后使用 python 进行复杂的 数据处理。
1. hello world
通过 import pylwcb
导入 pylwcb 模块。 我们提供了一个简单的 say_hello 方法,该方法会打印
出 hello from pylwcb modules
字样。
import pylwcb
print(pylwcb.say_hello())
2. 一个简单的 pylwcb 程序
下面是一个结合了 lwcb 脚本代码的 pylwcb 程序。
import pylwcb
lwcb_program = """
kprobe:tcp_rcv_established {
th = tcphdr(skb);
ih = iphdr(skb);
print(ntop(bswap(ih->saddr)), ntop(bswap(ih->daddr)), bswap(th->source), bswap(th->dest));
}
"""
lwcb = pylwcb.Pylwcb(lwcb_program)
lwcb.attach()
events = lwcb.read_events()
for event in events:
print(event)
lwcb_program
存放了 lwcb 脚本代码,其主要功能是探测内核的 tcp_rcv_established 函数,打印 tcp 接收到报文的四元组,即源地址、目的地址、源端口和目的端口。
lwcb = pylwcb.Pylwcb(lwcb_program)
创建了 Pylwcb 实例lwcb.attach()
编译并加载 eBPF 程序lwcb.read_events()
读取 eBPF 程序的输出