Commit Graph

1965 Commits (8935f12a7d4d4d70fc97408878dff37aa3015b09)
 

Author SHA1 Message Date
Tamir Duberstein 8935f12a7d
Bump edition to 2024
Change FromRawTracepointArgs::arg to return T rather than *const T which
seems to have been returning a dangling pointer.

Arguably this is not strictly necessary; edition 2024 seems to be
focused on increased strictness around unsafe code which doesn't unlock
new functionality for our users. That said, this work revealed an
apparent bug (see above) that we wouldn't otherwise catch due to
allow-by-default lints.
Tamir Duberstein 752e4ea18a
Reduce the scope of expected warnings
This fixes a few safety comments to avoid the warnings.
Tamir Duberstein 8dc0b80d86
Use #[expect(...)] rather than #[allow(...)]
This is stricter, and revealed a few unused allowances.
dave-tucker ce0e93c75d aya-obj, aya-ebpf-bindings: regenerate
libbpf commit: 20ea95b4505c477af3b6ff6ce9d19cee868ddc5d
Dave Tucker 85c0139428
Merge pull request from heiher/xtask-loong64
chore(xtask): Add loongarch64 to codegen
Tamir Duberstein 27d69c35f0 aya: remove panics on indeterminate kernel version
Cache the current kernel version in a thread-local while I'm here.

Closes https://github.com/aya-rs/aya/issues/1024.
Closes https://github.com/aya-rs/aya/pull/1042.
Tamir Duberstein 9eefb48a0a aya: remove some copies
Replace truncation with proper NULL termination at the site of use.
Tamir Duberstein 7525532204 ci: remove superfluous name
It's implied from the git URL.
Dave Tucker 0fa300f696
Merge pull request from gth828r/1140.xdp-context-if-index-support
aya-ebpf: add ifindex support to XdpContext
jinlong 2fb19f3ee2 feat: Add `set` for `Array<T>`
Signed-off-by: jinlong <jinlong@tencent.com>
Tamir Duberstein 601c89dd23 aya-ebpf: extract insert,remove,lookup
These functions (and more) are duplicated all over the place.
Tim Upthegrove dc543ae44a aya-ebpf: add ifindex support to XdpContext
This change exposes the ifindex field from the underlying xdp_md
data structure to the XdpContext in Aya. The ifindex represents the
unique OS-provided index for a network interface.

Fixes 
WANG Rui 9d0bdb56e6 chore(xtask): Add loongarch64 to codegen
Signed-off-by: WANG Rui <wangrui@loongson.cn>
Ignacy 3edac6153e integration-test: allow llvm-objcopy env override
Allows integration tests to run where llvm-objcopy is versioned.

Closes: https://github.com/aya-rs/aya/issues/1142
Tamir Duberstein 89aa638e05 aya: add TODO to remove once_cell
Tamir Duberstein de1e80c1d1 aya: encode perf_event ioctl contract
Enumerate the possible ioctls in an enum and bake in the knowledge that
they all return 0 on success and -1 on error.
Tamir Duberstein eee7975ce4 aya: remove redundant TEST_SYSCALL use
This is already done in `syscall`.
Tamir Duberstein 055e36e8d9 aya: encode perf_event_open(2) contract
Per man 2 perf_event_open:

> RETURN VALUE
>   On success, perf_event_open() returns the new file descriptor.  On
>   error, -1 is returned and errno is set to indicate the error.

Bake this into our syscalls so we stop using `_` so much which can hide
information loss. Remove the type parameter to SysResult.
Tamir Duberstein bdd8ae2d0b *: avoid `_`
This can silently discard information, so we shouldn't do it.
Tamir Duberstein f6df60fa70 aya: encode bpf(2) contract
Per man 2 bpf:

> RETURN VALUE
>   For a successful call, the return value depends on the operation:
>
>   BPF_MAP_CREATE
>     The new file descriptor associated with the eBPF map.
>
>   BPF_PROG_LOAD
>     The new file descriptor associated with the eBPF program.
>
>   All other commands
>     Zero.
>
>   On error, -1 is returned, and errno is set to indicate the error.

