Alessandro Decina
5836b3f1b8
Merge pull request #149 from willfindlay/program_array
...
bpf/maps: implement ProgramArray
3 years ago
Alessandro Decina
149fa86de7
Merge pull request #150 from willfindlay/fix-tests
...
bpf/macros: fix tests
3 years ago
William Findlay
b28ae97053
bpf/macros: fix tests
...
Doctests were broken due to depencencies on a generated vmlinux, incorrect function
signatures, and a missing unsafe keyword.
3 years ago
William Findlay
df26fd94a7
bpf/program_array: use never type, add unsafe flag, and document safety
3 years ago
William Findlay
ff14493751
bpf/maps: implement ProgramArray
...
This PR implements the ProgramArray map type in aya-bpf. Includes a convenient tail_call
method that wraps the bpf_tail_call helper.
3 years ago
Alessandro Decina
faa36763f7
Merge pull request #146 from dave-tucker/ro-maps
...
Mark .rodata maps as readonly and freeze on load
3 years ago
Dave Tucker
65a0b83205
Mark .rodata maps as readonly and freeze on load
...
This commit marks .rodata maps as BPF_F_RDONLY_PROG when loaded to
prevent a BPF program mutating them.
Initial map data is populated by the loader using the new
`BpfLoader::set_global()` API. The loader will mark
is marked as frozen using bpf_map_freeze to prevent map data
being changed from userspace.
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina
3a4c84fe17
Merge pull request #145 from aya-rs/codegen
...
Update libbpf to 19656636a9b9a2de1f71fa3135709295c16701cc
3 years ago
Dave Tucker
2b7dda766f
btf: Fix for rename of BPF_ -> BPF_CORE_
...
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
dave-tucker
05d4bc39ea
Update libbpf to 19656636a9b9a2de1f71fa3135709295c16701cc
3 years ago
Dave Tucker
ef42739c65
.github: force push to codegen branch
...
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker
f8021c33fc
codegen: Add bindings for BPF_F flags
...
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker
23d1920854
codegen: add bindings for btf structs
...
This adds `bpf_btf_info` which can be used to get BPF information via a
syscall. It also adds `btf_line_info` and `btf_func_info` which are
required to parse the line and func info sections of BTF
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker
facb01f34b
ci: Use crabby-the-crab
...
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Michal Rostecki
7e2fcd1d6d
Support for fentry and fexit programs
...
fentry and fexit programs are similar to kprobe and kretprobe, but they
are newer and they have practically zero overhead to call before or
after kernel function. Also, fexit programs are focused on access to
arguments rather than the return value.
Those kind of programs were introduced in the following patchset:
https://lwn.net/Articles/804112/
Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
3 years ago
dependabot[bot]
54b0c67795
build(deps): update object requirement from 0.27 to 0.28
...
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.27.0...0.28.1 )
---
updated-dependencies:
- dependency-name: object
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
Alessandro Decina
317fd576b4
Merge pull request #138 from dave-tucker/nightly
...
github: Set toolchain override
3 years ago
Dave Tucker
7e7314ff2b
github: Set toolchain override
...
This ensures that the cache action uses the correct Rust version
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina
6313ddfe0c
Merge pull request #136 from nimrodshn/add_impl_pod_for_u128
...
Implement Pod for u128 and i128
3 years ago
Ubuntu
24a292f605
Implement Pod for u128
3 years ago
Alessandro Decina
f34b76c8d3
Merge pull request #134 from aya-rs/codegen
...
Update libbpf to 93e89b34740c509406e948c78a404dd2fba67b8b
3 years ago
dave-tucker
17d43cd6f8
Update libbpf to 93e89b34740c509406e948c78a404dd2fba67b8b
3 years ago
Alessandro Decina
26d188c659
Merge pull request #125 from dave-tucker/btf
...
obj: Improve section detection
3 years ago
Alessandro Decina
32dc8a0d97
Merge pull request #132 from eero-thia/thia/safe_map
...
aya-bpf: remove unnecessary unsafe markers on map functions.
3 years ago
Alessandro Decina
441a660b3e
Merge pull request #131 from eero-thia/thia/safe_iter
...
aya: Remove unnecessary unsafe markers on map iteration.
3 years ago
Thia Wyrod
b655cf973f
aya-bpf: remove unnecessary unsafe markers on map functions.
...
Map lookup and deletion can yield stale keys and values by virtue of
sharing a data structure with userspace programs and other BPF programs
which can modify it. However, all accesses remain perfectly safe and will
not cause memory corruption or data races.
3 years ago
Thia Wyrod
18970369e2
aya: Remove unnecessary unsafe markers on map iteration.
...
Map iteration can yield stale keys and values by virtue of sharing a
data structure with BPF programs which can modify it. However, all
accesses remain perfectly safe and will not cause memory corruption or
data races.
3 years ago
Alessandro Decina
07a6016ebb
Merge pull request #120 from eero-thia/thia/dedup
...
aya: eliminate name duplication in maps and programs.
3 years ago
Thia Wyrod
f56dd0a70b
aya: eliminate name duplication in maps and programs.
...
Map and ProgramData objects had unnecessarily cloned strings for their
names, despite them being just as easily available to external users via
bpf.maps() and bpf.programs().
3 years ago
Alessandro Decina
8043451973
bpf: re-export Lru hash maps from aya_bpf::maps
3 years ago
Alessandro Decina
a340c2a9fa
Merge pull request #130 from wg/main
...
aya: use correct program name when relocating
3 years ago
Will
bb8a813eef
aya: use correct program name when relocating
3 years ago
Dave Tucker
e4d9774bf7
obj: Improve section detection
...
This commit improves section detection.
Previously, a section named "xdp_metadata" would be interpretted as a
program section, which is incorrect. This commit first attempts to
identify a BPF section by name, then by section.kind() ==
SectionKind::Text (executable code). The computed section kind is
stored in the Section so variants can be easily matched on later.
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina
c0f695c4b6
bpf: Add LruHashMap and LruPerCpuHashMap
3 years ago
Alessandro Decina
a03426f194
Merge pull request #115 from eero-thia/thia/impl_trait
...
aya: remove unnecessary usage of &dyn trait in favor of impl trait.
3 years ago
Alessandro Decina
61299e128e
Merge pull request #119 from eero-thia/thia/xdp_metadata
...
aya-bpf: expose xdp_md of XdpContext and add metadata functions.
3 years ago
Thia Wyrod
d280b856bd
aya-bpf: expose xdp_md of XdpContext and add metadata functions.
3 years ago
Thia Wyrod
daa7ea6d0d
aya: remove unnecessary usage of &dyn trait in favor of impl trait.
...
This should improve performance in most situations by eliminating
unnecessary fat pointer indirection.
3 years ago
Alessandro Decina
98b36b23bc
Merge pull request #116 from eero-thia/thia/close
...
aya: close file descriptors on Map drop.
3 years ago
Alessandro Decina
2955ca1d1f
Merge pull request #121 from eero-thia/thia/programs_mut
...
aya: programs_mut iterator to complement programs.
3 years ago
Thia Wyrod
c7f8db9a0b
aya: programs_mut iterator to complement programs.
3 years ago
Alessandro Decina
a6bf554a74
Merge pull request #122 from eero-thia/thia/include_bytes_aligned
...
aya: expand include_bytes_aligned to accept expressions.
3 years ago
Thia Wyrod
1584bc47bd
aya: close file descriptors on Map drop.
3 years ago
Thia Wyrod
f8f17a09fb
aya: expand include_bytes_aligned to accept expressions.
...
This allows one to this macro with literal expressions involving macros
such as concat! and env!.
3 years ago
Alessandro Decina
df393690d3
Merge pull request #114 from deverton/wrap-bpf_get_current_uid_gid
...
Add wrapper and docs for for bpf_get_current_uid_gid
3 years ago
Dan Everton
fa23052e34
Add wrapper and docs for for bpf_get_current_uid_gid
3 years ago
Alessandro Decina
6db30fad9c
Merge pull request #108 from deverton/kprobe-debugfs
...
Support k/uprobes on older kernels.
3 years ago
Dan Everton
0e84610976
Refactoring after feedback.
3 years ago
Alessandro Decina
d983836959
Merge pull request #112 from dave-tucker/fix_cgroup_skb_attach
...
bpf: Fix cgroup_skb macro
3 years ago
Dave Tucker
eadba79deb
bpf: Add tests for cgroup_skb macro
...
This checks that the expand function produces the expected link_section
given certain input
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago