From: Eduard Zingerman <eddyz87@gmail.com>
To: bpf@vger.kernel.org
Cc: kernel-team@meta.com
Subject: [ANNOUNCEMENT] libbpf v1.3.0 release
Date: Thu, 23 Nov 2023 01:29:50 +0200 [thread overview]
Message-ID: <bb8b9193aa1cc32e76614c5edcee320f2a4c0594.camel@gmail.com> (raw)
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
reply other threads:[~2023-11-22 23:29 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bb8b9193aa1cc32e76614c5edcee320f2a4c0594.camel@gmail.com \
--to=eddyz87@gmail.com \
--cc=bpf@vger.kernel.org \
--cc=kernel-team@meta.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox