|
|
|
@ -5,7 +5,7 @@ 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).
|
|
|
|
|
|
|
|
|
|
## 0.2.0 (2024-10-09)
|
|
|
|
|
## 0.2.1 (2024-11-01)
|
|
|
|
|
|
|
|
|
|
### New Features
|
|
|
|
|
|
|
|
|
@ -15,8 +15,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
|
|
updating to a new Aya release less of a burden. These aliases are marked
|
|
|
|
|
as deprecated since we'll likely remove them in a later release.
|
|
|
|
|
|
|
|
|
|
### Bug Fixes
|
|
|
|
|
|
|
|
|
|
- <csr-id-ca0c32d1076af81349a52235a4b6fb3937a697b3/> Fill 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.
|
|
|
|
|
|
|
|
|
|
### Other
|
|
|
|
|
|
|
|
|
|
- <csr-id-366c599c2083baf72c40c816da2c530dec7fd612/> cgroup_iter_order NFPROTO* nf_inet_hooks
|
|
|
|
|
Adds the following to codegen:
|
|
|
|
|
- `bpf_cgroup_iter_order`: used in `bpf_link_info.iter.group.order`
|
|
|
|
|
- `NFPROTO_*`: used in `bpf_link_info.netfilter.pf`
|
|
|
|
|
- `nf_inet_hooks`: used in `bpf_link_info.netfilter.hooknum`
|
|
|
|
|
|
|
|
|
|
Include `linux/netfilter.h` in `linux_wrapper.h` for `NFPROTO_*` and
|
|
|
|
|
`nf_inet_hooks` to generate.
|
|
|
|
|
- <csr-id-fbb09304a2de0d8baf7ea20c9727fcd2e4fb7f41/> revamp MapInfo be more friendly with older kernels
|
|
|
|
|
Adds detection for whether a field is available in `MapInfo`:
|
|
|
|
|
- For `map_type()`, we treturn new enum `MapType` instead of the integer
|
|
|
|
@ -79,9 +101,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
|
|
|
|
|
|
|
<csr-read-only-do-not-edit/>
|
|
|
|
|
|
|
|
|
|
- 19 commits contributed to the release.
|
|
|
|
|
- 223 days passed between releases.
|
|
|
|
|
- 10 commits were understood as [conventional](https://www.conventionalcommits.org).
|
|
|
|
|
- 25 commits contributed to the release over the course of 241 calendar days.
|
|
|
|
|
- 247 days passed between releases.
|
|
|
|
|
- 12 commits were understood as [conventional](https://www.conventionalcommits.org).
|
|
|
|
|
- 0 issues like '(#ID)' were seen in commit messages
|
|
|
|
|
|
|
|
|
|
### Commit Details
|
|
|
|
@ -91,6 +113,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
|
|
<details><summary>view details</summary>
|
|
|
|
|
|
|
|
|
|
* **Uncategorized**
|
|
|
|
|
- Merge pull request #1073 from dave-tucker/reloc-bug ([`b2ac9fe`](https://github.com/aya-rs/aya/commit/b2ac9fe85db6c25d0b8155a75a2df96a80a19811))
|
|
|
|
|
- Fill bss maps with zeros ([`ca0c32d`](https://github.com/aya-rs/aya/commit/ca0c32d1076af81349a52235a4b6fb3937a697b3))
|
|
|
|
|
- Merge pull request #1055 from aya-rs/codegen ([`59b3873`](https://github.com/aya-rs/aya/commit/59b3873a92d1eb49ca1008cb193e962fa95b3e97))
|
|
|
|
|
- [codegen] Update libbpf to 80b16457cb23db4d633b17ba0305f29daa2eb307 ([`f8ad84c`](https://github.com/aya-rs/aya/commit/f8ad84c3d322d414f27375044ba694a169abfa76))
|
|
|
|
|
- Cgroup_iter_order NFPROTO* nf_inet_hooks ([`366c599`](https://github.com/aya-rs/aya/commit/366c599c2083baf72c40c816da2c530dec7fd612))
|
|
|
|
|
- Release aya-obj v0.2.0, aya v0.13.0, safety bump aya v0.13.0 ([`c169b72`](https://github.com/aya-rs/aya/commit/c169b727e6b8f8c2dda57f54b8c77f8b551025c6))
|
|
|
|
|
- Appease clippy ([`aa240ba`](https://github.com/aya-rs/aya/commit/aa240baadf99d3fea0477a9b3966789b0f4ffe57))
|
|
|
|
|
- Merge pull request #1007 from tyrone-wu/aya/info-api ([`15eb935`](https://github.com/aya-rs/aya/commit/15eb935bce6d41fb67189c48ce582b074544e0ed))
|
|
|
|
|
- Revamp MapInfo be more friendly with older kernels ([`fbb0930`](https://github.com/aya-rs/aya/commit/fbb09304a2de0d8baf7ea20c9727fcd2e4fb7f41))
|
|
|
|
@ -112,6 +140,84 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
|
|
- Rename BpfSectionKind to EbpfSectionKind ([`cf3e2ca`](https://github.com/aya-rs/aya/commit/cf3e2ca677c81224368fb2838ebc5b10ee98419a))
|
|
|
|
|
</details>
|
|
|
|
|
|
|
|
|
|
## 0.2.0 (2024-10-09)
|
|
|
|
|
|
|
|
|
|
<csr-id-fbb09304a2de0d8baf7ea20c9727fcd2e4fb7f41/>
|
|
|
|
|
<csr-id-88f5ac31142f1657b41b1ee0f217dcd9125b210a/>
|
|
|
|
|
<csr-id-1634fa7188e40ed75da53517f1fdb7396c348c34/>
|
|
|
|
|
<csr-id-b513af12e8baa5c5097eaf0afdae61a830c3f877/>
|
|
|
|
|
<csr-id-b06ff402780b80862933791831c578e4c339fc96/>
|
|
|
|
|
<csr-id-4dc4b5ccd48bd86e2cc59ad7386514c1531450af/>
|
|
|
|
|
<csr-id-eef7346fb2231f8741410381198015cceeebfac9/>
|
|
|
|
|
|
|
|
|
|
### New Features
|
|
|
|
|
|
|
|
|
|
- <csr-id-8c79b71bd5699a686f33360520aa95c1a2895fa5/> Rename Bpf to Ebpf
|
|
|
|
|
And BpfLoader to EbpfLoader.
|
|
|
|
|
This also adds type aliases to preserve the use of the old names, making
|
|
|
|
|
updating to a new Aya release less of a burden. These aliases are marked
|
|
|
|
|
as deprecated since we'll likely remove them in a later release.
|
|
|
|
|
|
|
|
|
|
### Other
|
|
|
|
|
|
|
|
|
|
- <csr-id-fbb09304a2de0d8baf7ea20c9727fcd2e4fb7f41/> revamp MapInfo be more friendly with older kernels
|
|
|
|
|
Adds detection for whether a field is available in `MapInfo`:
|
|
|
|
|
- For `map_type()`, we treturn new enum `MapType` instead of the integer
|
|
|
|
|
representation.
|
|
|
|
|
- For fields that can't be zero, we return `Option<NonZero*>` type.
|
|
|
|
|
- For `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.
|
|
|
|
|
- <csr-id-88f5ac31142f1657b41b1ee0f217dcd9125b210a/> revamp ProgramInfo be more friendly with older kernels
|
|
|
|
|
Purpose of this commit is to add detections for whether a field is
|
|
|
|
|
available in `ProgramInfo`.
|
|
|
|
|
- For `program_type()`, we return the new enum `ProgramType` instead of
|
|
|
|
|
the integer representation.
|
|
|
|
|
- For fields that we know cannot be zero, we return `Option<NonZero*>`
|
|
|
|
|
type.
|
|
|
|
|
- For `name_as_str()`, it now also uses the feature probe `bpf_name()`
|
|
|
|
|
to detect if field is available or not.
|
|
|
|
|
- Two additional feature probes are added for the fields:
|
|
|
|
|
- `prog_info_map_ids()` probe -> `map_ids()` field
|
|
|
|
|
- `prog_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.
|
|
|
|
|
- <csr-id-1634fa7188e40ed75da53517f1fdb7396c348c34/> add conversion u32 to enum type for prog, link, & attach type
|
|
|
|
|
Add conversion from u32 to program type, link type, and attach type.
|
|
|
|
|
Additionally, remove duplicate match statement for u32 conversion to
|
|
|
|
|
`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`.
|
|
|
|
|
- <csr-id-b513af12e8baa5c5097eaf0afdae61a830c3f877/> add archs powerpc64 and s390x to aya
|
|
|
|
|
bpfman, a project using aya, has a requirement to support powerpc64 and
|
|
|
|
|
s390x architectures. Adding these two architectures to aya.
|
|
|
|
|
- <csr-id-b06ff402780b80862933791831c578e4c339fc96/> Generate new bindings
|
|
|
|
|
|
|
|
|
|
### Test
|
|
|
|
|
|
|
|
|
|
- <csr-id-4dc4b5ccd48bd86e2cc59ad7386514c1531450af/> adjust test to not use byte arrays
|
|
|
|
|
Where possible, replace the hardcoded byte arrays in the tests with the
|
|
|
|
|
structs they represent, then convert the structs to byte arrays.
|
|
|
|
|
- <csr-id-eef7346fb2231f8741410381198015cceeebfac9/> adjust test byte arrays for big endian
|
|
|
|
|
Adding support for s390x (big endian architecture) and found that some
|
|
|
|
|
of the unit tests have structures and files implemented as byte arrays.
|
|
|
|
|
They are all coded as little endian and need a bug endian version to
|
|
|
|
|
work properly.
|
|
|
|
|
|
|
|
|
|
### New Features (BREAKING)
|
|
|
|
|
|
|
|
|
|
- <csr-id-fd48c55466a23953ce7a4912306e1acf059b498b/> Rename BpfRelocationError -> EbpfRelocationError
|
|
|
|
|
- <csr-id-cf3e2ca677c81224368fb2838ebc5b10ee98419a/> Rename BpfSectionKind to EbpfSectionKind
|
|
|
|
|
|
|
|
|
|
## 0.1.0 (2024-02-28)
|
|
|
|
|
|
|
|
|
|
<csr-id-b3e7ef741c5b8d09fc7dc8302576f8174be75ff4/>
|
|
|
|
|