Commit Graph

660 Commits (6188c9dee34ef603ca04cc7cf5b113a9e96c37d2)
 

Author SHA1 Message Date
Alessandro Decina 9a642d373f aya: fix lint errors 3 years ago
Alessandro Decina 5390fb1ee1
Merge pull request #187 from vadorovsky/sk-buff-socket-uid
bpf: sk_buff: Add get_socket_uid method to SkBuffContext
3 years ago
Alessandro Decina d690710337
Merge pull request #228 from nak3/fix-socket_filter
Fix socket_filter section match
3 years ago
Alessandro Decina 3dc9308c8e
Merge pull request #229 from dave-tucker/fix_cgroup_skb_attach_v2
aya: Fix Loading from cgroup/skb sections
3 years ago
Alessandro Decina 02c376ceb7
Merge pull request #224 from Tuetuopay/pod-arrays
aya: implement Pod for arrays of Pod types
3 years ago
Alessandro Decina 5269ab5b1c
Merge pull request #238 from vadorovsky/fix-doc-set-global
bpf: Improve documentation of set_global method
3 years ago
Michal Rostecki 7dd2e3d1f8 bpf: Improve documentation of set_global method
Use `static` instead of `const` and mention the necessity of using
`core::ptr::read_volatile`.

Signed-off-by: Michal Rostecki <vadorovsky@gmail.com>
3 years ago
Alessandro Decina 7fdf37ad51
Merge pull request #237 from hi120ki/fix-typo-fentry
fix typo in aya/src/programs/fentry.rs
3 years ago
Hi120ki ab462533c7 fix typo in aya/src/programs/fentry.rs 3 years ago
Michal Rostecki 34d74fcd3b bpf: sk_buff: Add get_socket_uid method to SkBuffContext
This change exposes the BPF helper bpf_socket_get_uid as a public method
of SkBuffContext, which allows to get the owner UID of the socket
associated to the sk_buff stored in the context.

Signed-off-by: Michal Rostecki <vadorovsky@gmail.com>
3 years ago
Alessandro Decina d3356398f5
Merge pull request #235 from alessandrod/hash-map-get-mut
bpf: hash_map: add get_mut() method
3 years ago
Alessandro Decina ecd6a6e96b bpf: hash_map: add get_mut() method 3 years ago
Kenjiro Nakayama 5725a97648 Fix unit test 3 years ago
Kenjiro Nakayama 9e41317ca6 Fix socket_filter section match
`BPF_PROG_TYPE_SOCKET_FILTER` program expands the sectionname's kind with `socket` not `socket_filter`.
So current eBPF program with socket filter always fails.

This patch fixes it.

Fix https://github.com/aya-rs/aya/issues/227
3 years ago
Alessandro Decina e0d818ff2d
Merge pull request #234 from xonatius/patch-1
Fix typo in README.md
3 years ago
Daniil Bondarev 49e998dc7e
Fix typo in aya/README.md 3 years ago
Daniil Bondarev ebb91f3c6f
Fix typo in README.md 3 years ago
Alessandro Decina 01fe3a6b5e
Merge pull request #231 from nimrodshn/bpf_lpm_trie
Add LPMTrie Map to aya-bpf for BPF programs
3 years ago
Nimrod Shneor d0b6daa091 Add LPMTrie Map to aya-bpf for BPF programs 3 years ago
Dave Tucker 5ee1321765 aya: Fix Loading from cgroup/skb sections
fa037a88e2 allowed for cgroup skb programs
that did not specify an attach direction to use the cgroup/skb section
name per the convention established in libbpf. It did not add the
necessary code to load programs from those sections which is added in
this commit

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 00e34ec29c
Merge pull request #222 from aya-rs/dependabot/cargo/parking_lot-0.12.0
build(deps): update parking_lot requirement from 0.11.1 to 0.12.0
3 years ago
Tuetuopay 08211f6132 aya: implement Pod for arrays of Pod types
If a type is POD (meaning it can be converted to a byte array), then an
array of such type is POD.

