We're happy to announce our first release of 2022!
Breaking Changes
-
cmd/bpf2go: strip DWARF info by @lmb in #481
DWARF info is now stripped from compiled BPF objects by default when using bpf2go, resulting in significant savings in object size. It can be re-enabled if desired. -
elf_reader: emit
UnspecifiedProgram
s intoCollectionSpec
by @ti-mo in #529
Previously,ProgramSpec
s were not emitted toCollectionSpec.Programs
if their ELF section names were not recognized.
This limitation has been lifted: programs that are explicitly assigned to an ELF section will now always appear in the CollectionSpec, though they will all be of typeUnspecifiedProgram
. TheSectionName
field was added to help the user determine program types manually. -
map: make Map.Extra field a pointer to a bytes.Reader by @ti-mo in #546
A last-minute addition, no longer allocate an emptybytes.Reader
for everyMap
, as this is generally only used when loading legacy programs with iproute2 map definitions. If you're using this field, check fornil
before accessing.
Features
- automatically generate syscall wrappers by @lmb in #425
- asm: update eBPF built-in functions by @florianl in #459
- program: add program type syscall by @florianl in #458
- Add v5.14 to CI builds by @lmb in #462
- Improve kernel 4.4.x compatibility by @nplanel in #436
- Add BTFIDLink to support fentry/fexit/fmod_ret/tp_raw/lsm BPF programs by @mehrdadrad in #460
- link/uprobe: support ref_ctr_offset by @mmat11 in #463
- Allows user space to update/lookup map elements under bpf_spin_lock by @mehrdadrad in #473
- Makefile: prefer podman for container engine by @syscll in #480
- asm: add Instructions.SizeBytes() for convenience and readability by @ti-mo in #492
- Link: add XDP support by @mehrdadrad in #484
- link: add LoadPinnedLink by @lmb in #491
- implement BPF_PROG_BIND_MAP by @florianl in #485
- use clang 13 by @lmb in #488
- Read LINUX_VERSION_CODE from vDSO ELF header instead of uname by @brycekahle in #500
- cmd/bpf2go: infer llvm-strip suffix from clang binary by @lmb in #504
- Add support for function pointers by @pippolo84 in #499
- prog: update program types from libbpf by @mehrdadrad in #496
- btf: rename FindType to TypeByName, add TypesByName and TypeByID methods by @ti-mo in #503
- btf: support raw BTF in LoadSpecFromReader by @lmb in #520
- cmd/bpf2go: allow to specify native target by @tklauser in #526
- asm: Add Jump32 support by @arthurfabre in #514
- link: expose link info with type-specific information by @mehrdadrad in #509
- Adopt Go 1.18 fuzzing and fix btf crashes by @lmb in #530
- elf_reader,btf: support multiple programs per ELF section by @ti-mo in #508
- Eliminate binary.Read in instruction (un)marshaler by @ti-mo in #532
- program: retrieve xlated Instructions from Program by @ti-mo in #538
- Support attaching SocketFilter programs to raw sockets by @folbricht in #540
Bug Fixes
- CI: add
make clean
before testdata rebuild by @ti-mo in #450 - sys: avoid zero fd by @lmb in #454
- run-tests: don't require CI_MAX_KERNEL_VERSION to be set by @lmb in #470
- features: fix HaveProgType(ebpf.Syscall) by @rgo3 in #471
- elf: fix some typos in getProgType by @alxn in #493
- CI: work around hung agents by @lmb in #516
- link: switch tests from printk to vprintk symbol by @ti-mo in #518
- map: allow empty ProgramArray to not be assigned by @lmb in #513
- prog: don't panic when prog load EPERMs with empty verifier log by @ti-mo in #519
- map, prog: fix typo in MEMLOCK error string by @tklauser in #527
- btf: only return exact matches from AnyTypesByName by @lmb in #525
- Remove BTF type IDs on map creation if not supported by @chenhengqi in #534
- rlimit: avoid lowering Max rlimit by @ti-mo in #533
- linker: Allow calling into unimplemented forward function declarations by @ti-mo in #544
Documentation
Examples
- reproducible builds for examples by @lmb in #417
- examples: added cgroup_skb example by @mingleiw in #465
- Add fentry example by @mehrdadrad in #482
- examples: add $BPF_STRIP to bpf2go invocation by @lmb in #498
- tidy up examples by @lmb in #521
New Contributors
During this release cycle, we've welcomed the following new contributors:
- @nplanel made their first contribution in #436
- @mingleiw made their first contribution in #465
- @syscll made their first contribution in #478
- @alxn made their first contribution in #493
- @chenhengqi made their first contribution in #534
Thanks to all contributors for your support!
Full Changelog: v0.7.0...v0.8.0