Commit Graph

504 Commits (3dc9308c8e7c4a263ab7d1a064655516b5016071)
 

Author SHA1 Message Date
William Findlay 4df4e9c14e
aya: introduce include_bytes_aligned!() macro
This is a helper macro that can be used to include bytes at compile-time that can then be
used in Bpf::load(). Unlike std's include_bytes!(), this macro also ensures that the
resulting byte array is correctly aligned so that it can be parsed as an ELF binary.

Signed-off-by: William Findlay <william@williamfindlay.com>
3 years ago
Alessandro Decina 75acbe1455 xtask: fix clippy warning 3 years ago
Dave Tucker 1a4c76e3c4 ci: Update codgen workflow commit message
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
alessandrod 03e9935358 Bump libbpf to 92c1e61a605410b16d6330fdd4a7a4e03add86d4
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
dependabot[bot] c99dcfb9d3 build(deps): update object requirement from 0.26 to 0.27
Updates the requirements on [object](https://github.com/gimli-rs/object) to permit the latest version.
- [Release notes](https://github.com/gimli-rs/object/releases)
- [Changelog](https://github.com/gimli-rs/object/blob/master/CHANGELOG.md)
- [Commits](https://github.com/gimli-rs/object/compare/0.26.0...0.27.0)

---
updated-dependencies:
- dependency-name: object
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
Dave Tucker 1f541314ab readme: fix build badge
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina 4152e8b1a4 (cargo-release) version 0.10.5 3 years ago
Alessandro Decina 1f3acbcfe0 bpf: add override for bpf_probe_read_user_str 3 years ago
Alessandro Decina 59a1854a6b aya: fix call relocation bug
Take the section offset into account when looking up relocation entries
3 years ago
Dave Tucker dc4b928ec5 miri: Disable Stacked Borrows and skip some tests
The perf_buffer code fails due to stacked borrows, skip this for now.
munmap isn't supported by miri.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 93e9cd0e00 ci: Add miri
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina 4116442cda bpf: PerfEventByteArray: remove unused import 3 years ago
Alessandro Decina 0220a4192c bpf: add PerfEventByteArray
Similar to PerfEventArray but allows to output variable length byte
slices
3 years ago
Alessandro Decina 23a70382b2 bpf: PerfEventArray: tweak output API 3 years ago
Alessandro Decina ea91fe08d3 bpf: rename PerfMap to PerfEventArray 3 years ago
Alessandro Decina 52c51895ba aya: fix clippy 3 years ago
Alessandro Decina 32350f81b7 bpf: add memset impl that doesn't trip the verifier
Add a verifier proof memset implementation. This is a quick hack until
we fix compiler-builtins for the bpf target.
3 years ago
Alessandro Decina 64e3fb4cc8 aya: improve docs a bit and make BpfLoader default to loading BTF if available 3 years ago
Alessandro Decina 5f8f18e3a1 aya: loader: take BTF info as reference
Allows sharing the same BTF info across many loaders
3 years ago
Dave Tucker 090efc863d bpf: Fix clippy warnings
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 16b89fbe72 ci: Add CI for aya-bpf
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 69041954cb bpf: Added pinned constructor to maps
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 9426f36f79 Implement Pinning For Programs and Maps
This commit adds 2 new methods to aya::sys
- bpf_pin_object
- bpf_get_object

Which allow the pinning and retrieval of programs/maps to bpffs.

It adds a `Program.pin` API, such that a loaded program can be pinned.
For map pinning, the user must ensure the `pinning u32` in the
`bpf_map_def` is set to 1, maps will be pinned using a new builder API.

BpfLoader::new().map_pin_path("/sys/fs/bpf/myapp").load_file("myapp.o")

This will pin all maps whose definition requests pinning to path + name.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina a7f5b3775d (cargo-release) version 0.10.4 3 years ago
Dave Tucker a10a7b3bf2 bump obj to 0.26
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 544efdd4d7 ci: Add action for xtask codegen
This commit adds a github action that will
- check out aya and libbpf
- run xtask codegen
- if there is a diff, open commit changes to the codegen branch
- if changes were comitted, open a pull-request

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina 98361a4c93 aya: minor PerfEvent API tweaks 3 years ago
Alessandro Decina 7af1cf136c aya: generate bindings for more perf types 3 years ago
Alessandro Decina b0a05e759e aya: run xtask codegen aya 3 years ago
Markus Stange c39dff6025 Add support for PerfEvent programs. 3 years ago
Alessandro Decina 269be03a89 bpf: add PerCpuArray 3 years ago
Alessandro Decina c56a6b16aa aya: only consider Text symbols as relocatable functions 3 years ago
Alessandro Decina d9fc0f484f aya: fix bug with nested call relocations
Use the correct offset when looking up relocation entries while doing
nested call relocations.
3 years ago
Dave Tucker e9bad0b61d Make Clippy Happy
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina 4fcb1d75b9 aya-gen: bump bindgen to 0.59 3 years ago
Alessandro Decina 9c27910f76 aya: update authors and repository link 3 years ago
Alessandro Decina ca14306860 aya-gen: use aya_bpf::cty instead of aya_bpf_cty
This avoids having to add an explicit extra dep on aya-bpf-cty in ebpf
programs
3 years ago
Alessandro Decina d7ef47686b bpf: update bindings against libbpf 8bdc267e7b853ca08ed762b21fecc0e019ddc332 3 years ago
Alessandro Decina a678f3b38e Add dependabot conf 3 years ago
Dave Tucker 8acb92d61c Remove docs. Update URLs to aya-rs
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 4e1ce2534c obj/btf: Fix size of Unknown variant
The size of Unknown should be ty_size, otherwise when it is encountered,
we never advance the cursor and it creates an infinite loop.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 569b8ca39e obj/btf: Add some tests for reading btf data
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 753a683704 btf: Add bindings for BTF_KIND_FLOAT
Fixes: #34

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 1153a51202
docs: Logging Packets (#47)
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Markus Stange 70dc862196
Fix rustup command in the docs. (#48)
rustup install nightly --component rust-src

gives:

```
error: Found argument '--component' which wasn't expected, or isn't valid in this context

USAGE:
    rustup install [FLAGS] [OPTIONS] <toolchain>...

For more information try --help
```

The correct command seems to be `rustup toolchain install nightly --component rust-src`.
3 years ago
Dave Tucker b880ccd269
README: Add docs link (#44)
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 07a21e5822
docs: Initial Commit of Aya Book (#42)
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina f30abca15e (cargo-release) version 0.10.3 3 years ago
Alessandro Decina 66a12ffcf7 aya: programs: tweak LircMode2::query doc. 3 years ago
Alessandro Decina 8c03ba052a aya: netlink: fix clippy lint 3 years ago