Commit Graph

2063 Commits (48acb3f93f697e2c9297e3647ac2ffb3056183d0)
 

Author SHA1 Message Date
Sherlock Holo 48acb3f93f
Merge 8897b57153 into d1ed76e626 5 days ago
dependabot[bot] d1ed76e626
Merge pull request #1273 from aya-rs/dependabot/cargo/cargo-crates-af2cda06bf 5 days ago
dependabot[bot] a7e3e6d4d9
build(deps): bump the cargo-crates group with 2 updates
Updates the requirements on [cargo_metadata](https://github.com/oli-obk/cargo_metadata) and [object](https://github.com/gimli-rs/object) to permit the latest version.

Updates `cargo_metadata` to 0.19.2
- [Release notes](https://github.com/oli-obk/cargo_metadata/releases)
- [Changelog](https://github.com/oli-obk/cargo_metadata/blob/main/CHANGELOG.md)
- [Commits](https://github.com/oli-obk/cargo_metadata/compare/0.19.0...0.19.2)

Updates `object` to 0.36.7
- [Changelog](https://github.com/gimli-rs/object/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gimli-rs/object/compare/0.36.0...0.36.7)

---
updated-dependencies:
- dependency-name: cargo_metadata
  dependency-version: 0.19.2
  dependency-type: direct:production
  dependency-group: cargo-crates
- dependency-name: object
  dependency-version: 0.36.7
  dependency-type: direct:production
  dependency-group: cargo-crates
...

Signed-off-by: dependabot[bot] <support@github.com>
5 days ago
dependabot[bot] e239f3abbd
Merge pull request #1269 from aya-rs/dependabot/github_actions/github-actions-b6130af3f2 5 days ago
dependabot[bot] e1fa363619
build(deps): bump DavidAnson/markdownlint-cli2-action
Bumps the github-actions group with 1 update: [DavidAnson/markdownlint-cli2-action](https://github.com/davidanson/markdownlint-cli2-action).


Updates `DavidAnson/markdownlint-cli2-action` from 19 to 20
- [Release notes](https://github.com/davidanson/markdownlint-cli2-action/releases)
- [Commits](https://github.com/davidanson/markdownlint-cli2-action/compare/v19...v20)

---
updated-dependencies:
- dependency-name: DavidAnson/markdownlint-cli2-action
  dependency-version: '20'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
5 days ago
Tamir Duberstein 37257fe7cd
Fix MD059/descriptive-link-text 5 days ago
Sherlock Holo 8897b57153
refactor: enable async-io feature for async-global-executor in aya-log 7 days ago
Sherlock Holo 5a388d7524
refactor: change compio features
compio should only enable the runtime feature, and just enable the io-uring feature in aya-log test
7 days ago
Sherlock Holo 29b5eef4b7
make async feature mutual exclusivity
In previous version, user can enable async_tokio and async_std features,
however when both of them are enabled, tokio will be ignored.

After add async_compio feature, when two or three async features are enabled,
user may confuse which one will be used. IMO the better way is make
these async features are mutual exclusivity, user should only enable
one, if more than async feautres are enabled, will compile fail with
compile_error! macro. Also if none of the async feature is enabled in
aya-log, will compile fail too
1 week ago
Sherlock Holo 5f6552c714
feat: add compio support for aya-log 1 week ago
Tamir Duberstein ccf6c4707f aya-ebpf: disable generic_const_exprs
This has recently regressed on nightly.

See https://github.com/rust-lang/rust/issues/141492.
2 weeks ago
Tamir Duberstein 4f654865e9 aya-ebpf: add a dedicated generic_const_exprs cfg 2 weeks ago
Tamir Duberstein 630a767117 Split relocation tests into multiple files
This avoids requiring kernel support for all types of relocations when
testing a specific type.
3 weeks ago
Tamir Duberstein c8e9037ca6 Avoid uncontrolled stdout into cargo
This fixes rebuild on change of C sources by black-holing:
- Output of `make` (harmless).
- Output of `llmv-objcopy` (harmful: binary data).
3 weeks ago
Tamir Duberstein 025b6eaa0d Use a macro to reduce boilerplate 3 weeks ago
Tamir Duberstein b6daf463e6 Remove stale comment since a1b46ece05 3 weeks ago
Mehnaz Yunus 4b5ba53a36 aya: implement TryFrom<[Program Type]> for FdLink for various program types
Implements TryFrom for FdLink for CgroupSkb, CgroupSock, CgroupSockAddr
and SockOps program types. This allows support for link pinning for
these program types, aligning with the documentation for FdLink.

Fixes: #739

Co-authored-by: Benjamin Barzen <bbarzen@amazon.com>
3 weeks ago
Tyrone Wu 7a0dabc295 aya: short-circuit info field if non-zero
Short-circuits `CACHE` to true if the field is non-zero.

This saves from executing the probing logic since the logic essentially
checks if the field can process (or doesn't error) non-zero value.
3 weeks ago
Tyrone Wu 23bc5b5836 aya,aya-obj: cache feat probed info fields
Cached probed for ProgramInfo fields instead of exposing it through
global FEATURE. Probing occurs on cache miss, which happens when first
accessing the field, *and* if the field is 0.
3 weeks ago
Tyrone Wu bd492860f5 aya: add feature probing for map type
Add API that probes whether kernel supports a map type.
3 weeks ago
Tyrone Wu ab77decd9a aya,aya-obj: add feature probing program type
Adds API that probes whether kernel supports a program type.
3 weeks ago
Dave Tucker f74a157907
Merge pull request #1262 from dave-tucker/stabilize-links
feat(aya): Make LinkInfo and loaded_links public
1 month ago
Dave Tucker 7dba5a41ad feat(aya): Make LinkInfo and loaded_links public
We have had loaded_links in the API as `#[doc(hidden)]` for a while.
I've been using it in bpfman and it's been fine. This commit does the
minimal work required to make the API stable.

We expose a `LinkInfo` type - similar to `ProgInfo` - which wraps the
generated type. In this case, `bpf_link_info`.

A few accessor functions have been added for `id`, `link_type` and
`program_id`. There are many more fields that could be (eventually)
made public.

As a convenience, `LinkInfo` can be retrieved from an existing FdLink
by using `FdLink::info()`.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
1 month ago
dependabot[bot] 92c73a72e7
Merge pull request #1263 from aya-rs/dependabot/cargo/cargo-crates-b22b264ef4 1 month ago
dependabot[bot] 95c03e6600
build(deps): update nix requirement in the cargo-crates group
Updates the requirements on [nix](https://github.com/nix-rust/nix) to permit the latest version.

Updates `nix` to 0.29.0
- [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nix-rust/nix/compare/v0.29.0...v0.29.0)

---
updated-dependencies:
- dependency-name: nix
  dependency-version: 0.29.0
  dependency-type: direct:production
  dependency-group: cargo-crates
...

Signed-off-by: dependabot[bot] <support@github.com>
1 month ago
Omri Steiner 33c9f2b2b2 aya: uprobe: use PathBuf for ResolveSymbolError::DebuglinkAccessError
Makes no sense to use a string, as it's a path.
This breaks the public API.
1 month ago
Omri Steiner 90d5604877 aya: uprobe attach: use mmap instead of reading whole binaries to memory 1 month ago
Omri Steiner 647100faa7 aya: clean up resolve_symbol a bit
Instead of using intermediate values to extend the lifetime of the
object::File, we just separate the branches.
1 month ago
Omri Steiner 3aded0e0a5 aya: move Mmap struct to aya::util 1 month ago
Tamir Duberstein 583709f6a0 appease `clippy::uninlined-format-args` 1 month ago
dependabot[bot] c65a200e9a
Merge pull request #1256 from aya-rs/dependabot/cargo/cargo-crates-9bb5a8e9c0 2 months ago
dependabot[bot] c0ff1aa0cc
build(deps): update network-types requirement in the cargo-crates group
Updates the requirements on [network-types](https://github.com/vadorovsky/network-types) to permit the latest version.

Updates `network-types` to 0.0.7
- [Release notes](https://github.com/vadorovsky/network-types/releases)
- [Changelog](https://github.com/vadorovsky/network-types/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vadorovsky/network-types/compare/v0.0.7...v0.0.7)

---
updated-dependencies:
- dependency-name: network-types
  dependency-version: 0.0.7
  dependency-type: direct:production
  dependency-group: cargo-crates
...

Signed-off-by: dependabot[bot] <support@github.com>
2 months ago
Tamir Duberstein 6004fcdb0f aya-ebpf: put mem{set,move,cpy} behind cfg(target_arch = "bpf")
Address some lints while I'm here.
2 months ago
Tamir Duberstein eab5661a0e aya-build: enable BTF 2 months ago
Tamir Duberstein 0237e36dbe ci: test against 6.12 rather than 6.10
6.12 is an LTS kernel, while 6.10 is not. The latter has reached EOL and
no longer lives on debian mirrors.
2 months ago
Tamir Duberstein 5732b2c203 test-distro: build without cross toolchain
Make the xz2 dependency optional to allow building without a C cross
compiler. This allows clippy.sh to be used on e.g. macOS more easily:

```
./clippy.sh --target x86_64-unknown-linux-gnu --exclude-features xz2
```
2 months ago
Tamir Duberstein edae5cd676 test-distro: reduce indentation 2 months ago
Tamir Duberstein 35279b7c7b test-distro: extract common decompression code
Remove vector preallocation in the uncompressed case; the standard
library implementation of `io::Read` for `fs::File` already does this.
2 months ago
Tamir Duberstein 680402be0c Revert "ci: download gen_init_cpio with authentication"
This removes octorust which takes absolutely ages to compile and also
requires native TLS libraries which in turn require a C toolchain. The
latter is a pain when cross compiling from macOS.

This reverts commit cc2da4a2a4.
2 months ago
Tamir Duberstein e967d0aea2 Use nul bytes as delimiters 2 months ago
Tamir Duberstein e692e5ffc5 Remove stale comments
Upstream isn't planning to do this.
2 months ago
Tamir Duberstein fe8e1c48b0 Remove getrandom patch
https://github.com/rust-random/getrandom/releases/tag/v0.3.2 contains
b75db5cede.
2 months ago
Dave Tucker 4c5fbef869
Merge pull request #1240 from dave-tucker/use-gen-bpf-add 2 months ago
dependabot[bot] 11e9dcc179
Merge pull request #1241 from aya-rs/dependabot/cargo/cargo-crates-cb2c366dd6 2 months ago
dependabot[bot] ac6b04fa1d
build(deps): update public-api requirement in the cargo-crates group
Updates the requirements on [public-api](https://github.com/cargo-public-api/cargo-public-api) to permit the latest version.

Updates `public-api` to 0.44.2
- [Release notes](https://github.com/cargo-public-api/cargo-public-api/releases)
- [Changelog](https://github.com/cargo-public-api/cargo-public-api/blob/main/CHANGELOG.md)
- [Commits](https://github.com/cargo-public-api/cargo-public-api/compare/public-api-v0.44.0...public-api-v0.44.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2 months ago
Dave Tucker 23a5e06c75 chore(aya): Use BPF_ADD from bindings
We should use the generated one, not the one provided by the libc crate.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2 months ago
Dave Tucker 756d8172f5
Merge pull request #1239 from aya-rs/create-pull-request/codegen 2 months ago
dave-tucker 5e4e12ce78 aya-obj, aya-ebpf-bindings: regenerate
libbpf commit: 20ea95b4505c477af3b6ff6ce9d19cee868ddc5d
2 months ago
Dave Tucker e362ac2fbc
Merge pull request #1238 from dave-tucker/bind-all-insns 2 months ago
Dave Tucker 59c02447fa chore: generate bindings for all eBPF insns
The binding for BPF_ADD was missing from codegen.
Use BPF_.* to capture all of these to avoid missing bindings in future.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2 months ago