Bake this into our syscalls so we stop using `_` so much which can hide
information loss.
Tamir Duberstein 2d782606fe *: avoid Result::is_{ok,err}
These methods discard information. Discarding information is bad.
Tamir Duberstein a25e355ba7 ci: run on all branches
It is especially common to run CI on non-main branches in forks. This
shouldn't have any impact on how many CI jobs we run in the main aya
repo if contributors follow a fork-centric workflow.
Tamir Duberstein dab1aa4e29 maps: avoid retagging in tests
Tamir Duberstein f51ab80075 perf_buffer: attempt to preserve provenance
In tests, provide write provenance.
Tamir Duberstein 888701425b perf_buffer: use MMap from ring_buf
Tamir Duberstein ff82c244f7 netlink: avoiding casting pointers to usize
Tamir Duberstein e17feca2d6 maps: remove some stale comments
Tamir Duberstein 935ba20224 Enable test under miri
nr_cpus() is stubbed since 9e1bcd0ab8.
Tamir Duberstein 5ff57f1d9e Use `ignore` rather than not compile on big endian
Tamir Duberstein 9a47495227 aya,aya-obj: preserve pointer provenance
Tamir Duberstein b500a6326b tests: use `cfg!` to tidy up
Tamir Duberstein 122c49fca4 *: appease clippy
While I'm here convert a String to a PathBuf in an error to avoid lossy
conversions.

See https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error.
tamird f49a761c27 aya-obj, aya-ebpf-bindings: regenerate
libbpf commit: 20ea95b4505c477af3b6ff6ce9d19cee868ddc5d
Tamir Duberstein 5d5b63dcb1 gen: run on ubuntu-latest
ubuntu-20.04 is being deprecated.

See https://github.com/actions/runner-images/issues/11101.
aorhant 9e1bcd0ab8 aya: Fix PerCpuHashMap NotFound
PerCpuHashMap was never returning MapError::KeyNotFound because
bpf_map_lookup_elem_per_cpu was replacing Ok(None) with
Ok(Some(zeroed_value)).

Update bpf_map_lookup_elem_per_cpu to map the Option value.
tamird 39e40ba5c7 public-api: regenerate
tamird ae317961ef public-api: regenerate
Tamir Duberstein 9e52d2c123 Correctly specify git dependency
Fixes .
dependabot[bot] 8724cc1b2d
Merge pull request from aya-rs/dependabot/cargo/cargo-crates-b42da3d535
dependabot[bot] 5e5cd29922
build(deps): update rand requirement
Updates the requirements on [rand](https://github.com/rust-random/rand) to permit the latest version.

Updates `rand` to 0.8.5
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-random/rand/compare/0.8.0...0.8.5)

---
updated-dependencies:
- dependency-name: rand
  dependency-type: direct:production
  dependency-group: cargo-crates
...

Signed-off-by: dependabot[bot] <support@github.com>
Tamir Duberstein c608a2d3d2 Update public-api to 0.44.0
tamird ade2e2a739 aya-obj, aya-ebpf-bindings: regenerate
libbpf commit: 20ea95b4505c477af3b6ff6ce9d19cee868ddc5d
Tamir Duberstein 8af5f38056 gen: run automatically
Tamir Duberstein 83b791223f gen: remove pointless "update"
libbpf is a submodule, so its version is already effectively pinned.
`xtask codegen` also runs `git submodule update` which reverts the
action of updating to `origin/HEAD`. Remove the cruft.
Tamir Duberstein 76d1b9f46e gen: use peter-evans/create-pull-request@v7
We already use this for the lint job on main.
Tamir Duberstein c8f14b18d4 codegen: tidy up
Move some code out of a loop, where it appears to be nonsense.
Tamir Duberstein 9198335100 codegen: remove outdated workaround
bindgen can handle these macros now.
Tamir Duberstein ed92e7eb66 aya-tool: use write_all
tamird 76ca85c8c3 public-api: regenerate
Tamir Duberstein 942ea51906 Avoid handwritten assembly