ebpf-blocker 1.0.0
XDP-based packet blocker using eBPF
Loading...
Searching...
No Matches
xdp_loader.cpp File Reference

Загрузка BPF-объекта, прикрепление/открепление XDP и управление картами. More...

#include "xdp_loader.h"
#include <bpf/bpf.h>
#include <bpf/libbpf.h>
#include <cstdarg>
#include <cstring>
#include <iostream>
#include <net/if.h>
#include <stdexcept>

Go to the source code of this file.

Functions

static int PrintLibbpfLog (enum libbpf_print_level lvl, const char *msg, va_list)
 

Variables

unsigned char blocker_bpf []
 Встроенный BPF-байткод, сгенерированный xxd во время сборки.
 
unsigned int blocker_bpf_len
 

Detailed Description

Загрузка BPF-объекта, прикрепление/открепление XDP и управление картами.

Содержит реализацию XdpBlocker: загрузка из встроенного байткода, прикрепление/открепление XDP, очистка и обновление BPF-карт.

Definition in file xdp_loader.cpp.

Function Documentation

◆ PrintLibbpfLog()

static int PrintLibbpfLog ( enum libbpf_print_level lvl,
const char * msg,
va_list  )
static

Колбэк логирования libbpf: передаёт только предупреждения в stderr.

Parameters
[in]lvlУровень логирования.
[in]msgСообщение.
Returns
0.

Definition at line 27 of file xdp_loader.cpp.

Referenced by XdpBlocker::XdpBlocker().

Variable Documentation

◆ blocker_bpf

unsigned char blocker_bpf[]
extern

Встроенный BPF-байткод, сгенерированный xxd во время сборки.

Referenced by XdpBlocker::LoadBPFProgram().

◆ blocker_bpf_len

unsigned int blocker_bpf_len
extern