L2TPv2 LNS data plane for VPP, so an LNS on commodity hardware forwards beyond 10G over L2TP. Control plane stays accel-ppp(-ng); this repo adds:
| Dir | What |
|---|---|
docs/ |
design.md (architecture, milestones), first-test.md (how to build and test), m0-notes.md (open items) |
plugin/l2tvpp/ |
VPP plugin: L2TPv2 decap/encap, per-session interface, worker handoff |
syncd/ |
daemon that installs accel-ppp sessions into VPP |
test/ |
VPP make test suite for the plugin (scapy, no NIC needed) |
build/ |
dev-build.sh (plain VPP tree, fast loop), build-vpp-debs.sh (VyOS-identical packages), build-iso.sh |
xdp/ |
independent fallback: XDP cpumap steering for the kernel LNS path |
lab/, bench/ |
test rig configs and results |
- Unit, no hardware:
make test TEST=test_l2tvpp,test_l2tvpp_syncdinside the VPP tree the build script produces (build/work/vyos-build/scripts/package-build/vpp/vpp/). Runs in CI. - VM lab: VyOS ISO from
build/build-iso.shin KVM (virtio NICs), BNG an L2TP LAC (e.g. BNG Blaster) as the client. Functional and churn tests. - Hardware: a multicore x86 box with a DPDK-capable NIC. Throughput numbers.
- Proper:
build/build-vpp-debs.shthenbuild/build-iso.sh, install the ISO (add system image). The plugin is inside the image's own VPP packages. - Quick:
build/build-vpp-debs.sh, copybuild/out/vpp-plugin-core_*.debto the box andsudo dpkg -iit (same VPP version, so it is a drop-in), thensudo systemctl restart vpp. Lost on image upgrade, fine for development.
VPP version tracking: VyOS current builds FDio stable/2510; build/package.toml
must be re-diffed against package.toml.vyos-orig whenever VyOS bumps it.
- Everything except
xdp/is Apache-2.0 (LICENSE), the same license as VPP and the VyOS VPP patches, so the plugin can go upstream unchanged. Source files carrySPDX-License-Identifier: Apache-2.0. xdp/is GPL-2.0 (xdp/LICENSE): the BPF program uses GPL-only kernel helpers and declares"GPL"to the verifier; the loader links libbpf (LGPL-2.1 OR BSD-2-Clause).- Contributions use the Developer Certificate of Origin (
git commit -s), as required by FD.io and VyOS.