Signed-off-by: Tuetuopay <tuetuopay@me.com>
3 years ago
Dave Tucker 5cfecbdd8e
Merge pull request #232 from dave-tucker/fix_docs
ci: lint: aya: Skip doctests with miri
3 years ago
Dave Tucker 3d820ee473 ci: lint: aya: Skip doctests with miri
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina 5421b71b5b
Merge pull request #230 from dave-tucker/fix_docs
ci: Fix aya-bpf workflow
3 years ago
Dave Tucker 1f047f0dbe ci: Fix aya-bpf workflow
This was testing the aya crate with the nightly toolchain which wasn't
what was intented

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
dependabot[bot] ab7eed2759
build(deps): update parking_lot requirement from 0.11.1 to 0.12.0
Updates the requirements on [parking_lot](https://github.com/Amanieu/parking_lot) to permit the latest version.
- [Release notes](https://github.com/Amanieu/parking_lot/releases)
- [Changelog](https://github.com/Amanieu/parking_lot/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Amanieu/parking_lot/compare/0.11.1...0.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
Alessandro Decina 2a18239346
Merge pull request #161 from nimrodshn/add_lpm_trie
Add support for BPF_MAP_TYPE_LPM_TRIE
3 years ago
Nimrod Shneor c6e66d8080 Fix #128: Add support for BPF_MAP_TYPE_LPM_TRIE map 3 years ago
Alessandro Decina 17a3959e87
Merge pull request #183 from dave-tucker/fix-image-build
ci: Fix image build workflow
3 years ago
Dave Tucker d55a47fb3d ci: Fix image build workflow
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina 9f711e44fe
Merge pull request #182 from dave-tucker/moar-tests
Regression Test Framework Improvements
3 years ago
Dave Tucker ce93774e0a ci: try running regression tests in a container
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 61c3675b92 test: Add a check for minimum kernel version
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 4bad464c92 test: Add smoke test for BPF_PROG_TYPE_EXT
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 657fb44525 test: Add compile_c_ebpf to library
This allows for C code to be compiled and used in tests!
It does require libbpf on the host machine though...

Also moved removal of the `user` and `ebpf` dirs created by rust-script
into `lib.sh` and parameterized bits of the XDP smoke test for ease of
copying

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina f41db116ac
Merge pull request #160 from dave-tucker/test-images
test: Add regression tests
3 years ago
Dave Tucker 74ae8ce271 test: Add regression tests
This uses a mix of rust-script, bash, qemu and a test runner called RTF
to add a regression test suite... and wires it into GitHub Actions

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina 6316748ec1
Merge pull request #179 from dave-tucker/btf_datasec_name
btf: Replace / in DATASEC before load to kernel
3 years ago
Alessandro Decina b2182c6c4e
Merge pull request #177 from alessandrod/ptr-relocs
relocate .text references
3 years ago
Alessandro Decina f169a3fc6b aya: fix func_info/line_info offsets
Given the new start instruction offset, rebase func_infos and
line_infos.
3 years ago
Alessandro Decina 8202105b7d aya: relocate .text references
Handle relocations against .text symbols in all instructions not just
calls. Makes it so that let x = &some_function triggers linking of
some_function in the current program and handles the resulting
relocation accordingly.

Among other things, enables the use of bpf_for_each_map_elem.
3 years ago
Dave Tucker 825bb3ad20 btf: Replace / in DATASEC before load to kernel
This replaces the / character with a . which is allowed in the kernel
names. Not allowing a forward slash is perhaps a kernel bug, but lets
fix it up here as it's commonly used for Aya

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 1904aeaef9
Merge pull request #175 from dave-tucker/merge_fixup_sanitize
aya: Merge Fixup and Sanitzation to single step
3 years ago
Dave Tucker 99fa85eab8 btf: fix match arms
Don't match on kind and use if let...
Match on the BtfType

Fixes: #178

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 326825aab0 tests: add a test for each BTF fix
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina 4efc2061a8 btf: fix borrow check errors 3 years ago
Dave Tucker a1b46ece05 aya: Merge Fixup and Sanitzation to single step
Aya will now perform sanitzation and fixups in a single phase, requiring
only one pass over the BTF. This modifies the parsed BTF in place.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 06f8938808
Merge pull request #164 from dave-tucker/btf_verifier
aya: Fix BTF verifier output
3 years ago
Dave Tucker 5d8b279265 aya: Fix BTF verifier output
Currently errors can occur if the verifier output is > buffer as we get
ENOMEM. We should only provide a log_buf if initial load failed, then
retry up to 10 times to get full verifier output.

To DRY this logic it has been moved to a function so its shared with
program loading

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

one verifier loop to rule them all

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