Commit Graph

397 Commits (26d188c659e905d4121bc97a574f961172593889)
 

Author SHA1 Message Date
Alessandro Decina 26d188c659
Merge pull request from dave-tucker/btf
obj: Improve section detection
Alessandro Decina 32dc8a0d97
Merge pull request from eero-thia/thia/safe_map
aya-bpf: remove unnecessary unsafe markers on map functions.
Alessandro Decina 441a660b3e
Merge pull request from eero-thia/thia/safe_iter
aya: Remove unnecessary unsafe markers on map iteration.
Thia Wyrod b655cf973f
aya-bpf: remove unnecessary unsafe markers on map functions.
Map lookup and deletion can yield stale keys and values by virtue of
sharing a data structure with userspace programs and other BPF programs
which can modify it. However, all accesses remain perfectly safe and will
not cause memory corruption or data races.
Thia Wyrod 18970369e2
aya: Remove unnecessary unsafe markers on map iteration.
Map iteration can yield stale keys and values by virtue of sharing a
data structure with BPF programs which can modify it. However, all
accesses remain perfectly safe and will not cause memory corruption or
data races.
Alessandro Decina 07a6016ebb
Merge pull request from eero-thia/thia/dedup
aya: eliminate name duplication in maps and programs.
Thia Wyrod f56dd0a70b
aya: eliminate name duplication in maps and programs.
Map and ProgramData objects had unnecessarily cloned strings for their
names, despite them being just as easily available to external users via
bpf.maps() and bpf.programs().
Alessandro Decina 8043451973 bpf: re-export Lru hash maps from aya_bpf::maps
Alessandro Decina a340c2a9fa
Merge pull request from wg/main
aya: use correct program name when relocating
Will bb8a813eef aya: use correct program name when relocating
Dave Tucker e4d9774bf7 obj: Improve section detection
This commit improves section detection.
Previously, a section named "xdp_metadata" would be interpretted as a
program section, which is incorrect. This commit first attempts to
identify a BPF section by name, then by section.kind() ==
SectionKind::Text (executable code). The computed section kind is
stored in the Section so variants can be easily matched on later.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
Alessandro Decina c0f695c4b6 bpf: Add LruHashMap and LruPerCpuHashMap
Alessandro Decina a03426f194
Merge pull request from eero-thia/thia/impl_trait
aya: remove unnecessary usage of &dyn trait in favor of impl trait.
Alessandro Decina 61299e128e
Merge pull request from eero-thia/thia/xdp_metadata
aya-bpf: expose xdp_md of XdpContext and add metadata functions.
Thia Wyrod d280b856bd
aya-bpf: expose xdp_md of XdpContext and add metadata functions.
Thia Wyrod daa7ea6d0d
aya: remove unnecessary usage of &dyn trait in favor of impl trait.
This should improve performance in most situations by eliminating
unnecessary fat pointer indirection.
Alessandro Decina 98b36b23bc
Merge pull request from eero-thia/thia/close
aya: close file descriptors on Map drop.
Alessandro Decina 2955ca1d1f
Merge pull request from eero-thia/thia/programs_mut
aya: programs_mut iterator to complement programs.
Thia Wyrod c7f8db9a0b
aya: programs_mut iterator to complement programs.
Alessandro Decina a6bf554a74
Merge pull request from eero-thia/thia/include_bytes_aligned
aya: expand include_bytes_aligned to accept expressions.
Thia Wyrod 1584bc47bd
aya: close file descriptors on Map drop.
Thia Wyrod f8f17a09fb
aya: expand include_bytes_aligned to accept expressions.
This allows one to this macro with literal expressions involving macros
such as concat! and env!.
Alessandro Decina df393690d3
Merge pull request from deverton/wrap-bpf_get_current_uid_gid
Add wrapper and docs for for bpf_get_current_uid_gid
Dan Everton fa23052e34
Add wrapper and docs for for bpf_get_current_uid_gid
Alessandro Decina 6db30fad9c
Merge pull request from deverton/kprobe-debugfs
Support k/uprobes on older kernels.
Dan Everton 0e84610976
Refactoring after feedback.
Alessandro Decina d983836959
Merge pull request from dave-tucker/fix_cgroup_skb_attach
bpf: Fix cgroup_skb macro
Dave Tucker eadba79deb bpf: Add tests for cgroup_skb macro
This checks that the expand function produces the expected link_section
given certain input

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
Dave Tucker fa037a88e2 bpf: Fix cgroup_skb macro
This commit ensures that if no attach type is provided, that we use the
cgroup/skb section. If an attach type is provided we use the
cgroup_skb/$attach_type section.

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
Rust Plumber 761cb79fe3
aya: fix test warnings ()
Dan Everton 606c3267c4
Support pid filtering in debugfs
Dan Everton 1dc75542b4
Handle probe entry offsets
Dan Everton 4e6aeb2e69
Merge branch 'main' into kprobe-debugfs
Alessandro Decina b82d7f0515
Merge pull request from deverton/dynamic-kver
Use current kernel version as default if not specified
Dan Everton 3dff6e8555
Updates based on feedback
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.
Dan Everton 42c9737d47
Functional detach of debugfs probes.
Dan Everton a4faabcf93
Fix event_alias comparison when looking in event list
Dan Everton 84fa2197ec
Don't duplicate perf_attach code and formatting
Dan Everton d0321bd1ee
Attempt auto detach of probe for debugfs
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.
Alessandro Decina 5b0e518641
Merge pull request from deverton/skip-map-name
fix: make maps compatible with kernel <= 4.14
Dan Everton 07e3824aa4
chore: formatting
Dan Everton 49f6a8e819
Stub `kernel_version` for tests
Dan Everton d966881e46
Fix lint issues
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.
Alessandro Decina 182182d840 (cargo-release) version 0.10.6
Alessandro Decina 170e98e71e bpf: fix doc tests
Alessandro Decina 31f96450d4 bpf: add bpf_probe_read_buf, bpf_probe_read_user_buf and bpf_probe_read_kernel_buf
Alessandro Decina f1fe817022
Merge pull request from dave-tucker/skbcontext
bpf: Rename SkSkbContext to SkBuffContext