A permissive library for managing eBPF programs.
oxidebpf allows a user to easily manage a pre-built eBPF object file, creating
groups of programs based on functionality and loading them as units.
For a quick getting-started, see the documentation for
Note: by default,
oxidebpf will load BPF programs with logging disabled. If you
wish to enable logging, enable the
log_buf feature. If the
default log size (4096) is not large enough to hold the verifier’s logs, the load
will fail. If you need more space,
oxidebpf will pull a log size in bytes from the
LOG_SIZE environment variable (e.g.,
The slog Logger for the oxidebpf library. You can change the destination
by accessing the drain control with
The description of an individual eBPF program. Note: This is not the same
as the eBPF program itself, the actual binary is loaded from a
Structure that parses eBPF objects from an ELF object.
A group of eBPF
ProgramVersions that a user
wishes to load from a blueprint. The loader will attempt each
in order until one successfully loads, or none do.
Message format for messages sent back across the channel
An enum of the different BPF program types.
Enum which describes how the blueprint will parse sections not covered in our eBPF ABI.
This trait specifies a map that can be read from or written to (e.g., array types).