User-defined Playground

Ubuntu eBPF Playground

Experimental playground with out of the box eBPF support through BTF

Startup configuration
box-01
box-02
box-03
Ubuntu eBPF playground: Experimental playground with out of the box eBPF support through BTF

Ubuntu 24.04 with out of the box eBPF support

The playground uses BTF in order to make eBPF programs work with the firecracker optimized kernel versions VMs are running on rather than generic kernel headers. You might not be able to use some macros and functionality that is dependent on the generic kernel headers.

Pre-installed Packages

  • strace
  • golang-go
  • libbpf-dev
  • bpftrace
  • bpftool (built from source)
  • clang
  • llvm
  • clangd
  • bcc
  • linux-tools-common
  • linux-tools-generic
  • make

Usage

There is a folder in every VM's home directory named eBPF, it includes the BTF header file and a Makefile to make XDP operations a bit smoother.

Include the /home/laborant/eBPF/vmlinux.h file in your eBPF programs instead of generic kernel header files, then you can compile, attach and load your eBPF programs normally.

Example Projects / Use Cases

  • Implement a high performance firewall using eBPF XDP
  • Trace a process that calls a specific syscall using eBPF kprobes
  • Practice eBPF maps and tail calls
  • Utilize eBPF in the userspace with eBPF uprobes
Start
Settings