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