README.md aktualisiert

This commit is contained in:
2025-10-27 16:18:55 +00:00
parent cc3765743f
commit e432998063
+41 -13
View File
@@ -1,19 +1,25 @@
# l3-forwarding-xdp # l3-forwarding-xdp
L3-L4 xdp based forwarding L3-L4 XDP-based forwarding tool.
xdp-tools is your friend to load xdp in that case. This project implements Layer 3 (IP) and Layer 4 (TCP/UDP) packet forwarding using eBPF and XDP (eXpress Data Path). It leverages the high-performance capabilities of XDP for efficient packet processing in the Linux kernel with bird or FRR.
# INSTALL **Note:** `xdp-tools` is highly recommended for loading and managing the XDP program.
```
## Installation
Install the necessary dependencies using `apt`:
```bash
apt update apt update
```
```
apt install clang llvm libbpf-dev libelf-dev pkg-config make git bpftool xdp-tools apt install clang llvm libbpf-dev libelf-dev pkg-config make git bpftool xdp-tools
``` ```
# Compile ## Compilation
```
Compile the eBPF program from the source code:
```bash
clang -O2 -g -Wall -target bpf \ clang -O2 -g -Wall -target bpf \
-D__BPF_TRACING__ \ -D__BPF_TRACING__ \
-I/usr/include \ -I/usr/include \
@@ -21,17 +27,39 @@ clang -O2 -g -Wall -target bpf \
-c main.c -o main.o -c main.c -o main.o
``` ```
# Attach to the interface This will generate the object file `main.o` which contains the compiled eBPF code.
```
## Usage
### Attach to the Interface
Load the XDP program onto a network interface (e.g., `eth0`):
```bash
xdp-loader load eth0 ./main.o xdp-loader load eth0 ./main.o
``` ```
```
Check the status of loaded XDP programs:
```bash
xdp-loader status xdp-loader status
``` ```
``` BASH ### Monitoring and Debugging
Use `bpftool` to inspect maps and statistics:
```bash
bpftool map show bpftool map show
bpftool map dump name xdp_flow_stats bpftool map dump name xdp_flow_stats
```
bpftool map dump name xdp_flow_stats These commands will display information about the eBPF maps used in the program, such as flow statistics.
## Unloading the Program
To unload the XDP program from the interface:
```bash
xdp-loader unload eth0
``` ```