Commit Graph

1644 Commits (b06ff402780b80862933791831c578e4c339fc96)
 

Author SHA1 Message Date
Alessandro Decina 2222b681be
Merge pull request #574 from vadorovsky/integration-aya-log
integration-test: Add tests for aya-log
1 year ago
Michal Rostecki 5fa17a192b integration-test: Add tests for aya-log 1 year ago
Michal Rostecki d31a1805da integration-test: Add `tokio_integration_test` macro
This new macro runs a test in a Tokio runtime and it can be used for
asynchronous tests (defined as `async fn`).
1 year ago
Alessandro Decina 3d3ce8bfa2
Merge pull request #591 from vadorovsky/aya-log-impl-pod
aya-log: Move the `Pod` implementations from aya-log-common to aya-log
1 year ago
Michal Rostecki 5603d7248a aya-log: Move the `Pod` implementations from aya-log-common to aya-log
Keeping the `Pod` implementations and optional dependency on aya in
aya-log-common breaks the clippy checks (which are made on the entire
workspace).

The reason is that when different crates inside the workspace have the
same dependency with different features, that dependency is built only
once with the sum of features needed by all crates. It's **not** being
built separately with different feature sets.

That's why, before this change, aya-log-common was built once for the
entire workspace with `userspace` feature enabled. That made importing
aya-log-ebpf inside integration-ebpf impossible. The aya-log-common
build, with `userspace` feature enabled, was pulling std as a
dependency. Therefore, importing aya-log-ebpf inside integration-ebpf
resulted in including std and errors like:

```
error[E0152]: found duplicate lang item `panic_impl`
  --> test/integration-ebpf/src/log.rs:23:1
   |
23 | fn panic(_info: &core::panic::PanicInfo) -> ! {
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: the lang item is first defined in crate `std` (which `aya` depends on)
```

This change fixes the problem by removing the `userspace` feature from
aya-log-common and moving the `Pod` implementations to aya-log.
1 year ago
vadorovsky deb054afa4
Merge pull request #577 from aya-rs/dependabot/cargo/object-0.31
build(deps): update object requirement from 0.30 to 0.31
1 year ago
Alessandro Decina 120b59dd2e
Merge pull request #545 from epompeii/lsm_sleepable
Add `BPF_F_SLEEPABLE` flag support to LSM
1 year ago
dependabot[bot] 4c78f7f1a0
build(deps): update object requirement from 0.30 to 0.31
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.30.0...0.31.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
1 year ago
Alessandro Decina 45efa6384f
Merge pull request #586 from probulate/no-std-inversion
aya: flip feature "no_std" to feature "std"
1 year ago
Tamir Duberstein 33a0a2b604
aya: flip feature "no_std" to feature "std"
This fixes `cargo build --all-features` by sidestepping the feature
unification problem described in The Cargo Book[0].

Add `cargo hack --feature-powerset` to CI to enforce that this doesn't
regress (and that all combinations of features work).

Since error_in_core is nightly-only, use core-error and a fake std
module to allow aya-obj to build without std on stable.

[0] https://doc.rust-lang.org/cargo/reference/features.html#feature-unification
1 year ago
Everett Pompeii 1f2006bfde
Merge branch 'aya-rs:main' into lsm_sleepable 1 year ago
vadorovsky fce1d763f4
Merge pull request #590 from Kab1r/main
aya-bpf: Add helper `change_proto`
1 year ago
Kabir Kwatra 92f9c43230
feat(bpf+sk_skb): wrap `change_proto` helper 1 year ago
Dave Tucker ed14751c79
Merge pull request #525 from dave-tucker/borrow
aya: MapData should be Borrow, not AsRef
1 year ago
Alessandro Decina b2d5059ac2
Merge pull request #583 from 0xrawsec/fix-builtin-linkage
Fix builtin linkage
1 year ago
Quentin JEROME 1464bdc1d4 - comment changed to be more precise
- adapted test to be more readable

