Extended Berkely Packet Filter
Programs that run in an in-kernel, Provable security virtual machine. It enables the dynamic insertion of powerful security, visibility, and networking control logic into the Linux kernel. The user space communicates with the eBPF program through the bpf() system call.
It basically provides runtime configurable kernel functionality like high-performance networking, multi-cluster and multi-cloud capabilities, advanced load balancing, transparent encryption, extensive network security capabilities, transparent observability.
- Process can install multiple BPF filters and once installed, filter cannot be removed, can only be added. (all run on every syscall)
- If program forks, child inherits all filters and if program calls
execve
, all filters are preserved.
- The input of BPF is syscall number, syscall args., architecture.
eBPF Notion
eBPF Usages