| 0.24.8 |
| ------ |
| - Added `Program::attach_netfilter_with_opts` for attaching to netfilter |
| hooks |
| |
| |
| 0.24.5 |
| ------ |
| - Renamed `Program::get_id_by_fd` to `id_from_fd` |
| - Deprecated `Program::get_id_by_fd` |
| - Renamed `Program::get_fd_by_id` to `fd_from_id` |
| - Deprecated `Program::get_fd_by_id` |
| - Adjusted `Program::{attach_*, test_run}` methods to work on shared |
| receivers |
| - Adjusted `PerfBufferBuilder` to work with `MapCore` objects |
| |
| |
| 0.24.4 |
| ------ |
| - Added `Program::fd_from_pinned_path` method for restoring program descriptor |
| from a pinned path |
| |
| |
| 0.24.0 |
| ------ |
| - Split `{Open,}{Map,Program}` into `{Open,}{Map,Program}` (for shared |
| access) and `{Open,}{Map,Program}Mut` (for exclusive access) |
| - Added `AsRawLibbpf` impl for `OpenObject` and `ObjectBuilder` |
| - Decoupled `Map` and `MapHandle` more and introduced `MapCore` trait |
| abstracting over common functionality |
| - Adjusted `SkelBuilder::open` method to require mutable reference to |
| storage space for BPF object |
| - Adjusted `{Open,}Object::from_ptr` constructor to be infallible |
| - Added `{Open,}Object::maps{_mut,}` and `{Open,}Object::progs{_mut,}` |
| for BPF map and program iteration |
| - Adjusted various APIs to return/use `OsStr` instead of `CStr` or `str` |
| - Adjusted `{Open,}Program` to lazily retrieve name and section |
| - Changed `name` and `section` methods to return `&OsStr` and made |
| constructors infallible |
| - Adjusted `OpenObject::name` to return `Option<&OsStr>` |
| - Removed `Result` return type from |
| `OpenProgram::{set_log_level,set_autoload,set_flags}` |
| - Added `Object::name` method |
| - Added `Copy` and `Clone` impls for types inside `btf::types` module |
| - Adjusted `OpenMap::set_inner_map_fd` to return `Result` |
| - Adjusted `ProgramInput::context_in` field to be a mutable reference |
| - Made inner `query::Tag` contents publicly accessible |
| - Fixed potential memory leak in `RingBufferBuilder::build` |
| - Removed `Display` implementation of various `enum` types |
| |
| |
| 0.23.2 |
| ------ |
| - Fixed build failure on Android platforms |
| |
| |
| 0.23.1 |
| ------ |
| - Added support for user ring buffers |
| - Fixed handling of bloom filter type maps |
| - Added `Map::lookup_bloom_filter` for looking up elements in a bloom filter |
| |
| |
| 0.23.0 |
| ------ |
| - Overhauled crate feature set: |
| - Removed `novendor` feature |
| - Added `vendored` feature to use vendored copies of all needed libraries |
| - Added `Program::attach_ksyscall` for attaching to ksyscall handlers |
| - Added `Program::test_run` as a way for test-running programs |
| - Added `OpenMap::initial_value{,_mut}` for retrieving a map's initial value |
| - Added `replace` functionality to `Xdp` type |
| - Added low-level `consume_raw` and `poll_raw` methods to `RingBuffer` type |
| - Added `recursion_misses` attribute to `query::ProgramInfo` type |
| - Added `AsRawLibbpf` impl for `OpenProgram` |
| - Fixed incorrect inference of `btf::types::MemberAttr::Bitfield` variant |
| - Fixed examples not building on non-x86 architectures |
| - Fixed potentially missing padding byte initialization on some target |
| architectures |
| - Fixed compilation issues caused by mismatching function signatures in certain |
| cross-compilation contexts |
| - Updated `libbpf-sys` dependency to `1.4.0` |
| - Bumped minimum Rust version to `1.71` |
| |
| |
| 0.22.1 |
| ------ |
| - Introduced `Xdp` type for working with XDP programs |
| - Fixed handling of autocreate maps with `Object` type |
| |
| |
| 0.22.0 |
| ------ |
| - Reworked `Error` type: |
| - Replaced `enum` with data variants with `struct` hiding internal structure |
| - Added support for chaining of errors |
| - Overhauled how errors are displayed |
| - Overhauled `query::ProgramInfo` and `query::ProgInfoIter` to make them more |
| readily usable |
| - Added `Btf::from_vmlinux` constructor and adjusted `Btf::from_path` to work |
| with both raw and ELF files |
| - Reworked `ObjectBuilder`: |
| - Made `name` method fallible |
| - Adjusted `opts` to return a reference to `libbpf_sys::bpf_object_open_opts` |
| - Removed object name argument from `open_memory` constructor |
| - Added `pin_root_path` setter |
| - Added `AsRawLibbpf` trait as a unified way to retrieve `libbpf` equivalents |
| for `libbpf-rs` objects |
| - Added `Map::update_batch` method |
| - Implemented `Send` for `Link` |
| - Bumped minimum Rust version to `1.65` |
| - Updated `bitflags` dependency to `2.0` |
| |
| |
| 0.21.2 |
| ------ |
| - Enabled key iteration on `MapHandle` objects (formerly possible only on `Map` |
| objects) |
| - Bumped minimum Rust version to `1.64` |
| |
| |
| 0.21.1 |
| ------ |
| - Fixed build failures on 32 bit x86 and aarch32 |
| |
| |
| 0.21.0 |
| ------ |
| - Added `TcHook::get_handle` and `TcHook::get_priority` methods for restoring |
| TcHook object |
| - Added `Program::get_fd_by_id` and `Program::get_id_by_fd` methods for restoring |
| bpf management data |
| - Added `Map::is_pinned` and `Map::get_pin_path` methods for getting map pin status |
| - Added `Program::attach_iter` for attaching of programs to an iterator |
| - Added `Map::delete_batch` method for bulk deletion of elements |
| - Added read/update/delete support for queue and stack `Map` types |
| - Added a new `MapHandle` which provides most functionality previously found in |
| `Map` |
| - Removed support for creating `Map` objects standalone (i.e. maps not created |
| by libbpf) |
| - Removed various `<object-type>::fd()` methods in favor of |
| `<object-type>::as_fd()` |
| - Improved `btf_type_match!` macro, adding support for most of Rust's `match` |
| capabilities |
| - Added `skel` module exposing skeleton related traits |
| - Fixed issue where instances of `Map` created or opened without going through |
| `Object` would leak file descriptors |
| - Fixed potential Uprobe attachment failures on optimized builds caused by |
| improper `libbpf_sys::bpf_object_open_opts` object initialization |
| - Adjusted various methods to work with `BorrowedFd` instead of raw file |
| descriptors |
| - Made `RingBufferBuilder::add` enforce that `self` cannot outlive the maps |
| passed into it |
| - Adjusted `Error::System` variant textual representation to include `errno` |
| string |
| |
| |
| 0.20.1 |
| ------ |
| - Added bindings for BTF via newly introduced `btf` module |
| - Added `Map` constructors from pinned paths and from map id |
| - Added `Map::as_libbpf_bpf_map_ptr` and `Object::as_libbpf_bpf_object_ptr` |
| accessors |
| - Added `MapInfo` type as a convenience wrapper around `bpf_map_info` |
| - Added `Map::info` to `Map` to make it easier to derive `MapInfo` from a |
| `Map` instance |
| - Added `set_log_level`, `log_level`, and `autoload` methods to `OpenProgram` |
| - Removed deprecated `Link::get_fd` method |
| - Bumped minimum Rust version to `1.63` |
| |
| |
| 0.20.0 |
| ------ |
| - Added support for USDT probes |
| - Added BPF linker support with new `Linker` type |
| - Added `Program::attach_uprobe_with_opts` for attaching Uprobes with additional |
| options |
| - Added `tproxy` example |
| - Added option to `RingBuffer::poll` to block indefinitely |
| - Added support for querying BPF program type using `OpenProgram::prog_type` |
| - Added support for retrieving a BPF program's instructions using |
| `OpenProgram::insns` & `Program::insns` |
| - Added `MapType::is_supported`, `ProgramType::is_supported`, and |
| `ProgramType::is_helper_supported` methods |
| - Added `PerfBuffer::as_libbpf_perf_buffer_ptr` to access underlying |
| `libbpf-sys` object |
| - Adjusted various `Map` methods to work on shared receivers |
| - Fixed `Link::open` constructor to be a static method |
| - Fixed unsoundness in skeleton logic caused by aliased `Box` contents |
| - Implemented `Send` for `PerfBuffer` and `RingBuffer` |
| - Made more types implement `Clone` and `Debug` |
| - Run leak sanitizer in CI |
| - Updated various dependencies |
| |
| |
| 0.19.1 |
| ------ |
| - Initial documented release |