diff --git a/aya-ebpf-macros/CHANGELOG.md b/aya-ebpf-macros/CHANGELOG.md index 4e1df55f..1d170f51 100644 --- a/aya-ebpf-macros/CHANGELOG.md +++ b/aya-ebpf-macros/CHANGELOG.md @@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### New Features + + - Added Flow Dissector macro support so attaching those programs no longer requires manual boilerplate. + - Switched error reporting to `proc-macro2-diagnostics`, providing richer compiler output when macro expansion fails. + +### Maintenance + + - Dropped the stale dev-dependency on `aya-ebpf` and kept the crate in sync with the workspace lint/edition configuration. + ## v0.1.1 (2024-10-09) ### Chore diff --git a/aya-log-common/CHANGELOG.md b/aya-log-common/CHANGELOG.md index e2e10823..3a314dc7 100644 --- a/aya-log-common/CHANGELOG.md +++ b/aya-log-common/CHANGELOG.md @@ -5,6 +5,21 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Breaking Changes + + - Updated the shared types for the new ring-buffer transport used by `aya-log`, aligning the user- and eBPF-side structures. + - Sealed the `Argument` trait so downstream crates can no longer implement log argument types. + +### New Features + + - Added support for logging raw pointer values, mirroring the new host-side formatting capabilities. + +### Maintenance + + - , General lint, edition, and formatting cleanups to keep the crate in line with the workspace standards. + ## 0.1.15 (2024-10-09) diff --git a/aya-log-ebpf-macros/CHANGELOG.md b/aya-log-ebpf-macros/CHANGELOG.md index eb24e948..a3aac2be 100644 --- a/aya-log-ebpf-macros/CHANGELOG.md +++ b/aya-log-ebpf-macros/CHANGELOG.md @@ -5,6 +5,24 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Breaking Changes + + - Macros now emit ring-buffer based logging code to match the host transport, which requires kernel 5.8 or newer. + +### New Features + + - Added a load-time log level mask so unnecessary log calls can be compiled out entirely. + - Macros may now be used in expression position, simplifying complex logging statements. + - The generated code performs zero-copy writes into the ring buffer where possible, reducing instruction count inside probes. + - Added raw-pointer formatting support so eBPF logs can mirror host-side diagnostics. + +### Maintenance + + - , Tidied the macro support module and aligned the crate with the workspace lint/edition settings. + + ## v0.1.0 (2024-04-12) diff --git a/aya-log-parser/CHANGELOG.md b/aya-log-parser/CHANGELOG.md index c419a2ab..c7de17fa 100644 --- a/aya-log-parser/CHANGELOG.md +++ b/aya-log-parser/CHANGELOG.md @@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Improvements + + - Simplified the parser’s parameter handling so formatting errors are surfaced earlier and with clearer context. + - Added raw-pointer format support to stay in sync with the new logging capabilities. + +### Maintenance + + - , Bumped the edition and refreshed lint/formatting settings alongside the rest of the workspace. + ## v0.1.13 (2024-04-12) diff --git a/aya-log/CHANGELOG.md b/aya-log/CHANGELOG.md index 5508046d..c1c17209 100644 --- a/aya-log/CHANGELOG.md +++ b/aya-log/CHANGELOG.md @@ -7,19 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -### New Features - -- Add eBPF-side log level `AYA_LOG_LEVEL` allowing selective disabling of log - levels at load-time. Disabled levels are eliminated by the verifier, reducing - instruction count and avoiding program size limits when extensive logging is - present. - ### Breaking Changes -- The implementation is now backed by a ring buffer rather than a perf event array. This should - improve performance but increases the minimum supported kernel version to 5.8. + - Host-side logging now rides on a ring buffer instead of a perf array. This improves throughput but requires Linux ≥ 5.8. + - Dropped the built-in `tokio` dependency. Consumers must bring their own async runtime when forwarding log records. + +### New Features -- Drop the built-in `tokio` dependency. Users must now BYOR (bring your own runtime). + - Added the `AYA_LOG_LEVEL` mask so unwanted log levels can be disabled at load time and optimised away by the verifier. + - `EbpfLogger` now implements `AsFd`, simplifying integration with selectors and event loops. + - Added support for logging raw pointer types, which unlocks richer debugging output from probes. ## v0.2.1 (2024-10-09) diff --git a/aya-obj/CHANGELOG.md b/aya-obj/CHANGELOG.md index ceadbb1c..42ffd51d 100644 --- a/aya-obj/CHANGELOG.md +++ b/aya-obj/CHANGELOG.md @@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### New Features + + - Updated the loader to understand Flow Dissector programs so objects containing those sections can now be parsed and attached. + - , Regenerated libbpf bindings, bringing in MIPS and LoongArch64 support. + - , Switched to generated constants and helper APIs (e.g. `CStr::from_bytes_until_nul`) for safer symbol handling. + +### Bug Fixes + + - , Fixed BTF relocations involving zero-sized sections and 64-bit enums so objects built with newer clang/jit toolchains load correctly. + - , Promoted BTF loading failures (and diagnostic output) to proper errors instead of panics/unreachable paths. + +### Maintenance + + - , Cached feature-probed info fields and preserved pointer provenance, plus the usual lint/edition updates to stay aligned with the workspace. + ## 0.2.1 (2024-11-01) ### New Features diff --git a/aya/CHANGELOG.md b/aya/CHANGELOG.md index efd3d42e..da2685cd 100644 --- a/aya/CHANGELOG.md +++ b/aya/CHANGELOG.md @@ -9,19 +9,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Breaking Changes - - Remove `AsyncPerfEventArray` and `AsyncPerfEventArrayBuffer` These types have been removed to - avoid maintaining support for multiple async runtimes. Use `PerfEventArrayBuffer`, which - implements `As{,Raw}Fd` for integration with async executors. - - Rename `EbpfLoader::map_pin_path` to `EbpfLoader::default_map_pin_directory`. - - Rename `EbpfLoader::set_global` to `EbpfLoader::override_global`. - - Rename `EbpfLoader::set_max_entries` to `EbpfLoader::map_max_entries`. + - Removed `AsyncPerfEventArray{,Buffer}` so Aya no longer needs to juggle multiple async runtimes. Use `PerfEventArrayBuffer`, which still implements `As{,Raw}Fd`, when integrating with an executor. + - `EbpfLoader::map_pin_path` is now `EbpfLoader::default_map_pin_directory`, clarifying that the value represents a base directory. + - The loader’s `set_*` helpers were renamed to builder-style APIs (`override_global`/`map_max_entries`). Deprecated shims remain for one release to ease migration. -### Other +### New Features + + - , Added the iterator program type and auto-generated `take_link`/`detach` helpers so iterator programs can be loaded and detached like any other attachment. + - , Added Flow Dissector program support, including ordered link attachment and full `FdLink` conversions for the new program type. + - , , Made pinned maps easier to manage with `Map::from_map_data()`, `XskMap::unset()`, and the ability to pick a custom map pin directory. + - , , Exposed additional metadata and handles: `LinkInfo`/`loaded_links` are now public, program names can be `&'static str`, and ring buffers implement `AsFd`. + - , , Expanded and cached feature probing, reducing redundant syscalls and adding built-in support for `BPF_MAP_TYPE_SK_STORAGE`. + - , Added `Ebpf::maps_disjoint_mut()` plus perf-event hardware breakpoint support to give loaders safer and more capable instrumentation hooks. + +### Bug Fixes + + - Netlink helpers now surface the kernel’s error message instead of returning opaque failures. + - Fixed `PerCpuHashMap::get()` returning `KeyNotFound` when CPU slots were missing; Flow Dissector links now always convert into `FdLink` thanks to . + - Stabilised ring-buffer producer tracking so first events are no longer dropped, and `/proc/$pid/maps` parsing now tolerates trailing newlines (, ). + - , Map names are forced to be NULL-terminated and `construct_debuglink_path()` no longer fails due to missing components. + +### Maintenance + + - , , Documented the exact bpf/perf syscall contracts inside Aya and automatically raise `RLIMIT_MEMLOCK` on kernels <5.11 to smooth out program loading. + - Continued to invest in documentation, resolver clean-ups, and lint/clippy hygiene across the crate so day-to-day maintenance stays manageable. - - Provide deprecated aliases to ease migration, these will be removed in a future release; - - `EbpfLoader::set_global` calls `EbpfLoader::override_global`, and - - `EbpfLoader::set_max_entries` calls `EbpfLoader::map_max_entries`. - ## 0.13.1 (2024-11-01) ### Chore diff --git a/ebpf/aya-ebpf-bindings/CHANGELOG.md b/ebpf/aya-ebpf-bindings/CHANGELOG.md index 1bf9dac2..6feebb58 100644 --- a/ebpf/aya-ebpf-bindings/CHANGELOG.md +++ b/ebpf/aya-ebpf-bindings/CHANGELOG.md @@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### New Features + + - , , Regenerated the bindings from libbpf 324f3c38…, pulling in MIPS and LoongArch64 support alongside the latest kernel constants. + +### Maintenance + + - , General lint/build fixes (including the riscv64 build) to keep the generated code warning-free. + ## v0.1.1 (2024-10-09) ### Other diff --git a/ebpf/aya-ebpf-cty/CHANGELOG.md b/ebpf/aya-ebpf-cty/CHANGELOG.md index 23c0b0a1..c33a060f 100644 --- a/ebpf/aya-ebpf-cty/CHANGELOG.md +++ b/ebpf/aya-ebpf-cty/CHANGELOG.md @@ -5,6 +5,14 @@ This project adheres to $[Semantic Versioning](http://semver.org/). ## [Unreleased] +### New Features + + - , Added the missing MIPS and LoongArch definitions so the cty shim covers every architecture supported by Aya. + +### Maintenance + + - , Tidied the crate (removing the abandoned Travis setup) and refreshed the bindings so downstream riscv64 builds stay green. + ## [v0.2.1] - 2019-11-16 ### Added diff --git a/ebpf/aya-ebpf/CHANGELOG.md b/ebpf/aya-ebpf/CHANGELOG.md index fb00292b..6101535c 100644 --- a/ebpf/aya-ebpf/CHANGELOG.md +++ b/ebpf/aya-ebpf/CHANGELOG.md @@ -5,6 +5,33 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Breaking Changes + + - Map helper functions now take `*mut c_void`, matching the kernel’s prototypes. Any out-of-tree helpers should update their signatures accordingly. + +### New Features + + - Added a `bpf_strncmp` helper binding. + - Raw tracepoints now expose their arguments so programs no longer need to guess register layouts. + - , Added mips/loongarch register helpers so those targets can implement `FromPtRegs`. + - `XdpContext` exposes the interface index, simplifying multi-interface programs. + - Added `Array::set()` to update array contents from eBPF code. + - Introduced Flow Dissector program support on the eBPF side. + - Added `RingBufBytes` so probes can emit raw byte slices efficiently. + - , Added BTF array definitions plus `Queue`/`Stack::peek()` helpers for safer data-structure inspection. + +### Bug Fixes + + - Fixed riscv64 builds by updating the generated bindings. + - Cleaned up ring-buffer code to avoid reliance on `as` casts, preventing UB on strict architectures. + - Guarded the libc `mem*` shims behind `cfg(target_arch = "bpf")`, ensuring CPU builds stay well-defined. + +### Maintenance + + - , Added configuration flags for `generic_const_exprs` and the loongarch target, plus the usual lint/documentation refresh. + ## v0.1.1 (2024-10-09) ### New Features diff --git a/ebpf/aya-log-ebpf/CHANGELOG.md b/ebpf/aya-log-ebpf/CHANGELOG.md index d25856d3..3bb52348 100644 --- a/ebpf/aya-log-ebpf/CHANGELOG.md +++ b/ebpf/aya-log-ebpf/CHANGELOG.md @@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Breaking Changes + + - Logging from eBPF programs now writes into a ring buffer to match the host transport, requiring Linux 5.8 or later. + +### New Features + + - , Added a load-time log level mask and improved verifier hints so disabled log levels are optimised out entirely. + - Logging paths now use zero-copy writes into the ring buffer, lowering instruction counts inside probes. + - Added raw-pointer formatting so eBPF logs can mirror the new host-side diagnostics. + +### Maintenance + + - , Kept the crate in sync with the workspace edition/lint settings and tidied the macro support helpers. + ## 0.1.1 (2024-10-09) Maintenance release. Update to latest aya-ebpf version v0.1.1.