Commit Graph

10 Commits (a3959d8d9f3040ee2286e35152edb743f1d642b0)

Author SHA1 Message Date
Thomas Eizinger a3959d8d9f
Move `panic_handler` to `aya-ebpf`
Thomas Eizinger 4742e03482
De-duplicate `panic_handler` and `main`-stub with macro
Thomas Eizinger 267796f1f5
Feature-gate `no_std` and `no_main`
The `no_std` and `no_main` attributes are only needed when we compile
the eBPF kernels for the "bpf" architecture. By feature-gating them on
the target architecture, we ensure the kernels compile just fine on a
host-architecture like x64. They won't be able to do anything
meaningfully but it is useful within the context of the larger workspace
they are embedded in as it allows `cargo build --workspace` and `cargo
test --workspace` to just work.
Thomas Eizinger c005ad30ed
Use correct cfg for panic handler
Dave Tucker 41c61560ea chore(aya-ebpf): Rename bpf -> ebpf
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
Dave Tucker c72aab5f7b aya-bpf-macros: Refactor for ease of testing
The aya-bpf-macros needed refactoring for:

1. Ease of testing
2. To be consistent with when we use K/V args vs. idents
3. To deprecate the use of `name` to change the exported name of a
   function - we now use the symbol table.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
Tamir Duberstein e621a09181
Clippy over tests and integration-ebpf
Replace all `assert!(matches!(..))` with `assert_matches!(..)`.

Remove the now-unused build-integration-test xtask command whose logic
doesn't match that of the build-and-run command.
Tamir Duberstein b8252f46d9
Skip BPF_F_XDP_HAS_FRAGS tests on unsupported kernels
Dave Tucker 376c486400 aya-bpf: Add multibuffer support for XDP
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
Dave Tucker 79101e748a test: Replace RTF with Rust
This commit replaces the existing RTF test runner with a simple rust
binary package called - integration-test.

integration-test depends on integration-ebpf, which contains test eBPF
code written in Rust and C. `cargo xtask build-integration-test-ebpf`
can be used to build this code and supress rust-analyzer warnings. It
does require `bpf-linker`, but that is highly likely to be available to
developers of Aya. It also requires a checkout of `libbpf` to extract
headers like bpf-helpers.h.

Since everything is compiled into a single binary, it can be run
be run locally using `cargo xtask integration-test` or remotely using
`./run.sh` which re-uses the bash script from the old test framework
to spawn a VM in which to run the tests.

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