eBPF for Windows
|
eBPF is a well-known technology for providing programmability and agility, especially for extending an OS kernel, for use cases such as DoS protection and observability. This project is a work-in-progress that allows using existing eBPF toolchains and APIs familiar in the Linux ecosystem to be used on top of Windows. That is, this project takes existing eBPF projects as submodules and adds the layer in between to make them run on top of Windows.
For more info, see the Architectural Overview.
A number of hooks are currently exposed to eBPF programs that include ebpf_nethooks.h. Refer to the list of bpf_prog_type values for details.
eBPF programs can also call helper APIs to do additional processing. There are two types of helpers:
The documentation for each program type will list which helper header files can be used for that program type. Similarly such documentation for each bpf_prog_type value will give the API prototype to implement, and the list of supported attach types that can be used when attaching an eBPF program. Most program types have only a single attach type, but some may support multiple places to which the same type of program can be attached.
User-mode applications have access to three types of APIs: