Dave Tucker
5d9ff70498
btf: Add support for BTF_TYPE_KIND_{TAG,DECL_TAG}
...
Adds support for two new BTF kinds including feature probes and BTF
sanitization
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina
1492d85a7b
Merge pull request #169 from dave-tucker/fix_array_relo
...
aya: Fix BTF type resolution for Arrays and Ints
3 years ago
Alessandro Decina
6a91fdf5a7
Merge pull request #157 from dave-tucker/doc-aya
...
aya: document the public api
3 years ago
Dave Tucker
686ce45f93
aya: Fix BTF type resolution for Arrays and Ints
...
The union of `size` and `type` is unused in BTF_KIND_ARRAY.
Type information of elements is in the btf_array struct that follows in
the type_ field while the index type is in the index_type field.
For BTF_KIND_INT, only the offset should be compared and size and
signedness should be ignored.
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker
01187735f0
Merge pull request #167 from aya-rs/codegen
...
Update libbpf to be89b28f96be426e30a2b0c5312d13b30ee518c7
3 years ago
dave-tucker
324c679a41
Update libbpf to be89b28f96be426e30a2b0c5312d13b30ee518c7
3 years ago
Alessandro Decina
4e9bc32a3d
aya: maps: rename from_pinned() to open_pinned()
3 years ago
Alessandro Decina
9b1ab96ad5
Merge pull request #166 from dave-tucker/decl_tag
...
codegen: add btf_decl_tag
3 years ago
Dave Tucker
19af687480
codegen: add btf_decl_tag
...
This is required to add support for BTF_KIND_DECL_TAG
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina
f12054a00d
Merge pull request #165 from dave-tucker/prog_pinned
...
aya: Retrieve program from pinned path
3 years ago
Dave Tucker
abc8d27440
aya: Retrieve program from pinned path
...
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker
353b5f9cb1
Merge pull request #163 from aya-rs/codegen
...
Update libbpf to 22411acc4b2c846868fd570b2d9f3b016d2af2cb
3 years ago
dave-tucker
0619f80090
Update libbpf to 22411acc4b2c846868fd570b2d9f3b016d2af2cb
3 years ago
Dave Tucker
13d3b5eea5
Merge pull request #162 from nimrodshn/add_bpf_lpm_trie_key_to_bindings
...
Add bpf_lpm_trie_key to bindings
3 years ago
Ubuntu
0beb0c501f
Add bpf_lpm_trie_key to aya codegen to generate bindings
3 years ago
Alessandro Decina
001348a301
Merge pull request #158 from dave-tucker/btf-fix
...
aya: allocate func/line_info buffers outside if
3 years ago
Dave Tucker
83cfe56fe7
aya: allocate func/line_info buffers outside if
...
the pointer isn't valid in the current code!
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker
bca01580e7
aya: document the public api
...
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina
c5a10f8fbe
Merge pull request #127 from dave-tucker/ext
...
Support for BPF_PROG_TYPE_EXT
3 years ago
Dave Tucker
877c76043a
btf: Add fixup for PTR types from Rust
...
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker
5c6131afba
Add BPF_PROG_TYPE_EXT
...
This requires loading the BTF to kernel when loading all programs as
well as implementing Extension program type
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker
379bb313b1
obj: Add Btf::to_bytes
...
This allows for parsed BTF to be re-encoded such that it could be loaded
in to the kernel. It moves bytes_of to the utils package. We could use
Object::bytes_of, but this requires the impl of the Pod trait on
generated code.
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina
c3cd45c6df
Merge pull request #154 from dave-tucker/release-notes
...
ci: Add dependencies/codegen/docs to rel notes
3 years ago
Dave Tucker
d2449ca292
ci: add docs to release notes
...
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker
fbed584f78
ci: Add dependencies/codegen to rel notes
...
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina
2ea6d68544
Merge pull request #152 from dave-tucker/release-notes
...
ci: Add autogenerated release notes
3 years ago
Dave Tucker
dc16739b06
ci: Add autogenerated release notes
...
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina
923cd9b767
Merge pull request #142 from vadorovsky/args-mut-ptr
...
aya-bpf: Add bpf_probe_write_user helper
3 years ago
Michal Rostecki
1df3b17d29
aya-bpf: Add bpf_probe_write_user helper
...
This helper allows to write to mutable pointers in the userspace, which
come from userspace functions that uprobes attach to.
Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
3 years ago
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
Michal Rostecki
54377b6140
aya-bpf: Allow to convert probe arguments to mutable pointers
...
Before this change, arguments fetched with `arg` from `ProbeContext`
could be only fetched as const pointers. This change allows to get mut
pointers as well.
Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
3 years ago
Michal Rostecki
5d8afc58f4
aya-bpf-macros: Fix LSM macro documentation
...
It was causing `cargo doc` inside bpf/ to fail.
Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
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