Python BPF Assembler.
Based on the BPF assembler in Linux sources.
Wheels are available.
To build from source you need a relatively recent Flex & Bison:
- On Windows, you can use winflexbison.
- On macOS (and sometimes on Linux, on older distributions), you can install them from Homebrew. Note that you might have to add Homebrew's version to the front of the
PATH
, e.g.PATH="$(brew --prefix)/opt/flex/bin:$(brew --prefix)/opt/bison/bin:$PATH"
.
import bpf_asm
ASM = """\
ldh [12]
jeq #0x800, accept, drop
accept:
ret #65536
drop:
ret #0
"""
print(bpf_asm.assemble(ASM))
Or use the pybpf_asm
script. See pybpf_asm --help
for usage.
GPL-2.0-only.