eBPF for Windows
|
Go to the source code of this file.
Functions | |
Link-related functions | |
int | bpf_link_detach (int link_fd) |
Detach a link. More... | |
int | bpf_link_get_fd_by_id (__u32 id) |
Get a file descriptor referring to a link with a given ID. More... | |
int | bpf_link_get_next_id (__u32 start_id, __u32 *next_id) |
Look for the next link ID greater than a given ID. More... | |
Map-related functions | |
int | bpf_map_create (enum bpf_map_type map_type, const char *map_name, __u32 key_size, __u32 value_size, __u32 max_entries, const struct bpf_map_create_opts *opts) |
Create a new map. More... | |
int | bpf_map_delete_elem (int fd, const void *key) |
Look up and delete an element by key in a specified map. More... | |
int | bpf_map_get_fd_by_id (__u32 id) |
Get a file descriptor referring to a map with a given ID. More... | |
int | bpf_map_get_next_id (__u32 start_id, __u32 *next_id) |
Look for the next map ID greater than a given ID. More... | |
int | bpf_map_get_next_key (int fd, const void *key, void *next_key) |
Look up an element by key in a map and get the next key. If the specific key is not found, the first key in the map is passed back. More... | |
int | bpf_map_lookup_elem (int fd, const void *key, void *value) |
Look up an element by key in a specified map and return its value. More... | |
int | bpf_map_update_elem (int fd, const void *key, const void *value, __u64 flags) |
Create or update an element (key/value pair) in a specified map. More... | |
Object-related functions | |
int | bpf_obj_get (const char *pathname) |
Get a file descriptor for a pinned object by pin path. More... | |
int | bpf_obj_get_info_by_fd (int bpf_fd, void *info, __u32 *info_len) |
Obtain information about the eBPF object referred to by bpf_fd. This function populates up to info_len bytes of info, which will be in one of the following formats depending on the eBPF object type of bpf_fd: More... | |
int | bpf_obj_pin (int fd, const char *pathname) |
Pin an eBPF program or map referred to by fd to the provided pathname. More... | |
Program-related functions | |
int | bpf_prog_bind_map (int prog_fd, int map_fd, const struct bpf_prog_bind_opts *opts) |
Bind a map to a program so that it holds a reference on the map. More... | |
int | bpf_prog_get_fd_by_id (__u32 id) |
Get a file descriptor referring to a program with a given ID. More... | |
int | bpf_prog_get_next_id (__u32 start_id, __u32 *next_id) |
Look for the next program ID greater than a given ID. More... | |
int | bpf_prog_load (enum bpf_prog_type prog_type, const char *prog_name, const char *license, const struct bpf_insn *insns, size_t insn_cnt, const struct bpf_prog_load_opts *opts) |
Load (but do not attach) an eBPF programs. More... | |
int bpf_link_detach | ( | int | link_fd | ) |
Detach a link.
[in] | link_fd | File descriptor of link to detach. |
0 | The operation was successful. |
<0 | An error occured, and errno was set. |
EBADF | The file descriptor was not found. |
int bpf_link_get_fd_by_id | ( | __u32 | id | ) |
Get a file descriptor referring to a link with a given ID.
[in] | id | ID of link to find. |
ENOENT | No link with the specified ID was found. |
Look for the next link ID greater than a given ID.
[in] | start_id | ID to look for an ID after. The start_id need not exist. |
[out] | next_id | Pointer to where to write the next ID. |
0 | The operation was successful. |
<0 | An error occured, and errno was set. |
ENOENT | No more IDs found. |
int bpf_map_create | ( | enum bpf_map_type | map_type, |
const char * | map_name, | ||
__u32 | key_size, | ||
__u32 | value_size, | ||
__u32 | max_entries, | ||
const struct bpf_map_create_opts * | opts | ||
) |
Create a new map.
[in] | map_type | Type of outer map to create. |
[in] | map_name | Optionally, the name to use for the map. |
[in] | key_size | Size in bytes of keys. |
[in] | value_size | Size in bytes of values. |
[in] | max_entries | Maximum number of entries in the map. |
[in] | opts | Structure of options using which a map gets created. |
EINVAL | An invalid argument was provided. |
ENOMEM | Out of memory. |
int bpf_map_delete_elem | ( | int | fd, |
const void * | key | ||
) |
Look up and delete an element by key in a specified map.
[in] | fd | File descriptor of map to update. |
[in] | key | Pointer to key to look up. |
0 | The operation was successful. |
<0 | An error occured, and errno was set. |
EINVAL | An invalid argument was provided. |
EBADF | The file descriptor was not found. |
ENOMEM | Out of memory. |
int bpf_map_get_fd_by_id | ( | __u32 | id | ) |
Get a file descriptor referring to a map with a given ID.
[in] | id | ID of map to find. |
ENOENT | No map with the specified ID was found. |
Look for the next map ID greater than a given ID.
[in] | start_id | ID to look for an ID after. The start_id need not exist. |
[out] | next_id | Pointer to where to write the next ID. |
0 | The operation was successful. |
<0 | An error occured, and errno was set. |
ENOENT | No more IDs found. |
int bpf_map_get_next_key | ( | int | fd, |
const void * | key, | ||
void * | next_key | ||
) |
Look up an element by key in a map and get the next key. If the specific key is not found, the first key in the map is passed back.
[in] | fd | File descriptor of map. |
[in] | key | Pointer to key to look up. |
[out] | next_key | Pointer to memory in which to write the next key. |
0 | The operation was successful. |
<0 | An error occured, and errno was set. |
EINVAL | An invalid argument was provided. |
EBADF | The file descriptor was not found. |
ENOMEM | Out of memory. |
int bpf_map_lookup_elem | ( | int | fd, |
const void * | key, | ||
void * | value | ||
) |
Look up an element by key in a specified map and return its value.
[in] | fd | File descriptor of map. |
[in] | key | Pointer to key to look up. |
[out] | value | Pointer to memory in which to write the value. |
0 | The operation was successful. |
<0 | An error occured, and errno was set. |
EINVAL | An invalid argument was provided. |
EBADF | The file descriptor was not found. |
ENOMEM | Out of memory. |
int bpf_map_update_elem | ( | int | fd, |
const void * | key, | ||
const void * | value, | ||
__u64 | flags | ||
) |
Create or update an element (key/value pair) in a specified map.
[in] | fd | File descriptor of map. |
[in] | key | Pointer to key. |
[in] | value | Pointer to value. |
[in] | flags | Flags (currently 0). |
EINVAL | An invalid argument was provided. |
EBADF | The file descriptor was not found. |
ENOMEM | Out of memory. |
int bpf_obj_get | ( | const char * | pathname | ) |
Get a file descriptor for a pinned object by pin path.
[in] | pathname | Pin path for the object. |
int bpf_obj_get_info_by_fd | ( | int | bpf_fd, |
void * | info, | ||
__u32 * | info_len | ||
) |
Obtain information about the eBPF object referred to by bpf_fd. This function populates up to info_len bytes of info, which will be in one of the following formats depending on the eBPF object type of bpf_fd:
[in] | bpf_fd | File descriptor referring to an eBPF object. |
[out] | info | Pointer to memory in which to write the info obtained. |
[in,out] | info_len | On input, contains the maximum number of bytes to write into the info. On output, contains the actual number of bytes written. |
0 | The operation was successful. |
-EFAULT | A pointer passed in the input info was invalid. |
<0 | An error occured, and errno was set. |
int bpf_obj_pin | ( | int | fd, |
const char * | pathname | ||
) |
Pin an eBPF program or map referred to by fd to the provided pathname.
[in] | fd | File descriptor referring to the program or map to pin. |
[in] | pathname | Path name to pin the object to. |
0 | The operation was successful. |
<0 | An error occured, and errno was set. |
int bpf_prog_bind_map | ( | int | prog_fd, |
int | map_fd, | ||
const struct bpf_prog_bind_opts * | opts | ||
) |
Bind a map to a program so that it holds a reference on the map.
[in] | prog_fd | File descriptor of program to bind map to. |
[in] | map_fd | File descriptor of map to bind. |
[in] | opts | Optional set of options affecting the bind operation. |
0 | The operation was successful. |
<0 | An error occured, and errno was set. |
int bpf_prog_get_fd_by_id | ( | __u32 | id | ) |
Get a file descriptor referring to a program with a given ID.
[in] | id | ID of program to find. |
ENOENT | No program with the specified ID was found. |
Look for the next program ID greater than a given ID.
[in] | start_id | ID to look for an ID after. The start_id need not exist. |
[out] | next_id | Pointer to where to write the next ID. |
0 | The operation was successful. |
<0 | An error occured, and errno was set. |
ENOENT | No more IDs found. |
int bpf_prog_load | ( | enum bpf_prog_type | prog_type, |
const char * | prog_name, | ||
const char * | license, | ||
const struct bpf_insn * | insns, | ||
size_t | insn_cnt, | ||
const struct bpf_prog_load_opts * | opts | ||
) |
Load (but do not attach) an eBPF programs.
[in] | prog_type | Program type to use for loading eBPF programs. |
[in] | prog_name | Program name. |
[in] | license | License string (unused). |
[in] | insns | Array of eBPF instructions. |
[in] | insn_cnt | Count of instructions in the array. |
[in] | opts | Additional options, or NULL to use default options. |
EACCES | The program failed verification. |
EINVAL | One or more parameters are incorrect. |
ENOMEM | Out of memory. |