* [ANNOUNCEMENT] libbpf v1.3.0 release
@ 2023-11-22 23:29 Eduard Zingerman
0 siblings, 0 replies; only message in thread
From: Eduard Zingerman @ 2023-11-22 23:29 UTC (permalink / raw)
To: bpf; +Cc: kernel-team
Libbpf v1.3.0 has been released ([0]).
It has been over 4 months since the release of libbpf v1.2.2, and a
significant number of new features are now available.
So it looks like a good time for a new release.
A big thank you to all the contributors that are constantly making
libbpf a better BPF loader library!
Please find the summary of libbpf v1.3.0 changes below.
## User space-side features and APIs
- support for `netfilter` programs is added:
- `SEC("netfilter")` is now available
- API function `bpf_program__attach_netfilter()` is now available
- support for `tcx` BPF programs is added:
- the following new SEC definitions are now available:
- `SEC("tc/egress")`
- `SEC("tc/ingress")`
- `SEC("tcx/egress")`
- `SEC("tcx/ingress")`
- the following SEC definitions are now considered legacy:
- `SEC("tc")`
- `SEC("action")`
- `SEC("classifier")`
- functions `bpf_prog_attach_opts()` and `bpf_prog_query_opts()` are
extended to work with `tcx` programs, plus two new API functions
are added:
- `bpf_prog_detach_opts()`
- `bpf_program__attach_tcx()`
- support for multi-uprobe programs is added:
- the following new SEC definitions are now available:
- `SEC("uprobe.multi")`
- `SEC("uprobe.multi.s")`
- `SEC("uretprobe.multi")`
- `SEC("uretprobe.multi.s")`
- plus a new API function:
- `bpf_program__attach_uprobe_multi()`
- support for section `SEC("usdt.s")` is added for sleepable `usdt`
programs;
- support for Unix domain socket cgroup BPF programs is added the
following new SEC definitions are now available:
- `SEC("cgroup/connect_unix")`
- `SEC("cgroup/sendmsg_unix")`
- `SEC("cgroup/recvmsg_unix")`
- `SEC("cgroup/getpeername_unix")`
- `SEC("cgroup/getsockname_unix")`
- new `LIBBPF_OPTS_RESET()` utility macro;
- new `bpf_object__unpin()` function to complement existing `bpf_object__pin()`;
- new API functions for work with ring buffers:
- `ring_buffer__ring()`
- `ring__producer_pos()`
- `ring__consumer_pos()`
- `ring__avail_data_size()`
- `ring__size()`
- `ring__map_fd()`
- `ring__consume()`
- `path_fd` support for `bpf_obj_pin()` and `bpf_obj_get()`;
- uprobe SEC matcher extended to allow golang symbols;
- uprobe support for symbols versioning;
- `bpf_map__set_value_size()` can now be used to resize memory mapped
region for memory mapped maps;
- `struct bpf_xdp_query_opts` extended with `xdp_zc_max_segs` output field;
- basic BTF sanity check pass added to reject bogus BTF.
## BPF-side features and APIs
- triple-underscore flavors for kfunc relocation: like with CO-RE
structs `___.*` suffix is ignored when kfunc relocations are
resolved;
- `__percpu_kptr` macro definition in `bpf_helpers.h`;
- support for exception callbacks, use
`__attribute__(btf_decl_tag("exception_callback:<func_name>"))`
to specify exception callback for a program;
## Bug fixes
- fix for btf_dump__dump_type_data() when type contains bitfields;
- fix for correct work of offsetof() and container_of() macro with CO-RE;
- no longer attempt to load modules BTF when resolving CO-RE
relocations if CAP_SYS_ADMIN are absent;
- regex based function search for "kprobe.multi/" programs no longer
attempts to trace functions that cannot be traced;
- bpf_program__set_type() no longer resets sec_def if it is set to a
custom fallback SEC handler;
- fix for memory leak possible after bpf_program__set_attach_target() call;
[0] https://github.com/libbpf/libbpf/releases/tag/v1.3.0
[1] Full Changelog: https://github.com/libbpf/libbpf/compare/v1.2.2...v1.3.0
Best regards,
Eduard
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-11-22 23:29 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-22 23:29 [ANNOUNCEMENT] libbpf v1.3.0 release Eduard Zingerman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox