All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
*_wrong_map
testsEbpf
instead of Bpf
BpfError
aliasFill bss maps with zeros The loader should fill bss maps with zeros according to the size of the ELF section. Failure to do so yields weird verifier messages as follows:
cannot access ptr member ops with moff 0 in struct bpf_map with off 0 size 4
Reference to this in the cilium/ebpf code is here [1]. I could not find a reference in libbpf.
To fix this and prevent regressions a unit test was added. This highlighted that the original map definition needs to be mutated in order for the max_entries change to be properly applied.
As such, this resize logic moved out of aya::sys into aya::maps
rustdoc-args
to -D warnings
. Additionally, this also removes the
recorder_arrays
field (defaults to false) so that the order is not
modified, which is what caused the error in the first place.unwrap
and expect
0
mapping to None
MapInfo
:
map_type()
, we treturn new enum MapType
instead of the integer
representation.Option<NonZero*>
type.name_as_str()
, it now uses the feature probe bpf_name()
to
detect if field is available.
Although the feature probe checks for program name, it can also be
used for map name since they were both introduced in the same commit.ProgramInfo
.
program_type()
, we return the new enum ProgramType
instead of
the integer representation.Option<NonZero*>
type.name_as_str()
, it now also uses the feature probe bpf_name()
to detect if field is available or not.prog_info_map_ids()
probe -> map_ids()
fieldprog_info_gpl_compatible()
probe -> gpl_compatible()
field
With the prog_info_map_ids()
probe, the previous implementation that
I had for bpf_prog_get_info_by_fd()
is shortened to use the probe
instead of having to make 2 potential syscalls.
The test_loaded_at()
test is also moved into info tests since it is
better related to the info tests.
BPF_MAP_TYPE_BLOOM_FILTER
& BPF_MAP_TYPE_CGRP_STORAGE
.
New error InvalidTypeBinding<T>
is created to represent when a
parsed/received value binding to a type is invalid.
This is used in the new conversions added here, and also replaces
InvalidMapTypeError
in TryFrom
for bpf_map_type
.
loaded_programs()
and
loaded_maps()
in consideration for older kernels:
SocketFilter
program in tests since XDP requires v4.8 and
fragments requires v5.18.-- --nocapture
.
This also fixes the bpf_prog_get_info_by_fd()
call for kernels below
v4.15. If calling syscall on kernels below v4.15, it can produce an
E2BIG
error because check_uarg_tail_zero()
expects the entire
struct to all-zero bytes (which is caused from the map info).
Instead, we first attempt the syscall with the map info filled, if it
returns E2BIG
, then perform syscall again with empty closure.
Also adds doc for which version a kernel feature was introduced for better awareness.
The tests have been verified kernel versions:
- 4.13.0
- 4.15.0
- 6.1.0
run_time_ns
& run_cnt
statistics from
ProgramInfo/bpf_prog_info.Additionally, move #[cfg(test)]
annotation around the Drop
trait
instead. Having separate functions causes some complications when
needing ownership/moving of the inner value OwnedFd
when Drop
is
manually implemented.
appease new nightly clippy lints
error: unnecessary qualification
--> aya/src/maps/ring_buf.rs:434:22
|
434 | ptr: ptr::NonNull::new(ptr).ok_or(
| ^^^^^^^^^^^^^^^^^
|
note: the lint level is defined here
--> aya/src/lib.rs:72:5
|
72 | unused_qualifications,
| ^^^^^^^^^^^^^^^^^^^^^
help: remove the unnecessary path segments
|
434 - ptr: ptr::NonNull::new(ptr).ok_or(
434 + ptr: NonNull::new(ptr).ok_or(
|
error: unnecessary qualification
--> aya/src/maps/mod.rs:225:21
|
225 | let mut limit = std::mem::MaybeUninit::<rlimit>::uninit();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
help: remove the unnecessary path segments
|
225 - let mut limit = std::mem::MaybeUninit::<rlimit>::uninit();
225 + let mut limit = mem::MaybeUninit::<rlimit>::uninit();
|
error: unnecessary qualification
--> aya/src/programs/mod.rs:614:9
|
614 | crate::obj::Program {
| ^^^^^^^^^^^^^^^^^^^
|
help: remove the unnecessary path segments
|
614 - crate::obj::Program {
614 + obj::Program {
|
error: unnecessary qualification
--> aya/src/util.rs:373:14
|
373 | unsafe { std::slice::from_raw_parts(bpf_name.as_ptr() as
*const _, length) }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
help: remove the unnecessary path segments
|
373 - unsafe { std::slice::from_raw_parts(bpf_name.as_ptr() as
*const _, length) }
373 + unsafe { slice::from_raw_parts(bpf_name.as_ptr() as *const _,
length) }
|
error: unnecessary qualification
--> aya/src/maps/mod.rs:1130:47
|
1130 | .copy_from_slice(unsafe {
std::mem::transmute(TEST_NAME) });
| ^^^^^^^^^^^^^^^^^^^
|
note: the lint level is defined here
--> aya/src/lib.rs:72:5
|
72 | unused_qualifications,
| ^^^^^^^^^^^^^^^^^^^^^
help: remove the unnecessary path segments
|
1130 - .copy_from_slice(unsafe {
std::mem::transmute(TEST_NAME) });
1130 + .copy_from_slice(unsafe {
mem::transmute(TEST_NAME) });
|
nr_cpus
in a thread_localc6a34ca
`](https://github.com/aya-rs/aya/commit/c6a34cade1
))
- Merge pull request #1073 from dave-tucker/reloc-bug ([`b2ac9fe
`](https://github.com/aya-rs/aya/commit/b2ac9fe85d
))
- Fill bss maps with zeros ([`ca0c32d
`](https://github.com/aya-rs/aya/commit/ca0c32d107
))
- Release aya-obj v0.2.0, aya v0.13.0, safety bump aya v0.13.0 ([`c169b72
`](https://github.com/aya-rs/aya/commit/c169b727e6
))
- Implement TCX ([`5478cac
`](https://github.com/aya-rs/aya/commit/5478cac008
))
- Cache `nr_cpus` in a thread_local ([`d05110f
`](https://github.com/aya-rs/aya/commit/d05110fd86
))
- Clarify `Arc` usage ([`afd777b
`](https://github.com/aya-rs/aya/commit/afd777b705
))
- Replace `Arc` with `&'static` ([`e992c28
`](https://github.com/aya-rs/aya/commit/e992c280cb
))
- Avoid intermediate allocations in parse_cpu_ranges ([`0e86757
`](https://github.com/aya-rs/aya/commit/0e867572ff
))
- Reduce duplication in `{nr,possible}_cpus` ([`f3b2744
`](https://github.com/aya-rs/aya/commit/f3b2744072
))
- Replace `lazy_static` with `std::sync::LazyLock` ([`2b299d4
`](https://github.com/aya-rs/aya/commit/2b299d4fba
))
- Appease clippy ([`0f16363
`](https://github.com/aya-rs/aya/commit/0f163633e3
))
- Merge pull request #1023 from l2dy/fdlink/sockops ([`2cd3576
`](https://github.com/aya-rs/aya/commit/2cd35769dc
))
- Use FdLink in SockOps programs ([`c44f8b0
`](https://github.com/aya-rs/aya/commit/c44f8b0f5b
))
- Remove unwrap and NonZero* in info ([`02d1db5
`](https://github.com/aya-rs/aya/commit/02d1db5fc0
))
- Merge pull request #985 from reyzell/main ([`40f3032
`](https://github.com/aya-rs/aya/commit/40f303205f
))
- Add the option to support multiple and overrideable programs per cgroup ([`f790685
`](https://github.com/aya-rs/aya/commit/f790685d75
))
- Merge pull request #1007 from tyrone-wu/aya/info-api ([`15eb935
`](https://github.com/aya-rs/aya/commit/15eb935bce
))
- Revamp MapInfo be more friendly with older kernels ([`fbb0930
`](https://github.com/aya-rs/aya/commit/fbb09304a2
))
- Revamp ProgramInfo be more friendly with older kernels ([`88f5ac3
`](https://github.com/aya-rs/aya/commit/88f5ac3114
))
- Add conversion u32 to enum type for prog, link, & attach type ([`1634fa7
`](https://github.com/aya-rs/aya/commit/1634fa7188
))
- Improve integration tests for info API ([`cb8e478
`](https://github.com/aya-rs/aya/commit/cb8e478800
))
- Merge pull request #959 from tyrone-wu/aya/program_info_stats ([`ab000ad
`](https://github.com/aya-rs/aya/commit/ab000ad7c3
))
- Merge pull request #974 from Billy99/billy99-arch-ppc64-s390x ([`ab5e688
`](https://github.com/aya-rs/aya/commit/ab5e688fd4
))
- Adjust bpf programs for big endian ([`cd1db86
`](https://github.com/aya-rs/aya/commit/cd1db86fd4
))
- Adjust test byte arrays for big endian ([`eef7346
`](https://github.com/aya-rs/aya/commit/eef7346fb2
))
- Simplify doctest ([`4362020`](https://github.com/aya-rs/aya/commit/4362020691
))
- Appease nightly clippy ([`bce3c4f
`](https://github.com/aya-rs/aya/commit/bce3c4fb1d
))
- Expose run_time_ns and run_cnt fields in ProgramInfo ([`a25f501
`](https://github.com/aya-rs/aya/commit/a25f501ece
))
- Add BPF_ENABLE_STATS syscall function ([`fa6af6a
`](https://github.com/aya-rs/aya/commit/fa6af6a204
))
- Fix PerfEventArray resize logic ([`3d57d35
`](https://github.com/aya-rs/aya/commit/3d57d358e4
))
- Add comments in `*_wrong_map` tests ([`e575712
`](https://github.com/aya-rs/aya/commit/e575712c59
))
- Set PerfEventArray max_entries to nCPUs ([`25d986a
`](https://github.com/aya-rs/aya/commit/25d986a26d
))
- Use MockableFd everywhere ([`e12fcf4
`](https://github.com/aya-rs/aya/commit/e12fcf46cb
))
- Merge pull request #991 from l2dy/typo-1 ([`2cd9858
`](https://github.com/aya-rs/aya/commit/2cd9858ea9
))
- Fix typo ([`f1773d5
`](https://github.com/aya-rs/aya/commit/f1773d5af4
))
- Merge pull request #983 from ajwerner/fix-variable-name ([`d5414bf
`](https://github.com/aya-rs/aya/commit/d5414bf10c
))
- :programs::uprobe: fix bad variable name ([`d413e2f
`](https://github.com/aya-rs/aya/commit/d413e2f285
))
- Fix panic when creating map on custom ubuntu kernel ([`38d8e32
`](https://github.com/aya-rs/aya/commit/38d8e32baa
))
- Appease clippy ([`78acd74
`](https://github.com/aya-rs/aya/commit/78acd74bad
))
- Don't deny unused_qualifications ([`781914f
`](https://github.com/aya-rs/aya/commit/781914f058
))
- Fix rustdocs-args ordering in taplo to -D warnings ([`5e13283
`](https://github.com/aya-rs/aya/commit/5e13283f59
))
- Remove deny(pointer_structural_match) ([`4e843a3
`](https://github.com/aya-rs/aya/commit/4e843a3523
))
- Merge pull request #938 from swananan/enhance_urpobe_symbol_lookup ([`bde4b5f
`](https://github.com/aya-rs/aya/commit/bde4b5f86b
))
- Fix clippy ([`c7898c5
`](https://github.com/aya-rs/aya/commit/c7898c596f
))
- Adjust symbol lookup tests for object crate alignment requirements ([`462514e
`](https://github.com/aya-rs/aya/commit/462514ed4c
))
- Add symbol lookup in associated debug files ([`e6e1bfe
`](https://github.com/aya-rs/aya/commit/e6e1bfeb58
))
- Merge pull request #928 from seanyoung/io-error ([`d0e9b95
`](https://github.com/aya-rs/aya/commit/d0e9b95aa5
))
- S/MiriSafeFd/MockableFd/ ([`a11b61e
`](https://github.com/aya-rs/aya/commit/a11b61ebfd
))
- Remove miri ignores ([`cb6d3bd
`](https://github.com/aya-rs/aya/commit/cb6d3bd75d
))
- Document miri skip reasons ([`35962a4
`](https://github.com/aya-rs/aya/commit/35962a4794
))
- Avoid crashing under Miri ([`7a7d168
`](https://github.com/aya-rs/aya/commit/7a7d16885a
))
- Deduplicate test helpers ([`7e1666f
`](https://github.com/aya-rs/aya/commit/7e1666fb83
))
- Reduce duplication ([`58e154e
`](https://github.com/aya-rs/aya/commit/58e154e1bc
))
- Expose io_error in SyscallError ([`a6c45f6
`](https://github.com/aya-rs/aya/commit/a6c45f61c7
))
- Appease clippy ([`09442c2
`](https://github.com/aya-rs/aya/commit/09442c2cbe
))
- Generate new bindings ([`b06ff40
`](https://github.com/aya-rs/aya/commit/b06ff40278
))
- Appease clippy ([`0a32dac
`](https://github.com/aya-rs/aya/commit/0a32dacd2f
))
- Merge pull request #528 from dave-tucker/rename-all-the-things ([`63d8d4d
`](https://github.com/aya-rs/aya/commit/63d8d4d34b
))
- Include license in crate workspace ([`a4e68eb
`](https://github.com/aya-rs/aya/commit/a4e68ebdbf
))
- Use `Ebpf` instead of `Bpf` ([`57a69fe
`](https://github.com/aya-rs/aya/commit/57a69fe9d2
))
- Provide a deprecated `BpfError` alias ([`110a76c
`](https://github.com/aya-rs/aya/commit/110a76cb9a
))
- Rename Bpf to Ebpf ([`8c79b71
`](https://github.com/aya-rs/aya/commit/8c79b71bd5
))
- Rename BpfRelocationError -> EbpfRelocationError ([`fd48c55
`](https://github.com/aya-rs/aya/commit/fd48c55466
))
- Rename BpfSectionKind to EbpfSectionKind ([`cf3e2ca
`](https://github.com/aya-rs/aya/commit/cf3e2ca677
))
- Rename bpf -> ebpf ([`70ac91d
`](https://github.com/aya-rs/aya/commit/70ac91dc1e
))
- Fix unused_qualifications lints ([`481b73b
`](https://github.com/aya-rs/aya/commit/481b73b6d8
))
- Add `CgroupDevice::query` ([`542306d
`](https://github.com/aya-rs/aya/commit/542306d295
))
- Appease new nightly clippy lints ([`e38eac6
`](https://github.com/aya-rs/aya/commit/e38eac6352
))
*_wrong_map
testsEbpf
instead of Bpf
BpfError
aliasTo fix this and prevent regressions a unit test was added. This highlighted that the original map definition needs to be mutated in order for the max_entries change to be properly applied.
As such, this resize logic moved out of aya::sys into aya::maps
rustdoc-args
to -D warnings
. Additionally, this also removes the
recorder_arrays
field (defaults to false) so that the order is not
modified, which is what caused the error in the first place.unwrap
and expect
0
mapping to None
MapInfo
:
map_type()
, we treturn new enum MapType
instead of the integer
representation.Option<NonZero*>
type.name_as_str()
, it now uses the feature probe bpf_name()
to
detect if field is available.
Although the feature probe checks for program name, it can also be
used for map name since they were both introduced in the same commit.ProgramInfo
.
program_type()
, we return the new enum ProgramType
instead of
the integer representation.Option<NonZero*>
type.name_as_str()
, it now also uses the feature probe bpf_name()
to detect if field is available or not.prog_info_map_ids()
probe -> map_ids()
fieldprog_info_gpl_compatible()
probe -> gpl_compatible()
field
With the prog_info_map_ids()
probe, the previous implementation that
I had for bpf_prog_get_info_by_fd()
is shortened to use the probe
instead of having to make 2 potential syscalls.
The test_loaded_at()
test is also moved into info tests since it is
better related to the info tests.
BPF_MAP_TYPE_BLOOM_FILTER
& BPF_MAP_TYPE_CGRP_STORAGE
.
New error InvalidTypeBinding<T>
is created to represent when a
parsed/received value binding to a type is invalid.
This is used in the new conversions added here, and also replaces
InvalidMapTypeError
in TryFrom
for bpf_map_type
.
loaded_programs()
and
loaded_maps()
in consideration for older kernels:
SocketFilter
program in tests since XDP requires v4.8 and
fragments requires v5.18.-- --nocapture
.
This also fixes the bpf_prog_get_info_by_fd()
call for kernels below
v4.15. If calling syscall on kernels below v4.15, it can produce an
E2BIG
error because check_uarg_tail_zero()
expects the entire
struct to all-zero bytes (which is caused from the map info).
Instead, we first attempt the syscall with the map info filled, if it
returns E2BIG
, then perform syscall again with empty closure.
Also adds doc for which version a kernel feature was introduced for better awareness.
The tests have been verified kernel versions:
- 4.13.0
- 4.15.0
- 6.1.0
run_time_ns
& run_cnt
statistics from
ProgramInfo/bpf_prog_info.Additionally, move #[cfg(test)]
annotation around the Drop
trait
instead. Having separate functions causes some complications when
needing ownership/moving of the inner value OwnedFd
when Drop
is
manually implemented.
appease new nightly clippy lints
error: unnecessary qualification
--> aya/src/maps/ring_buf.rs:434:22
|
434 | ptr: ptr::NonNull::new(ptr).ok_or(
| ^^^^^^^^^^^^^^^^^
|
note: the lint level is defined here
--> aya/src/lib.rs:72:5
|
72 | unused_qualifications,
| ^^^^^^^^^^^^^^^^^^^^^
help: remove the unnecessary path segments
|
434 - ptr: ptr::NonNull::new(ptr).ok_or(
434 + ptr: NonNull::new(ptr).ok_or(
|
error: unnecessary qualification
--> aya/src/maps/mod.rs:225:21
|
225 | let mut limit = std::mem::MaybeUninit::<rlimit>::uninit();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
help: remove the unnecessary path segments
|
225 - let mut limit = std::mem::MaybeUninit::<rlimit>::uninit();
225 + let mut limit = mem::MaybeUninit::<rlimit>::uninit();
|
error: unnecessary qualification
--> aya/src/programs/mod.rs:614:9
|
614 | crate::obj::Program {
| ^^^^^^^^^^^^^^^^^^^
|
help: remove the unnecessary path segments
|
614 - crate::obj::Program {
614 + obj::Program {
|
error: unnecessary qualification
--> aya/src/util.rs:373:14
|
373 | unsafe { std::slice::from_raw_parts(bpf_name.as_ptr() as
*const _, length) }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
help: remove the unnecessary path segments
|
373 - unsafe { std::slice::from_raw_parts(bpf_name.as_ptr() as
*const _, length) }
373 + unsafe { slice::from_raw_parts(bpf_name.as_ptr() as *const _,
length) }
|
error: unnecessary qualification
--> aya/src/maps/mod.rs:1130:47
|
1130 | .copy_from_slice(unsafe {
std::mem::transmute(TEST_NAME) });
| ^^^^^^^^^^^^^^^^^^^
|
note: the lint level is defined here
--> aya/src/lib.rs:72:5
|
72 | unused_qualifications,
| ^^^^^^^^^^^^^^^^^^^^^
help: remove the unnecessary path segments
|
1130 - .copy_from_slice(unsafe {
std::mem::transmute(TEST_NAME) });
1130 + .copy_from_slice(unsafe {
mem::transmute(TEST_NAME) });
|
nr_cpus
in a thread_local
Use the cargo workspace package table This allows for inheritance of common fields from the workspace root. The following fields have been made common:
Appease clippy unused imports
tracefs review fixes
BREAKING-CHANGES.md
that we can populate per-crate.
Doing so will allow us to pull this content into our changelog and
websites to make things easier for users.AsyncPerfEventArray
which is documented on crates.io, but
it's not obvious that you have to enable the async
feature.any
all
in cfg.appease new nightly clippy lints
error: this call to `as_ref.map(...)` does nothing
--> aya/src/bpf.rs:536:30
|
536 | let btf_fd = btf_fd.as_ref().map(Arc::clone);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `btf_fd.clone()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref
note: the lint level is defined here
--> aya/src/lib.rs:41:5
|
41 | clippy::all,
| ^^^^^^^^^^^
= note: `#[deny(clippy::useless_asref)]` implied by `#[deny(clippy::all)]`
error: could not compile `aya` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
error: initializer for `thread_local` value can be made `const`
--> aya/src/sys/fake.rs:14:61
|
14 | pub(crate) static TEST_MMAP_RET: RefCell<*mut c_void> = RefCell::new(ptr::null_mut());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `const { RefCell::new(ptr::null_mut()) }`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#thread_local_initializer_can_be_made_const
= note: `#[deny(clippy::thread_local_initializer_can_be_made_const)]` implied by `#[deny(clippy::all)]`
appease nightly lint
error: lint `unused_tuple_struct_fields` has been renamed to `dead_code`
--> aya/src/lib.rs:74:5
|
74 | unused_tuple_struct_fields,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `dead_code`
|
= note: `-D renamed-and-removed-lints` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(renamed_and_removed_lints)]`
See https://github.com/rust-lang/rust/commit/9fcf9c141068984ffcbb4cb00c.
Configuration is checked in at .markdownlint-cli2.yaml.
You may run the check locally using markdownlint-cli2
.
Or you may install the extension for VSCode:
DavidAnson.vscode-markdownlint
updated-dependencies:
dep:
syntax created a Cargo feature flag for async-io,
though this feature alone does nothing without the async_std
or
async_tokio
features.Instead of streaming the samples as heap buffers, the process_ring function takes a callback to which we pass the event's byte region, roughly following [libbpf]'s API design. This avoids a copy and allows marking the consumer pointer in a timely manner.
5e637071c1
due to merge skew
with 7b71c7e1cd
.default-features = false
is already in the root Cargo.toml.add pin() api
Adds new maps_mut()
API to the BpfManager to allow us to iterate though
and pin all of maps at the same time.
Adds new pin(Path)/unpin(Path) api to Maps so they can be generically pinned AFTER load.
Adds macro for pinning explicit map types in aya. Convert all explicit map types "inner" field to be pub crate in order to facilitate this.
fix libbpf_pin_by_name Aligns with libbpf for the special LIBBPF_PIN_BY_NAME map flag. Specifically if the flag is provided without a pin path default to "/sys/fs/bpf".
Deprecate syscall_prefix
Using the prefix only for the host architecture is often not enough,
kernels usually provide symbols for more architectures, which are
used by multilib applications. Handling them might or might not be
necessary depending on the use case. Due to that complexity, we
decided to let the callers to handle prefixes the way they prefer.
group_imports = "StdExternalCrate" High time we stop debating this; let the robots do the work.
Fix program loading on kernels with a patch > 255
fix load time and add test Time since boot is defined as the UNIX_EPOCH plus the duration since boot. which is realtime - boottime NOT boottime - realtime.
Add a integration test to ensure this doesn't happen again.
None
without specifying the
actual type you don't care about.Which can all be used to redirect XDP packets to various different locations
Make MapData::pin pub This is to solve a use-case where a user (in this case bpfd) may want to:
Both operations should be easily accomplished without needing to cast a MapData into a concrete Map type - e.g aya::maps::HashMap.
MapFd
and SockMapFd
are ownedProgram
structure which
allows users to get the program's kernel info before casting
it to an explicit program variant.Cleanup in anticipation of fixing #636.
The API changes are just about renaming the return to Self and Self::Error; they are not real changes.
Remove some implied bounds (BorrowMut implies Borrow).
dup
which doesn't
duplicate with the CLOSE_ON_EXEC flag that is standard pratice to
avoid leaking the file descriptor when exec'ing.LircLink
s where
each of them have a program file descriptor that is not going to be
closed. This commit does not add this leak; it merely makes it louder
in the code.MapData::create
is now a
factory function that returns Result<Self, _>
rather than mutating
&mut self
. The remaining changes are consequences of that change, the
most notable of which is the removal of several errors which are no
longer possible.ProgramData::attach_prog_fd
is owned
This prevents a file descriptor leak when extensions are used.
This is an API breaking change.
ProgramFd
is ownedloaded_programs()
API. Specifically
this code mirrors the bpftool prog
command in terms of useful fields.Program
type to allow us to fetch
its accompanying ProgramInfo
metadata after its been loaded.loaded_programs
opaquesys_bpf
takes mut ref
Some syscalls mutate the argument, we can't be passing an immutable
reference here.OwnedFd
for perf_event_open
.
This fixes a file descriptor leak when creating a link of
BPF_PERF_EVENT attach type.To avoid lifetime issues while having minimal impact to UX the
OwnedFd
returned from the BPF_BTF_LOAD syscall will be wrapped in an
Arc
and shared accross the programs and maps of the loaded BPF
file.
There are cases where exposing FEATURES - our lazy static - is actually helpful to users of the library. For example, they may wish to choose to load a different version of their bytecode based on current features. Or, in the case of an orchestrator like bpfd, we might want to allow users to describe which features their program needs and return nice error message is one or more nodes in their cluster doesn't support the necessary feature set.
To do this without breaking the API, we make all the internal members of
the Features
and BtfFeatures
structs private, and add accessors for
them. We then add a features()
API to avoid leaking the
lazy_static.
Remove iter_key from LPM Trie API Based on the discussion in Discord we've decided to drop the iter_key() API for LPM Trie. According to the kernel self-tests and experimentation done in Aya, providing a key into bpf_map_get_next_id will either:
An API in Aya could be crafted that gets the LPM match + less specific matches for a prefix using these semantics BUT it would only apply to userspace. Therefore we've opted out of fixing this.
These are the equivalent of bcc's get_syscall_fnname and get_syscall_prefix.
If the BPF uses that section, relocation will fail accordingly and report an error.
updated-dependencies:
cargo build --all-features
by sidestepping the feature
unification problem described in The Cargo Book[0].
Add cargo hack --feature-powerset
to CI to enforce that this doesn't
regress (and that all combinations of features work).
Since error_in_core is nightly-only, use core-error and a fake std module to allow aya-obj to build without std on stable.
[0] https://doc.rust-lang.org/cargo/reference/features.html#feature-unification
Also move Features to aya-obj.
Tested on Ubuntu 18.04 (4.15.0-202-generic)
attach
or
other APIs for programs that are already loaded to the kernel.
This differs from #444 since it implements this on the concrete program type, not the Program enum, allowing the user to pass in any additional context that isn't available from bpf_prog_info.
aya-obj
to 0.1.0
.aya-obj
crate.pub(crate)
again.pub(crate)
are now pub
to allow access from Aya;#![deny(missing_docs)]
is removed temporarily;The new crate is currenly allowing missing_docs. Member visibility will be adjusted later to minimize exposure of implementation details.
updated-dependencies:
MapData::pin()
The syscall name is BPF_OBJ_PIN
, not BPF_OBJ_GET
.override_syscall
performs integer-to-pointer conversion. This is
considered harmful on the newest Rust nightly which provides
ptr::from_exposed_addr
, but there is no other way on Rust stable than
doing as *const T
, which is what miri is unhappy about.More pinning fixes This commit fixes a bug and adds some missing lifecycle APIs.
Fix segfault in define_link_wrapper The From<$wrapper> for $base implemention is refers to itself, eventually causing a segfault.
Improved BTF Type API
This commit removes reliance on generated BtfType structs, as
well as adding a dedicated struct for each BTF type. As such,
we can now add nice accessors like bits()
and encoding()
for Int vs. inlined shift/mask operations.
update VerifierLogLevel
to use bitflags
Fix Link Pinning
update VerifierLogLevel
level variants
use enum to set verifier log level
expose BPF verifier log level configuration
Remove MapError::InvalidPinPath
Use PinError for all pinning errors
Implement FdLink::pin()
This allows for FdLinks to also be pinned to BpfFs.
In order for it to be called, the user would first call
take_link
to get the underlying link. This can then
be destructured to an FdLink where FdLink::pin() may be called.
Allow pin to be used on all programs
This allows for pin
to be called as Xdp::pin()
or
Program::pin() - the same way that unload() can be used.
This simplifies the use of this API.
Fix rlimit warning on for 32bit systems
Raise the RLIMIT_MEMLOCK warning only if failed to create a map Also, mention that setting the RLIMIT_MEMLOCK to a higher value is an option.
Raise the warning when RMILIT_MEMLOCK is not RLIM_INFINITY Kernels before 5.11 don't use cgroup accounting, so they might reach the RLIMIT_MEMLOCK when creating maps. After this change, we raise a warning recommending to raise the RLIMIT_MEMLOCK.
Fix latest nightly lints
update object requirement from 0.28 to 0.29 Updates the requirements on object to permit the latest version.
updated-dependencies:
load()
timeassert_matches!
.0e99fa0
`](https://github.com/aya-rs/aya/commit/0e99fa0f34
))
- Don't use path deps in workspace ([`13b1fc6
`](https://github.com/aya-rs/aya/commit/13b1fc63ef
))
- Merge pull request #892 from dave-tucker/breaking-changes-v2 ([`daa5a47
`](https://github.com/aya-rs/aya/commit/daa5a47310
))
- Merge pull request #891 from dave-tucker/changelog ([`431ce23
`](https://github.com/aya-rs/aya/commit/431ce23f27
))
- Document more breaking changes ([`2d9d7a1
`](https://github.com/aya-rs/aya/commit/2d9d7a1a0b
))
- Add CHANGELOG ([`12280a8
`](https://github.com/aya-rs/aya/commit/12280a83f9
))
- Merge pull request #889 from dave-tucker/breaking-changes ([`5c9c044
`](https://github.com/aya-rs/aya/commit/5c9c044719
))
- Document breaking changes ([`281ac1a
`](https://github.com/aya-rs/aya/commit/281ac1ac02
))
- Merge pull request #882 from dave-tucker/metadata ([`0fadd69
`](https://github.com/aya-rs/aya/commit/0fadd69537
))
- Use the cargo workspace package table ([`b3e7ef7
`](https://github.com/aya-rs/aya/commit/b3e7ef741c
))
- Merge pull request #885 from dave-tucker/nightly-up ([`2d72197
`](https://github.com/aya-rs/aya/commit/2d721971cf
))
- Appease clippy unused imports ([`770a95e
`](https://github.com/aya-rs/aya/commit/770a95e077
))
- Appease rustc dead_code lint ([`963dd13
`](https://github.com/aya-rs/aya/commit/963dd13219
))
- Invalid transmute when calling fd ([`c31cce4
`](https://github.com/aya-rs/aya/commit/c31cce4a36
))
- Merge pull request #878 from alessandrod/missing-exports ([`46b4805
`](https://github.com/aya-rs/aya/commit/46b48053df
))
- Reformat to please rustfmt ([`2be705b
`](https://github.com/aya-rs/aya/commit/2be705bfa0
))
- Reorder imports a bit ([`9b4f876
`](https://github.com/aya-rs/aya/commit/9b4f87646d
))
- Export some missing modules ([`d570450
`](https://github.com/aya-rs/aya/commit/d570450a0c
))
- Perf_event: add inherit argument to attach() ([`0f6a734
`](https://github.com/aya-rs/aya/commit/0f6a734392
))
- Add StackTraceMap::remove() ([`92b1947
`](https://github.com/aya-rs/aya/commit/92b1947885
))
- Merge pull request #865 from tamird/appease-lint ([`09851a2
`](https://github.com/aya-rs/aya/commit/09851a2090
))
- Appease new nightly clippy lints ([`7022528`](https://github.com/aya-rs/aya/commit/7022528f04
))
- Merge pull request #861 from tamird/appease-lint ([`604742a
`](https://github.com/aya-rs/aya/commit/604742a2f2
))
- Appease nightly lint ([`7c1bfef
`](https://github.com/aya-rs/aya/commit/7c1bfeffe8
))
- Add SchedClassifier::attach_to_link ([`2257cbe
`](https://github.com/aya-rs/aya/commit/2257cbeccb
))
- Add SchedClassifierLink::attach_type() getter ([`b13645b
`](https://github.com/aya-rs/aya/commit/b13645b13d
))
- Merge pull request #858 from dave-tucker/ringbuf-doctests ([`13f21dc
`](https://github.com/aya-rs/aya/commit/13f21dce1b
))
- Fix ringbuf docs ([`e9e2f48
`](https://github.com/aya-rs/aya/commit/e9e2f48d4f
))
- Pin for (async)perf_event_array ([`b176967
`](https://github.com/aya-rs/aya/commit/b1769678f4
))
- Merge pull request #843 from ajwerner/ringbuf-send-sync ([`931cd55
`](https://github.com/aya-rs/aya/commit/931cd55905
))
- Make RingBuf: Send + Sync ([`c06fcc3
`](https://github.com/aya-rs/aya/commit/c06fcc3eda
))
- Extracting program and map names with the same function ([`15faca8
`](https://github.com/aya-rs/aya/commit/15faca8b2e
))
- Add MapInfo struct following the same pattern as ProgramInfo ([`4d24d1c
`](https://github.com/aya-rs/aya/commit/4d24d1cfe8
))
- Support loading a map by fd ([`36420d9
`](https://github.com/aya-rs/aya/commit/36420d9297
))
- Make KernelVersion::code public ([`68ba020
`](https://github.com/aya-rs/aya/commit/68ba02002f
))
- Merge pull request #746 from dave-tucker/markdownlint ([`958931e
`](https://github.com/aya-rs/aya/commit/958931efcb
))
- Add markdownlint ([`8780a50
`](https://github.com/aya-rs/aya/commit/8780a50be1
))
- Merge pull request #825 from aya-rs/dependabot/cargo/async-io-2.0 ([`67fe16e
`](https://github.com/aya-rs/aya/commit/67fe16e723
))
- Update async-io requirement from 1.3 to 2.0 ([`c89b2d1
`](https://github.com/aya-rs/aya/commit/c89b2d156d
))
- Merge pull request #821 from Tuetuopay/fix-udeps ([`f037a94
`](https://github.com/aya-rs/aya/commit/f037a94c9f
))
- Fix unused async-io dependency linter error ([`984c08c
`](https://github.com/aya-rs/aya/commit/984c08cbad
))
- Merge pull request #629 from ajwerner/ringbuf ([`6284994`](https://github.com/aya-rs/aya/commit/62849944f2
))
- Implement RingBuf ([`e2cf734
`](https://github.com/aya-rs/aya/commit/e2cf734490
))
- Move mmap from perf_buffer.rs to sys/mod.rs ([`4af9d1b
`](https://github.com/aya-rs/aya/commit/4af9d1bd3e
))
- Impl From for MapTypeError ([`b73c0a4
`](https://github.com/aya-rs/aya/commit/b73c0a46f5
))
- Merge pull request #814 from tamird/sort-variants-again ([`cb455fe
`](https://github.com/aya-rs/aya/commit/cb455febbb
))
- Sort variants ([`8462b69
`](https://github.com/aya-rs/aya/commit/8462b69716
))
- Merge pull request #812 from tamird/redundant-cargo ([`715d490
`](https://github.com/aya-rs/aya/commit/715d49022e
))
- Merge pull request #813 from tamird/sort-variants ([`ae612a0
`](https://github.com/aya-rs/aya/commit/ae612a0a10
))
- Merge pull request #811 from tamird/libc ([`b7ceee4
`](https://github.com/aya-rs/aya/commit/b7ceee4f51
))
- Import types from std::ffi rather than libc ([`5cdd1ba
`](https://github.com/aya-rs/aya/commit/5cdd1baf29
))
- Sort variants ([`5e63707
`](https://github.com/aya-rs/aya/commit/5e637071c1
))
- Remove redundant keys ([`cc48523
`](https://github.com/aya-rs/aya/commit/cc48523347
))
- Merge pull request #783 from astoycos/map_pin2 ([`ef27bce
`](https://github.com/aya-rs/aya/commit/ef27bce619
))
- Add pin() api ([`7b71c7e
`](https://github.com/aya-rs/aya/commit/7b71c7e1cd
))
- Fix libbpf_pin_by_name ([`0bf97eb
`](https://github.com/aya-rs/aya/commit/0bf97eba64
))
- Merge pull request #806 from vadorovsky/deprecate-syscall-prefix ([`66bd85a
`](https://github.com/aya-rs/aya/commit/66bd85a8de
))
- Deprecate `syscall_prefix` ([`bd6ba3a
`](https://github.com/aya-rs/aya/commit/bd6ba3ad8b
))
- Merge pull request #797 from aya-rs/rustfmt-group-imports ([`373fb7b
`](https://github.com/aya-rs/aya/commit/373fb7bf06
))
- Group_imports = "StdExternalCrate" ([`d16e607
`](https://github.com/aya-rs/aya/commit/d16e607fd4
))
- Merge pull request #791 from nrxus/fix-kernel-code-on-submode-gt-255 ([`6786383`](https://github.com/aya-rs/aya/commit/67863833ca
))
- Fix program loading on kernels with a patch > 255 ([`0a6a267
`](https://github.com/aya-rs/aya/commit/0a6a2674fa
))
- Merge pull request #527 from Tuetuopay/xdpmaps ([`7f9ce06
`](https://github.com/aya-rs/aya/commit/7f9ce062f4
))
- Aya, bpf: misc fixes following review comments ([`579e3ce
`](https://github.com/aya-rs/aya/commit/579e3cee22
))
- Merge pull request #769 from astoycos/fix-loaded-at ([`c130500
`](https://github.com/aya-rs/aya/commit/c130500f18
))
- Fix load time and add test ([`dffff1c
`](https://github.com/aya-rs/aya/commit/dffff1ce6b
))
- Make maps work on kernels not supporting ProgIds ([`00dc7a5
`](https://github.com/aya-rs/aya/commit/00dc7a5bd4
))
- Use ProgramFd instead of impl AsRawFd ([`c6754c6
`](https://github.com/aya-rs/aya/commit/c6754c614e
))
- Add documentation for XDP maps ([`9ed1d3d
`](https://github.com/aya-rs/aya/commit/9ed1d3d281
))
- Fix docstring missing trailing period ([`f7fbbcd
`](https://github.com/aya-rs/aya/commit/f7fbbcd0e5
))
- Add support for chained xdp programs in {cpu,dev}map ([`0647927`](https://github.com/aya-rs/aya/commit/0647927e32
))
- Add support for map-bound XDP programs ([`139f382
`](https://github.com/aya-rs/aya/commit/139f382638
))
- Update XDP maps implementations ([`ede3e91
`](https://github.com/aya-rs/aya/commit/ede3e91014
))
- Implement XDP Map Types ([`ec8293a
`](https://github.com/aya-rs/aya/commit/ec8293ab86
))
- Merge pull request #790 from dave-tucker/no-map-pinned ([`42fd82e
`](https://github.com/aya-rs/aya/commit/42fd82e32b
))
- Make MapData::pin pub ([`938f979
`](https://github.com/aya-rs/aya/commit/938f979fe7
))
- Remove MapData::pinned ([`0f4021e
`](https://github.com/aya-rs/aya/commit/0f4021ec89
))
- Merge pull request #782 from astoycos/prog-info ([`0b6ea31
`](https://github.com/aya-rs/aya/commit/0b6ea313de
))
- Merge pull request #770 from aya-rs/mapfd-is-owned ([`41d01f6
`](https://github.com/aya-rs/aya/commit/41d01f638b
))
- Fix typos, avoid fallible conversions ([`0dacb34
`](https://github.com/aya-rs/aya/commit/0dacb34d44
))
- MapData::{obj, fd} are private ([`b4d5a1e
`](https://github.com/aya-rs/aya/commit/b4d5a1e8db
))
- `MapFd` and `SockMapFd` are owned ([`f415926
`](https://github.com/aya-rs/aya/commit/f41592663c
))
- Add program_info() api to program ([`6ab7475
`](https://github.com/aya-rs/aya/commit/6ab7475fa6
))
- Merge pull request #775 from aya-rs/perf-as-raw-fd ([`92d3056
`](https://github.com/aya-rs/aya/commit/92d3056db3
))
- Merge pull request #774 from ajwerner/try_from_LruHash ([`8d3fc49
`](https://github.com/aya-rs/aya/commit/8d3fc49d68
))
- Support TryFrom for LRU hash maps ([`172859c
`](https://github.com/aya-rs/aya/commit/172859c66b
))
- Merge pull request #777 from ajwerner/ajwerner/TryFrom-macros ([`792f467
`](https://github.com/aya-rs/aya/commit/792f467d40
))
- Rework TryFrom macros ([`2a1bf60
`](https://github.com/aya-rs/aya/commit/2a1bf609b2
))
- Access inner through async ([`8b0c7f1
`](https://github.com/aya-rs/aya/commit/8b0c7f1204
))
- Merge pull request #772 from aya-rs/link-owned ([`8668436`](https://github.com/aya-rs/aya/commit/8668436787
))
- Merge pull request #771 from aya-rs/xdp-raw ([`c4d1d10
`](https://github.com/aya-rs/aya/commit/c4d1d1086a
))
- ProgAttachLink and LircLink hold owned FDs ([`204d020
`](https://github.com/aya-rs/aya/commit/204d02022a
))
- Use OwnedFd ([`cee0265
`](https://github.com/aya-rs/aya/commit/cee0265b52
))
- Merge pull request #723 from nrxus/map-program-owned-fd ([`c4643b3
`](https://github.com/aya-rs/aya/commit/c4643b395f
))
- Use AsFd when attaching fds to programs ([`6895b1e
`](https://github.com/aya-rs/aya/commit/6895b1e2ed
))
- Use BorrowedFd when using the program fd in sys/bpf.rs ([`d2e74e5
`](https://github.com/aya-rs/aya/commit/d2e74e562d
))
- Merge pull request #765 from aya-rs/more-utf8-fixes ([`461c275
`](https://github.com/aya-rs/aya/commit/461c2759c5
))
- Support non-UTF8 probing ([`1ccfdbc
`](https://github.com/aya-rs/aya/commit/1ccfdbc175
))
- Merge pull request #742 from aya-rs/avoid-utf-assumption ([`8ffd9bb
`](https://github.com/aya-rs/aya/commit/8ffd9bb236
))
- Avoid path UTF-8 assumptions ([`0bba9b1
`](https://github.com/aya-rs/aya/commit/0bba9b14b0
))
- Avoid lossy string conversions ([`572d047
`](https://github.com/aya-rs/aya/commit/572d047e37
))
- Merge pull request #763 from aya-rs/lints ([`ff8c124
`](https://github.com/aya-rs/aya/commit/ff8c124770
))
- Deny various allow-by-default lints ([`abda239
`](https://github.com/aya-rs/aya/commit/abda239d63
))
- Merge pull request #764 from aya-rs/fix-docs ([`1fa1241
`](https://github.com/aya-rs/aya/commit/1fa1241ccb
))
- Fix docs build ([`9ff1bf3
`](https://github.com/aya-rs/aya/commit/9ff1bf3d3b
))
- Merge pull request #758 from aya-rs/map-fd-not-option ([`1d5f764
`](https://github.com/aya-rs/aya/commit/1d5f764d07
))
- BloomFilter::insert takes &mut self ([`a31544b
`](https://github.com/aya-rs/aya/commit/a31544b6e7
))
- MapData::fd is non-optional ([`89bc255
`](https://github.com/aya-rs/aya/commit/89bc255f1d
))
- Merge pull request #757 from aya-rs/attach-fd-owned ([`c7b5cd5
`](https://github.com/aya-rs/aya/commit/c7b5cd5eb5
))
- Use RAII to close FDs ([`3d68fa3
`](https://github.com/aya-rs/aya/commit/3d68fa32cb
))
- `ProgramData::attach_prog_fd` is owned ([`ae6526e
`](https://github.com/aya-rs/aya/commit/ae6526e59b
))
- Merge pull request #744 from aya-rs/programfd-borrowed ([`e813a05
`](https://github.com/aya-rs/aya/commit/e813a054ad
))
- `ProgramFd` is owned ([`504fd1d
`](https://github.com/aya-rs/aya/commit/504fd1df0a
))
- Merge pull request #637 from astoycos/helpers ([`bcc9743
`](https://github.com/aya-rs/aya/commit/bcc9743254
))
- Add helper methods for ProgramInfo ([`e1a5568
`](https://github.com/aya-rs/aya/commit/e1a556894c
))
- Merge pull request #702 from dave-tucker/mapdata-btffd ([`03c5012
`](https://github.com/aya-rs/aya/commit/03c5012db2
))
- Merge pull request #748 from aya-rs/btf_obj_fd-owned ([`7f98e41
`](https://github.com/aya-rs/aya/commit/7f98e419e6
))
- Plug attach_btf_obj_fd leak ([`d88ca62
`](https://github.com/aya-rs/aya/commit/d88ca62aaa
))
- Don't store bpf_fd in MapData ([`db975e9
`](https://github.com/aya-rs/aya/commit/db975e9778
))
- Merge pull request #747 from aya-rs/helpers ([`5bc922a
`](https://github.com/aya-rs/aya/commit/5bc922af23
))
- Refactor btf_obj_get_info_by_fd to share code ([`5ac1862
`](https://github.com/aya-rs/aya/commit/5ac186299b
))
- Add map_ids to bpf_prog_get_info_by_fd ([`c7a19bc
`](https://github.com/aya-rs/aya/commit/c7a19bcefb
))
- Merge pull request #743 from aya-rs/avoid-vec-ksyms ([`90cf131
`](https://github.com/aya-rs/aya/commit/90cf13163b
))
- Avoid vector allocation when parsing ksyms ([`5138c73
`](https://github.com/aya-rs/aya/commit/5138c731a9
))
- Merge pull request #740 from addisoncrump/main ([`0c0cf70
`](https://github.com/aya-rs/aya/commit/0c0cf70deb
))
- Nuclear option: no symbol resolution in the crate ([`ed77727
`](https://github.com/aya-rs/aya/commit/ed777273b1
))
- Merge pull request #725 from dave-tucker/enum64 ([`2a55fc7
`](https://github.com/aya-rs/aya/commit/2a55fc7bd3
))
- Aya, aya-obj: Implement ENUM64 fixups ([`e38e256
`](https://github.com/aya-rs/aya/commit/e38e2566e3
))
- Merge pull request #709 from nrxus/fd-link-owned-fd ([`bd5442a
`](https://github.com/aya-rs/aya/commit/bd5442a1de
))
- Use OwnedFd in FdLink. ([`8ebf0ac
`](https://github.com/aya-rs/aya/commit/8ebf0ac327
))
- Merge pull request #720 from dave-tucker/programsection-noname ([`e915379
`](https://github.com/aya-rs/aya/commit/e9153792f1
))
- Extract trait SymbolResolver ([`d8709de
`](https://github.com/aya-rs/aya/commit/d8709de9f2
))
- Merge pull request #718 from ajwerner/better-code ([`ef6308b
`](https://github.com/aya-rs/aya/commit/ef6308b640
))
- Remove name from ProgramSection ([`cca9b8f
`](https://github.com/aya-rs/aya/commit/cca9b8f1a7
))
- Refactor target resolution ([`81fb4e5
`](https://github.com/aya-rs/aya/commit/81fb4e5568
))
- Merge pull request #717 from ajwerner/no-libc-in-integration-tests ([`de8604d
`](https://github.com/aya-rs/aya/commit/de8604d011
))
- Merge pull request #711 from dave-tucker/sleepable ([`77e9603
`](https://github.com/aya-rs/aya/commit/77e9603976
))
- Extract library path resolving ([`dcc6b84
`](https://github.com/aya-rs/aya/commit/dcc6b84a88
))
- Merge pull request #712 from aya-rs/loaded-links ([`368ddf1
`](https://github.com/aya-rs/aya/commit/368ddf10c4
))
- Add links iterator ([`30faa5f
`](https://github.com/aya-rs/aya/commit/30faa5f68f
))
- Merge pull request #716 from aya-rs/prealloc-vec ([`b1bf61c
`](https://github.com/aya-rs/aya/commit/b1bf61ca61
))
- Set BPF_F_SLEEPABLE for sleepable programs ([`71737f5
`](https://github.com/aya-rs/aya/commit/71737f5576
))
- Preallocate the vector ([`89ef97e
`](https://github.com/aya-rs/aya/commit/89ef97e848
))
- Plug file descriptor leak ([`7bb9b7f
`](https://github.com/aya-rs/aya/commit/7bb9b7f5a5
))
- Push error construction up ([`b1404e9
`](https://github.com/aya-rs/aya/commit/b1404e9a73
))
- Make `loaded_programs` opaque ([`a0af7e0
`](https://github.com/aya-rs/aya/commit/a0af7e0b2f
))
- Extract common SyscallError ([`de8519a
`](https://github.com/aya-rs/aya/commit/de8519a380
))
- `sys_bpf` takes mut ref ([`4cb3ea6
`](https://github.com/aya-rs/aya/commit/4cb3ea6e8f
))
- Merge pull request #714 from aya-rs/dry-btf-load ([`f095c59
`](https://github.com/aya-rs/aya/commit/f095c591af
))
- Avoid repeating BPF_BTF_LOAD dance ([`7ee6f52
`](https://github.com/aya-rs/aya/commit/7ee6f52a74
))
- Merge pull request #706 from aya-rs/reloc-tests ([`3692e53
`](https://github.com/aya-rs/aya/commit/3692e53ff0
))
- S/assert!(.*) ==/assert_eq!\1,/ ([`6f3cce7
`](https://github.com/aya-rs/aya/commit/6f3cce75cf
))
- Merge pull request #707 from aya-rs/one-option-not-two ([`4c3219f
`](https://github.com/aya-rs/aya/commit/4c3219f754
))
- Reduce state cardinality from 4 to 2 ([`0ec9afd
`](https://github.com/aya-rs/aya/commit/0ec9afdb07
))
- Merge pull request #701 from nrxus/perf-event-owned-fd ([`445cb8b
`](https://github.com/aya-rs/aya/commit/445cb8b463
))
- Return `OwnedFd` for `perf_event_open`. ([`dbfba18
`](https://github.com/aya-rs/aya/commit/dbfba18dac
))
- Merge pull request #704 from aya-rs/better-panic ([`868a9b0
`](https://github.com/aya-rs/aya/commit/868a9b00b3
))
- Better panic messages ([`17f25a6
`](https://github.com/aya-rs/aya/commit/17f25a6793
))
- Merge pull request #696 from Tuetuopay/tests-netns ([`f705eab
`](https://github.com/aya-rs/aya/commit/f705eabe66
))
- Add the possibility to run a test inside a network namespace ([`c74813f
`](https://github.com/aya-rs/aya/commit/c74813f8c5
))
- Merge pull request #699 from aya-rs/cache-again-god-damn-it ([`e95f76a
`](https://github.com/aya-rs/aya/commit/e95f76a5b3
))
- Do not escape newlines on Err(LoadError).unwrap() ([`8961be9
`](https://github.com/aya-rs/aya/commit/8961be9526
))
- Merge pull request #662 from nrxus/use-owned-fd-for-btf ([`13e83b2
`](https://github.com/aya-rs/aya/commit/13e83b24ee
))
- Use Arc when loading BTF fd ([`ea96c29
`](https://github.com/aya-rs/aya/commit/ea96c29ccb
))
- Make SysResult generic on Ok variant ([`683a1cf
`](https://github.com/aya-rs/aya/commit/683a1cf2e4
))
- Replace std::os::unix::io for std::os::fd ([`c63d990
`](https://github.com/aya-rs/aya/commit/c63d9904f7
))
- Merge pull request #688 from aya-rs/get-fd-owned ([`53d36a3
`](https://github.com/aya-rs/aya/commit/53d36a3fe0
))
- Bpf_prog_get_fd_by_id returns OwnedFd ([`76c78e3
`](https://github.com/aya-rs/aya/commit/76c78e3bf8
))
- Merge pull request #667 from vadorovsky/workspace-dependencies ([`f554d42
`](https://github.com/aya-rs/aya/commit/f554d42105
))
- Define dependencies on the workspace level ([`96fa08b
`](https://github.com/aya-rs/aya/commit/96fa08bd82
))
- Merge pull request #671 from dave-tucker/misc-fixes ([`7ac808c
`](https://github.com/aya-rs/aya/commit/7ac808cf55
))
- Clippy fixes for latest nightly ([`764eb30
`](https://github.com/aya-rs/aya/commit/764eb309b0
))
- Merge pull request #656 from aya-rs/kernel-version-fml ([`232cd45
`](https://github.com/aya-rs/aya/commit/232cd45e41
))
- Handle WSL kernel version strings ([`35ed85a
`](https://github.com/aya-rs/aya/commit/35ed85a87f
))
- Replace matches with assert_matches ([`961f45d
`](https://github.com/aya-rs/aya/commit/961f45da37
))
- Merge pull request #650 from aya-rs/test-cleanup ([`61608e6
`](https://github.com/aya-rs/aya/commit/61608e6458
))
- Merge pull request #584 from marysaka/fix/btf-kern-optional ([`0766e70
`](https://github.com/aya-rs/aya/commit/0766e70548
))
- Don't use env::tempdir ([`5407d4a
`](https://github.com/aya-rs/aya/commit/5407d4a9a1
))
- Remove "async" feature ([`fa91fb4
`](https://github.com/aya-rs/aya/commit/fa91fb4f59
))
- Ignore embedded BTF error if not truely required ([`74b5468
`](https://github.com/aya-rs/aya/commit/74b546827c
))
- Fix build ([`242d8c3
`](https://github.com/aya-rs/aya/commit/242d8c33c4
))
- Merge pull request #520 from astoycos/unsupported-map ([`eb60d65
`](https://github.com/aya-rs/aya/commit/eb60d65613
))
- Merge pull request #560 from astoycos/fix-perf-link-pin ([`edb7baf
`](https://github.com/aya-rs/aya/commit/edb7baf9a3
))
- Add FdLink documentation and example ([`80b371f
`](https://github.com/aya-rs/aya/commit/80b371f6d1
))
- Merge pull request #644 from aya-rs/build-script ([`7def6d7
`](https://github.com/aya-rs/aya/commit/7def6d7218
))
- Implement FdLink conversions ([`58895db
`](https://github.com/aya-rs/aya/commit/58895db9b4
))
- Compile C probes using build.rs ([`8c61fc9
`](https://github.com/aya-rs/aya/commit/8c61fc9ea6
))
- Merge pull request #648 from aya-rs/clippy-more ([`a840a17
`](https://github.com/aya-rs/aya/commit/a840a17308
))
- Clippy over tests and integration-ebpf ([`e621a09
`](https://github.com/aya-rs/aya/commit/e621a09181
))
- Merge pull request #643 from aya-rs/procfs ([`6e9aba5
`](https://github.com/aya-rs/aya/commit/6e9aba55fe
))
- Type-erase KernelVersion::current error ([`a1e0130
`](https://github.com/aya-rs/aya/commit/a1e0130387
))
- Invert comparison ([`6bceb1c
`](https://github.com/aya-rs/aya/commit/6bceb1c3da
))
- Rewrite kernel version logic ([`6e570f0
`](https://github.com/aya-rs/aya/commit/6e570f0f14
))
- Remove procfs dependency ([`cc2bc0a
`](https://github.com/aya-rs/aya/commit/cc2bc0acc1
))
- Remove verifier log special case ([`b5ebcb7
`](https://github.com/aya-rs/aya/commit/b5ebcb7cc5
))
- Merge pull request #641 from aya-rs/logger-messages-plz ([`4c0983b
`](https://github.com/aya-rs/aya/commit/4c0983bca9
))
- Get verifier logs when loading programs ([`b45a5bb
`](https://github.com/aya-rs/aya/commit/b45a5bb71b
))
- Hide details of VerifierLog ([`6b94b20
`](https://github.com/aya-rs/aya/commit/6b94b2080d
))
- Use procfs crate for kernel version parsing ([`b611038
`](https://github.com/aya-rs/aya/commit/b611038d5b
))
- Merge pull request #642 from aya-rs/less-strings ([`32be47a
`](https://github.com/aya-rs/aya/commit/32be47a23b
))
- Don't allocate static strings ([`27120b3
`](https://github.com/aya-rs/aya/commit/27120b328a
))
- Merge pull request #639 from aya-rs/test-no-bpftool ([`e93e3c4
`](https://github.com/aya-rs/aya/commit/e93e3c4a55
))
- Remove dependency on bpftool in integration tests ([`ff86f13
`](https://github.com/aya-rs/aya/commit/ff86f1385c
))
- Merge pull request #531 from dave-tucker/probe-cookie ([`bc0d021
`](https://github.com/aya-rs/aya/commit/bc0d02143f
))
- Make Features part of the public API ([`47f764c
`](https://github.com/aya-rs/aya/commit/47f764c191
))
- Merge pull request #526 from dave-tucker/trie ([`76d35d1
`](https://github.com/aya-rs/aya/commit/76d35d10ce
))
- Remove iter_key from LPM Trie API ([`00c480d
`](https://github.com/aya-rs/aya/commit/00c480d2f9
))
- Merge pull request #633 from ajwerner/change-fd-import ([`5c6bd55
`](https://github.com/aya-rs/aya/commit/5c6bd55260
))
- Replace os::unix::prelude with os::fd ([`65d10f9
`](https://github.com/aya-rs/aya/commit/65d10f9ffc
))
- Merge pull request #632 from marysaka/feat/global-data-optional ([`b2737d5
`](https://github.com/aya-rs/aya/commit/b2737d5b0d
))
- Update aya/src/bpf.rs ([`77cce84
`](https://github.com/aya-rs/aya/commit/77cce840f7
))
- Allow global value to be optional ([`93435fc
`](https://github.com/aya-rs/aya/commit/93435fc854
))
- Fixups in response to alessandrod review ([`17930a8
`](https://github.com/aya-rs/aya/commit/17930a88c5
))
- Add Unsupported Map type ([`b5719c5
`](https://github.com/aya-rs/aya/commit/b5719c5b3f
))
- Merge pull request #625 from FedericoPonzi/issue-534 ([`9cdae81
`](https://github.com/aya-rs/aya/commit/9cdae81265
))
- Add syscall_prefix and syscall_fnname_add_prefix ([`987e848
`](https://github.com/aya-rs/aya/commit/987e8489d0
))
- Merge pull request #622 from marysaka/fix/uprobe-416-lower ([`e5bac02
`](https://github.com/aya-rs/aya/commit/e5bac02953
))
- Fix uprobe support on 4.16 and lower ([`49c6f5d
`](https://github.com/aya-rs/aya/commit/49c6f5d122
))
- Merge pull request #621 from marysaka/fix/uprobe-debian-10 ([`41fe944
`](https://github.com/aya-rs/aya/commit/41fe944a1a
))
- Add support for old ld.so.cache format ([`8e9f395
`](https://github.com/aya-rs/aya/commit/8e9f395eab
))
- Merge pull request #619 from poliorcetics/relax-ordering-probe-alias ([`37b7c1e
`](https://github.com/aya-rs/aya/commit/37b7c1e614
))
- Relax unnecessarily strict atomic ordering on probe event_alias ([`243986c
`](https://github.com/aya-rs/aya/commit/243986c1da
))
- Merge pull request #618 from marysaka/fix/aya-probe-event-alias-uniq ([`d56ed8f
`](https://github.com/aya-rs/aya/commit/d56ed8fd68
))
- Make probe event_alias unique ([`e9be3d9
`](https://github.com/aya-rs/aya/commit/e9be3d9023
))
- Merge pull request #602 from marysaka/fix/btf-reloc-all-functions ([`3a9a54f
`](https://github.com/aya-rs/aya/commit/3a9a54fd9b
))
- Merge pull request #616 from nak3/fix-bump ([`3211d2c
`](https://github.com/aya-rs/aya/commit/3211d2c928
))
- Add a few tweak a code to fix libbpf's API change. ([`afb4aa1
`](https://github.com/aya-rs/aya/commit/afb4aa1c66
))
- Fixed a typo in the per_cpu_hashmap documentation ([`3d1013d
`](https://github.com/aya-rs/aya/commit/3d1013d729
))
- Merge pull request #607 from Hanaasagi/fix-warning ([`d4bfd72
`](https://github.com/aya-rs/aya/commit/d4bfd72f57
))
- Remove useless `any` `all` in cfg. ([`0e4aec4
`](https://github.com/aya-rs/aya/commit/0e4aec475f
))
- Merge pull request #605 from marysaka/fix/global-data-reloc-ancient-kernels ([`9c437aa
`](https://github.com/aya-rs/aya/commit/9c437aafd9
))
- Do not create data maps on kernel without global data support ([`591e212
`](https://github.com/aya-rs/aya/commit/591e21267a
))
- Move program's functions to the same map ([`9e1109b
`](https://github.com/aya-rs/aya/commit/9e1109b3ce
))
- Merge pull request #592 from probulate/update-bitflags ([`67f480e
`](https://github.com/aya-rs/aya/commit/67f480eb8e
))
- Update bitflags requirement from 1.2.1 to 2.2.1 ([`ae8a95b
`](https://github.com/aya-rs/aya/commit/ae8a95b0ee
))
- Merge pull request #577 from aya-rs/dependabot/cargo/object-0.31 ([`deb054a
`](https://github.com/aya-rs/aya/commit/deb054afa4
))
- Merge pull request #545 from epompeii/lsm_sleepable ([`120b59d
`](https://github.com/aya-rs/aya/commit/120b59dd2e
))
- Update object requirement from 0.30 to 0.31 ([`4c78f7f
`](https://github.com/aya-rs/aya/commit/4c78f7f1a0
))
- Merge pull request #586 from probulate/no-std-inversion ([`45efa63
`](https://github.com/aya-rs/aya/commit/45efa6384f
))
- Flip feature "no_std" to feature "std" ([`33a0a2b
`](https://github.com/aya-rs/aya/commit/33a0a2b604
))
- Merge branch 'aya-rs:main' into lsm_sleepable ([`1f2006b
`](https://github.com/aya-rs/aya/commit/1f2006bfde
))
- Merge pull request #525 from dave-tucker/borrow ([`ed14751
`](https://github.com/aya-rs/aya/commit/ed14751c79
))
- Merge pull request #579 from marysaka/fix/ubuntu-debian-kernel-version-code ([`1066c6c
`](https://github.com/aya-rs/aya/commit/1066c6c2e5
))
- Correctly set the kernel code version for Debian kernel ([`3aeeb81
`](https://github.com/aya-rs/aya/commit/3aeeb8167b
))
- Correctly set the kernel code version for Ubuntu kernel ([`f1d8918
`](https://github.com/aya-rs/aya/commit/f1d891836e
))
- Merge pull request #582 from marysaka/feature/no-kern-read-sanitizer ([`b5c2928
`](https://github.com/aya-rs/aya/commit/b5c2928b0e
))
- Add sanitize code for kernels without bpf_probe_read_kernel ([`1132b6e
`](https://github.com/aya-rs/aya/commit/1132b6e01b
))
- Merge pull request #580 from marysaka/fix/bpf_create_map_panic ([`edd9928
`](https://github.com/aya-rs/aya/commit/edd9928314
))
- Do not use unwrap with btf_fd in bpf_create_map ([`7c25fe9
`](https://github.com/aya-rs/aya/commit/7c25fe90a9
))
- Merge pull request #572 from alessandrod/reloc-fixes ([`542ada3
`](https://github.com/aya-rs/aya/commit/542ada3fe7
))
- Support relocations across multiple text sections + fixes ([`93ac3e9
`](https://github.com/aya-rs/aya/commit/93ac3e94bc
))
- Aya, aya-obj: refactor map relocations ([`401ea5e
`](https://github.com/aya-rs/aya/commit/401ea5e848
))
- Review ([`85714d5
`](https://github.com/aya-rs/aya/commit/85714d5cf3
))
- Program_section ([`17f497c
`](https://github.com/aya-rs/aya/commit/17f497ce42
))
- Merge pull request #557 from drewvis/main ([`b13070a
`](https://github.com/aya-rs/aya/commit/b13070a342
))
- Make it possible to use set_global() with slices of Pod(s) ([`bcb2972
`](https://github.com/aya-rs/aya/commit/bcb2972a96
))
- Added code check comment ([`8f64cf8
`](https://github.com/aya-rs/aya/commit/8f64cf8cd5
))
- Add check for empty tracefs mounts ([`3a2c0cd
`](https://github.com/aya-rs/aya/commit/3a2c0cd1dd
))
- Revert "aya: make it possible to use set_global() with slices of Pod(s)" ([`8ef00c4
`](https://github.com/aya-rs/aya/commit/8ef00c4c63
))
- Make it possible to use set_global() with slices of Pod(s) ([`b614ffd
`](https://github.com/aya-rs/aya/commit/b614ffd603
))
- Merge pull request #548 from kriomant/feature-xdp-attach-by-index ([`d6319f9
`](https://github.com/aya-rs/aya/commit/d6319f95c9
))
- Don't leak libc types ([`ce60854
`](https://github.com/aya-rs/aya/commit/ce60854934
))
- Fix formatting ([`896e3ab
`](https://github.com/aya-rs/aya/commit/896e3ab313
))
- Rename method and fix comment ([`676b5cd
`](https://github.com/aya-rs/aya/commit/676b5cdc0d
))
- Allow to attach XDP probe by interface index ([`2e3c177
`](https://github.com/aya-rs/aya/commit/2e3c1779be
))
- Merge pull request #539 from marysaka/fix/map_data_clone ([`113e3ef
`](https://github.com/aya-rs/aya/commit/113e3ef018
))
- Fix MapData Clone implementation ([`94049ec
`](https://github.com/aya-rs/aya/commit/94049ec661
))
- Merge pull request #524 from dave-tucker/prog_list ([`d9878a6
`](https://github.com/aya-rs/aya/commit/d9878a6791
))
- Add loaded_programs() API to list all loaded programs ([`de4905a
`](https://github.com/aya-rs/aya/commit/de4905a24b
))
- MapData should be Borrow, not AsRef ([`b1a70fc
`](https://github.com/aya-rs/aya/commit/b1a70fc6e4
))
- Merge pull request #523 from dave-tucker/fix_perf_link ([`56c1438
`](https://github.com/aya-rs/aya/commit/56c143831e
))
- Fix is_perf_link_supported ([`ce79de7
`](https://github.com/aya-rs/aya/commit/ce79de7ff6
))
- Merge pull request #522 from dave-tucker/perf_link ([`d7d6442
`](https://github.com/aya-rs/aya/commit/d7d6442671
))
- More discrete feature logging ([`7479c1d
`](https://github.com/aya-rs/aya/commit/7479c1dd6c
))
- Enable bpf_link for perf_attach programs ([`d0b3d3b
`](https://github.com/aya-rs/aya/commit/d0b3d3b2fa
))
- Add probe for bpf_link_create for perf programs ([`763b92a
`](https://github.com/aya-rs/aya/commit/763b92a2e0
))
- Make features a lazy_static ([`ce22ca6
`](https://github.com/aya-rs/aya/commit/ce22ca668f
))
- Merge pull request #519 from dave-tucker/frags ([`bc83f20
`](https://github.com/aya-rs/aya/commit/bc83f208b1
))
- Add support for multibuffer programs ([`a18693b
`](https://github.com/aya-rs/aya/commit/a18693b42d
))
- Merge pull request #496 from dave-tucker/program-from-pinned3 ([`811ab29
`](https://github.com/aya-rs/aya/commit/811ab299de
))
- Add from_pin for Programs ([`7a720ab
`](https://github.com/aya-rs/aya/commit/7a720ab0c1
))
- Merge pull request #515 from alessandrod/fix-lru-hash ([`cfa693b
`](https://github.com/aya-rs/aya/commit/cfa693bc3b
))
- Fix Lru and LruPerCpu hash maps ([`c22014c
`](https://github.com/aya-rs/aya/commit/c22014c757
))
- Merge pull request #512 from astoycos/crucial-btf-fixes ([`27017ca
`](https://github.com/aya-rs/aya/commit/27017ca8a3
))
- Support BTF key/value specification for all maps ([`52e6250
`](https://github.com/aya-rs/aya/commit/52e625060e
))
- Merge pull request #445 from anfredette/tc-link-recon ([`22d7931
`](https://github.com/aya-rs/aya/commit/22d79312f7
))
- Address review comments from @alessandrod ([`7c24296
`](https://github.com/aya-rs/aya/commit/7c24296b5d
))
- Merge pull request #471 from banditopazzo/tracefs_mount_select ([`7e5637b
`](https://github.com/aya-rs/aya/commit/7e5637bb9c
))
- Tracefs review fixes ([`48fdf5a
`](https://github.com/aya-rs/aya/commit/48fdf5a250
))
- Get_tracefs function ([`c6c4ac7
`](https://github.com/aya-rs/aya/commit/c6c4ac7eea
))
- Updates after rebase due to changes in define_link_wrapper ([`d43879d
`](https://github.com/aya-rs/aya/commit/d43879d991
))
- Remove SchedClassifierLink description ([`6766532`](https://github.com/aya-rs/aya/commit/6766532341
))
- Address review comments ([`2972d46
`](https://github.com/aya-rs/aya/commit/2972d462a5
))
- Address review comments ([`65f5b76
`](https://github.com/aya-rs/aya/commit/65f5b76593
))
- Rename SchedClassifierLink:new() to new_tc_link() ([`849796c
`](https://github.com/aya-rs/aya/commit/849796c420
))
- Additional edits to SchedClassifierLink documentation. ([`67efc33
`](https://github.com/aya-rs/aya/commit/67efc33414
))
- Combine updates to SchedClassifierLink example made by Dave Tucker ([`6563e6c
`](https://github.com/aya-rs/aya/commit/6563e6cc06
))
- Add example for SchedClassifierLink::new() ([`c3a8400
`](https://github.com/aya-rs/aya/commit/c3a8400e4d
))
- Support reconstruction of `SchedClassifierLink` ([`f46fd17
`](https://github.com/aya-rs/aya/commit/f46fd17cc3
))
- Expose inner errors ([`1899d5f
`](https://github.com/aya-rs/aya/commit/1899d5f4fd
))
- Merge pull request #484 from vadorovsky/update-tokio ([`bea0e83
`](https://github.com/aya-rs/aya/commit/bea0e83512
))
- Update Tokio and inventory ([`dad75f4
`](https://github.com/aya-rs/aya/commit/dad75f45ac
))
- Merge pull request #475 from yesh0/aya-obj ([`897957a
`](https://github.com/aya-rs/aya/commit/897957ac84
))
- Update documentation and versioning info ([`9c451a3
`](https://github.com/aya-rs/aya/commit/9c451a3357
))
- Add basic documentation to public members ([`e52497c
`](https://github.com/aya-rs/aya/commit/e52497cb9c
))
- Migrate aya::obj into a separate crate ([`ac49827
`](https://github.com/aya-rs/aya/commit/ac49827e20
))
- Migrate bindgen destination ([`81bc307
`](https://github.com/aya-rs/aya/commit/81bc307dce
))
- Btf relocs: don't panic on failed relocation ([`c6f93b1
`](https://github.com/aya-rs/aya/commit/c6f93b1775
))
- Make btf::RelocationError private ([`aba99ea
`](https://github.com/aya-rs/aya/commit/aba99ea4b1
))
- Fix regression computing pointer sizes ([`12e422b
`](https://github.com/aya-rs/aya/commit/12e422b211
))
- Resolve symbol address for PIE executables ([`1a22792
`](https://github.com/aya-rs/aya/commit/1a22792ee7
))
- Fix detaching links on drop ([`b3ae778
`](https://github.com/aya-rs/aya/commit/b3ae7786d3
))
- Merge pull request #461 from FallingSnow/main ([`9f5d157
`](https://github.com/aya-rs/aya/commit/9f5d157628
))
- Fix LpnTrieKeys -> LpmTrieKeys typo ([`10ac595
`](https://github.com/aya-rs/aya/commit/10ac5957c1
))
- Merge pull request #466 from bpfdeploy-io/ml/cgroup-device ([`d1919a8
`](https://github.com/aya-rs/aya/commit/d1919a83ed
))
- Fix doctest issue ([`925504f
`](https://github.com/aya-rs/aya/commit/925504f230
))
- Fix CI, clippy and feedback ([`4b6d97e
`](https://github.com/aya-rs/aya/commit/4b6d97e4db
))
- Add support for BPF_PROG_TYPE_CGROUP_DEVICE ([`8f1163a
`](https://github.com/aya-rs/aya/commit/8f1163a400
))
- Fix formatting ([`a44f054
`](https://github.com/aya-rs/aya/commit/a44f054bec
))
- Merge pull request #460 from Tuetuopay/owned-per-cpu-hash-map ([`66d435f
`](https://github.com/aya-rs/aya/commit/66d435fc7c
))
- Remove old test ([`1368eb9
`](https://github.com/aya-rs/aya/commit/1368eb94e7
))
- Add ability to iterate over lpmtrie key matches ([`9a3682e
`](https://github.com/aya-rs/aya/commit/9a3682e793
))
- Fix lpmtrie iter returning nothing ([`8fe64ae
`](https://github.com/aya-rs/aya/commit/8fe64aef1f
))
- Add missing TryFrom for HashMap, PerCpuHashMap and LpmTrie ([`51bb50e
`](https://github.com/aya-rs/aya/commit/51bb50ed8e
))
- Iterate lpmtrie ([`e4182a9
`](https://github.com/aya-rs/aya/commit/e4182a9eab
))
- Merge pull request #456 from dmitris/uninlined_format_args ([`16b029e
`](https://github.com/aya-rs/aya/commit/16b029ed37
))
- Fix uninlined_format_args clippy issues ([`055d94f
`](https://github.com/aya-rs/aya/commit/055d94f58b
))
- Merge pull request #450 from aya-rs/dependabot/cargo/object-0.30 ([`1ded0e6
`](https://github.com/aya-rs/aya/commit/1ded0e61cd
))
- Update object requirement from 0.29 to 0.30 ([`1fe7bba
`](https://github.com/aya-rs/aya/commit/1fe7bba070
))
- Merge pull request #452 from vadorovsky/fix-lint ([`9382de7
`](https://github.com/aya-rs/aya/commit/9382de75cc
))
- Fix clippy error ([`176d61a
`](https://github.com/aya-rs/aya/commit/176d61ae23
))
- Merge pull request #418 from anfredette/tc-handle ([`7fef833
`](https://github.com/aya-rs/aya/commit/7fef833e3a
))
- Make doc fixes ([`abb75ba
`](https://github.com/aya-rs/aya/commit/abb75ba029
))
- Merge pull request #431 from 0b01/refs ([`88d7777
`](https://github.com/aya-rs/aya/commit/88d7777553
))
- Fix formatting ([`76e417a
`](https://github.com/aya-rs/aya/commit/76e417a474
))
- Support both attach() and attach_with_options() for SchedClassifier ([`a3e3e80
`](https://github.com/aya-rs/aya/commit/a3e3e80698
))
- Merge pull request #435 from vadorovsky/pin-fix-error-msg ([`3e089a6
`](https://github.com/aya-rs/aya/commit/3e089a61d1
))
- Fix the error message in `MapData::pin()` ([`e0a9895
`](https://github.com/aya-rs/aya/commit/e0a9895260
))
- Make sure everything is marked correctly ([`6ce60ad
`](https://github.com/aya-rs/aya/commit/6ce60ad21d
))
- Fix array ([`9525b1a
`](https://github.com/aya-rs/aya/commit/9525b1a370
))
- Fix wrong bounds ([`575fea4
`](https://github.com/aya-rs/aya/commit/575fea4cb9
))
- Cargo fmt ([`fbfbedb
`](https://github.com/aya-rs/aya/commit/fbfbedb6a8
))
- Use & ([`9991ffb
`](https://github.com/aya-rs/aya/commit/9991ffb093
))
- Add test case ([`e9ec257
`](https://github.com/aya-rs/aya/commit/e9ec257328
))
- Use Borrow instead ([`1247ffc
`](https://github.com/aya-rs/aya/commit/1247ffc19b
))
- Use a struct for setting priority and handle in SchedClassfier attach ([`af3de84
`](https://github.com/aya-rs/aya/commit/af3de84b08
))
- Support using handle in tc programs ([`ac07608
`](https://github.com/aya-rs/aya/commit/ac07608b79
))
- Merge pull request #397 from astoycos/refactor-map-api2 ([`d6cb1a1
`](https://github.com/aya-rs/aya/commit/d6cb1a16ad
))
- Fix doc links, update rustdoc args ([`82edd68
`](https://github.com/aya-rs/aya/commit/82edd681c3
))
- Make map APIs return an option ([`f3262e8
`](https://github.com/aya-rs/aya/commit/f3262e87bd
))
- Fixups4 ([`4ddf260
`](https://github.com/aya-rs/aya/commit/4ddf2600b4
))
- Fixups 3 ([`440097d
`](https://github.com/aya-rs/aya/commit/440097d7bc
))
- Fixups 2 ([`939d16c
`](https://github.com/aya-rs/aya/commit/939d16cce5
))
- Fixups ([`8009361`](https://github.com/aya-rs/aya/commit/8009361694
))
- Implement Copy for MapData ([`893f9f4
`](https://github.com/aya-rs/aya/commit/893f9f44a2
))
- Use SockMapFd ([`898a14d
`](https://github.com/aya-rs/aya/commit/898a14d425
))
- Core refactor of Map API ([`1aefa2e
`](https://github.com/aya-rs/aya/commit/1aefa2e5e6
))
- Merge branch 'aya-rs:main' into integration-tests-cli-options ([`4183c7a
`](https://github.com/aya-rs/aya/commit/4183c7a7d2
))
- Merge pull request #411 from abhijeetbhagat/fix-warnings ([`94bc93e
`](https://github.com/aya-rs/aya/commit/94bc93ea07
))
- Fix all clippy warnings ([`6c813b8
`](https://github.com/aya-rs/aya/commit/6c813b8c38
))
- Merge pull request #406 from dave-tucker/unused-deps ([`57ab0d7
`](https://github.com/aya-rs/aya/commit/57ab0d7978
))
- Remove unused dependencies ([`ec2bd69
`](https://github.com/aya-rs/aya/commit/ec2bd69053
))
- Merge pull request #404 from dave-tucker/async-docs ([`14ba644
`](https://github.com/aya-rs/aya/commit/14ba644aa5
))
- Add labels for optional features ([`95e8c78
`](https://github.com/aya-rs/aya/commit/95e8c78db8
))
- Merge pull request #398 from vadorovsky/fix-miri ([`3f2f3a8
`](https://github.com/aya-rs/aya/commit/3f2f3a8be0
))
- Disable miri warnings about integer-to-pointer conversions ([`43aff57
`](https://github.com/aya-rs/aya/commit/43aff57793
))
- Avoid integer to pointer casts ([`2432677`](https://github.com/aya-rs/aya/commit/2432677b2b
))
- Merge pull request #393 from aztecher/impl-set_max_entries ([`a93a975
`](https://github.com/aya-rs/aya/commit/a93a975cc6
))
- Add BpfLoader::set_max_entries ([`2eccf1d
`](https://github.com/aya-rs/aya/commit/2eccf1d57d
))
- Merge pull request #394 from vadorovsky/clippy ([`6eca4f5
`](https://github.com/aya-rs/aya/commit/6eca4f5709
))
- Fix clippy warnings ([`5a4b5ff
`](https://github.com/aya-rs/aya/commit/5a4b5ff8d8
))
- Merge pull request #391 from dave-tucker/fix-387 ([`e696389
`](https://github.com/aya-rs/aya/commit/e696389837
))
- Rename from_pinned and from_path to from_pin ([`5693fb9
`](https://github.com/aya-rs/aya/commit/5693fb9941
))
- Fix review comments from #387 ([`de6fa98
`](https://github.com/aya-rs/aya/commit/de6fa98963
))
- Merge pull request #387 from astoycos/map-from-prog ([`eb26a6b
`](https://github.com/aya-rs/aya/commit/eb26a6b116
))
- Add `from_pinned` and `from_fd` methods ([`8a9cbf1
`](https://github.com/aya-rs/aya/commit/8a9cbf179f
))
- Merge pull request #378 from dave-tucker/pin-fixes-again ([`98e25ca
`](https://github.com/aya-rs/aya/commit/98e25ca5e6
))
- Add integration test for pinning lifecycle ([`7c244e1
`](https://github.com/aya-rs/aya/commit/7c244e1f65
))
- Replace From for XdpLink with TryFrom ([`f961cbb
`](https://github.com/aya-rs/aya/commit/f961cbb3d4
))
- Rename bpf_obj_get_info_by_id ([`6af2053
`](https://github.com/aya-rs/aya/commit/6af2053cf3
))
- Merge pull request #376 from conectado/verifier-log-level ([`fe22b02
`](https://github.com/aya-rs/aya/commit/fe22b02108
))
- Fix miss doc period ([`3bed2c2
`](https://github.com/aya-rs/aya/commit/3bed2c2b94
))
- Change variant names ([`c30ae6e
`](https://github.com/aya-rs/aya/commit/c30ae6e001
))
- More pinning fixes ([`4b5b9ab
`](https://github.com/aya-rs/aya/commit/4b5b9ab3d9
))
- Merge pull request #384 from aya-rs/codegen ([`7b99a57
`](https://github.com/aya-rs/aya/commit/7b99a57330
))
- [codegen] Update libbpf to efd33720cdf4a0049323403df5daad0e9e894b3dUpdate libbpf to efd33720cd
([`ed849ff
`](https://github.com/aya-rs/aya/commit/ed849ffd18
))
- Merge pull request #381 from aya-rs/codegen ([`49c5a94
`](https://github.com/aya-rs/aya/commit/49c5a94aa0
))
- [codegen] Update libbpf to efd33720cdf4a0049323403df5daad0e9e894b3dUpdate libbpf to efd33720cd
([`8e96011
`](https://github.com/aya-rs/aya/commit/8e96011c2d
))
- Merge pull request #379 from dave-tucker/fix-link-segfault ([`9451699`](https://github.com/aya-rs/aya/commit/945169996c
))
- Fix segfault in define_link_wrapper ([`18584e2
`](https://github.com/aya-rs/aya/commit/18584e2259
))
- Merge pull request #285 from dave-tucker/btf-redux ([`66b4f79
`](https://github.com/aya-rs/aya/commit/66b4f79eca
))
- Improved BTF Type API ([`f34ebeb
`](https://github.com/aya-rs/aya/commit/f34ebeba99
))
- Update `VerifierLogLevel` to use bitflags ([`7b14319
`](https://github.com/aya-rs/aya/commit/7b143199fb
))
- Merge pull request #366 from dave-tucker/pin-redux-2 ([`4826bf7
`](https://github.com/aya-rs/aya/commit/4826bf7f74
))
- Fix Link Pinning ([`4c1d645
`](https://github.com/aya-rs/aya/commit/4c1d645aa6
))
- Merge pull request #371 from conectado/verifier-log-level ([`b95adc3
`](https://github.com/aya-rs/aya/commit/b95adc3135
))
- Update `VerifierLogLevel` level variants ([`a602525
`](https://github.com/aya-rs/aya/commit/a6025255f5
))
- Use enum to set verifier log level ([`edd8039
`](https://github.com/aya-rs/aya/commit/edd80397dc
))
- Expose BPF verifier log level configuration ([`3211646`](https://github.com/aya-rs/aya/commit/3211646aef
))
- Change from Rust edition 2018 to 2021 ([`944d6b8
`](https://github.com/aya-rs/aya/commit/944d6b8a16
))
- Add support for setting priority for classifier programs ([`207c689
`](https://github.com/aya-rs/aya/commit/207c689f56
))
- Merge pull request #355 from dave-tucker/rm-map-pin-path ([`55a7e3c
`](https://github.com/aya-rs/aya/commit/55a7e3c4d0
))
- Remove MapError::InvalidPinPath ([`03a15b9
`](https://github.com/aya-rs/aya/commit/03a15b9864
))
- Merge pull request #343 from dave-tucker/pinning-redux ([`8e6c9ad
`](https://github.com/aya-rs/aya/commit/8e6c9ad0d2
))
- Use PinError for all pinning errors ([`34ba2bc
`](https://github.com/aya-rs/aya/commit/34ba2bc048
))
- Implement FdLink::pin() ([`64f8a43
`](https://github.com/aya-rs/aya/commit/64f8a434d2
))
- Allow pin to be used on all programs ([`5726b6d
`](https://github.com/aya-rs/aya/commit/5726b6d044
))
- Merge pull request #350 from dave-tucker/monorepo ([`f37a514
`](https://github.com/aya-rs/aya/commit/f37a51433f
))
- Fix rlimit warning on for 32bit systems ([`c9e70a8
`](https://github.com/aya-rs/aya/commit/c9e70a8758
))
- Merge pull request #140 from dave-tucker/btf-maps ([`73ee3cf
`](https://github.com/aya-rs/aya/commit/73ee3cff70
))
- Support BTF Maps ([`f976229
`](https://github.com/aya-rs/aya/commit/f976229477
))
- Merge pull request #344 from vadorovsky/rlimit-v2 ([`fa4347a
`](https://github.com/aya-rs/aya/commit/fa4347aae4
))
- Raise the RLIMIT_MEMLOCK warning only if failed to create a map ([`3d592d0
`](https://github.com/aya-rs/aya/commit/3d592d0f29
))
- Merge pull request #342 from vadorovsky/rlimit ([`a7fa938
`](https://github.com/aya-rs/aya/commit/a7fa938f1e
))
- Raise the warning when RMILIT_MEMLOCK is not RLIM_INFINITY ([`bebe98e
`](https://github.com/aya-rs/aya/commit/bebe98e670
))
- Merge pull request #336 from dave-tucker/clippy ([`6188c9d
`](https://github.com/aya-rs/aya/commit/6188c9dee3
))
- Fix latest nightly lints ([`336faf5
`](https://github.com/aya-rs/aya/commit/336faf553e
))
- Merge pull request #330 from aya-rs/dependabot/cargo/object-0.29 ([`f2fb211
`](https://github.com/aya-rs/aya/commit/f2fb211634
))
- Update object requirement from 0.28 to 0.29 ([`661a215
`](https://github.com/aya-rs/aya/commit/661a21570f
))
- Merge pull request #328 from drewkett/map-update-no-key ([`a301a56
`](https://github.com/aya-rs/aya/commit/a301a56316
))
- Merge pull request #282 from dave-tucker/bpfd ([`e5f455f
`](https://github.com/aya-rs/aya/commit/e5f455f238
))
- Improve Extension Docs ([`004f3dd
`](https://github.com/aya-rs/aya/commit/004f3dd664
))
- Add Extension::attach_to_program() ([`9e85b92
`](https://github.com/aya-rs/aya/commit/9e85b92323
))
- Replace ProgramFd trait with struct ([`b441332
`](https://github.com/aya-rs/aya/commit/b4413322e3
))
- Implement attach_to_link for XDP ([`fd52bfe
`](https://github.com/aya-rs/aya/commit/fd52bfeadc
))
- Add support for bpf_link_update ([`ccb1897
`](https://github.com/aya-rs/aya/commit/ccb189784f
))
- Have bpf_map_update_elem take Option<&K> for key ([`36edf09
`](https://github.com/aya-rs/aya/commit/36edf09254
))
- Add Map::fd() function to return a MapFd ([`623579a
`](https://github.com/aya-rs/aya/commit/623579a47f
))
- Merge pull request #320 from dave-tucker/moar-crabby-docs ([`ed3b690
`](https://github.com/aya-rs/aya/commit/ed3b690a6d
))
- Add crabby, sync with aya/README.md ([`2b98259
`](https://github.com/aya-rs/aya/commit/2b98259be7
))
- Add crabby logo ([`713cd4e
`](https://github.com/aya-rs/aya/commit/713cd4e858
))
- Merge pull request #315 from dave-tucker/sock ([`7549eb9
`](https://github.com/aya-rs/aya/commit/7549eb979c
))
- Implement BPF_PROG_TYPE_CGROUP_SOCK ([`7b21a2d
`](https://github.com/aya-rs/aya/commit/7b21a2d17e
))
- Unload programs on drop ([`0cd1e51
`](https://github.com/aya-rs/aya/commit/0cd1e51476
))
Bpf
to be Send
, which makes it easier to use it with async runtimes.
Change the link API to:
let link_id = prog.attach(...)?;
...
prog.detach(link_id)?;
Link ids are strongly typed, so it's impossible to eg:
let link_id = uprobe.attach(...)?;
xdp.detach(link_id);
As it would result in a compile time error.
Links are still stored inside ProgramData, and unless detached explicitly, they are automatically detached when the parent program gets dropped.
This makes for a more ergonomic API, and allows for a more idiomatic usage of BytesMut. For example consider:
let mut buffers = vec![BytesMut::with_capacity(N), ...];
loop {
let events = oob_cpu_buf.read_events(&mut buffers).unwrap();
for buf in &mut buffers[..events.read] {
let sub: Bytes = buf.split_off(n).into();
process_sub_buf(sub);
}
...
}
This is a common way to process perf bufs, where a sub buffer is split off from the original buffer and then processed. In the next iteration of the loop when it's time to read again, two things can happen:
if processing of the sub buffer is complete and sub
has been
dropped, read_events() will call buf.reserve(sample_size) and hit a fast
path in BytesMut that will just restore the original capacity of the
buffer (assuming sample_size <= N).
if processing of the sub buffer hasn't ended (eg the buffer has been stored or is being processed in another thread), buf.reserve(sample_size) will actually allocate the new memory required to read the sample.
In other words, calling buf.reserve(sample_size) inside read_events() simplifies doing zero-copy processing of buffers in many cases.
f721021
`](https://github.com/aya-rs/aya/commit/f721021a0a
))
* **[#264](https://github.com/aya-rs/aya/issues/264)**
- Program unload API ([`e2685c9
`](https://github.com/aya-rs/aya/commit/e2685c98d8
))
* **[#268](https://github.com/aya-rs/aya/issues/268)**
- Add support for BPF_PROG_TYPE_CGROUP_SOCKOPT ([`e68d734
`](https://github.com/aya-rs/aya/commit/e68d734c68
))
* **Uncategorized**
- (cargo-release) version 0.11.0 ([`d85b36f
`](https://github.com/aya-rs/aya/commit/d85b36f6d8
))
- Merge pull request #306 from dave-tucker/take_link ([`4ae5bc4
`](https://github.com/aya-rs/aya/commit/4ae5bc4b9b
))
- Rename forget_link to take_link ([`b2a6f00
`](https://github.com/aya-rs/aya/commit/b2a6f00212
))
- Merge pull request #296 from aya-rs/codegen ([`de8ab7f
`](https://github.com/aya-rs/aya/commit/de8ab7f415
))
- [codegen] Update libbpf to 4eb6485c08867edaa5a0a81c64ddb23580420340Update libbpf to 4eb6485c08
([`bbb34b3
`](https://github.com/aya-rs/aya/commit/bbb34b3285
))
- Merge pull request #286 from nak3/add-BPF_MAP_TYPE_BLOOM_FILTER ([`1633700`](https://github.com/aya-rs/aya/commit/16337001e4
))
- Fix typo, take & to query the value ([`c192817
`](https://github.com/aya-rs/aya/commit/c192817a59
))
- Merge pull request #265 from dave-tucker/sklookup ([`a047354
`](https://github.com/aya-rs/aya/commit/a0473548ca
))
- Add support for BPF_PROG_TYPE_SK_LOOKUP ([`2226b89
`](https://github.com/aya-rs/aya/commit/2226b89ceb
))
- Add support for BPF_MAP_TYPE_BLOOM_FILTER ([`c4262f7
`](https://github.com/aya-rs/aya/commit/c4262f793d
))
- Merge pull request #281 from dave-tucker/export ([`7d8365c
`](https://github.com/aya-rs/aya/commit/7d8365c351
))
- Export program modules ([`824baf9
`](https://github.com/aya-rs/aya/commit/824baf9d64
))
- Merge pull request #279 from aya-rs/codegen ([`de1559a
`](https://github.com/aya-rs/aya/commit/de1559ab77
))
- [codegen] Update libbpf to 47595c2f08aece55baaf21ed0b72f5c5abf2cb5eUpdate libbpf to 47595c2f08
([`4767664`](https://github.com/aya-rs/aya/commit/4767664d5d
))
- Merge pull request #278 from dave-tucker/riscv ([`b71fe64
`](https://github.com/aya-rs/aya/commit/b71fe64a10
))
- Riscv scaffolding for codegen ([`edaa70b
`](https://github.com/aya-rs/aya/commit/edaa70b5ba
))
- Merge pull request #276 from dave-tucker/clippy ([`0d7fb44
`](https://github.com/aya-rs/aya/commit/0d7fb4472d
))
- Fix new lints on nightly ([`4a32e7d
`](https://github.com/aya-rs/aya/commit/4a32e7d985
))
- Merge pull request #273 from dave-tucker/fix_sidebar ([`9904237`](https://github.com/aya-rs/aya/commit/9904237ac1
))
- Add all crates to sidebar ([`ba312c4
`](https://github.com/aya-rs/aya/commit/ba312c48d5
))
- Merge pull request #263 from nak3/cgroup-skb-attach-type ([`63b6286
`](https://github.com/aya-rs/aya/commit/63b6286bd9
))
- Merge pull request #267 from aya-rs/codegen ([`aacf6ec
`](https://github.com/aya-rs/aya/commit/aacf6ec110
))
- [codegen] Update libbpf to 86eb09863c1c0177e99c2c703092042d3cdba910Update libbpf to 86eb09863c
([`7f7c78a
`](https://github.com/aya-rs/aya/commit/7f7c78ad6b
))
- Use map() ([`5d22869
`](https://github.com/aya-rs/aya/commit/5d228695a4
))
- Merge pull request #261 from dave-tucker/cgroup_sock ([`8fd8816
`](https://github.com/aya-rs/aya/commit/8fd8816dfd
))
- Add BPF_PROG_TYPE_CGROUP_SOCK_ADDR ([`af54b6c
`](https://github.com/aya-rs/aya/commit/af54b6c818
))
- Set attach type during load for BPF_PROG_TYPE_CGROUP_SKB ([`29c10fa
`](https://github.com/aya-rs/aya/commit/29c10fafb7
))
- Merge pull request #253 from dave-tucker/forget ([`2fca4ae
`](https://github.com/aya-rs/aya/commit/2fca4aee4e
))
- Implement forget_link ([`8069ad1
`](https://github.com/aya-rs/aya/commit/8069ad14d0
))
- Merge pull request #254 from dave-tucker/clippy ([`e71e07f
`](https://github.com/aya-rs/aya/commit/e71e07f88e
))
- Fix lint against latest nightly ([`cdaa3af
`](https://github.com/aya-rs/aya/commit/cdaa3af5ae
))
- Merge pull request #252 from dave-tucker/multimap-relo ([`4afc5ea
`](https://github.com/aya-rs/aya/commit/4afc5ea711
))
- Relocate maps using symbol_index ([`d1f2215
`](https://github.com/aya-rs/aya/commit/d1f2215193
))
- Revert version to 0.10.7 ([`4e57d1f
`](https://github.com/aya-rs/aya/commit/4e57d1fe32
))
- Merge pull request #251 from aya-rs/codegen ([`e1f448e
`](https://github.com/aya-rs/aya/commit/e1f448e6b7
))
- [codegen] Update libbpf to 3a4e26307d0f9b227e3ebd28b443a1a715e4e17dUpdate libbpf to 3a4e26307d
([`d6ca3e1
`](https://github.com/aya-rs/aya/commit/d6ca3e1ae7
))
- Merge pull request #249 from alessandrod/new-links ([`b039ac5
`](https://github.com/aya-rs/aya/commit/b039ac524e
))
- Rework links ([`cb57d10
`](https://github.com/aya-rs/aya/commit/cb57d10d25
))
- Merge pull request #181 from dave-tucker/multimap ([`5472ac0
`](https://github.com/aya-rs/aya/commit/5472ac0354
))
- Support multiple maps in map sections ([`f357be7
`](https://github.com/aya-rs/aya/commit/f357be7db4
))
- Merge pull request #243 from alessandrod/perf-reserve ([`a1d4499
`](https://github.com/aya-rs/aya/commit/a1d4499967
))
- Perf_buffer: call BytesMut::reserve() internally ([`ad1636d
`](https://github.com/aya-rs/aya/commit/ad1636d2e7
))
This change makes it so the name is only added on kernels 4.15 and newer.
static
instead of const
and mention the necessity of using
core::ptr::read_volatile
.fa037a88e2
allowed for cgroup skb programs
that did not specify an attach direction to use the cgroup/skb section
name per the convention established in libbpf. It did not add the
necessary code to load programs from those sections which is added in
this commitupdated-dependencies:
Among other things, enables the use of bpf_for_each_map_elem.
To DRY this logic it has been moved to a function so its shared with program loading
size
and type
is unused in BTF_KIND_ARRAY.
Type information of elements is in the btfarray struct that follows in
the type field while the index type is in the index_type field.
For BTF_KIND_INT, only the offset should be compared and size and signedness should be ignored.
updated-dependencies:
761cb79
`](https://github.com/aya-rs/aya/commit/761cb79fe3
))
* **Uncategorized**
- (cargo-release) version 0.10.7 ([`f01497e
`](https://github.com/aya-rs/aya/commit/f01497e021
))
- Fix lint errors ([`9a642d3
`](https://github.com/aya-rs/aya/commit/9a642d373f
))
- Merge pull request #228 from nak3/fix-socket_filter ([`d690710
`](https://github.com/aya-rs/aya/commit/d690710337
))
- Merge pull request #229 from dave-tucker/fix_cgroup_skb_attach_v2 ([`3dc9308
`](https://github.com/aya-rs/aya/commit/3dc9308c8e
))
- Merge pull request #224 from Tuetuopay/pod-arrays ([`02c376c
`](https://github.com/aya-rs/aya/commit/02c376ceb7
))
- Merge pull request #238 from vadorovsky/fix-doc-set-global ([`5269ab5
`](https://github.com/aya-rs/aya/commit/5269ab5b1c
))
- Improve documentation of set_global method ([`7dd2e3d
`](https://github.com/aya-rs/aya/commit/7dd2e3d1f8
))
- Merge pull request #237 from hi120ki/fix-typo-fentry ([`7fdf37a
`](https://github.com/aya-rs/aya/commit/7fdf37ad51
))
- Fix typo in aya/src/programs/fentry.rs ([`ab46253
`](https://github.com/aya-rs/aya/commit/ab462533c7
))
- Fix unit test ([`5725a97
`](https://github.com/aya-rs/aya/commit/5725a97648
))
- Fix socket_filter section match ([`9e41317
`](https://github.com/aya-rs/aya/commit/9e41317ca6
))
- Merge pull request #234 from xonatius/patch-1 ([`e0d818f
`](https://github.com/aya-rs/aya/commit/e0d818ff2d
))
- Fix typo in aya/README.md ([`49e998d
`](https://github.com/aya-rs/aya/commit/49e998dc7e
))
- Fix Loading from cgroup/skb sections ([`5ee1321
`](https://github.com/aya-rs/aya/commit/5ee1321765
))
- Merge pull request #222 from aya-rs/dependabot/cargo/parking_lot-0.12.0 ([`00e34ec
`](https://github.com/aya-rs/aya/commit/00e34ec29c
))
- Implement Pod for arrays of Pod types ([`08211f6
`](https://github.com/aya-rs/aya/commit/08211f6132
))
- Update parking_lot requirement from 0.11.1 to 0.12.0 ([`ab7eed2
`](https://github.com/aya-rs/aya/commit/ab7eed2759
))
- Merge pull request #161 from nimrodshn/add_lpm_trie ([`2a18239
`](https://github.com/aya-rs/aya/commit/2a18239346
))
- Fix #128: Add support for BPF_MAP_TYPE_LPM_TRIE map ([`c6e66d8
`](https://github.com/aya-rs/aya/commit/c6e66d8080
))
- Merge pull request #179 from dave-tucker/btf_datasec_name ([`6316748`](https://github.com/aya-rs/aya/commit/6316748ec1
))
- Merge pull request #177 from alessandrod/ptr-relocs ([`b2182c6
`](https://github.com/aya-rs/aya/commit/b2182c6c4e
))
- Fix func_info/line_info offsets ([`f169a3f
`](https://github.com/aya-rs/aya/commit/f169a3fc6b
))
- Relocate .text references ([`8202105`](https://github.com/aya-rs/aya/commit/8202105b7d
))
- Replace / in DATASEC before load to kernel ([`825bb3a
`](https://github.com/aya-rs/aya/commit/825bb3ad20
))
- Merge pull request #175 from dave-tucker/merge_fixup_sanitize ([`1904aea
`](https://github.com/aya-rs/aya/commit/1904aeaef9
))
- Fix match arms ([`99fa85e
`](https://github.com/aya-rs/aya/commit/99fa85eab8
))
- Add a test for each BTF fix ([`326825a
`](https://github.com/aya-rs/aya/commit/326825aab0
))
- Fix borrow check errors ([`4efc206
`](https://github.com/aya-rs/aya/commit/4efc2061a8
))
- Merge Fixup and Sanitzation to single step ([`a1b46ec
`](https://github.com/aya-rs/aya/commit/a1b46ece05
))
- Merge pull request #164 from dave-tucker/btf_verifier ([`06f8938
`](https://github.com/aya-rs/aya/commit/06f8938808
))
- Fix BTF verifier output ([`5d8b279
`](https://github.com/aya-rs/aya/commit/5d8b279265
))
- Merge pull request #173 from alessandrod/func-proto-fixup ([`d9496df
`](https://github.com/aya-rs/aya/commit/d9496df3a7
))
- Merge pull request #174 from alessandrod/func-global-fix ([`f70ab2c
`](https://github.com/aya-rs/aya/commit/f70ab2caa7
))
- Fix sanitization if BTF_FUNC_GLOBAL is not supported ([`7ad0524
`](https://github.com/aya-rs/aya/commit/7ad0524283
))
- Fixup func protos ([`9ba2e14
`](https://github.com/aya-rs/aya/commit/9ba2e147a1
))
- Run fixup in place ([`89b5dd3
`](https://github.com/aya-rs/aya/commit/89b5dd32ed
))
- Merge pull request #168 from dave-tucker/decl_tag ([`b45a160
`](https://github.com/aya-rs/aya/commit/b45a160bb0
))
- Merge pull request #172 from dave-tucker/name_trunc ([`b93188f
`](https://github.com/aya-rs/aya/commit/b93188fefe
))
- Fix name truncation ([`8f9a32f
`](https://github.com/aya-rs/aya/commit/8f9a32ff10
))
- Merge pull request #171 from dave-tucker/nametoolong ([`dccdc45
`](https://github.com/aya-rs/aya/commit/dccdc45ccd
))
- Truncate long program names ([`437432c
`](https://github.com/aya-rs/aya/commit/437432cdd6
))
- Add support for BTF_TYPE_KIND_{TAG,DECL_TAG} ([`5d9ff70
`](https://github.com/aya-rs/aya/commit/5d9ff70498
))
- Merge pull request #169 from dave-tucker/fix_array_relo ([`1492d85
`](https://github.com/aya-rs/aya/commit/1492d85a7b
))
- Merge pull request #157 from dave-tucker/doc-aya ([`6a91fdf
`](https://github.com/aya-rs/aya/commit/6a91fdf5a7
))
- Fix BTF type resolution for Arrays and Ints ([`686ce45
`](https://github.com/aya-rs/aya/commit/686ce45f93
))
- Merge pull request #167 from aya-rs/codegen ([`0118773`](https://github.com/aya-rs/aya/commit/01187735f0
))
- Update libbpf to be89b28f96
([`324c679
`](https://github.com/aya-rs/aya/commit/324c679a41
))
- Maps: rename from_pinned() to open_pinned() ([`4e9bc32
`](https://github.com/aya-rs/aya/commit/4e9bc32a3d
))
- Merge pull request #165 from dave-tucker/prog_pinned ([`f12054a
`](https://github.com/aya-rs/aya/commit/f12054a00d
))
- Retrieve program from pinned path ([`abc8d27
`](https://github.com/aya-rs/aya/commit/abc8d27440
))
- Merge pull request #163 from aya-rs/codegen ([`353b5f9
`](https://github.com/aya-rs/aya/commit/353b5f9cb1
))
- Update libbpf to 22411acc4b
([`0619f80
`](https://github.com/aya-rs/aya/commit/0619f80090
))
- Merge pull request #158 from dave-tucker/btf-fix ([`001348a
`](https://github.com/aya-rs/aya/commit/001348a301
))
- Allocate func/line_info buffers outside if ([`83cfe56
`](https://github.com/aya-rs/aya/commit/83cfe56fe7
))
- Document the public api ([`bca0158
`](https://github.com/aya-rs/aya/commit/bca01580e7
))
- Merge pull request #127 from dave-tucker/ext ([`c5a10f8
`](https://github.com/aya-rs/aya/commit/c5a10f8fbe
))
- Add fixup for PTR types from Rust ([`877c760
`](https://github.com/aya-rs/aya/commit/877c76043a
))
- Add BPF_PROG_TYPE_EXT ([`5c6131a
`](https://github.com/aya-rs/aya/commit/5c6131afba
))
- Add Btf::to_bytes ([`379bb31
`](https://github.com/aya-rs/aya/commit/379bb313b1
))
- Merge pull request #146 from dave-tucker/ro-maps ([`faa3676
`](https://github.com/aya-rs/aya/commit/faa36763f7
))
- Mark .rodata maps as readonly and freeze on load ([`65a0b83
`](https://github.com/aya-rs/aya/commit/65a0b83205
))
- Merge pull request #145 from aya-rs/codegen ([`3a4c84f
`](https://github.com/aya-rs/aya/commit/3a4c84fe17
))
- Fix for rename of BPF_ -> BPF_CORE_ ([`2b7dda7
`](https://github.com/aya-rs/aya/commit/2b7dda766f
))
- Update libbpf to 19656636a9
([`05d4bc3
`](https://github.com/aya-rs/aya/commit/05d4bc39ea
))
- Support for fentry and fexit programs ([`7e2fcd1
`](https://github.com/aya-rs/aya/commit/7e2fcd1d6d
))
- Update object requirement from 0.27 to 0.28 ([`54b0c67
`](https://github.com/aya-rs/aya/commit/54b0c67795
))
- Merge pull request #136 from nimrodshn/add_impl_pod_for_u128 ([`6313ddf
`](https://github.com/aya-rs/aya/commit/6313ddfe0c
))
- Implement Pod for u128 ([`24a292f
`](https://github.com/aya-rs/aya/commit/24a292f605
))
- Merge pull request #134 from aya-rs/codegen ([`f34b76c
`](https://github.com/aya-rs/aya/commit/f34b76c8d3
))
- Update libbpf to 93e89b3474
([`17d43cd
`](https://github.com/aya-rs/aya/commit/17d43cd6f8
))
- Merge pull request #125 from dave-tucker/btf ([`26d188c
`](https://github.com/aya-rs/aya/commit/26d188c659
))
- Merge pull request #131 from eero-thia/thia/safe_iter ([`441a660
`](https://github.com/aya-rs/aya/commit/441a660b3e
))
- Remove unnecessary unsafe markers on map iteration. ([`1897036`](https://github.com/aya-rs/aya/commit/18970369e2
))
- Merge pull request #120 from eero-thia/thia/dedup ([`07a6016
`](https://github.com/aya-rs/aya/commit/07a6016ebb
))
- Eliminate name duplication in maps and programs. ([`f56dd0a
`](https://github.com/aya-rs/aya/commit/f56dd0a70b
))
- Merge pull request #130 from wg/main ([`a340c2a
`](https://github.com/aya-rs/aya/commit/a340c2a9fa
))
- Use correct program name when relocating ([`bb8a813
`](https://github.com/aya-rs/aya/commit/bb8a813eef
))
- Improve section detection ([`e4d9774
`](https://github.com/aya-rs/aya/commit/e4d9774bf7
))
- Merge pull request #115 from eero-thia/thia/impl_trait ([`a03426f
`](https://github.com/aya-rs/aya/commit/a03426f194
))
- Remove unnecessary usage of &dyn trait in favor of impl trait. ([`daa7ea6
`](https://github.com/aya-rs/aya/commit/daa7ea6d0d
))
- Merge pull request #116 from eero-thia/thia/close ([`98b36b2
`](https://github.com/aya-rs/aya/commit/98b36b23bc
))
- Merge pull request #121 from eero-thia/thia/programs_mut ([`2955ca1
`](https://github.com/aya-rs/aya/commit/2955ca1d1f
))
- Programs_mut iterator to complement programs. ([`c7f8db9
`](https://github.com/aya-rs/aya/commit/c7f8db9a0b
))
- Merge pull request #122 from eero-thia/thia/include_bytes_aligned ([`a6bf554
`](https://github.com/aya-rs/aya/commit/a6bf554a74
))
- Close file descriptors on Map drop. ([`1584bc4
`](https://github.com/aya-rs/aya/commit/1584bc47bd
))
- Expand include_bytes_aligned to accept expressions. ([`f8f17a0
`](https://github.com/aya-rs/aya/commit/f8f17a09fb
))
- Merge pull request #108 from deverton/kprobe-debugfs ([`6db30fa
`](https://github.com/aya-rs/aya/commit/6db30fad9c
))
- Refactoring after feedback. ([`0e84610
`](https://github.com/aya-rs/aya/commit/0e84610976
))
- Support pid filtering in debugfs ([`606c326
`](https://github.com/aya-rs/aya/commit/606c3267c4
))
- Handle probe entry offsets ([`1dc7554
`](https://github.com/aya-rs/aya/commit/1dc75542b4
))
- Merge branch 'main' into kprobe-debugfs ([`4e6aeb2
`](https://github.com/aya-rs/aya/commit/4e6aeb2e69
))
- Merge pull request #109 from deverton/dynamic-kver ([`b82d7f0
`](https://github.com/aya-rs/aya/commit/b82d7f0515
))
- Updates based on feedback ([`3dff6e8
`](https://github.com/aya-rs/aya/commit/3dff6e8555
))
- Use current kernel version as default if not specified ([`4277205`](https://github.com/aya-rs/aya/commit/4277205e9d
))
- Functional detach of debugfs probes. ([`42c9737
`](https://github.com/aya-rs/aya/commit/42c9737d47
))
- Fix event_alias comparison when looking in event list ([`a4faabc
`](https://github.com/aya-rs/aya/commit/a4faabcf93
))
- Don't duplicate perf_attach code and formatting ([`84fa219
`](https://github.com/aya-rs/aya/commit/84fa2197ec
))
- Attempt auto detach of probe for debugfs ([`d0321bd
`](https://github.com/aya-rs/aya/commit/d0321bd1ee
))
- Support k/uprobes on older kernels. ([`34aa790
`](https://github.com/aya-rs/aya/commit/34aa790a91
))
- Merge pull request #107 from deverton/skip-map-name ([`5b0e518
`](https://github.com/aya-rs/aya/commit/5b0e518641
))
- Formatting ([`07e3824
`](https://github.com/aya-rs/aya/commit/07e3824aa4
))
- Stub `kernel_version` for tests ([`49f6a8e
`](https://github.com/aya-rs/aya/commit/49f6a8e819
))
- Fix lint issues ([`d966881
`](https://github.com/aya-rs/aya/commit/d966881e46
))
- Make maps compatible with kernel <= 4.14 ([`fc08611
`](https://github.com/aya-rs/aya/commit/fc0861105a
))
updated-dependencies:
182182d
`](https://github.com/aya-rs/aya/commit/182182d840
))
- Merge pull request #104 from dave-tucker/fix_skskb_load ([`daf8630
`](https://github.com/aya-rs/aya/commit/daf8630133
))
- Fix name parsing for sk_skb sections ([`352e54b
`](https://github.com/aya-rs/aya/commit/352e54b724
))
- Merge pull request #98 from aya-rs/codegen ([`f632f81
`](https://github.com/aya-rs/aya/commit/f632f81db1
))
- Update libbpf to 16dfb4ffe4
([`4a7f47d
`](https://github.com/aya-rs/aya/commit/4a7f47d93a
))
- Merge pull request #94 from tklauser/netlink-ext-ack-libc ([`563d4ba
`](https://github.com/aya-rs/aya/commit/563d4ba1c3
))
- Netlink: use NETLINK_EXT_ACK from libc crate ([`2136f05
`](https://github.com/aya-rs/aya/commit/2136f05461
))
- Merge pull request #90 from willfindlay/fix-bss ([`dd7e1de
`](https://github.com/aya-rs/aya/commit/dd7e1de348
))
- Fix incorrect section size for .bss ([`1e6b1af
`](https://github.com/aya-rs/aya/commit/1e6b1afbe4
))
- Merge pull request #89 from willfindlay/errors ([`3a8e4fe
`](https://github.com/aya-rs/aya/commit/3a8e4fe9b9
))
- Improve map errors to be more descriptive ([`27d803b
`](https://github.com/aya-rs/aya/commit/27d803b634
))
- Merge pull request #85 from willfindlay/tp_btf ([`17b730c
`](https://github.com/aya-rs/aya/commit/17b730c717
))
- Pass Btf by reference instead of loading new Btf in Lsm::load ([`6b6d4af
`](https://github.com/aya-rs/aya/commit/6b6d4af932
))
- Implement btf tracepoint programs ([`6539cbb
`](https://github.com/aya-rs/aya/commit/6539cbb555
))
- Merge pull request #68 from vadorovsky/lsm ([`140005d
`](https://github.com/aya-rs/aya/commit/140005d9e3
))
- Add support for raw tracepoint and LSM programs ([`169478c
`](https://github.com/aya-rs/aya/commit/169478c863
))
- Merge pull request #78 from willfindlay/main ([`56fd09c
`](https://github.com/aya-rs/aya/commit/56fd09c443
))
- Fix include_bytes_aligned! macro to work in some corner cases ([`99f6f9e
`](https://github.com/aya-rs/aya/commit/99f6f9e14d
))
- Merge pull request #76 from willfindlay/load_include_bytes ([`a947747
`](https://github.com/aya-rs/aya/commit/a94774755f
))
- Introduce include_bytes_aligned!() macro ([`4df4e9c
`](https://github.com/aya-rs/aya/commit/4df4e9c14e
))
- Bump libbpf to 92c1e61a60
([`03e9935
`](https://github.com/aya-rs/aya/commit/03e9935358
))
- Update object requirement from 0.26 to 0.27 ([`c99dcfb
`](https://github.com/aya-rs/aya/commit/c99dcfb9d3
))
4152e8b
`](https://github.com/aya-rs/aya/commit/4152e8b1a4
))
- Fix call relocation bug ([`59a1854
`](https://github.com/aya-rs/aya/commit/59a1854a6b
))
- Disable Stacked Borrows and skip some tests ([`dc4b928
`](https://github.com/aya-rs/aya/commit/dc4b928ec5
))
- Fix clippy ([`52c5189
`](https://github.com/aya-rs/aya/commit/52c51895ba
))
- Improve docs a bit and make BpfLoader default to loading BTF if available ([`64e3fb4
`](https://github.com/aya-rs/aya/commit/64e3fb4cc8
))
- Loader: take BTF info as reference ([`5f8f18e
`](https://github.com/aya-rs/aya/commit/5f8f18e3a1
))
- Implement Pinning For Programs and Maps ([`9426f36
`](https://github.com/aya-rs/aya/commit/9426f36f79
))
a7f5b37
`](https://github.com/aya-rs/aya/commit/a7f5b3775d
))
- Bump obj to 0.26 ([`a10a7b3
`](https://github.com/aya-rs/aya/commit/a10a7b3bf2
))
- Minor PerfEvent API tweaks ([`98361a4
`](https://github.com/aya-rs/aya/commit/98361a4c93
))
- Run xtask codegen aya ([`b0a05e7
`](https://github.com/aya-rs/aya/commit/b0a05e759e
))
- Add support for PerfEvent programs. ([`c39dff6
`](https://github.com/aya-rs/aya/commit/c39dff6025
))
- Only consider Text symbols as relocatable functions ([`c56a6b1
`](https://github.com/aya-rs/aya/commit/c56a6b16aa
))
- Fix bug with nested call relocations ([`d9fc0f4
`](https://github.com/aya-rs/aya/commit/d9fc0f484f
))
- Make Clippy Happy ([`e9bad0b
`](https://github.com/aya-rs/aya/commit/e9bad0b61d
))
- Update authors and repository link ([`9c27910
`](https://github.com/aya-rs/aya/commit/9c27910f76
))
- Remove docs. Update URLs to aya-rs ([`8acb92d
`](https://github.com/aya-rs/aya/commit/8acb92d61c
))
- Fix size of Unknown variant ([`4e1ce25
`](https://github.com/aya-rs/aya/commit/4e1ce2534c
))
- Add some tests for reading btf data ([`569b8ca
`](https://github.com/aya-rs/aya/commit/569b8ca39e
))
- Add bindings for BTF_KIND_FLOAT ([`753a683
`](https://github.com/aya-rs/aya/commit/753a683704
))
bpf_map_def
layouts. This change implements support for loading both.35f15f7
`](https://github.com/aya-rs/aya/commit/35f15f70e0
))
* **[#31](https://github.com/aya-rs/aya/issues/31)**
- Pass BTF object by reference in order to allow multiple eBPF programs to share it and save memory (closes #30). ([`b4b019e
`](https://github.com/aya-rs/aya/commit/b4b019e447
))
* **[#32](https://github.com/aya-rs/aya/issues/32)**
- Implement query for lirc programs ([`81e07e9
`](https://github.com/aya-rs/aya/commit/81e07e9661
))
* **Uncategorized**
- (cargo-release) version 0.10.3 ([`f30abca
`](https://github.com/aya-rs/aya/commit/f30abca15e
))
- Programs: tweak LircMode2::query doc. ([`66a12ff
`](https://github.com/aya-rs/aya/commit/66a12ffcf7
))
- Netlink: fix clippy lint ([`8c03ba0
`](https://github.com/aya-rs/aya/commit/8c03ba052a
))
- Fix clippy warnings ([`fa2cbe2
`](https://github.com/aya-rs/aya/commit/fa2cbe2f82
))
- Tc: add qdisc_detach_program ([`c2a90c2
`](https://github.com/aya-rs/aya/commit/c2a90c2c01
))
- Netlink: fix alignment when writing attributes ([`0a9d021
`](https://github.com/aya-rs/aya/commit/0a9d02140a
))
- Netlink: fix handling of multipart messages ([`abb199e
`](https://github.com/aya-rs/aya/commit/abb199e6f4
))
- Tc: clean up netlink code a bit ([`9185f32
`](https://github.com/aya-rs/aya/commit/9185f32f6f
))
- Fix formatting ([`d996a88
`](https://github.com/aya-rs/aya/commit/d996a88de4
))
- Fix clippy warnings ([`0878c45
`](https://github.com/aya-rs/aya/commit/0878c4505a
))
- Obj: improve parse_map_def tests ([`21e01df
`](https://github.com/aya-rs/aya/commit/21e01df242
))
- Don't error out parsing padded map sections ([`b657930
`](https://github.com/aya-rs/aya/commit/b657930a3e
))
- Added support for armv7-unknown-linux-gnueabi and armv7-unknown-linux-gnueabihf ([`8311abf
`](https://github.com/aya-rs/aya/commit/8311abfdcb
))
- Tc: make qdisc_add_clsact return io::Error ([`9c8e78b
`](https://github.com/aya-rs/aya/commit/9c8e78b7d4
))
- Aya, aya-bpf-bindings: regenerate bindings ([`122a530
`](https://github.com/aya-rs/aya/commit/122a5306e7
))
- Kprobe: remove pid argument ([`08c71df
`](https://github.com/aya-rs/aya/commit/08c71dfeb1
))
- Add missing load() in kprobe example ([`bb15e82
`](https://github.com/aya-rs/aya/commit/bb15e82c1d
))
- Support both bpf_map_def layout variants ([`d8d3117
`](https://github.com/aya-rs/aya/commit/d8d311738c
))
- Netlink: tc: use ptr::read_unaligned instead of deferencing a potentially unaligned ptr ([`5f0ff16
`](https://github.com/aya-rs/aya/commit/5f0ff1698a
))
- Netlink: port TC code to using new nlattr utils ([`7f2ceaf
`](https://github.com/aya-rs/aya/commit/7f2ceaf12e
))
- Netlink: refactor nlattr writing code ([`d9b5ab5
`](https://github.com/aya-rs/aya/commit/d9b5ab575f
))
- Netlink: introduce NestedAttrs builder and switch XDP to it ([`c240a2c
`](https://github.com/aya-rs/aya/commit/c240a2c733
))
- Refactor program section parsing ([`bb595c4
`](https://github.com/aya-rs/aya/commit/bb595c4e69
))
- Fix tracepoint prefix in a couple more places ([`0188622`](https://github.com/aya-rs/aya/commit/0188622580
))
- Fix trace point section name ([`a0151dd
`](https://github.com/aya-rs/aya/commit/a0151dd485
))
- Merge pull request #4 from seanyoung/doctest ([`521ef09
`](https://github.com/aya-rs/aya/commit/521ef09463
))
d70e291
`](https://github.com/aya-rs/aya/commit/d70e291580
))
- Tc: fix QdiscRequest layout ([`fee71b4
`](https://github.com/aya-rs/aya/commit/fee71b42f1
))
- Fix doctest and run them during CI ([`1196ba1
`](https://github.com/aya-rs/aya/commit/1196ba1dcc
))
- Merge pull request #3 from seanyoung/lirc ([`59cfbc5
`](https://github.com/aya-rs/aya/commit/59cfbc51c8
))
- Add support for lirc programs ([`b49ba69
`](https://github.com/aya-rs/aya/commit/b49ba69d09
))
304abfb
`](https://github.com/aya-rs/aya/commit/304abfbfeb
))
- Merge pull request #1 from aquarhead/fix-load-file ([`cdc7374
`](https://github.com/aya-rs/aya/commit/cdc737490d
))
- Fix Bpf::load_file when BTF doesn't exist ([`f1fc304
`](https://github.com/aya-rs/aya/commit/f1fc30411d
))
This change fixes a bug where instead of setting max_entries to the number of possible cpus, we were setting it to the cpu index of the last possible cpu.
4ccc1f0
Bpf
Also introduce MapError::NotFound instead of returning Result>.
target_btf: Option<Btf>
argument to Bpf::load. None can be
passed to indicate to skip BTF relocation, for example for kernels that
don't support it. Some(btf) can be used to pass BTF parsed with
Btf::from_sys_fs() or Btf::parse/parse_file.
Finally, add a simpler Bpf::load_file(path) that uses from_sys_fs() internally to simplify the common case.
Annotate all source errors with #[source]
94b5e2e
`](https://github.com/aya-rs/aya/commit/94b5e2e4e6
))
- Add more fields to Cargo.toml ([`7694bac
`](https://github.com/aya-rs/aya/commit/7694bacf04
))
- Doc fixes ([`be0b7bb
`](https://github.com/aya-rs/aya/commit/be0b7bbd83
))
- Bump version to 0.10 ([`9f7b017
`](https://github.com/aya-rs/aya/commit/9f7b017d5d
))
- Add doc aliases for maps and programs ([`768640d
`](https://github.com/aya-rs/aya/commit/768640dd46
))
- More docs ([`293e66a
`](https://github.com/aya-rs/aya/commit/293e66af65
))
- Refactor tc code a bit and add docs ([`ad58e17
`](https://github.com/aya-rs/aya/commit/ad58e171ff
))
- More docs ([`11e21e8
`](https://github.com/aya-rs/aya/commit/11e21e83be
))
- More doc fixes ([`6c7df27
`](https://github.com/aya-rs/aya/commit/6c7df27bd0
))
- Improve async perf map docs ([`28158e6
`](https://github.com/aya-rs/aya/commit/28158e6028
))
- Tweak PerfEventArray docs ([`6ecf7da
`](https://github.com/aya-rs/aya/commit/6ecf7dabf3
))
- ProgramArray: more doc fixes ([`6772595`](https://github.com/aya-rs/aya/commit/6772595f3e
))
- ProgramArray: tweak docs ([`4bde0c5
`](https://github.com/aya-rs/aya/commit/4bde0c54bd
))
- Implement ProgramFd for CgroupSkb ([`2cda5db
`](https://github.com/aya-rs/aya/commit/2cda5dbbe7
))
- Fix CgroupSkb docs ([`2d7b9b2
`](https://github.com/aya-rs/aya/commit/2d7b9b2e90
))
- Programs: add support for BPF_PROG_TYPE_CGROUP_SKB programs ([`08a68fa
`](https://github.com/aya-rs/aya/commit/08a68faf8a
))
- Programs: fix detaching programs attached with bpf_prog_attach ([`fb3e2f7
`](https://github.com/aya-rs/aya/commit/fb3e2f7f9d
))
- Programs: fix syscall name in errors ([`6658025`](https://github.com/aya-rs/aya/commit/665802594c
))
- Handle reordered functions ([`81a0b61
`](https://github.com/aya-rs/aya/commit/81a0b61164
))
- Improve call relocation error messages ([`b92b1e1
`](https://github.com/aya-rs/aya/commit/b92b1e18a9
))
- BpfError: set the #[source] attribute for RelocationErrors ([`20b2d4c
`](https://github.com/aya-rs/aya/commit/20b2d4c77d
))
- Add support for attaching and detaching TC programs ([`6974d34
`](https://github.com/aya-rs/aya/commit/6974d349e8
))
- Add support for Stack and Queue maps ([`31f8d71
`](https://github.com/aya-rs/aya/commit/31f8d71604
))
- Add id and pinning fields to bpf_map_def ([`40b7da6
`](https://github.com/aya-rs/aya/commit/40b7da6655
))
- Netlink: improve error messages ([`dc4e020
`](https://github.com/aya-rs/aya/commit/dc4e020f29
))
- Add support for BPF_PROG_TYPE_SCHED_CLS programs ([`5effc97
`](https://github.com/aya-rs/aya/commit/5effc972ac
))
- Perf_map: fix bug when max_entries=0 ([`4222b14
`](https://github.com/aya-rs/aya/commit/4222b140ec
))
- Update generated bindings ([`3b7ffd0
`](https://github.com/aya-rs/aya/commit/3b7ffd0048
))
- Xdp: fix detaching on kernels older than 5.7 ([`30d2b25
`](https://github.com/aya-rs/aya/commit/30d2b25f11
))
- Xdp: set flags when attaching with netlink ([`607cf68
`](https://github.com/aya-rs/aya/commit/607cf68a69
))
- Fix BpfError display strings ([`bb7728a
`](https://github.com/aya-rs/aya/commit/bb7728a2c5
))
- Fix warnings ([`9e12c93
`](https://github.com/aya-rs/aya/commit/9e12c9324c
))
- Programs: rework load_program() retry code a bit ([`9a24f20
`](https://github.com/aya-rs/aya/commit/9a24f20e6f
))
- Programs: add support for SkMsg programs ([`1441754`](https://github.com/aya-rs/aya/commit/144175434f
))
- Maps: add SockHash ([`dad300c
`](https://github.com/aya-rs/aya/commit/dad300c88b
))
- Add support for SockOps programs ([`ca4b3bf
`](https://github.com/aya-rs/aya/commit/ca4b3bfc04
))
- Add support BPF_PROG_TYPE_SK_SKB programs and SockMaps ([`b57cace
`](https://github.com/aya-rs/aya/commit/b57cace941
))
- Fix program array key size ([`b6cd813
`](https://github.com/aya-rs/aya/commit/b6cd813af5
))
- Small doc fixes ([`0b3e532
`](https://github.com/aya-rs/aya/commit/0b3e532d7a
))
- More docs ([`79f1b38
`](https://github.com/aya-rs/aya/commit/79f1b385a5
))
- Consolidate errors into ProgramError::SyscallError ([`683a58e
`](https://github.com/aya-rs/aya/commit/683a58ea6d
))
- Split aya::programs::probe into ::kprobe and ::uprobe & add docs ([`ae863bc
`](https://github.com/aya-rs/aya/commit/ae863bc663
))
- Add maps::StackTraceMap ([`d9634ae
`](https://github.com/aya-rs/aya/commit/d9634ae945
))
- Add util::kernel_symbols() ([`67c9cc0
`](https://github.com/aya-rs/aya/commit/67c9cc0359
))
- Add bpf_map_lookup_elem_ptr ([`2cdb10e
`](https://github.com/aya-rs/aya/commit/2cdb10e7f2
))
- Tweak docs ([`ad6d059
`](https://github.com/aya-rs/aya/commit/ad6d0596ab
))
- Rename ProgramArray::unset to ProgramArray::clear_index ([`f464279
`](https://github.com/aya-rs/aya/commit/f464279740
))
- Rename ProgramArray::keys to ProgramArray::indices ([`9ad2a5e
`](https://github.com/aya-rs/aya/commit/9ad2a5e72d
))
- Maps: add PerCpuArray ([`b0364f7
`](https://github.com/aya-rs/aya/commit/b0364f76ab
))
- Rework IterableMap and ProgramArray ([`74d5f17
`](https://github.com/aya-rs/aya/commit/74d5f17559
))
- PerCpuKernelMem doesn't need to be public ([`aa3a30d
`](https://github.com/aya-rs/aya/commit/aa3a30d196
))
- Add aya::maps::Array ([`1746bbf
`](https://github.com/aya-rs/aya/commit/1746bbf5b8
))
- Add aya::maps::array and move ProgramArray under it ([`c3b9021
`](https://github.com/aya-rs/aya/commit/c3b902137b
))
- Hash_map: add doc aliases for HASH and LRU_HASH ([`6cec8be
`](https://github.com/aya-rs/aya/commit/6cec8be564
))
- Per_cpu_hash_map: add support for BPF_MAP_TYPE_LRU_PERCPU_HASH ([`7a989b4
`](https://github.com/aya-rs/aya/commit/7a989b43b9
))
- Maps: introduce MapError::KeyNotFound ([`635dcd4
`](https://github.com/aya-rs/aya/commit/635dcd44b9
))
- Rename MapError::NotFound to MapError::MapNotFound ([`fd142e4
`](https://github.com/aya-rs/aya/commit/fd142e467c
))
- Add PerCpuHashMap ([`3a5b289
`](https://github.com/aya-rs/aya/commit/3a5b289163
))
- Move hash_map.rs to hash_map/hash_map.rs ([`d5098c9
`](https://github.com/aya-rs/aya/commit/d5098c9e57
))
- Hash_map: factor out common hash code ([`6a12a48
`](https://github.com/aya-rs/aya/commit/6a12a48f03
))
- Fix warnings ([`ac83273
`](https://github.com/aya-rs/aya/commit/ac83273da8
))
- Don't export VerifierLog ([`46e0a2e
`](https://github.com/aya-rs/aya/commit/46e0a2ede4
))
- HashMap: add support for LRU maps ([`7c6ae76
`](https://github.com/aya-rs/aya/commit/7c6ae76975
))
- More docs ([`04fde46
`](https://github.com/aya-rs/aya/commit/04fde46855
))
- Tweak docs ([`eea27f5
`](https://github.com/aya-rs/aya/commit/eea27f52f3
))
- Rename perf map and add docs ([`5aa9cb1
`](https://github.com/aya-rs/aya/commit/5aa9cb12ad
))
- Maps: add docs and make the hash_map and program_array modules public ([`d94bfde
`](https://github.com/aya-rs/aya/commit/d94bfde295
))
- Add HashMap docs ([`ce3f83a
`](https://github.com/aya-rs/aya/commit/ce3f83acb1
))
- Make HashMap::new private ([`e28da88
`](https://github.com/aya-rs/aya/commit/e28da8812e
))
- Add ProgramArray docs ([`24f7c37
`](https://github.com/aya-rs/aya/commit/24f7c37158
))
- Make ProgramArray::new private ([`3fddc81
`](https://github.com/aya-rs/aya/commit/3fddc8165c
))
- Remove pop() ([`6682a5f
`](https://github.com/aya-rs/aya/commit/6682a5ff39
))
- Add some docs for the crate and `Bpf` ([`1bbbf61
`](https://github.com/aya-rs/aya/commit/1bbbf616b6
))
- Maps: group syscall errors into MapError::SyscallError ([`563ce46
`](https://github.com/aya-rs/aya/commit/563ce46118
))
- Fix bindings for PERF_EVENT_IOC_{ENABLE|DISABLE|SET_BPF} ([`f9554d6
`](https://github.com/aya-rs/aya/commit/f9554d6db5
))
- Remove TryInto magic from program()/program_mut() too ([`a92bfeb
`](https://github.com/aya-rs/aya/commit/a92bfebf50
))
- Remove TryInto cleverness from map() and map_mut() ([`42e0a65
`](https://github.com/aya-rs/aya/commit/42e0a659b2
))
- Fix some badly completed match arms ([`d3482c0
`](https://github.com/aya-rs/aya/commit/d3482c063c
))
- Fix verifier log handling ([`ee05f9d
`](https://github.com/aya-rs/aya/commit/ee05f9d949
))
- Add support for function calls ([`92b4ed2
`](https://github.com/aya-rs/aya/commit/92b4ed2664
))
- Section: collecting relocations can't fail anymore ([`8b0eee3
`](https://github.com/aya-rs/aya/commit/8b0eee317d
))
- Obj: rename symbol_table to symbols_by_index ([`318c16c
`](https://github.com/aya-rs/aya/commit/318c16cea3
))
- Add Program::name() and make ::prog_type() public ([`286e117
`](https://github.com/aya-rs/aya/commit/286e117fe0
))
- Bpf: Add Bpf::programs() ([`0199e4b
`](https://github.com/aya-rs/aya/commit/0199e4b297
))
- Bpf: remove lifetime param from previous signature ([`dcb5121
`](https://github.com/aya-rs/aya/commit/dcb5121985
))
- Maps: add Map::name() and Map::map_type() ([`ed53f74
`](https://github.com/aya-rs/aya/commit/ed53f7470b
))
- Add Bpf::maps() to get all the maps ([`0a493ba
`](https://github.com/aya-rs/aya/commit/0a493baed6
))
- Switch to rustified enums ([`29f2d9b
`](https://github.com/aya-rs/aya/commit/29f2d9b2d9
))
- Generate code with xtask ([`59ed237
`](https://github.com/aya-rs/aya/commit/59ed237343
))
- Xdp BPF_LINK_CREATE was added in 5.9 ([`8327ffb
`](https://github.com/aya-rs/aya/commit/8327ffbb8d
))
- Obj: implement sane defaults for license and kernel version ([`1e779c5
`](https://github.com/aya-rs/aya/commit/1e779c520a
))
- Implement missing bit of retprobes ([`f11df77
`](https://github.com/aya-rs/aya/commit/f11df77f85
))
- Sys: fix warning ([`b7369d2
`](https://github.com/aya-rs/aya/commit/b7369d2763
))
- Rename gen-bindings to gen-bindings.sh ([`82bcef3
`](https://github.com/aya-rs/aya/commit/82bcef3790
))
- Tweak error display ([`245cd46
`](https://github.com/aya-rs/aya/commit/245cd46bab
))
- Fix build with musl ([`3e8a279
`](https://github.com/aya-rs/aya/commit/3e8a279a59
))
- Support max_entries=0 ([`68a633f
`](https://github.com/aya-rs/aya/commit/68a633fe51
))
- Add possible_cpus() ([`f56c32b
`](https://github.com/aya-rs/aya/commit/f56c32b46b
))
- Format fixes ([`a3ab2ef
`](https://github.com/aya-rs/aya/commit/a3ab2eff57
))
- Enable only the std feature for the futures crate ([`0cf5d17
`](https://github.com/aya-rs/aya/commit/0cf5d17e38
))
- Fix RawFd import paths ([`3abe9bb
`](https://github.com/aya-rs/aya/commit/3abe9bb859
))
- Add explicit BTF argument to the load API ([`2cec04c
`](https://github.com/aya-rs/aya/commit/2cec04c578
))
- Add support for attaching with custom xdp flags ([`55d8bcf
`](https://github.com/aya-rs/aya/commit/55d8bcf386
))
- Rework ProgramError a bit ([`d326038
`](https://github.com/aya-rs/aya/commit/d326038cf4
))
- Add internal API to create links ([`f88ca1f
`](https://github.com/aya-rs/aya/commit/f88ca1f1f1
))
- Fail new() for high level wrappers if the underlying map hasn't been created ([`ba992a2
`](https://github.com/aya-rs/aya/commit/ba992a2414
))
- Trim deps a bit more ([`873691d
`](https://github.com/aya-rs/aya/commit/873691d050
))
- The futures crate is only needed when async is enabled ([`f1da541
`](https://github.com/aya-rs/aya/commit/f1da541234
))
- Remove unused methods ([`14c9845
`](https://github.com/aya-rs/aya/commit/14c98455a9
))
- Fix warnings ([`a5e19fc
`](https://github.com/aya-rs/aya/commit/a5e19fc4ac
))
- Add AsyncPerfMap ([`fdc4dad
`](https://github.com/aya-rs/aya/commit/fdc4dad5ff
))
- Split in sub modules ([`4be0c45
`](https://github.com/aya-rs/aya/commit/4be0c45305
))
- Implement AsRawFd ([`95a24c6
`](https://github.com/aya-rs/aya/commit/95a24c6f8b
))
- Add IOError variants to PerfMapError and PerfBufferError ([`5d6fe8b
`](https://github.com/aya-rs/aya/commit/5d6fe8bdf4
))
- Make aya::maps::perf_map public ([`b9be2f1
`](https://github.com/aya-rs/aya/commit/b9be2f1a9b
))
- Change the suffix of errors from *Failed to *Error ([`160e0be
`](https://github.com/aya-rs/aya/commit/160e0be6d6
))
- Bpf, perf_map: make maps usable from multiple threads ([`d4e2825
`](https://github.com/aya-rs/aya/commit/d4e282535b
))
- Make online_cpus() util public ([`d7c91ef
`](https://github.com/aya-rs/aya/commit/d7c91efb2d
))
- Generate arch specific bindings ([`2215e20
`](https://github.com/aya-rs/aya/commit/2215e202f4
))
- Add src/generated/netlink_bindings.rs to repo ([`1de3929
`](https://github.com/aya-rs/aya/commit/1de392964b
))
- Turn the project into a workspace, move code under aya/ ([`af8f769
`](https://github.com/aya-rs/aya/commit/af8f769b50
))