Salute e malattia

Posizione |  | Salute e Malattia >  | Settore sanitario | Piani PPO

VPP (Vector Packet Processing): framework networking ad alte prestazioni

VPP (Vector Packet Processing) è un framework networking open-source, ad alte prestazioni, in userspace sviluppato da Cisco (ora FD.io / Linux Foundation Collaborative Project). Processa pacchetti in vettori (batch) piuttosto che individualmente, massimizzando efficienza cache CPU e parallelismo a livello istruzione.

Architettura core

  • Vector Processing: Pacchetti raccolti in vettori (tipicamente 256) → processati attraverso grafo diretto di nodi (ogni nodo = funzione: input, classify, lookup, rewrite, output). Ammortizza overhead per-pacchetto (chiamate funzioni, cache miss, branch prediction).
  • Operazione userspace: Gira in user mode (DPDK-based) — bypassa kernel network stack, niente context switch, accesso diretto NIC via poll-mode drivers (PMDs).
  • Architettura plugin: Estensibile via shared libraries: routing, ACL, NAT, IPsec, load balancing, segment routing (SRv6), telemetria, memif, virtio.
  • Separazione control plane: Data plane (VPP) + control plane (processo separato: GoBGP, FRR, custom gRPC/REST API).
  • Multi-threading: Worker thread pinnati a core CPU; ring buffer lock-free per comunicazione inter-thread.

Caratteristiche prestazionali

  • 10–50+ Mpps/core (dipende feature set, dimensione pacchetto, CPU)
  • Latenza sub-microsecondo (data plane)
  • Scaling lineare con core (NUMA-aware)

Casi d'uso

  • vCPE / uCPE (universal CPE), vRouter, vBNG, vFirewall
  • 5G UPF (User Plane Function), MEC (Multi-access Edge Computing)
  • Service Provider: BNG, CGNAT, DPI, load balancing
  • Enterprise: SD-WAN edge, microsegmentazione
  • Cloud/NFV: VPP come VNF/CNF in OpenStack, Kubernetes (FD.io CSIT, VPP K8s Operator)
  • Test & Misura: TRex, generatori traffico basati VPP

Getting Started

  • GitHub: fdio/vpp (licenza Apache 2.0)
  • Docs: docs.fd.io
  • Binari: pacchetti Ubuntu, CentOS, RHEL, Debian; immagini Docker; box Vagrant.
  • Richiede: NIC compatibile DPDK (Intel XL710, X710, E810, Mellanox ConnectX, virtio).

VPP è il motore data plane dietro Cisco Meraki, Cisco SD-WAN, Comcast, NTT e numerosi deployment telco/cloud.