Commit Graph

1953 Commits (3ddbf5bd83368747bb69259037761c0027a52521)
 

Author SHA1 Message Date
Tamir Duberstein 3ddbf5bd83
Bump edition to 2024
This seems to reveal that the way we generated BPF programs (with
mutable statics) is always going to trip `static_mut_refs`, which is now
deny-by-default. See [static-mut-references].

Change FromRawTracepointArgs::arg to return T rather than *const T which
seems to have been returning a dangling pointer.

[static-mut-references]: https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-references.html
3 months ago
Tamir Duberstein 38d6305868
Reduce the scope of expected warnings
This fixes a few safety comments to avoid the warnings.
3 months ago
Tamir Duberstein b45cc5a622
Use #[expect(...)] rather than #[allow(...)]
This is stricter, and revealed a few unused allowances.
3 months ago
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.
3 months ago
Tamir Duberstein eee7975ce4 aya: remove redundant TEST_SYSCALL use
This is already done in `syscall`.
3 months ago
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.
3 months ago
Tamir Duberstein bdd8ae2d0b *: avoid `_`
This can silently discard information, so we shouldn't do it.
3 months ago
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.
3 months ago
Tamir Duberstein 2d782606fe *: avoid Result::is_{ok,err}
These methods discard information. Discarding information is bad.
3 months ago
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.
3 months ago
Tamir Duberstein dab1aa4e29 maps: avoid retagging in tests 3 months ago
Tamir Duberstein f51ab80075 perf_buffer: attempt to preserve provenance
In tests, provide write provenance.
3 months ago
Tamir Duberstein 888701425b perf_buffer: use MMap from ring_buf 3 months ago
Tamir Duberstein ff82c244f7 netlink: avoiding casting pointers to usize 3 months ago
Tamir Duberstein e17feca2d6 maps: remove some stale comments 3 months ago
Tamir Duberstein 935ba20224 Enable test under miri
nr_cpus() is stubbed since 9e1bcd0ab8.
3 months ago
Tamir Duberstein 5ff57f1d9e Use `ignore` rather than not compile on big endian 3 months ago
Tamir Duberstein 9a47495227 aya,aya-obj: preserve pointer provenance 3 months ago
Tamir Duberstein b500a6326b tests: use `cfg!` to tidy up 3 months ago
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.
3 months ago
tamird f49a761c27 aya-obj, aya-ebpf-bindings: regenerate
libbpf commit: 20ea95b4505c477af3b6ff6ce9d19cee868ddc5d
3 months ago
Tamir Duberstein 5d5b63dcb1 gen: run on ubuntu-latest
ubuntu-20.04 is being deprecated.

See https://github.com/actions/runner-images/issues/11101.
3 months ago
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.
3 months ago
tamird 39e40ba5c7 public-api: regenerate 3 months ago
tamird ae317961ef public-api: regenerate 3 months ago
Tamir Duberstein 9e52d2c123 Correctly specify git dependency
Fixes #1178.
4 months ago
dependabot[bot] 8724cc1b2d
Merge pull request #1177 from aya-rs/dependabot/cargo/cargo-crates-b42da3d535 4 months ago
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>
4 months ago
Tamir Duberstein c608a2d3d2 Update public-api to 0.44.0 4 months ago
tamird ade2e2a739 aya-obj, aya-ebpf-bindings: regenerate
libbpf commit: 20ea95b4505c477af3b6ff6ce9d19cee868ddc5d
4 months ago
Tamir Duberstein 8af5f38056 gen: run automatically 4 months ago
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.
4 months ago
Tamir Duberstein 76d1b9f46e gen: use peter-evans/create-pull-request@v7
We already use this for the lint job on main.
4 months ago
Tamir Duberstein c8f14b18d4 codegen: tidy up
Move some code out of a loop, where it appears to be nonsense.
4 months ago
Tamir Duberstein 9198335100 codegen: remove outdated workaround
bindgen can handle these macros now.
4 months ago
Tamir Duberstein ed92e7eb66 aya-tool: use write_all 4 months ago
tamird 76ca85c8c3 public-api: regenerate 4 months ago
Tamir Duberstein 942ea51906 Avoid handwritten assembly 4 months ago
Tamir Duberstein 8ea11ef9e8 Remove duplication
Use `BPF_PROG_TYPE_TRACEPOINT` instead of `BPF_PROG_TYPE_SOCKET_FILTER`
as the former seems to work with more feature detection functions.
4 months ago
Tamir Duberstein b010b0f028 Avoid raw slice construction
The safety requirements of this transmutation are simpler.
4 months ago
Tamir Duberstein 94c857261a aya-obj: use generated constants 4 months ago
tamird e82253c915 chore(aya-obj, aya-ebpf-bindings): Regenerate bindings
libbpf commit: d4a841a32b04d69194ab5bdac359a51938a206ce

Files changed:
M	aya-obj/src/generated/linux_bindings_aarch64.rs
M	aya-obj/src/generated/linux_bindings_armv7.rs
M	aya-obj/src/generated/linux_bindings_mips.rs
M	aya-obj/src/generated/linux_bindings_powerpc64.rs
M	aya-obj/src/generated/linux_bindings_riscv64.rs
M	aya-obj/src/generated/linux_bindings_s390x.rs
M	aya-obj/src/generated/linux_bindings_x86_64.rs
M	xtask/public-api/aya-obj.txt
4 months ago
Tamir Duberstein 2319770f5b codegen: generate additional userspace constants 4 months ago
Tamir Duberstein ee7861a6ed codegen: avoid lossy string conversion
This can't possibly work right if lossy conversion is required.
4 months ago
Tyrone Wu 665d4f20bb chore: remove aya_obj -> obj alias
When `aya::obj` was migrated to be its own crate `aya-obj`, the `obj`
alias was created to preserve existing imports that relied on
`crate::obj`.

This resulted in 3 ways to import `aya-obj` objects:
- `use aya_obj::*`
- `use obj::*`
- `use crate::obj::*`

The `obj` alias is now removed to avoid confusion, and all `obj` imports
are funneled through `aya_obj`.
4 months ago
Dave Tucker 67a0595f87
Merge pull request #1159 from dave-tucker/codegen-pr-message
ci: Update codegen PR template
4 months ago
Dave Tucker 921e45747b
Merge pull request #690 from dave-tucker/netlink-errors
aya: Return error messages from netlink
4 months ago
Dave Tucker 39cf6c12f2 feat(aya): Return error messages from netlink
This returns error strings from netlink since they are more informative
than the raw os error. For example:

"Device or Resource Busy" vs. "XDP program already attached".

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
4 months ago
Dave Tucker 5d27e62b6a ci: Update codegen PR template
Updated to match the commit message

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
4 months ago
Dave Tucker 0865e08dcf
Merge pull request #1158 from aya-rs/codegen
Update libbpf to d4a841a32b04d69194ab5bdac359a51938a206ce
4 months ago