Commit Graph

900 Commits (b72abcc7ded3ba83bae6da1f3895cf73c8fb0602)
 

Author SHA1 Message Date
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
Dmitry Savintsev d4a399fb0c Update CONTRIBUTING.md to link to the test/README.md
Co-authored-by: Michal Rostecki <vadorovsky@skiff.com>
Andre Fredette af3de84b08 Use a struct for setting priority and handle in SchedClassfier attach
Use a struct called TcOptions for setting priority and handle in SchedClassifier attach

struct TcOptions implements the Default trait, so for the simple use
case in which the defaults are acceptable, we can call attach as
follows:
attach(“eth0”, TcAttachType::Ingress, TcOptions::default())

To specify all options:
attach(“eth0”, TcAttachType::Ingress, TcOptions { priority: (50), handle: (3) })

Or, some options:
attach(“eth0”, TcAttachType::Ingress, TcOptions { priority: (50), ..Default::default() })

Signed-off-by: Andre Fredette <afredette@redhat.com>
Andre Fredette ac07608b79 Support using handle in tc programs
Implements step 1 of https://github.com/aya-rs/aya/issues/414.

- Adds handle to the SchedClassifier attach API
- Saves handle in the TcLink sruct and uses it when detaching programs

NOTE: this changes the API, so it will require a bump in the Aya version.

Signed-off-by: Andre Fredette <afredette@redhat.com>
Alessandro Decina d6cb1a16ad
Merge pull request from astoycos/refactor-map-api2
Refactor map API
Andrew Stoycos 82edd681c3 Fix doc links, update rustdoc args
Fix some broken rust doc links.

Make sure rustdoc build fail on warnings
so we catch these broken links in CI.

Signed-off-by: Andrew Stoycos <astoycos@redhat.com>
Andrew Stoycos f3262e87bd Make map APIs return an option
switch map() and map_mut() from returning a
`Result` to an `Option` since it's just getting
a value from a Hashmap, and to stay in line with
the Programs API.

Remove `MapError::MapNotFound`

Signed-off-by: Andrew Stoycos <astoycos@redhat.com>
Andrew Stoycos 4ddf2600b4 Fixups4
Remove From method and replace with internal
helper function.

Signed-off-by: Andrew Stoycos <astoycos@redhat.com>
Andrew Stoycos 440097d7bc Fixups 3
Remove MapError::UnexpectedMapType

Add Macro for converting from aya::Map to
u32 (map type) for use in
`MapError::InvalidMapType { map_type: x }`

Signed-off-by: Andrew Stoycos <astoycos@redhat.com>
Michal Rostecki 89df8c36d3
Merge pull request from aya-rs/dependabot/cargo/bindgen-0.61
build(deps): update bindgen requirement from 0.60 to 0.61
Andrew Stoycos 939d16cce5 Fixups 2
Respond to more review comments:

Revert to try_from in doctests so we don't need
to explicitly specify type parameters.

Fixup some documentation

Remove explit types in `try_from` methods

Signed-off-by: Andrew Stoycos <astoycos@redhat.com>
Andrew Stoycos 8009361694 Fixups
Respond to review comments, specifically:

- Remove Map::map_type()

- Update some comments

- remove `docs` from feature macros

- generalize check_bounds, check_kv_size,
and check_v_size functions to remove
duplicate code

Signed-off-by: Andrew Stoycos <astoycos@redhat.com>
Andrew Stoycos 893f9f44a2 Implement Copy for MapData
Implement Copy for MapData so that
when `take_map` is used we create a
1 to 1 mapping of MapData to internal
FileDescriptor.  This will ensure
that when MapData is used in multiple
tasks that we don't drop the FD before
all tasks are done using it.

Signed-off-by: Andrew Stoycos <astoycos@redhat.com>
Andrew Stoycos 898a14d425 Use SockMapFd
Create a new type called `SockMapFd` which is
solely used when a program needs to attach
to a socket map. In the future this same
tatic could be used for other use cases
so we may make this more generic.

Signed-off-by: Andrew Stoycos <astoycos@redhat.com>
Andrew Stoycos 1aefa2e5e6 Core refactor of Map API
Build completing tests passing

Refactor the Map API to better align
with the aya programs API.  Specifically
remove all internal locking mechanisms
and custom Deref/DerefMut implementations.
They are replaced with a Map enum
and AsRef/AsMut implementations.

All Try_From implementations have been moved
to standardized enums, with a slightly
special one for PerfEventArray's.

Also cleanup/fix all associated tests and
documentation.

Signed-off-by: Andrew Stoycos <astoycos@redhat.com>
Alessandro Decina 0a9c9960e4 Add Documentation section to CONTRIBUTING.md
dependabot[bot] 5717f17367
build(deps): update bindgen requirement from 0.60 to 0.61
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.60.0...v0.61.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Dave Tucker a0b0399dcd
Merge pull request from abhijeetbhagat/integration-tests-cli-options
add list, run cli flags to integration tests.
abhijeetbhagat c83d012c51 preserve existing behavior and avoid changes to gh workflows/xtask
abhi 4183c7a7d2
Merge branch 'aya-rs:main' into integration-tests-cli-options
Dave Tucker 77c5543993
Merge pull request from abhijeetbhagat/patch-1
add libelf as a pre-requisite for linux, libbpf repo link
Michal Rostecki 94bc93ea07
Merge pull request from abhijeetbhagat/fix-warnings
fix all clippy warnings
abhijeetbhagat 6c813b8c38 fix all clippy warnings
Michal Rostecki 57ab0d7978
Merge pull request from dave-tucker/unused-deps
cargo: Remove unused dependencies
abhijeetbhagat 7499661670 fix formatting
abhijeetbhagat 638cf514fb use macro to log, execute test and handle error
abhijeetbhagat 5b3e0ee856 add list, run cli flags to integration tests.
fixes: 
abhi 493a8db0ec
add libelf as a pre-requisite for linux, libbpf repo link
Dave Tucker ec2bd69053 cargo: Remove unused dependencies
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
Dave Tucker 14ba644aa5
Merge pull request from dave-tucker/async-docs
docs: Add labels for optional features