Tamir Duberstein
6b94b2080d
Hide details of VerifierLog
...
This type is really only used by one function.
1 year ago
Tamir Duberstein
b0a4ab5f20
xtask: Standardize command logging
...
Don't run `cargo build --verbose`; it's too noisy.
1 year ago
Tamir Duberstein
b611038d5b
Use procfs crate for kernel version parsing
...
This allows the logic to be shared between aya and the integration tests
without exposing additional public API surface.
1 year ago
Tamir Duberstein
7f25956aea
Add missing test annotation
1 year ago
Tamir Duberstein
32be47a23b
Merge pull request #642 from aya-rs/less-strings
...
aya: don't allocate static strings
1 year ago
Tamir Duberstein
27120b328a
aya: don't allocate static strings
1 year ago
Alessandro Decina
c89c485bca
Merge pull request #627 from nak3/add-riscv
...
bpf: Add `pt_regs` handling in aya-bpf/args.rs for riscv64
1 year ago
Alessandro Decina
ed70a47845
Merge pull request #640 from aya-rs/lossy-conversions
...
integration-test: Remove integration-test-macros
1 year ago
Tamir Duberstein
e08c6471dd
Cargo.toml: suppress resolver warning on nightly
...
```
warning: some crates are on edition 2021 which defaults to `resolver = "2"`, but virtual workspaces default to `resolver = "1"`
```
1 year ago
Tamir Duberstein
9ca0af1a79
integration-test: Remove integration-test-macros
...
This doesn't add any value; use `cargo build --tests` with
`--message-format=json` instead; parse the output using `cargo_metadata`
to discover the location of the test binary.
Move test/integration-test/src/tests -> test/integration-test/tests to
conform to
https://doc.rust-lang.org/book/ch11-03-test-organization.html#integration-tests .
1 year ago
Tamir Duberstein
ecc03ecfad
xtask: destructure
1 year ago
Tamir Duberstein
de1fe1f5e1
xtask: Avoid lossy conversions, spurious vectors
1 year ago
Tamir Duberstein
e93e3c4a55
Merge pull request #639 from aya-rs/test-no-bpftool
...
Remove dependency on bpftool in integration tests
1 year ago
Tamir Duberstein
25859e4e33
xtask: emit clang command on failure
1 year ago
Tamir Duberstein
7067db450a
xtask: Avoid lossy string conversion
1 year ago
Tamir Duberstein
5a2906a6c9
test,xtask: Replace lazy_static with OnceCell
...
This doesn't affect MSRV because this is testing code.
1 year ago
Tamir Duberstein
ff86f1385c
Remove dependency on bpftool in integration tests
1 year ago
Mary
5c86b7ee95
Merge pull request #635 from marysaka/misc/aya-obj-enum-public
...
misc: aya-obj: Make it possible to externally assemble BtfEnum
1 year ago
Mary
d9dfd94f29
misc: aya-obj: Make it possible to externally assemble BtfEnum
1 year ago
Alessandro Decina
4b8ffa40bb
Merge pull request #634 from alessandrod/str-helpers-asm-bounds
...
bpf: improve bpf_probe_read_kernel_str_bytes and bpf_probe_read_user_str_bytes
1 year ago
Alessandro Decina
11c227743d
bpf: improve bpf_probe_read_kernel_str_bytes and bpf_probe_read_user_str_bytes
...
This change does a few things:
- it fixes a bug in the wrappers, where we were expecting the kernel to
return len=1 for b"\0" where it instead returns 0 and doesn't write
out the NULL terminator
- it makes the helpers more robust by hardcoding bound checks in
assembly so that LLVM optimizations can't transform the checks in a
way that the verifier can't understand.
- it adds integration tests
1 year ago
Dave Tucker
bc0d02143f
Merge pull request #531 from dave-tucker/probe-cookie
...
aya: Make FEATURES public
1 year ago
Dave Tucker
47f764c191
aya: Make Features part of the public API
...
This commit adds a new probe for bpf_attach_cookie, which would be used
to implement USDT probes. Since USDT probes aren't currently supported,
we this triggers a dead_code warning in clippy.
There are cases where exposing FEATURES - our lazy static - is actually
helpful to users of the library. For example, they may wish to choose to
load a different version of their bytecode based on current features.
Or, in the case of an orchestrator like bpfd, we might want to allow
users to describe which features their program needs and return nice
error message is one or more nodes in their cluster doesn't support the
necessary feature set.
To do this without breaking the API, we make all the internal members of
the `Features` and `BtfFeatures` structs private, and add accessors for
them. We then add a `features()` API to avoid leaking the
lazy_static.
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
1 year ago
Alessandro Decina
76d35d10ce
Merge pull request #526 from dave-tucker/trie
...
aya: Remove iter_key from LPM Trie API
1 year ago
Dave Tucker
00c480d2f9
aya: Remove iter_key from LPM Trie API
...
Based on the discussion in Discord we've decided to drop the
iter_key() API for LPM Trie. According to the kernel self-tests and
experimentation done in Aya, providing a key into bpf_map_get_next_id
will either:
- If key is an EXACT match, proceed iterating through all keys in the
trie from this point
- If key is NOT an EXACT match, proceed iterating through all keys in
the trie starting at the leftmost entry.
An API in Aya could be crafted that gets the LPM match + less specific
matches for a prefix using these semantics BUT it would only apply to
userspace. Therefore we've opted out of fixing this.
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
1 year ago
Tamir Duberstein
5c6bd55260
Merge pull request #633 from ajwerner/change-fd-import
...
aya: replace os::unix::prelude with os::fd
1 year ago
ajwerner
65d10f9ffc
aya: replace os::unix::prelude with os::fd
1 year ago
Mary
b2737d5b0d
Merge pull request #632 from marysaka/feat/global-data-optional
...
aya: allow global value to be optional
1 year ago
Mary
77cce840f7
Update aya/src/bpf.rs
...
Co-authored-by: Alessandro Decina <alessandro.d@gmail.com>
1 year ago
Mary
93435fc854
aya: allow global value to be optional
...
This allow to not error out when a global symbol is missing from the object.
1 year ago
dependabot[bot]
4c08b9b43f
Merge pull request #628 from aya-rs/dependabot/cargo/bindgen-0.66
1 year ago
dependabot[bot]
77e3dc2c2e
build(deps): update bindgen requirement from 0.65 to 0.66
...
Updates the requirements on [bindgen](https://github.com/rust-lang/rust-bindgen ) to permit the latest version.
- [Release notes](https://github.com/rust-lang/rust-bindgen/releases )
- [Changelog](https://github.com/rust-lang/rust-bindgen/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/rust-bindgen/compare/v0.65.0...v0.66.1 )
---
updated-dependencies:
- dependency-name: bindgen
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
1 year ago
dependabot[bot]
26c6b92ef1
Merge pull request #626 from aya-rs/dependabot/cargo/hashbrown-0.14
1 year ago
Kenjiro Nakayama
7dfabd07a7
Add pt_regs handling in aya-bpf/args.rs for riscv64
...
This patch introduces `pt_regs` handling in aya-bpf/args.rs
for the riscv64 architecture. The current CI is disabled
for riscv64 because this implementation is missing.
1 year ago
dependabot[bot]
f5f8083441
build(deps): update hashbrown requirement from 0.13 to 0.14
...
Updates the requirements on [hashbrown](https://github.com/rust-lang/hashbrown ) to permit the latest version.
- [Changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/hashbrown/compare/v0.13.1...v0.14.0 )
---
updated-dependencies:
- dependency-name: hashbrown
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
1 year ago
Alessandro Decina
9cdae81265
Merge pull request #625 from FedericoPonzi/issue-534
...
aya-utils: add syscall_prefix and syscall_fnname_add_prefix
1 year ago
Federico Ponzi
987e8489d0
aya-utils: add syscall_prefix and syscall_fnname_add_prefix
...
These two functions are needed because kernel symbols representing
syscalls have architecture-specific prefixes.
These are the equivalent of bcc's get_syscall_fnname and
get_syscall_prefix.
Solves: #534
1 year ago
dependabot[bot]
53ec1f23ea
Merge pull request #623 from aya-rs/dependabot/cargo/rbpf-0.2.0
1 year ago
dependabot[bot]
4f85ff8a7b
build(deps): bump mikepenz/release-changelog-builder-action from 3 to 4 ( #624 )
...
Bumps [mikepenz/release-changelog-builder-action](https://github.com/mikepenz/release-changelog-builder-action ) from 3 to 4.
- [Release notes](https://github.com/mikepenz/release-changelog-builder-action/releases )
- [Commits](https://github.com/mikepenz/release-changelog-builder-action/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: mikepenz/release-changelog-builder-action
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 year ago
Mary
e5bac02953
Merge pull request #622 from marysaka/fix/uprobe-416-lower
...
aya: Fix uprobe support on 4.16 and lower
1 year ago
dependabot[bot]
fa3dd4bef2
build(deps): update rbpf requirement from 0.1.0 to 0.2.0
...
Updates the requirements on [rbpf](https://github.com/qmonnet/rbpf ) to permit the latest version.
- [Commits](https://github.com/qmonnet/rbpf/compare/v0.1.0...v0.2.0 )
---
updated-dependencies:
- dependency-name: rbpf
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
1 year ago
Mary
49c6f5d122
aya: Fix uprobe support on 4.16 and lower
...
Fix uprobe support on Ubuntu 18.04.
1 year ago
Alessandro Decina
41fe944a1a
Merge pull request #621 from marysaka/fix/uprobe-debian-10
...
aya: Add support for old ld.so.cache format
1 year ago
Mary
8e9f395eab
aya: Add support for old ld.so.cache format
...
This fix uprobe support on Debian 10. (and possibly others)
This implement support to parse the original libc5 format.
1 year ago
Alessandro Decina
95acc73b3d
Merge pull request #620 from probulate/rust-cache
...
github: update Swatinem/rust-cache@{v1,v2}
1 year ago
Tamir Duberstein
6f286f1d4d
github: update Swatinem/rust-cache@{v1,v2}
...
I don't understand why, but dependabot isn't updating this. See
https://github.com/dependabot/dependabot-core/issues/7384 .
1 year ago
Alessandro Decina
37b7c1e614
Merge pull request #619 from poliorcetics/relax-ordering-probe-alias
...
fix: Relax unnecessarily strict atomic ordering on probe event_alias
1 year ago
Alexis (Poliorcetics) Bourget
243986c1da
fix: Relax unnecessarily strict atomic ordering on probe event_alias
1 year ago
Mary
d56ed8fd68
Merge pull request #618 from marysaka/fix/aya-probe-event-alias-uniq
...
aya: Make probe event_alias unique
1 year ago
Mary
e9be3d9023
aya: Make probe event_alias unique
...
This fixes issues when trying to attach the same kernel function multiple times on 4.17 and lower (possibly upper too?)
1 year ago