forked from microsoft/ebpf-for-windows
-
Notifications
You must be signed in to change notification settings - Fork 0
/
mainpage.dox
39 lines (38 loc) · 2.06 KB
/
mainpage.dox
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Copyright (c) Microsoft Corporation
// 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>
*/