Commit Graph

1000 Commits (c383b5b73130cb49e17135fc4b28b26e94e55e61)
 

Author SHA1 Message Date
Michal Rostecki c383b5b731 workflows: Run clippy for user space and eBPF crates separately
Clippy triggers builds for the checked crates. Without any additional
arguments, it does so with the default toolchain for the default target.
The default target for x86_64 hosts is x86_64-unknown-linux-gnu. Also,
lack of additional arguments means using the std library.

To avoid issues coming from compiling eBPF crates for x86_64 target and
with std (like [0]), this change ensures that they are checked with
`--target bpfel-unknown-none` and `-Zbuild-std=core` options.

[0] https://github.com/aya-rs/aya/actions/runs/4669677849/jobs/8268452592
2 years ago
Alessandro Decina 23ce42da68
Merge pull request #573 from vadorovsky/integration-release
integration-tests: Build eBPF programs always with release profile
2 years ago
Michal Rostecki ed9c2a1780 integration-tests: Build eBPF programs always with release profile
Also, add the `codegen-unit` option to the profile.
2 years ago
vadorovsky fcc8a0d50d
Merge pull request #570 from aya-rs/dependabot/cargo/num_enum-0.6
build(deps): update num_enum requirement from 0.5 to 0.6
2 years ago
dependabot[bot] b10a31183b
build(deps): update num_enum requirement from 0.5 to 0.6
Updates the requirements on [num_enum](https://github.com/illicitonion/num_enum) to permit the latest version.
- [Release notes](https://github.com/illicitonion/num_enum/releases)
- [Commits](https://github.com/illicitonion/num_enum/compare/0.5.0...0.6.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2 years ago
Alessandro Decina 04f4841ede
Merge pull request #567 from Tuetuopay/tests-fedora-38
tests: use fedora 38 beta with testing repo
2 years ago
Tuetuopay 3655cd1e02 tests: use fedora 38 beta with testing repo
Now that bpf-linker uses llvm 16, the easiest way is to use Fedora 38
Beta with the testing repos as they have it, without resorting to
Rawhide.

See https://packages.fedoraproject.org/pkgs/llvm/llvm/.
2 years ago
Alessandro Decina b13070a342
Merge pull request #557 from drewvis/main
Add check for empty tracefs mounts
3 years ago
Alessandro Decina bcb2972a96 aya: make it possible to use set_global() with slices of Pod(s) 3 years ago
drewvis 8f64cf8cd5 Added code check comment 3 years ago
drewvis 3a2c0cd1dd Add check for empty tracefs mounts 3 years ago
Alessandro Decina 8ef00c4c63 Revert "aya: make it possible to use set_global() with slices of Pod(s)"
This reverts commit b614ffd603.
3 years ago
Alessandro Decina dfbe1207c1 aya-obj: fix compilation with nightly 3 years ago
Alessandro Decina b614ffd603 aya: make it possible to use set_global() with slices of Pod(s) 3 years ago
Alessandro Decina 6404108aa9
Merge pull request #554 from 0xrawsec/fix-issue-552
fix issue #552
3 years ago
Quentin JEROME d031ce78bf fix issue #552 3 years ago
Alessandro Decina d6319f95c9
Merge pull request #548 from kriomant/feature-xdp-attach-by-index
aya: Allow to attach XDP probe by interface index
3 years ago
Mikhail Trishchenkov ce60854934 Don't leak libc types 3 years ago
Mikhail Trishchenkov 896e3ab313 Fix formatting 3 years ago
Mikhail Trishchenkov 676b5cdc0d Rename method and fix comment 3 years ago
Mikhail Trishchenkov 2e3c1779be aya: Allow to attach XDP probe by interface index 3 years ago
Alessandro Decina 113e3ef018
Merge pull request #539 from marysaka/fix/map_data_clone
aya: Fix MapData Clone implementation
3 years ago
Mary 94049ec661 aya: Fix MapData Clone implementation
The Clone implementation of MapData was previously not storing the
result of the dup operation.
3 years ago
Dave Tucker 8684a5783d
Merge pull request #537 from aya-rs/codegen
Update libbpf to a41e6ef3251cba858021b90c33abb9efdb17f575
3 years ago
dave-tucker 24f15ea25f [codegen] Update libbpf to a41e6ef3251cba858021b90c33abb9efdb17f575Update libbpf to a41e6ef3251cba858021b90c33abb9efdb17f575
Files changed:
M	aya-obj/src/generated/btf_internal_bindings.rs
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_riscv64.rs
M	aya-obj/src/generated/linux_bindings_x86_64.rs
M	bpf/aya-bpf-bindings/src/aarch64/bindings.rs
M	bpf/aya-bpf-bindings/src/armv7/bindings.rs
M	bpf/aya-bpf-bindings/src/riscv64/bindings.rs
M	bpf/aya-bpf-bindings/src/x86_64/bindings.rs
3 years ago
vadorovsky 7e4454d061
Merge pull request #532 from Tuetuopay/cpudevmap-bindings
xtask: generate userspace bindings for bpf_{cpu,dev}map_val
3 years ago
Tuetuopay 23e7c65244 xtask: generate userspace bindings for bpf_{cpu,dev}map_val 3 years ago
Dave Tucker d9878a6791
Merge pull request #524 from dave-tucker/prog_list
aya: Add loaded_programs() API to list all loaded programs
3 years ago
Dave Tucker de4905a24b aya: Add loaded_programs() API to list all loaded programs
This uses a Programs iterator to yield all loaded bpf programs using
bpf_prog_get_next_id.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 56c143831e
Merge pull request #523 from dave-tucker/fix_perf_link
aya: Fix is_perf_link_supported
3 years ago
Dave Tucker ce79de7ff6 aya: Fix is_perf_link_supported
This was mistakenly comparing the exit code of the syscall, which is
always -1 and not the corresponding error-code. Added unit tests to
ensure we don't regress.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina d7d6442671
Merge pull request #522 from dave-tucker/perf_link
Use bpf_link for perf_attach programs (Kprobe/Uprobe/Tracepoint etc...)
3 years ago
Dave Tucker 7479c1dd6c aya: More discrete feature logging
Just use the Debug formatter vs. printing a message for each probe.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker d0b3d3b2fa aya: Enable bpf_link for perf_attach programs
This adds support for bpf_link to PerfEvent, Tracepoint, Kprobe and
Uprobe programs.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 763b92a2e0 aya: Add probe for bpf_link_create for perf programs
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker ce22ca668f aya: Make features a lazy_static
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina bc83f208b1
Merge pull request #519 from dave-tucker/frags
XDP Multi-Buffer Support
3 years ago
Dave Tucker 376c486400 aya-bpf: Add multibuffer support for XDP
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
vadorovsky bb1b39535c
Merge pull request #517 from dmitris/derive-debug
aya-tool: remove outdated workaround
3 years ago
Dave Tucker a18693b42d aya: Add support for multibuffer programs
This adds support for loading XDP programs that are multi-buffer
capable, which is signalled using the xdp.frags section name. When this
is set, we should set the BPF_F_XDP_HAS_FRAGS flag when loading the
program into the kernel.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dmitry Savintsev 96b282d149 aya-tool: remove outdated workaround
The comment says that `.derive_debug` was needed as
a workaround for https://github.com/rust-lang/rust-bindgen/issues/2083.
This issue is now closed, and aya-tool compiles without derive_debug.

Additionally, update bindgen dependency to 1.64.

Signed-off-by: Dmitry Savintsev <dsavints@gmail.com>
3 years ago
Dave Tucker 811ab299de
Merge pull request #496 from dave-tucker/program-from-pinned3
aya: Add from_pin for Programs
3 years ago
Dave Tucker 7a720ab0c1 aya: Add from_pin for Programs
This commit adds from_pin() which allows the creation of a Program
from a path on bpffs. This is useful to be able to call `attach` or
other APIs for programs that are already loaded to the kernel.

This differs from #444 since it implements this on the concrete program
type, not the Program enum, allowing the user to pass in any additional
context that isn't available from bpf_prog_info.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina cfa693bc3b
Merge pull request #515 from alessandrod/fix-lru-hash
aya: fix Lru and LruPerCpu hash maps
3 years ago
Alessandro Decina c22014c757 aya: fix Lru and LruPerCpu hash maps
They were broken by https://github.com/aya-rs/aya/pull/397
3 years ago
Alessandro Decina 7868fffd7f
Merge pull request #514 from astoycos/fix-badge
Fix Aya build badge
3 years ago
Andrew Stoycos 4ddbc1cacb
Fix Aya build badge
Signed-off-by: Andrew Stoycos <astoycos@redhat.com>
3 years ago
Alessandro Decina 27017ca8a3
Merge pull request #512 from astoycos/crucial-btf-fixes
Support BTF key/value specification for all maps
3 years ago
Andrew Stoycos 52e625060e
Support BTF key/value specification for all maps
Fix a bug which was resulting in `ENOTSUPP` following
the `BPF_MAP_CREATE` Syscall.  This fix was initially
found by libbpf maintainers in:
https://github.com/libbpf/libbpf/issues/355.

Signed-off-by: Andrew Stoycos <astoycos@redhat.com>
3 years ago
Alessandro Decina 22d79312f7
Merge pull request #445 from anfredette/tc-link-recon
Support reconstruction of `SchedClassifierLink`
3 years ago