Signed-off-by: Quentin JEROME <qjerome@users.noreply.github.com>
1 year ago
Alessandro Decina 1066c6c2e5
Merge pull request #579 from marysaka/fix/ubuntu-debian-kernel-version-code
aya: Correctly set the kernel code version for Ubuntu and Debian kernel
1 year ago
Mary 3aeeb8167b aya: Correctly set the kernel code version for Debian kernel
Fix BPF syscall failure related to the kernel code version.
1 year ago
Mary f1d891836e aya: Correctly set the kernel code version for Ubuntu kernel
Fix BPF syscall failure related to the kernel code version.
1 year ago
Quentin JEROME 72c1572178 added memmove, memcmp to the list of function changed to BTF_FUNC_STATIC
Signed-off-by: Quentin JEROME <qjerome@users.noreply.github.com>
1 year ago
Quentin JEROME 419448ed1a changed memset back not to return anything
Signed-off-by: Quentin JEROME <qjerome@users.noreply.github.com>
1 year ago
Quentin JEROME a51c9bc532 fixed indent
Signed-off-by: Quentin JEROME <qjerome@users.noreply.github.com>
1 year ago
Quentin JEROME 5b4fc9ea93 removed useless line break and comments
Signed-off-by: Quentin JEROME <qjerome@users.noreply.github.com>
1 year ago
Quentin JEROME 74bc754862 add debug messages
Signed-off-by: Quentin JEROME <qjerome@users.noreply.github.com>
1 year ago
Alessandro Decina b5c2928b0e
Merge pull request #582 from marysaka/feature/no-kern-read-sanitizer
aya: Add sanitize code for kernels without bpf_probe_read_kernel
1 year ago
Mary 1132b6e01b aya: Add sanitize code for kernels without bpf_probe_read_kernel
Required for kernel before 5.5.

Also move Features to aya-obj.
1 year ago
Quentin JEROME b0f999419e make memset return u8
Signed-off-by: Quentin JEROME <qjerome@users.noreply.github.com>
1 year ago
Quentin JEROME 4e41da6a86 Fixed BTF linkage of memset and memcpy to static
Signed-off-by: Quentin JEROME <qjerome@users.noreply.github.com>
1 year ago
Alessandro Decina edd9928314
Merge pull request #580 from marysaka/fix/bpf_create_map_panic
aya: Do not use unwrap with btf_fd in bpf_create_map
1 year ago
Alessandro Decina 858f77bf2c
Merge pull request #581 from marysaka/fix/datasec-struct-conversion
aya-obj: fix DATASEC to STRUCT conversion
1 year ago
Mary 4e33fa011e aya-obj: fix DATASEC to STRUCT conversion
This fix the following issues:
- Previously the DATASEC name wasn't sanitized resulting on "Invalid
  name" returned by old kernels.
- The newly created BTF struct had a size of 0 making old kernels refuse
  it.

This was tested on Debian 10 with kernel 4.19.0-21.
1 year ago
Mary 7c25fe90a9 aya: Do not use unwrap with btf_fd in bpf_create_map
Fixes a crash when trying to create a map of type BPF_MAP_TYPE_PERCPU_ARRAY when btf_fd is None.

Tested on Ubuntu 18.04 (4.15.0-202-generic)
1 year ago
Alessandro Decina 542ada3fe7
Merge pull request #572 from alessandrod/reloc-fixes
Add tests for relocations + fixes
1 year ago
Alessandro Decina 3a8380df26 integration-test: expand full path for IntegrationTest 1 year ago
Alessandro Decina 93ac3e94bc aya: support relocations across multiple text sections + fixes
Fix R_BPF_64_64 text relocations in sections other than .text (for
instance .text.unlikely). Also fix misc bugs triggered by integration
tests.
1 year ago
Alessandro Decina b2b9bd2edf integration tests: add relocation tests 1 year ago
Alessandro Decina b25a089819 aya-obj: change two drain() calls to into_iter() 1 year ago
Alessandro Decina 401ea5e848 aya, aya-obj: refactor map relocations
Clearly split the code between `.maps`, `maps` and data maps (bss, data,
rodata). Sprinkle comments.

Remove MapKind which was effectively only needed since we used to have
one variant - BpfSectionKind::Data - to represent all data maps. Instead
add explicit BpfSectionKind::{Data, Rodata, Bss} variants and match on
those when we initialize maps.
1 year ago
Alessandro Decina 5c4f1d69a6 aya-obj: rework `maps` section parsing
Avoid allocations and add comments explaining how things work.
1 year ago
Alessandro Decina bc8f4ef1c8 integration-tests: rename relocations to btf_relocations
In preparation of adding actual ELF relocation tests
1 year ago
Alessandro Decina 23ce42da68
Merge pull request #573 from vadorovsky/integration-release
integration-tests: Build eBPF programs always with release profile
1 year ago
Michal Rostecki ed9c2a1780 integration-tests: Build eBPF programs always with release profile
Also, add the `codegen-unit` option to the profile.
1 year 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
1 year 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>
1 year ago
Alessandro Decina 04f4841ede
Merge pull request #567 from Tuetuopay/tests-fedora-38
tests: use fedora 38 beta with testing repo
1 year 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/.
1 year ago
epompeii 85714d5cf3 review 2 years ago
epompeii 6dfb9d82af macro 2 years ago
epompeii 17f497ce42 program_section 2 years ago
epompeii 6a25d4ddec obj 2 years ago