// Copyright (c) eBPF for Windows contributors // SPDX-License-Identifier: MIT /** * @mainpage * * @section intro Introduction * 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. * * @section hooks eBPF Program Reference * A number of hooks are currently exposed to eBPF programs that include ebpf_nethooks.h. * Refer to the list of \ref 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 \ref 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. * * @section api eBPF User-Mode API Reference * * User-mode applications have access to three types of APIs: * */