All Projects → fbs → el7-bpf-specs

fbs / el7-bpf-specs

Licence: other
RPM specs for building bpf related tools on CentOS 7

Programming Languages

shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to el7-bpf-specs

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 (-15.79%)
Mutual labels:  ebpf, bpf, bpftrace
Bpftrace
High-level tracing language for Linux eBPF
Stars: ✭ 4,526 (+11810.53%)
Mutual labels:  ebpf, bpf, bcc
HAProxy-2-RPM-builder
Build latest HAProxy binary with prometheus metrics support
Stars: ✭ 28 (-26.32%)
Mutual labels:  rpm, centos7
ebpfpub
ebpfpub is a generic function tracing library for Linux that supports tracepoints, kprobes and uprobes.
Stars: ✭ 86 (+126.32%)
Mutual labels:  ebpf, bpf
lmp
LMP is a supermarket
Stars: ✭ 228 (+500%)
Mutual labels:  ebpf, bcc
bpflock
bpflock - eBPF driven security for locking and auditing Linux machines
Stars: ✭ 54 (+42.11%)
Mutual labels:  ebpf, bpf
KubeArmor
Cloud-native Runtime Security Enforcement System
Stars: ✭ 434 (+1042.11%)
Mutual labels:  ebpf, bpf
go-tc
traffic control in pure go - it allows to read and alter queues, filters and classes
Stars: ✭ 245 (+544.74%)
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 (+239.47%)
Mutual labels:  ebpf, bpf
openssl-RPM-Builder
Build latest OpenSSL binary
Stars: ✭ 46 (+21.05%)
Mutual labels:  rpm, centos7
aya
Aya is an eBPF library for the Rust programming language, built with a focus on developer experience and operability.
Stars: ✭ 950 (+2400%)
Mutual labels:  ebpf, bpf
pwru
Packet, where are you? -- Linux kernel networking debugger
Stars: ✭ 694 (+1726.32%)
Mutual labels:  ebpf, bpf
ebpf
eBPF package for Go
Stars: ✭ 25 (-34.21%)
Mutual labels:  ebpf, bpf
libebpf
Experiemental userspace eBPF library
Stars: ✭ 14 (-63.16%)
Mutual labels:  ebpf, bpf
ebpfault
A BPF-based syscall fault injector
Stars: ✭ 65 (+71.05%)
Mutual labels:  ebpf, bpf
p2pflow
Ethereum p2p traffic analysis with eBPF
Stars: ✭ 24 (-36.84%)
Mutual labels:  ebpf, bpf
sockdump
Dump unix domain socket traffic with bpf
Stars: ✭ 160 (+321.05%)
Mutual labels:  ebpf, bcc
rbbcc
BCC port for MRI - this is unofficial bonsai project.
Stars: ✭ 45 (+18.42%)
Mutual labels:  ebpf, bcc
libbpf-sys
Rust bindings to libbpf from the Linux kernel
Stars: ✭ 103 (+171.05%)
Mutual labels:  ebpf, bpf
uprobe-http-tracer
uprobe-based HTTP tracer for Go binaries
Stars: ✭ 45 (+18.42%)
Mutual labels:  ebpf, bcc

ebpf-specs

Status: Stable

A collection of rpm specs to build eBPF related tools on Centos 7. All tools are available as static binaries to remove the potential runtime dependencies on the used GCC and LLVM/Clang versions

Available tools:

Repository

Daily

Daily bpftrace builds are available: https://repos.baslab.org/rhel/7/bpftrace-daily/

Install

curl https://repos.baslab.org/rhel/7/bpftrace-daily/bpftrace-daily.repo --output /etc/yum.repos.d/bpftools.repo
curl https://repos.baslab.org/rhel/7/bpftools/bpftools.repo --output /etc/yum.repos.d/bpftrace-daily.repo
yum install bpftrace bpftrace-tools bpftrace-doc

