From d238b2ea6f1b2c1aa09a9050415b1c96329af0aa Mon Sep 17 00:00:00 2001 From: Tamir Duberstein Date: Mon, 17 Nov 2025 11:03:08 -0500 Subject: [PATCH] Release crates - aya v0.13.2 - aya-build v0.1.3 - aya-ebpf v0.1.2 - aya-ebpf-bindings v0.1.2 - aya-ebpf-cty v0.2.3 - aya-ebpf-macros v0.1.2 - aya-log v0.2.2 - aya-log-common v0.1.16 - aya-log-ebpf v0.1.2 - aya-log-ebpf-macros v0.1.1 - aya-log-parser v0.1.14 - aya-obj v0.2.2 Signed-off-by: Tamir Duberstein --- RELEASE.md | 4 +- aya-build/Cargo.toml | 2 +- aya-ebpf-macros/CHANGELOG.md | 13 +++++++ aya-ebpf-macros/Cargo.toml | 2 +- aya-log-common/CHANGELOG.md | 17 ++++++++ aya-log-common/Cargo.toml | 2 +- aya-log-ebpf-macros/CHANGELOG.md | 19 +++++++++ aya-log-ebpf-macros/Cargo.toml | 6 +-- aya-log-parser/CHANGELOG.md | 13 +++++++ aya-log-parser/Cargo.toml | 4 +- aya-log/CHANGELOG.md | 17 ++++---- aya-log/Cargo.toml | 6 +-- aya-obj/CHANGELOG.md | 19 +++++++++ aya-obj/Cargo.toml | 2 +- aya/CHANGELOG.md | 36 +++++++++++------ aya/Cargo.toml | 4 +- ebpf/aya-ebpf-bindings/CHANGELOG.md | 12 ++++++ ebpf/aya-ebpf-bindings/Cargo.toml | 6 +-- ebpf/aya-ebpf-cty/CHANGELOG.md | 60 +++-------------------------- ebpf/aya-ebpf-cty/Cargo.toml | 4 +- ebpf/aya-ebpf/CHANGELOG.md | 29 ++++++++++++++ ebpf/aya-ebpf/Cargo.toml | 10 ++--- ebpf/aya-log-ebpf/CHANGELOG.md | 18 +++++++++ ebpf/aya-log-ebpf/Cargo.toml | 8 ++-- test/integration-test/Cargo.toml | 6 +-- 25 files changed, 212 insertions(+), 107 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index 5e3b176c..0e0438e0 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -28,10 +28,12 @@ it. git checkout -b my-release-branch cargo smart-release \ aya \ + aya-build \ aya-ebpf \ - aya-log-ebpf \ aya-log \ + aya-log-ebpf \ --execute \ + --no-changelog-github-release \ --signoff ``` diff --git a/aya-build/Cargo.toml b/aya-build/Cargo.toml index 5acc53c8..247c2d2e 100644 --- a/aya-build/Cargo.toml +++ b/aya-build/Cargo.toml @@ -1,7 +1,7 @@ [package] description = "Build-time support for aya projects" name = "aya-build" -version = "0.1.2" +version = "0.1.3" authors.workspace = true edition.workspace = true diff --git a/aya-ebpf-macros/CHANGELOG.md b/aya-ebpf-macros/CHANGELOG.md index 4e1df55f..92071845 100644 --- a/aya-ebpf-macros/CHANGELOG.md +++ b/aya-ebpf-macros/CHANGELOG.md @@ -5,6 +5,19 @@ 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] + +## v0.1.2 (2025-11-17) + +### 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-ebpf-macros/Cargo.toml b/aya-ebpf-macros/Cargo.toml index 55a76f2c..f5753c66 100644 --- a/aya-ebpf-macros/Cargo.toml +++ b/aya-ebpf-macros/Cargo.toml @@ -1,7 +1,7 @@ [package] description = "Proc macros used by aya-ebpf" name = "aya-ebpf-macros" -version = "0.1.1" +version = "0.1.2" authors.workspace = true edition.workspace = true diff --git a/aya-log-common/CHANGELOG.md b/aya-log-common/CHANGELOG.md index e2e10823..4931914a 100644 --- a/aya-log-common/CHANGELOG.md +++ b/aya-log-common/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] + +## v0.1.16 (2025-11-17) + +### 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-common/Cargo.toml b/aya-log-common/Cargo.toml index 4ee9d9b2..246ff6e6 100644 --- a/aya-log-common/Cargo.toml +++ b/aya-log-common/Cargo.toml @@ -3,7 +3,7 @@ description = "A logging library for eBPF programs." documentation = "https://docs.rs/aya-log" keywords = ["bpf", "ebpf", "log", "logging"] name = "aya-log-common" -version = "0.1.15" +version = "0.1.16" authors.workspace = true edition.workspace = true diff --git a/aya-log-ebpf-macros/CHANGELOG.md b/aya-log-ebpf-macros/CHANGELOG.md index eb24e948..65e69800 100644 --- a/aya-log-ebpf-macros/CHANGELOG.md +++ b/aya-log-ebpf-macros/CHANGELOG.md @@ -5,6 +5,25 @@ 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] + +## v0.1.1 (2025-11-17) + +### 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-ebpf-macros/Cargo.toml b/aya-log-ebpf-macros/Cargo.toml index ff6aee04..40b3ec48 100644 --- a/aya-log-ebpf-macros/Cargo.toml +++ b/aya-log-ebpf-macros/Cargo.toml @@ -1,7 +1,7 @@ [package] description = "Proc macros used by aya-log-ebpf" name = "aya-log-ebpf-macros" -version = "0.1.0" +version = "0.1.1" authors.workspace = true edition.workspace = true @@ -14,8 +14,8 @@ rust-version.workspace = true workspace = true [dependencies] -aya-log-common = { path = "../aya-log-common", version = "^0.1.14", default-features = false } -aya-log-parser = { path = "../aya-log-parser", version = "^0.1.13", default-features = false } +aya-log-common = { path = "../aya-log-common", version = "^0.1.16", default-features = false } +aya-log-parser = { path = "../aya-log-parser", version = "^0.1.14", default-features = false } proc-macro2 = { workspace = true } quote = { workspace = true } syn = { workspace = true } diff --git a/aya-log-parser/CHANGELOG.md b/aya-log-parser/CHANGELOG.md index c419a2ab..f7df19fb 100644 --- a/aya-log-parser/CHANGELOG.md +++ b/aya-log-parser/CHANGELOG.md @@ -5,6 +5,19 @@ 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] + +## v0.1.14 (2025-11-17) + +### 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-parser/Cargo.toml b/aya-log-parser/Cargo.toml index 502ef3e1..24a7c0a1 100644 --- a/aya-log-parser/Cargo.toml +++ b/aya-log-parser/Cargo.toml @@ -1,7 +1,7 @@ [package] description = "A parser for the aya log format strings" name = "aya-log-parser" -version = "0.1.13" +version = "0.1.14" authors.workspace = true edition.workspace = true @@ -14,7 +14,7 @@ rust-version.workspace = true workspace = true [dependencies] -aya-log-common = { path = "../aya-log-common", version = "^0.1.14", default-features = false } +aya-log-common = { path = "../aya-log-common", version = "^0.1.16", default-features = false } [dev-dependencies] assert_matches = { workspace = true } diff --git a/aya-log/CHANGELOG.md b/aya-log/CHANGELOG.md index 5508046d..19581d2a 100644 --- a/aya-log/CHANGELOG.md +++ b/aya-log/CHANGELOG.md @@ -7,19 +7,18 @@ 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. +## v0.2.2 (2025-11-17) ### 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-log/Cargo.toml b/aya-log/Cargo.toml index d1e7234c..c9c438af 100644 --- a/aya-log/Cargo.toml +++ b/aya-log/Cargo.toml @@ -4,7 +4,7 @@ documentation = "https://docs.rs/aya-log" keywords = ["bpf", "ebpf", "log", "logging"] name = "aya-log" readme = "README.md" -version = "0.2.1" +version = "0.2.2" authors.workspace = true edition.workspace = true @@ -17,8 +17,8 @@ rust-version.workspace = true workspace = true [dependencies] -aya = { path = "../aya", version = "^0.13.1", default-features = false } -aya-log-common = { path = "../aya-log-common", version = "^0.1.15", default-features = false } +aya = { path = "../aya", version = "^0.13.2", default-features = false } +aya-log-common = { path = "../aya-log-common", version = "^0.1.16", default-features = false } log = { workspace = true } thiserror = { workspace = true } diff --git a/aya-obj/CHANGELOG.md b/aya-obj/CHANGELOG.md index ceadbb1c..fea33bb5 100644 --- a/aya-obj/CHANGELOG.md +++ b/aya-obj/CHANGELOG.md @@ -5,6 +5,25 @@ 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] + +## v0.2.2 (2025-11-17) + +### 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-obj/Cargo.toml b/aya-obj/Cargo.toml index c3056fe5..3a24ed5d 100644 --- a/aya-obj/Cargo.toml +++ b/aya-obj/Cargo.toml @@ -4,7 +4,7 @@ documentation = "https://docs.rs/aya-obj" keywords = ["bpf", "btf", "ebpf", "elf", "object"] name = "aya-obj" readme = "README.md" -version = "0.2.1" +version = "0.2.2" authors.workspace = true edition.workspace = true diff --git a/aya/CHANGELOG.md b/aya/CHANGELOG.md index efd3d42e..6ed20f67 100644 --- a/aya/CHANGELOG.md +++ b/aya/CHANGELOG.md @@ -7,21 +7,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## v0.13.2 (2025-11-17) + ### 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/aya/Cargo.toml b/aya/Cargo.toml index ad431440..1fce9f64 100644 --- a/aya/Cargo.toml +++ b/aya/Cargo.toml @@ -4,7 +4,7 @@ documentation = "https://docs.rs/aya" keywords = ["bpf", "ebpf", "kernel", "linux"] name = "aya" readme = "README.md" -version = "0.13.1" +version = "0.13.2" authors.workspace = true edition.workspace = true @@ -18,7 +18,7 @@ workspace = true [dependencies] assert_matches = { workspace = true } -aya-obj = { path = "../aya-obj", version = "^0.2.1", features = ["std"] } +aya-obj = { path = "../aya-obj", version = "^0.2.2", features = ["std"] } bitflags = { workspace = true } bytes = { workspace = true } hashbrown = { workspace = true } diff --git a/ebpf/aya-ebpf-bindings/CHANGELOG.md b/ebpf/aya-ebpf-bindings/CHANGELOG.md index 1bf9dac2..6dc862e8 100644 --- a/ebpf/aya-ebpf-bindings/CHANGELOG.md +++ b/ebpf/aya-ebpf-bindings/CHANGELOG.md @@ -5,6 +5,18 @@ 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] + +## v0.1.2 (2025-11-17) + +### 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-bindings/Cargo.toml b/ebpf/aya-ebpf-bindings/Cargo.toml index a75b8d0a..f906ab5e 100644 --- a/ebpf/aya-ebpf-bindings/Cargo.toml +++ b/ebpf/aya-ebpf-bindings/Cargo.toml @@ -1,7 +1,7 @@ [package] description = "Bindings for Linux Kernel eBPF types and helpers" name = "aya-ebpf-bindings" -version = "0.1.1" +version = "0.1.2" authors.workspace = true edition.workspace = true @@ -13,7 +13,7 @@ repository.workspace = true workspace = true [dependencies] -aya-ebpf-cty = { version = "^0.2.2", path = "../aya-ebpf-cty" } +aya-ebpf-cty = { version = "^0.2.3", path = "../aya-ebpf-cty" } [build-dependencies] -aya-build = { version = "^0.1.2", path = "../../aya-build" } +aya-build = { version = "^0.1.3", path = "../../aya-build" } diff --git a/ebpf/aya-ebpf-cty/CHANGELOG.md b/ebpf/aya-ebpf-cty/CHANGELOG.md index 23c0b0a1..dd3d09d4 100644 --- a/ebpf/aya-ebpf-cty/CHANGELOG.md +++ b/ebpf/aya-ebpf-cty/CHANGELOG.md @@ -5,65 +5,15 @@ This project adheres to $[Semantic Versioning](http://semver.org/). ## [Unreleased] -## [v0.2.1] - 2019-11-16 +## v0.2.3 (2025-11-17) -### Added +### New Features -- Support for the `xtensa`, `riscv32` and `riscv64` architectures + - , Added the missing MIPS and LoongArch definitions so the cty shim covers every architecture supported by Aya. -## [v0.2.0] - 2019-02-06 +### Maintenance -### Changed - -- [breaking-change] `cty::c_void` is now a type alias of `core::ffi::c_void`. - -## [v0.1.5] - 2017-05-29 - -### Added - -- More types like `int32_t` - -## [v0.1.4] - 2017-05-29 - -### Added - -- Support for the `msp430` architecture. - -### Fixed - -- [breaking-change] The type definitions of `c_long` and `c_ulong`. - -## [v0.1.3] - 2017-05-29 - YANKED - -### Added - -- Support for the `nvptx` and `nvptx64` architectures. - -## [v0.1.2] - 2017-05-29 - YANKED - -### Fixed - -- [breaking-change] The type definitions of `c_int` and `c_uint`. - -## [v0.1.1] - 2017-05-29 - YANKED - -### Fixed - -- [breaking-change] The type definitions of `c_long`, `c_ulong` and - `c_longlong`. - -## v0.1.0 - 2017-05-24 - YANKED - -- Initial release - -[Unreleased]: https://github.com/japaric/cty/compare/v0.2.1...HEAD -[v0.2.1]: https://github.com/japaric/cty/compare/v0.2.0...v0.2.1 -[v0.2.0]: https://github.com/japaric/cty/compare/v0.1.5...v0.2.0 -[v0.1.5]: https://github.com/japaric/cty/compare/v0.1.4...v0.1.5 -[v0.1.4]: https://github.com/japaric/cty/compare/v0.1.3...v0.1.4 -[v0.1.3]: https://github.com/japaric/cty/compare/v0.1.2...v0.1.3 -[v0.1.2]: https://github.com/japaric/cty/compare/v0.1.1...v0.1.2 -[v0.1.1]: https://github.com/japaric/cty/compare/v0.1.0...v0.1.1 + - , Tidied the crate (removing the abandoned Travis setup) and refreshed the bindings so downstream riscv64 builds stay green. ## v0.2.2 (2024-10-09) diff --git a/ebpf/aya-ebpf-cty/Cargo.toml b/ebpf/aya-ebpf-cty/Cargo.toml index a848b6aa..fc695096 100644 --- a/ebpf/aya-ebpf-cty/Cargo.toml +++ b/ebpf/aya-ebpf-cty/Cargo.toml @@ -3,7 +3,7 @@ categories = ["embedded", "external-ffi-bindings", "no-std"] description = "Type aliases to C types like c_int for use with bindgen" documentation = "https://docs.rs/aya-bpf-cty" name = "aya-ebpf-cty" -version = "0.2.2" +version = "0.2.3" authors.workspace = true edition.workspace = true @@ -16,4 +16,4 @@ rust-version.workspace = true workspace = true [build-dependencies] -aya-build = { version = "^0.1.2", path = "../../aya-build" } +aya-build = { version = "^0.1.3", path = "../../aya-build" } diff --git a/ebpf/aya-ebpf/CHANGELOG.md b/ebpf/aya-ebpf/CHANGELOG.md index fb00292b..d8c155a8 100644 --- a/ebpf/aya-ebpf/CHANGELOG.md +++ b/ebpf/aya-ebpf/CHANGELOG.md @@ -5,6 +5,35 @@ 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] + +## v0.1.2 (2025-11-17) + +### 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-ebpf/Cargo.toml b/ebpf/aya-ebpf/Cargo.toml index e2067982..b597f21f 100644 --- a/ebpf/aya-ebpf/Cargo.toml +++ b/ebpf/aya-ebpf/Cargo.toml @@ -1,7 +1,7 @@ [package] description = "A library for writing eBPF programs" name = "aya-ebpf" -version = "0.1.1" +version = "0.1.2" authors.workspace = true edition.workspace = true @@ -14,10 +14,10 @@ rust-version.workspace = true workspace = true [dependencies] -aya-ebpf-bindings = { version = "^0.1.1", path = "../aya-ebpf-bindings" } -aya-ebpf-cty = { version = "^0.2.2", path = "../aya-ebpf-cty" } -aya-ebpf-macros = { version = "^0.1.1", path = "../../aya-ebpf-macros" } +aya-ebpf-bindings = { version = "^0.1.2", path = "../aya-ebpf-bindings" } +aya-ebpf-cty = { version = "^0.2.3", path = "../aya-ebpf-cty" } +aya-ebpf-macros = { version = "^0.1.2", path = "../../aya-ebpf-macros" } [build-dependencies] -aya-build = { version = "^0.1.2", path = "../../aya-build" } +aya-build = { version = "^0.1.3", path = "../../aya-build" } rustversion = { workspace = true } diff --git a/ebpf/aya-log-ebpf/CHANGELOG.md b/ebpf/aya-log-ebpf/CHANGELOG.md index d25856d3..ac8b22e8 100644 --- a/ebpf/aya-log-ebpf/CHANGELOG.md +++ b/ebpf/aya-log-ebpf/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] + +## 0.1.2 (2025-11-17) + +### 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. diff --git a/ebpf/aya-log-ebpf/Cargo.toml b/ebpf/aya-log-ebpf/Cargo.toml index 90c54198..89c1ac10 100644 --- a/ebpf/aya-log-ebpf/Cargo.toml +++ b/ebpf/aya-log-ebpf/Cargo.toml @@ -1,7 +1,7 @@ [package] description = "Logging for eBPF programs" name = "aya-log-ebpf" -version = "0.1.1" +version = "0.1.2" authors.workspace = true edition.workspace = true @@ -14,6 +14,6 @@ rust-version.workspace = true workspace = true [dependencies] -aya-ebpf = { version = "^0.1.1", path = "../aya-ebpf" } -aya-log-common = { version = "^0.1.15", path = "../../aya-log-common" } -aya-log-ebpf-macros = { version = "^0.1.0", path = "../../aya-log-ebpf-macros" } +aya-ebpf = { version = "^0.1.2", path = "../aya-ebpf" } +aya-log-common = { version = "^0.1.16", path = "../../aya-log-common" } +aya-log-ebpf-macros = { version = "^0.1.1", path = "../../aya-log-ebpf-macros" } diff --git a/test/integration-test/Cargo.toml b/test/integration-test/Cargo.toml index e443af2f..e81d705c 100644 --- a/test/integration-test/Cargo.toml +++ b/test/integration-test/Cargo.toml @@ -14,13 +14,13 @@ rust-version.workspace = true workspace = true [dependencies] -aya = { path = "../../aya", version = "^0.13.1", default-features = false } +aya = { path = "../../aya", version = "^0.13.2", default-features = false } [dev-dependencies] anyhow = { workspace = true, features = ["std"] } assert_matches = { workspace = true } -aya-log = { path = "../../aya-log", version = "^0.2.1", default-features = false } -aya-obj = { path = "../../aya-obj", version = "^0.2.1", default-features = false } +aya-log = { path = "../../aya-log", version = "^0.2.2", default-features = false } +aya-obj = { path = "../../aya-obj", version = "^0.2.2", default-features = false } epoll = { workspace = true } futures = { workspace = true, features = ["alloc"] } integration-common = { path = "../integration-common", features = ["user"] }