ebpf-for-windows/mainpage.dox

40 строки
2.1 KiB
Plaintext

// 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
* <a href="https://github.com/microsoft/ebpf-for-windows#architectural-overview">Architectural Overview</a>.
*
* @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:
* <ul>
* <li>Helpers that are accessible to all program types, defined in bpf_helper_defs.h.
* <li>Helpers specific to a given program type and declared in other headers, such as ebpf_nethooks.h.
* </ul>
* 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:
* <ul>
* <li> Libbpf APIs defined in libbpf.h.
* <li> Libbpf APIs defined in [**bpf.h**](bpf_8h.html).
* <li> Additional APIs defined in ebpf_api.h. Many of these are temporary and will be replaced as more
* Libbpf APIs are supported directly.
* </ul>
*/