Commit Graph

1263 Commits (13e83b24ee572009176b82840fb5cf1845fcf3dd)
 

Author SHA1 Message Date
Dan Everton 3dff6e8555
Updates based on feedback 3 years ago
Dan Everton 4277205e9d
Use current kernel version as default if not specified
When a BPF program doesn't specify the target kernel version, the
most compatible option is to set the program kernel version to match
the currently running kernel.
3 years ago
Dan Everton 42c9737d47
Functional detach of debugfs probes. 3 years ago
Dan Everton a4faabcf93
Fix event_alias comparison when looking in event list 3 years ago
Dan Everton 84fa2197ec
Don't duplicate perf_attach code and formatting 3 years ago
Dan Everton d0321bd1ee
Attempt auto detach of probe for debugfs 3 years ago
Dan Everton 34aa790a91
Support k/uprobes on older kernels.
Prior to kernel 4.17 probes were attached via debugfs and this patch
attempts to make that work.

Tested on kernel 4.14.
3 years ago
Alessandro Decina 5b0e518641
Merge pull request #107 from deverton/skip-map-name
fix: make maps compatible with kernel <= 4.14
3 years ago
Dan Everton 07e3824aa4
chore: formatting 3 years ago
Dan Everton 49f6a8e819
Stub `kernel_version` for tests 3 years ago
Dan Everton d966881e46
Fix lint issues 3 years ago
Dan Everton fc0861105a
fix: make maps compatible with kernel <= 4.14
In kernel 4.15 and additional parameter was added to allow maps to have
names but using this breaks on older kernels.

This change makes it so the name is only added on kernels 4.15 and
newer.
3 years ago
Alessandro Decina 182182d840 (cargo-release) version 0.10.6 3 years ago
Alessandro Decina 170e98e71e bpf: fix doc tests 3 years ago
Alessandro Decina 31f96450d4 bpf: add bpf_probe_read_buf, bpf_probe_read_user_buf and bpf_probe_read_kernel_buf 3 years ago
Alessandro Decina f1fe817022
Merge pull request #106 from dave-tucker/skbcontext
bpf: Rename SkSkbContext to SkBuffContext
3 years ago
Dave Tucker 8a6fe4a640 bpf: Rename SkSkbContext to SkBuffContext
This is necessary since the context is used in many other program types
and not just in SK_SKB programs.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina 685b68359e
Merge pull request #105 from dave-tucker/socket_filter
bpf: Add macro for socket_filter programs
3 years ago
Dave Tucker a4bb29a3cc bpf: Add macro for socket_filter programs
Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina 5ea450f0ec
Merge pull request #102 from dave-tucker/skskb
bpf: Add macros for sk_skb programs
3 years ago
Alessandro Decina 0b3e398f11
Merge pull request #103 from dave-tucker/redirect_sk
bpf: Implement redirect for skbs on sockmap/sockhash
3 years ago
Alessandro Decina daf8630133
Merge pull request #104 from dave-tucker/fix_skskb_load
obj: fix name parsing for sk_skb sections
3 years ago
Dave Tucker 352e54b724 obj: fix name parsing for sk_skb sections
This commit fixes name parsing of sk_skb sections such that both named
and unnamed variants will work correctly.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 2a8ba55b7e bpf: Implement redirect for skbs on sockmap/sockhash
This implements redirect_skb and renames redirect to redirect_msg

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Dave Tucker 0c7e9b94ea bpf: Add macros for sk_skb programs
This commit adds the stream_parser and stream_verdict macros for use in
bpf programs

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
3 years ago
Alessandro Decina 2206fb6456
Merge pull request #83 from willfindlay/arguments
aya-bpf: introduce argument coercion
3 years ago
William Findlay 89dee1a114
aya-bpf: implement argument coercion for pt_regs and BTF programs
Implements argument and return value coercion helpers for:
    - LSM programs
    - BTF tracepoints
    - [ku]{ret}probes

