Tags: uk0/ebpf
Tags
features: fix unsupported progtype/helper probes By enabling feature probes for the program types Tracing, Extension, LSM and StructOps within the HaveProgramType API, we overlooked that this would cause false negative results when using these types with the HaveProgramHelper API. To probe for these program types we craft specialized ProgramSpecs, but don't do the same when probing for these types in combination with an arbitrary helper. For now we should return an inconclusive error from the HaveProgramHelper API until we find a better way to probe for helpers with these program types. Fixes: cilium#1082 Signed-off-by: Robin Gögge <r.goegge@isovalent.com>
internal/unix: add some documentation and tidy up stubs Document why the package exists, and how stubs will behave on non-Linux OS. Simplify constants for other OS by giving them a distinct but meaninless value. Always use type aliases for structs on Linux and remove boilerplate function comments.
link: implement kprobe_multi link type As of Linux 5.18, or commit 5a5c11ee3e65 ("Merge branch 'bpf: Add kprobe multi link'"), attaching multiple k(ret)probes using a single system call is now possible. This commit adds support for this through the KprobeMulti() and KretprobeMulti() APIs in package link. Co-authored-by: Timo Beckers <timo@isovalent.com>
internal: include previous line on BPF context access error Add context if the last verifier log line indicates a context access error. See cilium#723
btf: move vmlinux search logic into findVMLinux() loadKernelSpec() gets short-circuited in the first statement on most kernels, resulting in the vmlinux search code being rarely exercised successfully in CI. Split the search logic out into its own function to make it testable in isolation. Although virtme VMs don't have images at any of these paths, running the test suite on a host with a full distro does result in a proper test execution. Signed-off-by: Timo Beckers <timo@isovalent.com>
map: include errnos with errors We replace some errnos from map syscalls with more descriptive sentinel errors. Include the original errno with the error so that both errors.Is(err, ErrKeyNotExist) errors.Is(err, unix.ENOENT) work. We'll use this for other errors in the future where we want to introduce our own errors without breaking callers that rely on the (coarser) errno semantics.
PreviousNext