Note that this only tracks bpftrace, the bpftools repo is still required for bcc&bpftool

Stable releases

The repository available at https://repos.baslab.org/rhel/7/bpftools/ tracks offical bpftrace & bcc releases

Install:

curl https://repos.baslab.org/rhel/7/bpftools/bpftools.repo --output /etc/yum.repos.d/bpftools.repo
yum install bpftrace bpftrace-tools bpftrace-doc bcc-static bcc-tools

bpftrace

Tools:

Tool Status
bashreadline.bt
biolatency.bt
biosnoop.bt
bitesize.bt
capable.bt
cpuwalk.bt
dcsnoop.bt
execsnoop.bt (patched)
gethostlatency.bt (patched)
killsnoop.bt
loads.bt
mdflush.bt
oomkill.bt
opensnoop.bt
pidpersec.bt
runqlat.bt
runqlen.bt
statsnoop.bt
syncsnoop.bt
syscount.bt
tcpaccept.bt
tcpconnect.bt
tcpdrop.bt
tcpretrans.bt
vfscount.bt
vfsstat.bt
writeback.bt
xfsdist.bt
ext4dist.bt 🆕

Tools marked with an have been "tested", the tool runs and the output appears valid, but no indepth testing has been done. indicate tools that are known to be broken and those marked with have not been tested at all.

Unsupported builtins:

  • cgroupid

BCC

Tools:

Tools Status
argdist
bashreadline
biolatency
biosnoop
biotop
bitesize
bpflist
btrfsdist
btrfsslower
cachestat
cachetop
capable
cobjnew
cpudist
cpuunclaimed
criticalstat
dbslower
dbstat
dcsnoop
dcstat
deadlock
drsnoop
execsnoop
exitsnoop
ext4dist
ext4slower
filelife
fileslower
filetop
funccount
funclatency
funcslower
gethostlatency
hardirqs
inject
javacalls
javaflow
javagc
javaobjnew
javastat
javathreads
killsnoop
llcstat
mdflush
memleak
mountsnoop
mysqld_qslower
nfsdist
nfsslower
nodegc
nodestat
offcputime
offwaketime
oomkill
opensnoop
perlcalls
perlflow
perlstat
phpcalls
phpflow
phpstat
pidpersec
profile
pythoncalls
pythonflow
pythongc
pythonstat
reset-trace
rubycalls
rubyflow
rubygc
rubyobjnew
rubystat
runqlat
runqlen
runqslower
shmsnoop
slabratetop
sofdsnoop
softirqs
solisten
sslsniff
stackcount
statsnoop
syncsnoop
syscount
tclcalls
tclflow
tclobjnew
tclstat
tcpaccept
tcpconnect
tcpconnlat
tcpdrop
tcplife
tcpretrans
tcpstates
tcpsubnet
tcptop
tcptracer
tplist
trace
ttysnoop
vfscount
vfsstat
wakeuptime
xfsdist
xfsslower
zfsdist
zfsslower

Tools marked with an have been "tested", the tool runs and the output appears valid, but no indepth testing has been done. indicate tools that are known to be broken and those marked with have not been tested at all.

Building

*Some builds are done with GCC from devtoolset-8 from software collections to provide a modern GCC

build-all.sh builds all tools in a docker container and exports the RPMs at the end. It starts of by building LLVM and Clang and creating a "builder" image with that, using that image it will build the other RPMs. As building LLVM & Clang takes a while the process can be sped up by reusing an earlier built image using the --image-tag flag

A pre-build llvm image can be found here

Alternatively you can build the spec files manually:

The first step is to build llvm-clang to provide a somewhat modern LLVM & Clang, and to provide static libs. Make sure you install the generated rpms before you go on the next step.

After that bcc and then bpftrace can be built, bpftrace depends on bcc so make sure you install the version you just compiled. Although it also seems to work with the version currently shipped with CentOS 7.

bpftool is stand alone.

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].