VPP (Vector Packet Processing) ist ein Open-Source-, Hochleistungs-, Userspace-Netzwerkframework, das von Cisco entwickelt wurde (jetzt FD.io / Linux Foundation Collaborative Project). Es verarbeitet Pakete in Vektoren (Chargen) statt einzeln, um CPU-Cache-Effizienz und instruktionslevel-Paralleli zu maximieren.
Kernarchitektur
- Vektorverarbeitung: Pakete werden in Vektoren (typischerweise 256) gesammelt → verarbeitet durch einen gerichteten Graph von Knoten (jeder Knoten = eine Funktion: Input, Klassifizieren, Lookup, Rewrite, Output). Amortisiert pro-Paket-Overhead (Funktionsaufrufe, Cache-Misses, Zweigvorhersage).
- Userspace-Operation: Läuft im Nutzermodus (DPDK-basiert) – umgeht Kernel-Netzwerkstack, keine Kontextwechsel, direkter NIC-Zugriff über Poll-Mode-Treiber (PMDs).
- Plugin-Architektur: Erweiterbar über gemeinsame Bibliotheken: Routing, ACL, NAT, IPsec, Lastausgleich, Segment-Routing (SRv6), Telemetrie, memif, virtio.
- Kontrollebene-Trennung: Datenebene (VPP) + Kontrollebene (getrennter Prozess: GoBGP, FRR, benutzerdefinierte gRPC/REST-API).
- Multithreading: Worker-Threads an CPU-Kerne gebunden; lockfreie Ringpuffer für inter-thread-Kommunikation.
Leistungseigenschaften
- 10–50+ Mpps/core (je nach Funktionsumfang, Paketgröße, CPU)
- Sub-Mikrosekunden-Latenz (Datenebene)
- Lineare Skalierung mit Kernen (NUMA-aware)
Anwendungsfälle
- vCPE / uCPE (universelle CPE), vRouter, vBNG, vFirewall
- 5G UPF (User Plane Function), MEC (Multi-access Edge Computing)
- Service Provider: BNG, CGNAT, DPI, Lastausgleich
- Enterprise: SD-WAN-Edge, Mikrosegmentierung
- Cloud/NFV: VPP als VNF/CNF in OpenStack, Kubernetes (FD.io CSIT, VPP K8s Operator)
- Test & Messung: TRex, VPP-basierte Traffic-Generatoren
Erste Schritte
- GitHub:
fdio/vpp (Apache 2.0 Lizenz)
- Docs:
docs.fd.io
- Binaries: Ubuntu, CentOS, RHEL, Debian-Pakete; Docker-Images; Vagrant-Boxen.
- Erfordert: DPDK-kompatible NIC (Intel XL710, X710, E810, Mellanox ConnectX, virtio).
VPP ist die Datenebenen-Engine hinter Cisco Meraki, Cisco SD-WAN, Comcast, NTT und zahlreichen Telco/Cloud-Implementierungen.