Shenghui Ye
e52497cb9c
aya-obj: add basic documentation to public members
...
Types relevant to maps are moved into aya_obj::maps.
Some members are marked `pub(crate)` again.
Refs: #473
2 years ago
Shenghui Ye
ac49827e20
aya-obj: migrate aya::obj into a separate crate
...
To split the crate into two, several changes were made:
1. Most `pub(crate)` are now `pub` to allow access from Aya;
2. Parts of BpfError are merged into, for example, RelocationError;
3. BTF part of Features is moved into the new crate;
4. `#![deny(missing_docs)]` is removed temporarily;
5. Some other code gets moved into the new crate, mainly:
- aya::{bpf_map_def, BtfMapDef, PinningType},
- aya::programs::{CgroupSock*AttachType},
The new crate is currenly allowing missing_docs. Member visibility
will be adjusted later to minimize exposure of implementation details.
Refs: #473
2 years ago
Shenghui Ye
81bc307dce
aya-obj: migrate bindgen destination
...
Aya::obj depends on bindgen generated files, and we start
by migrating bindgen generated files.
This commit adds the new aya-obj crate to the workplace
and migrates generated files into the crate. We use core
instead of std in an effort to make the final crate no_std.
Bindgen was run against libbpf v1.0.1.
Refs: #473
2 years ago
Alessandro Decina
c6f93b1775
btf relocs: don't panic on failed relocation
...
Error out instead of panicing when we can't find a compatible target
candidate for a relocation.
2 years ago
Alessandro Decina
aba99ea4b1
btf: make btf::RelocationError private
...
BpfError::RelocationError type erases the inner error so no need to
export the type.
2 years ago
Alessandro Decina
63bbef46da
Fix lints
2 years ago
Alessandro Decina
12e422b211
btf: fix regression computing pointer sizes
...
Computing pointer sizes was broken in #285
2 years ago
Tuetuopay
890e8c9340
bpf: fix set_mark by not copying __sk_buff
...
Such an assignment in two parts (first deref in `unsafe`, then field
access outside of `unsafe`) is bogus: the deref "returned" by the
`unsafe` block actually creates a copy of the `__sk_buff` struct because
it implements `Copy`. The mark value is written to the `mark` field of
the copy, and not the real `__sk_buff`.
Change it to do it all in the `unsafe` block.
The same is done for the `.len()` getter to avoid copying the whole
`__sk_buff` struct for a 32 bit field. Although such a copy should be
optimized out by the compiler, it's better to help it do so.
2 years ago
ajwerner
12927cf699
Don't panic in init when bpf programs don't log
...
This was broken in d6cb1a16ad
.
2 years ago
ajwerner
1a22792ee7
Resolve symbol address for PIE executables
...
See https://github.com/foniod/redbpf/pull/308 for a similar change.
2 years ago
Alessandro Decina
b3ae7786d3
aya: fix detaching links on drop
...
https://github.com/aya-rs/aya/pull/366 broke detaching links on drop for
everything but FdLink. This restores detach on drop for all links.
2 years ago
Michal Rostecki
9f5d157628
Merge pull request #461 from FallingSnow/main
...
Add ability to iterate over LpmTrie keys and matches
2 years ago
Ayrton Sparling
10ac5957c1
Fix LpnTrieKeys -> LpmTrieKeys typo
2 years ago
Alessandro Decina
d1919a83ed
Merge pull request #466 from bpfdeploy-io/ml/cgroup-device
...
Add support for BPF_PROG_TYPE_CGROUP_DEVICE
2 years ago
Milan
925504f230
Fix doctest issue
2 years ago
Milan
4b6d97e4db
Fix CI, clippy and feedback
...
Signed-off-by: Milan <milan@mdaverde.com>
2 years ago
Milan
8f1163a400
Add support for BPF_PROG_TYPE_CGROUP_DEVICE
...
Kernel 4.15 added a new eBPF program that can
be used with cgroup v2 to control & observe device
access (e.g. read, write, mknod) - `BPF_PROG_TYPE_CGROUP_DEVICE`.
We add the ability to create these programs with the `cgroup_device`
proc macro which creates the `cgroup/dev` link section. Device
details are available to the eBPF program in `DeviceContext`.
The userspace representation is provided with the `CgroupDevice`
structure.
Fixes : #212
Signed-off-by: Milan <milan@mdaverde.com>
2 years ago
Alessandro Decina
9ce1530695
tests: skip tests that assume bpf_link based XDP on older kernels
2 years ago
Ayrton Sparling
a44f054bec
fix formatting
2 years ago
Alessandro Decina
66d435fc7c
Merge pull request #460 from Tuetuopay/owned-per-cpu-hash-map
...
maps: add missing TryFrom<Map> for HashMap, PerCpuHashMap and LpmTrie
2 years ago
Ayrton Sparling
1368eb94e7
Remove old test
2 years ago
Ayrton Sparling
9a3682e793
Add ability to iterate over lpmtrie key matches
2 years ago
Ayrton Sparling
8fe64aef1f
Fix lpmtrie iter returning nothing
2 years ago
Alexis Bauvin
51bb50ed8e
maps: add missing TryFrom<Map> for HashMap, PerCpuHashMap and LpmTrie
2 years ago
Ayrton Sparling
e4182a9eab
Iterate lpmtrie
2 years ago
Michal Rostecki
16b029ed37
Merge pull request #456 from dmitris/uninlined_format_args
...
autofix clippy uninlined_format_args issues
2 years ago
Dmitry Savintsev
055d94f58b
fix uninlined_format_args clippy issues
2 years ago
Dmitry Savintsev
22340764a3
upgrade clap to 4.x
2 years ago
Michal Rostecki
52b9ffed60
Merge pull request #451 from aya-rs/dependabot/cargo/bindgen-0.63
...
build(deps): update bindgen requirement from 0.61 to 0.63
2 years ago
Michal Rostecki
1ded0e61cd
Merge pull request #450 from aya-rs/dependabot/cargo/object-0.30
...
build(deps): update object requirement from 0.29 to 0.30
2 years ago
Michal Rostecki
f9bef9f8c0
Merge pull request #449 from aya-rs/dependabot/cargo/env_logger-0.10
...
build(deps): update env_logger requirement from 0.9 to 0.10
2 years ago
dependabot[bot]
1c8088b16c
build(deps): update env_logger requirement from 0.9 to 0.10
...
Updates the requirements on [env_logger](https://github.com/rust-cli/env_logger ) to permit the latest version.
- [Release notes](https://github.com/rust-cli/env_logger/releases )
- [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-cli/env_logger/compare/v0.9.0...v0.10.0 )
---
updated-dependencies:
- dependency-name: env_logger
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2 years ago
dependabot[bot]
1fe7bba070
build(deps): update object requirement from 0.29 to 0.30
...
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.29.0...0.30.0 )
---
updated-dependencies:
- dependency-name: object
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2 years ago
dependabot[bot]
9608da58a1
build(deps): update bindgen requirement from 0.61 to 0.63
...
Updates the requirements on [bindgen](https://github.com/rust-lang/rust-bindgen ) to permit the latest version.
- [Release notes](https://github.com/rust-lang/rust-bindgen/releases )
- [Changelog](https://github.com/rust-lang/rust-bindgen/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/rust-bindgen/compare/v0.61.0...v0.63.0 )
---
updated-dependencies:
- dependency-name: bindgen
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2 years ago
Michal Rostecki
9382de75cc
Merge pull request #452 from vadorovsky/fix-lint
...
Fix clippy error
2 years ago
Michal Rostecki
d2b44c1e0f
github: Refresh package cache before installing pre-requisites
...
Signed-off-by: Michal Rostecki <vadorovsky@gmail.com>
2 years ago
Michal Rostecki
176d61ae23
Fix clippy error
...
`'local` lifetime can be elided to `'_` which triggers:
https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes
Signed-off-by: Michal Rostecki <vadorovsky@gmail.com>
2 years ago
Alessandro Decina
7fef833e3a
Merge pull request #418 from anfredette/tc-handle
...
Support using handle in tc programs
2 years ago
Andre Fredette
abb75ba029
Make doc fixes
...
Signed-off-by: Andre Fredette <afredette@redhat.com>
2 years ago
Alessandro Decina
88d7777553
Merge pull request #431 from 0b01/refs
...
aya: use impl Borrow<T> instead of T for maps
2 years ago
Alessandro Decina
0b41018ee2
Revert "aya-log, aya-log-common: temporarily revert to old map API so we can release"
...
This reverts commit 0d040d2290
.
2 years ago
Alessandro Decina
832bdd280c
{{crate_name}}: release version 0.1.13
2 years ago
Alessandro Decina
0d040d2290
aya-log, aya-log-common: temporarily revert to old map API so we can release
2 years ago
Alessandro Decina
dfb03382f6
release.toml: fix pre/post release templates
2 years ago
Alessandro Decina
5d0527ae51
release.toml: dev-version* are gone too
2 years ago
Alessandro Decina
a564ab6e5b
release.toml: consolidate-pushes doesn't exist anymore
2 years ago
0b01
76e417a474
Fix formatting
2 years ago
Dave Tucker
3adb9b049f
Merge pull request #436 from vadorovsky/aya-log-mac-addr
...
aya-log: Add format hints for MAC addresses
2 years ago
tiann
49404367d8
bpf: Add bindings for uid and gid
2 years ago
Andre Fredette
a3e3e80698
Support both attach() and attach_with_options() for SchedClassifier
...
Signed-off-by: Andre Fredette <afredette@redhat.com>
2 years ago