https://github.com/kioubit/l3mp
Multiplex layer 3 tunnels through another layer 3 tunnel (eBPF)
https://github.com/kioubit/l3mp
ebpf networking tunnel
Last synced: 4 months ago
JSON representation
Multiplex layer 3 tunnels through another layer 3 tunnel (eBPF)
- Host: GitHub
- URL: https://github.com/kioubit/l3mp
- Owner: Kioubit
- Created: 2024-01-25T14:33:49.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-01-25T17:45:06.000Z (over 1 year ago)
- Last Synced: 2025-03-14T10:14:22.978Z (4 months ago)
- Topics: ebpf, networking, tunnel
- Language: C
- Homepage:
- Size: 57.6 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# L3MP
Multiplex up to 16 layer 3 tunnels through a single layer 3 tunnel
- Uses the "diffserv" field in the IPv4/IPv6 header to label packets
- Zero byte overhead (no MTU penalty)
- Performant: Packets are never copied to userspace.
(Uses an eBPF TC direct-action program that runs in the kernel eBPF sandbox)## Usage:
Requires root privileges or the CAP_NET_ADMIN linux capability
```
./l3mp
The interface-label definitions file contains up to 16 entries in this format:
@
Where is a number from 0 to 16
```### Building
#### Main program
Run ``go build -o L3MP .``
#### Re-compile included eBPF program (Optional)
Requires llvm and clang to be installed. To start the compilation, run ``go generate .``