Commit Graph

929 Commits (d43879d99177c33c5d33827d8a3c7572841dd9df)
 

Author SHA1 Message Date
Alessandro Decina d1919a83ed
Merge pull request from bpfdeploy-io/ml/cgroup-device
Add support for BPF_PROG_TYPE_CGROUP_DEVICE
Milan 925504f230 Fix doctest issue
Milan 4b6d97e4db Fix CI, clippy and feedback
Signed-off-by: Milan <milan@mdaverde.com>
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: 
Signed-off-by: Milan <milan@mdaverde.com>
Alessandro Decina 9ce1530695 tests: skip tests that assume bpf_link based XDP on older kernels
Ayrton Sparling a44f054bec fix formatting
Alessandro Decina 66d435fc7c
Merge pull request from Tuetuopay/owned-per-cpu-hash-map
maps: add missing TryFrom<Map> for HashMap, PerCpuHashMap and LpmTrie
Ayrton Sparling 1368eb94e7 Remove old test
Ayrton Sparling 9a3682e793 Add ability to iterate over lpmtrie key matches
Ayrton Sparling 8fe64aef1f Fix lpmtrie iter returning nothing
Alexis Bauvin 51bb50ed8e maps: add missing TryFrom<Map> for HashMap, PerCpuHashMap and LpmTrie
Ayrton Sparling e4182a9eab Iterate lpmtrie
Michal Rostecki 16b029ed37
Merge pull request from dmitris/uninlined_format_args
autofix clippy uninlined_format_args issues
Dmitry Savintsev 055d94f58b fix uninlined_format_args clippy issues
Dmitry Savintsev 22340764a3 upgrade clap to 4.x
Michal Rostecki 52b9ffed60
Merge pull request from aya-rs/dependabot/cargo/bindgen-0.63
build(deps): update bindgen requirement from 0.61 to 0.63
Michal Rostecki 1ded0e61cd
Merge pull request from aya-rs/dependabot/cargo/object-0.30
build(deps): update object requirement from 0.29 to 0.30
Michal Rostecki f9bef9f8c0
Merge pull request from aya-rs/dependabot/cargo/env_logger-0.10
build(deps): update env_logger requirement from 0.9 to 0.10
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>
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>
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>
Michal Rostecki 9382de75cc
Merge pull request from vadorovsky/fix-lint
Fix clippy error
Michal Rostecki d2b44c1e0f github: Refresh package cache before installing pre-requisites
Signed-off-by: Michal Rostecki <vadorovsky@gmail.com>
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>
Alessandro Decina 7fef833e3a
Merge pull request from anfredette/tc-handle
Support using handle in tc programs
Andre Fredette abb75ba029 Make doc fixes
Signed-off-by: Andre Fredette <afredette@redhat.com>
Alessandro Decina 88d7777553
Merge pull request from 0b01/refs
aya: use impl Borrow<T> instead of T for maps
Alessandro Decina 0b41018ee2 Revert "aya-log, aya-log-common: temporarily revert to old map API so we can release"
This reverts commit 0d040d2290.
Alessandro Decina 832bdd280c {{crate_name}}: release version 0.1.13
Alessandro Decina 0d040d2290 aya-log, aya-log-common: temporarily revert to old map API so we can release
Alessandro Decina dfb03382f6 release.toml: fix pre/post release templates
Alessandro Decina 5d0527ae51 release.toml: dev-version* are gone too
Alessandro Decina a564ab6e5b release.toml: consolidate-pushes doesn't exist anymore
0b01 76e417a474 Fix formatting
Dave Tucker 3adb9b049f
Merge pull request from vadorovsky/aya-log-mac-addr
aya-log: Add format hints for MAC addresses
tiann 49404367d8 bpf: Add bindings for uid and gid
Andre Fredette a3e3e80698 Support both attach() and attach_with_options() for SchedClassifier
Signed-off-by: Andre Fredette <afredette@redhat.com>
Michal Rostecki 3e089a61d1
Merge pull request from vadorovsky/pin-fix-error-msg
maps: Fix the error message in `MapData::pin()`
Michal Rostecki 2223ab828d aya-log: Add format hints for MAC addresses
Add `{:mac}` (for lower-case hex representation) and `{:MAC}` (for
upper-case hex representation) format hints for the `[u8; 6]` type,
which is the standard one in Linux to store physical addresses in.

Tested with: https://github.com/vadorovsky/aya-examples/tree/main/xdp-mac

Signed-off-by: Michal Rostecki <vadorovsky@gmail.com>
Michal Rostecki e0a9895260 maps: Fix the error message in `MapData::pin()`
The syscall name is `BPF_OBJ_PIN`, not `BPF_OBJ_GET`.

Signed-off-by: Michal Rostecki <vadorovsky@gmail.com>
Ricky Han 6ce60ad21d make sure everything is marked correctly
Ricky Han 9525b1a370 fix array
Ricky Han 575fea4cb9 fix wrong bounds
Ricky Han fbfbedb6a8 cargo fmt
Ricky Han 9991ffb093 Use &
Ricky Han e9ec257328 Add test case
Ricky Han 1247ffc19b Use Borrow<T> instead
Dmitry Savintsev 82773f46c8 Make the integration tests handle errors internally.
Instead of returning anyhow>>Result<()> handle errors
'in-place' with unwrap or panic, for more informative
and user-friendly error messages on test failures.

Fixes .

Signed-off-by: Dmitry Savintsev <dsavints@gmail.com>
Michal Rostecki 13bc70eec7
Merge pull request from dmitris/ref-in-deref
fix clippy needless_borrow warnings
Dmitry Savintsev d0424fb091 fix clippy needless_borrow warning