• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
10.24.8
2------
3- Added `Program::attach_netfilter_with_opts` for attaching to netfilter
4  hooks
5
6
70.24.5
8------
9- Renamed `Program::get_id_by_fd` to `id_from_fd`
10  - Deprecated `Program::get_id_by_fd`
11- Renamed `Program::get_fd_by_id` to `fd_from_id`
12  - Deprecated `Program::get_fd_by_id`
13- Adjusted `Program::{attach_*, test_run}` methods to work on shared
14  receivers
15- Adjusted `PerfBufferBuilder` to work with `MapCore` objects
16
17
180.24.4
19------
20- Added `Program::fd_from_pinned_path` method for restoring program descriptor
21  from a pinned path
22
23
240.24.0
25------
26- Split `{Open,}{Map,Program}` into `{Open,}{Map,Program}` (for shared
27  access) and `{Open,}{Map,Program}Mut` (for exclusive access)
28- Added `AsRawLibbpf` impl for `OpenObject` and `ObjectBuilder`
29- Decoupled `Map` and `MapHandle` more and introduced `MapCore` trait
30  abstracting over common functionality
31- Adjusted `SkelBuilder::open` method to require mutable reference to
32  storage space for BPF object
33- Adjusted `{Open,}Object::from_ptr` constructor to be infallible
34- Added `{Open,}Object::maps{_mut,}` and `{Open,}Object::progs{_mut,}`
35  for BPF map and program iteration
36- Adjusted various APIs to return/use `OsStr` instead of `CStr` or `str`
37- Adjusted `{Open,}Program` to lazily retrieve name and section
38  - Changed `name` and `section` methods to return `&OsStr` and made
39    constructors infallible
40- Adjusted `OpenObject::name` to return `Option<&OsStr>`
41- Removed `Result` return type from
42  `OpenProgram::{set_log_level,set_autoload,set_flags}`
43- Added `Object::name` method
44- Added `Copy` and `Clone` impls for types inside `btf::types` module
45- Adjusted `OpenMap::set_inner_map_fd` to return `Result`
46- Adjusted `ProgramInput::context_in` field to be a mutable reference
47- Made inner `query::Tag` contents publicly accessible
48- Fixed potential memory leak in `RingBufferBuilder::build`
49- Removed `Display` implementation of various `enum` types
50
51
520.23.2
53------
54- Fixed build failure on Android platforms
55
56
570.23.1
58------
59- Added support for user ring buffers
60- Fixed handling of bloom filter type maps
61  - Added `Map::lookup_bloom_filter` for looking up elements in a bloom filter
62
63
640.23.0
65------
66- Overhauled crate feature set:
67  - Removed `novendor` feature
68  - Added `vendored` feature to use vendored copies of all needed libraries
69- Added `Program::attach_ksyscall` for attaching to ksyscall handlers
70- Added `Program::test_run` as a way for test-running programs
71- Added `OpenMap::initial_value{,_mut}` for retrieving a map's initial value
72- Added `replace` functionality to `Xdp` type
73- Added low-level `consume_raw` and `poll_raw` methods to `RingBuffer` type
74- Added `recursion_misses` attribute to `query::ProgramInfo` type
75- Added `AsRawLibbpf` impl for `OpenProgram`
76- Fixed incorrect inference of `btf::types::MemberAttr::Bitfield` variant
77- Fixed examples not building on non-x86 architectures
78- Fixed potentially missing padding byte initialization on some target
79  architectures
80- Fixed compilation issues caused by mismatching function signatures in certain
81  cross-compilation contexts
82- Updated `libbpf-sys` dependency to `1.4.0`
83- Bumped minimum Rust version to `1.71`
84
85
860.22.1
87------
88- Introduced `Xdp` type for working with XDP programs
89- Fixed handling of autocreate maps with `Object` type
90
91
920.22.0
93------
94- Reworked `Error` type:
95  - Replaced `enum` with data variants with `struct` hiding internal structure
96  - Added support for chaining of errors
97  - Overhauled how errors are displayed
98- Overhauled `query::ProgramInfo` and `query::ProgInfoIter` to make them more
99  readily usable
100- Added `Btf::from_vmlinux` constructor and adjusted `Btf::from_path` to work
101  with both raw and ELF files
102- Reworked `ObjectBuilder`:
103  - Made `name` method fallible
104  - Adjusted `opts` to return a reference to `libbpf_sys::bpf_object_open_opts`
105  - Removed object name argument from `open_memory` constructor
106  - Added `pin_root_path` setter
107- Added `AsRawLibbpf` trait as a unified way to retrieve `libbpf` equivalents
108  for `libbpf-rs` objects
109- Added `Map::update_batch` method
110- Implemented `Send` for `Link`
111- Bumped minimum Rust version to `1.65`
112- Updated `bitflags` dependency to `2.0`
113
114
1150.21.2
116------
117- Enabled key iteration on `MapHandle` objects (formerly possible only on `Map`
118  objects)
119- Bumped minimum Rust version to `1.64`
120
121
1220.21.1
123------
124- Fixed build failures on 32 bit x86 and aarch32
125
126
1270.21.0
128------
129- Added `TcHook::get_handle` and `TcHook::get_priority` methods for restoring
130  TcHook object
131- Added `Program::get_fd_by_id` and `Program::get_id_by_fd` methods for restoring
132  bpf management data
133- Added `Map::is_pinned` and `Map::get_pin_path` methods for getting map pin status
134- Added `Program::attach_iter` for attaching of programs to an iterator
135- Added `Map::delete_batch` method for bulk deletion of elements
136- Added read/update/delete support for queue and stack `Map` types
137- Added a new `MapHandle` which provides most functionality previously found in
138  `Map`
139- Removed support for creating `Map` objects standalone (i.e. maps not created
140  by libbpf)
141- Removed various `<object-type>::fd()` methods in favor of
142  `<object-type>::as_fd()`
143- Improved `btf_type_match!` macro, adding support for most of Rust's `match`
144  capabilities
145- Added `skel` module exposing skeleton related traits
146- Fixed issue where instances of `Map` created or opened without going through
147  `Object` would leak file descriptors
148- Fixed potential Uprobe attachment failures on optimized builds caused by
149  improper `libbpf_sys::bpf_object_open_opts` object initialization
150- Adjusted various methods to work with `BorrowedFd` instead of raw file
151  descriptors
152- Made `RingBufferBuilder::add` enforce that `self` cannot outlive the maps
153  passed into it
154- Adjusted `Error::System` variant textual representation to include `errno`
155  string
156
157
1580.20.1
159------
160- Added bindings for BTF via newly introduced `btf` module
161- Added `Map` constructors from pinned paths and from map id
162- Added `Map::as_libbpf_bpf_map_ptr` and `Object::as_libbpf_bpf_object_ptr`
163  accessors
164- Added `MapInfo` type as a convenience wrapper around `bpf_map_info`
165  - Added `Map::info` to `Map` to make it easier to derive `MapInfo` from a
166    `Map` instance
167- Added `set_log_level`, `log_level`, and `autoload` methods to `OpenProgram`
168- Removed deprecated `Link::get_fd` method
169- Bumped minimum Rust version to `1.63`
170
171
1720.20.0
173------
174- Added support for USDT probes
175- Added BPF linker support with new `Linker` type
176- Added `Program::attach_uprobe_with_opts` for attaching Uprobes with additional
177  options
178- Added `tproxy` example
179- Added option to `RingBuffer::poll` to block indefinitely
180- Added support for querying BPF program type using `OpenProgram::prog_type`
181- Added support for retrieving a BPF program's instructions using
182  `OpenProgram::insns` & `Program::insns`
183- Added `MapType::is_supported`, `ProgramType::is_supported`, and
184  `ProgramType::is_helper_supported` methods
185- Added `PerfBuffer::as_libbpf_perf_buffer_ptr` to access underlying
186  `libbpf-sys` object
187- Adjusted various `Map` methods to work on shared receivers
188- Fixed `Link::open` constructor to be a static method
189- Fixed unsoundness in skeleton logic caused by aliased `Box` contents
190- Implemented `Send` for `PerfBuffer` and `RingBuffer`
191- Made more types implement `Clone` and `Debug`
192- Run leak sanitizer in CI
193- Updated various dependencies
194
195
1960.19.1
197------
198- Initial documented release
199