All Projects → tuxology → libebpf

tuxology / libebpf

Licence: GPL-2.0 License
Experiemental userspace eBPF library

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to libebpf

ebpfpub
ebpfpub is a generic function tracing library for Linux that supports tracepoints, kprobes and uprobes.
Stars: ✭ 86 (+514.29%)
Mutual labels:  llvm, ebpf, bpf
ebpfault
A BPF-based syscall fault injector
Stars: ✭ 65 (+364.29%)
Mutual labels:  llvm, ebpf, bpf
alon
Remix for Solana.
Stars: ✭ 87 (+521.43%)
Mutual labels:  llvm, bpf
ebpf
eBPF package for Go
Stars: ✭ 25 (+78.57%)
Mutual labels:  ebpf, bpf
p2pflow
Ethereum p2p traffic analysis with eBPF
Stars: ✭ 24 (+71.43%)
Mutual labels:  ebpf, bpf
libbpf-sys
Rust bindings to libbpf from the Linux kernel
Stars: ✭ 103 (+635.71%)
Mutual labels:  ebpf, bpf
portablebpf
You came here so you could have a base code to serve you as an example on how to develop a BPF application, compatible to BCC and/or LIBBPF, specially LIBBPF, having the userland part made in C or PYTHON.
Stars: ✭ 32 (+128.57%)
Mutual labels:  ebpf, bpf
KubeArmor
Cloud-native Runtime Security Enforcement System
Stars: ✭ 434 (+3000%)
Mutual labels:  ebpf, bpf
Libbpf Rs
Minimal and opinionated eBPF tooling for the Rust ecosystem
Stars: ✭ 116 (+728.57%)
Mutual labels:  ebpf, bpf
aya
Aya is an eBPF library for the Rust programming language, built with a focus on developer experience and operability.
Stars: ✭ 950 (+6685.71%)
Mutual labels:  ebpf, bpf
XDP-Firewall
An XDP firewall that is capable of filtering specific packets based off of filtering rules specified in a config file. IPv6 is supported!
Stars: ✭ 129 (+821.43%)
Mutual labels:  ebpf, bpf
packiffer
lightweight cross-platform networking toolkit
Stars: ✭ 52 (+271.43%)
Mutual labels:  ebpf, bpf
Polycube
eBPF/XDP-based software framework for fast network services running in the Linux kernel.
Stars: ✭ 217 (+1450%)
Mutual labels:  ebpf, bpf
Xdp Project
XDP project collaboration through a git-repo
Stars: ✭ 127 (+807.14%)
Mutual labels:  ebpf, bpf
Tcpdog
eBPF based TCP observability.
Stars: ✭ 119 (+750%)
Mutual labels:  ebpf, bpf
pwru
Packet, where are you? -- Linux kernel networking debugger
Stars: ✭ 694 (+4857.14%)
Mutual labels:  ebpf, bpf
Awesome Ebpf
A curated list of awesome projects related to eBPF.
Stars: ✭ 1,102 (+7771.43%)
Mutual labels:  ebpf, bpf
Kubectl Trace
Schedule bpftrace programs on your kubernetes cluster using the kubectl
Stars: ✭ 1,194 (+8428.57%)
Mutual labels:  ebpf, bpf
go-tc
traffic control in pure go - it allows to read and alter queues, filters and classes
Stars: ✭ 245 (+1650%)
Mutual labels:  ebpf, bpf
bpflock
bpflock - eBPF driven security for locking and auditing Linux machines
Stars: ✭ 54 (+285.71%)
Mutual labels:  ebpf, bpf

Userspace eBPF Library

This is a modified port of the Berkeley Packet Filter (BPF) infrastructure from the Linux kernel to the userspace as a shared library. It is derived from early stages of the RFC patchset and hence may have a few bugs. The goal of this library is pure experimentation and performance analysis for tracing tools only. Support for maps and packet filtering specific instructions has been removed. Before using the library, please make sure your use-case allows GPLv2 licenses.

Building

This library used CMake build system. Make sure you have cmake version > 2.8 installed on your system. This can usually be done on Fedora by a simple,

$ dnf install cmake

Proceed to your build directory and then,

$ cd build  
$ cmake ../  
$ make  

Usage

You can either give raw BPF instructions inside your target program or use the compiled filter binary. The examples directory contains a simple C-style BPF filter.c file which is compiled to filter.bpf binary. The target program can use a similar style as shown in filter_test.c to load and use the filter binary. Over the time this will probably be made easier, with BPF being generated by a script invoking a small compiler and verifying the generated bytecode.

LLVM BPF backend developed by Alexei is provided in the tools directory. A BPF target for LLVM has been upstreamed already but the backend is provided here as well.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].