Signed-off-by: William Findlay <william@williamfindlay.com>
3 years ago
William Findlay 972e5e636a
aya-bpf-macros: fix tests
Doctests were failing due to a dependency on the aya-bpf crate.
3 years ago
Alessandro Decina f632f81db1
Merge pull request #98 from aya-rs/codegen
Update libbpf to 16dfb4ffe4aed03fafc00e0557b1ce1310a09731
3 years ago
alessandrod 4a7f47d93a Update libbpf to 16dfb4ffe4aed03fafc00e0557b1ce1310a09731 3 years ago
Alessandro Decina d341b58293 xtask: codegen: generate bindings for user_pt_regs
user_pt_regs is used in aarch64 instead of pt_regs
3 years ago
Alessandro Decina ab0d08910d ci: gen: fix workflow 3 years ago
Alessandro Decina 8f20ead0c1
Merge pull request #96 from alessandrod/cross
Fix bindings for archs other than x86
3 years ago
Alessandro Decina f372a4cd5f ci: gen: install cross headers 3 years ago
Alessandro Decina eb654d1e3e xtask: codegen: fix bindings for archs other than x86 3 years ago
Alessandro Decina 3d72414fde
Merge pull request #86 from willfindlay/bpf_probe_read_str
aya-bpf/helpers: add documentation and implement more bpf_probe_read_* wrappers
3 years ago
William Findlay 4a02d0038f
aya-bpf/helpers: add documentation and implement all bpf_probe_read_* wrappers
This patch adds some documentation to aya-bpf/helpers and adds documentation
for the module itself and for all of the wrappers currently defined in the module.

It also implements the rest of the bpf_probe_read_* wrappers that were missing from this
file. In the future, it probably also makes sense to add some bpf_probe_read_* wrappers
that can read directly into a map pointer, avoiding the BPF stack altogether. I'm going to
call this out of scope for this PR, but plan to submit a subsequent one that addresses
this use case.

Signed-off-by: William Findlay <william@williamfindlay.com>
3 years ago
Alessandro Decina 3eb0fe3257
Merge pull request #92 from willfindlay/expose_bindings
aya-bpf/helpers: expose raw bindings through helpers::gen
3 years ago
Alessandro Decina 563d4ba1c3
Merge pull request #94 from tklauser/netlink-ext-ack-libc
aya: netlink: use NETLINK_EXT_ACK from libc crate
3 years ago
Tobias Klauser 2136f05461 aya: netlink: use NETLINK_EXT_ACK from libc crate
NETLINK_EXT_ACK is available since libc crate version 0.2.105, see
https://github.com/rust-lang/libc/releases/tag/0.2.105
3 years ago
William Findlay b30fd424ef
aya-bpf/helpers: expose raw bindings through helpers::gen
Until we add another set of bpf_probe_read_* wrappers for reading into a map pointer,
users need access to the underlying bpf_probe_read helper, which is clobbered by this
module. This patch enables direct access to the underlying helpers::gen module to support
such use cases.

In my view, it would also probably make sense to just not export helpers::gen::* and force
the user to opt into helpers::gen, but this can be decided on later.

Signed-off-by: William Findlay <william@williamfindlay.com>
3 years ago
Alessandro Decina dd7e1de348
Merge pull request #90 from willfindlay/fix-bss
aya/obj: fix incorrect section size for .bss
3 years ago
William Findlay 1e6b1afbe4
aya/obj: fix incorrect section size for .bss 3 years ago
Alessandro Decina 3a8e4fe9b9
Merge pull request #89 from willfindlay/errors
aya/maps: improve map errors to be more descriptive
3 years ago
William Findlay 27d803b634
aya/maps: improve map errors to be more descriptive 3 years ago
Alessandro Decina 17b730c717
Merge pull request #85 from willfindlay/tp_btf
aya/aya-bpf: implement btf tracepoint programs
3 years ago
William Findlay 6b6d4af932
aya/programs/lsm: pass Btf by reference instead of loading new Btf in Lsm::load 3 years ago
William Findlay 6539cbb555
aya/aya-bpf: implement btf tracepoint programs 3 years ago
Alessandro Decina c4b6970774
Merge pull request #80 from willfindlay/fix-rust-analyzer
meta: ignore .vscode/ except .vscode/settings.json
3 years ago
Alessandro Decina 140005d9e3
Merge pull request #68 from vadorovsky/lsm
Add support for raw tracepoint and LSM programs
3 years ago