libbpf v1.3.0
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()
andbpf_prog_query_opts()
are extended to work withtcx
programs, plus two new API functions are added:bpf_prog_detach_opts()
bpf_program__attach_tcx()
- the following new SEC definitions are now available:
- 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()
- the following new SEC definitions are now available:
- support for section
SEC("usdt.s")
is added for sleepableusdt
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 existingbpf_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 forbpf_obj_pin()
andbpf_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 withxdp_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 inbpf_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;