Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | 19-Jul-2021 | - | ||||
asm/ | H | 19-Jul-2021 | - | 1,815 | 1,303 | |
internal/ | H | 19-Jul-2021 | - | 3,853 | 2,790 | |
link/ | H | 19-Jul-2021 | - | 850 | 607 | |
.clang-format | H A D | 19-Jul-2021 | 491 | 18 | 17 | |
.gitignore | H A D | 19-Jul-2021 | 196 | 14 | 11 | |
ARCHITECTURE.md | H A D | 19-Jul-2021 | 3.5 KiB | 81 | 62 | |
CODE_OF_CONDUCT.md | H A D | 19-Jul-2021 | 3.2 KiB | 47 | 28 | |
CONTRIBUTING.md | H A D | 19-Jul-2021 | 1,014 | 23 | 17 | |
LICENSE | H A D | 19-Jul-2021 | 1.1 KiB | 24 | 19 | |
Makefile | H A D | 19-Jul-2021 | 2 KiB | 68 | 43 | |
README.md | H A D | 19-Jul-2021 | 1.9 KiB | 55 | 39 | |
collection.go | H A D | 19-Jul-2021 | 14.1 KiB | 590 | 399 | |
doc.go | H A D | 19-Jul-2021 | 837 | 17 | 1 | |
elf_reader.go | H A D | 19-Jul-2021 | 25.6 KiB | 931 | 702 | |
elf_reader_fuzz.go | H A D | 19-Jul-2021 | 347 | 22 | 15 | |
go.mod | H A D | 19-Jul-2021 | 177 | 10 | 7 | |
go.sum | H A D | 19-Jul-2021 | 1.1 KiB | 14 | 13 | |
info.go | H A D | 19-Jul-2021 | 5.1 KiB | 240 | 173 | |
linker.go | H A D | 19-Jul-2021 | 2.9 KiB | 134 | 94 | |
map.go | H A D | 19-Jul-2021 | 29.7 KiB | 1,189 | 811 | |
marshalers.go | H A D | 19-Jul-2021 | 5.6 KiB | 217 | 161 | |
pinning.go | H A D | 19-Jul-2021 | 880 | 43 | 36 | |
prog.go | H A D | 19-Jul-2021 | 18.3 KiB | 699 | 457 | |
run-tests.sh | H A D | 19-Jul-2021 | 2.3 KiB | 92 | 69 | |
syscalls.go | H A D | 19-Jul-2021 | 11.9 KiB | 492 | 420 | |
types.go | H A D | 19-Jul-2021 | 6.5 KiB | 214 | 125 | |
types_string.go | H A D | 19-Jul-2021 | 6.1 KiB | 169 | 144 |
README.md
1# eBPF 2 3[![PkgGoDev](https://pkg.go.dev/badge/github.com/cilium/ebpf)](https://pkg.go.dev/github.com/cilium/ebpf) 4 5eBPF is a pure Go library that provides utilities for loading, compiling, and 6debugging eBPF programs. It has minimal external dependencies and is intended to 7be used in long running processes. 8 9* [asm](https://pkg.go.dev/github.com/cilium/ebpf/asm) contains a basic 10 assembler 11* [link](https://pkg.go.dev/github.com/cilium/ebpf/link) allows attaching eBPF 12 to various hooks 13* [perf](https://pkg.go.dev/github.com/cilium/ebpf/perf) allows reading from a 14 `PERF_EVENT_ARRAY` 15* [cmd/bpf2go](https://pkg.go.dev/github.com/cilium/ebpf/cmd/bpf2go) allows 16 embedding eBPF in Go 17 18The library is maintained by [Cloudflare](https://www.cloudflare.com) and 19[Cilium](https://www.cilium.io). Feel free to 20[join](https://cilium.herokuapp.com/) the 21[#libbpf-go](https://cilium.slack.com/messages/libbpf-go) channel on Slack. 22 23## Current status 24 25The package is production ready, but **the API is explicitly unstable right 26now**. Expect to update your code if you want to follow along. 27 28## Requirements 29 30* A version of Go that is [supported by 31 upstream](https://golang.org/doc/devel/release.html#policy) 32* Linux 4.9, 4.19 or 5.4 (versions in-between should work, but are not tested) 33 34## Useful resources 35 36* [eBPF.io](https://ebpf.io) (recommended) 37* [Cilium eBPF documentation](https://docs.cilium.io/en/latest/bpf/#bpf-guide) 38 (recommended) 39* [Linux documentation on 40 BPF](https://www.kernel.org/doc/html/latest/networking/filter.html) 41* [eBPF features by Linux 42 version](https://github.com/iovisor/bcc/blob/master/docs/kernel-versions.md) 43 44## Regenerating Testdata 45 46Run `make` in the root of this repository to rebuild testdata in all 47subpackages. This requires Docker, as it relies on a standardized build 48environment to keep the build output stable. 49 50The toolchain image build files are kept in [testdata/docker/](testdata/docker/). 51 52## License 53 54MIT 55