ebpf icon indicating copy to clipboard operation
ebpf copied to clipboard

ebpf-go is a pure-Go library to read, modify and load eBPF programs and attach them to various hooks in the Linux kernel.

Results 142 ebpf issues
Sort by recently updated
recently updated
newest added

Timo is in the process of moving cilium/cilium over to use ebpf.Map more consistently and he found that map operations in the lib allocate a lot more than the old...

enhancement

In https://github.com/cilium/cilium/pull/22693, Cilium will start relying exclusively on the library to tell it when a map is incompatible with an existing pinned map, but right now `ErrMapIncompatible` is a little...

enhancement
help wanted

#1193 added support for new instructions. We need to extend `COREFixup.Apply` to recognise the new load / store modes. ```[tasklist] ### Tasks - [ ] Check what libbpf does. Did...

bug
help wanted

I would like to discuss the future of the Map Iterator API. Currently, it doesn't transparently use batch lookups under the hood However, the current batch API, as it is...

enhancement
help wanted

By referencing `bpftool link`, there are two missing functions: `LinkGetNextID()` and `NewLinkFromID()`. Then, when I want to implement them, `LinkGetNextIdAttr`, `LinkGetNextID()` and `LinkGetFDByID()` are missing in `sys/types.go` generated by `gentypes`....

bug

Hello, I'm having trouble using the kernel's `container_of` macro in a BPF program loaded with cilium/ebpf v0.10.0. This program works as expected when loaded with libbpf 0.6.0 or by running...

bug
enhancement

We currently hardcode pointer size: https://github.com/cilium/ebpf/blob/9447ec825af0802d63ea2d74523536f99622bb59/btf/types.go#L149 The kernel uses [`sizeof(void*)` instead](https://elixir.bootlin.com/linux/v6.2.2/source/kernel/bpf/btf.c#L1960). That size depends on which [data model](https://en.wikipedia.org/wiki/64-bit_computing#64-bit_data_models) is used.The correct size of `Pointer` in Go land is actually `unsafe.Sizeof(uintptr(0))`,...

bug

I accidentally dropped the change to allow pinning uprobe multi from Jiri's patch. This restores the functionality.

Address calculation of the symbols occurs only with Executable.load(). while the symbol name is provided. This PR fixes by ensuring that the symbol address calculation occurs correctly even when the...

Support for unix socketse have been added and released with linux kernel v6.7 and it would be nice to have it in cillium too. ref: https://github.com/torvalds/linux/commit/8b3cba987e6d9464bb533d957de923f891b57bf8

enhancement
help wanted