casa |  | Saúde e Doença >  | Indústria da Saúde | PPOs

VPP (Vector Packet Processing): Framework de Rede de Alto Desempenho

VPP (Vector Packet Processing) é um framework de rede de alto desempenho, open-source, em userspace, desenvolvido pela Cisco (agora FD.io / Projeto Colaborativo da Linux Foundation). Ele processa pacotes em vetores (lotes) em vez de individualmente, maximizando a eficiência do cache da CPU e o paralelismo em nível de instrução.

Arquitetura Principal

  • Processamento Vetorial: Pacotes coletados em vetores (tipicamente 256) → processados através de um grafo direcionado de nós (cada nó = uma função: entrada, classificar, lookup, reescrever, saída). Amortiza sobrecarga por pacote (chamadas de função, falhas de cache, predição de ramificação).
  • Operação em Userspace: Executa em modo usuário (baseado em DPDK) – bypassa a pilha de rede do kernel, sem trocas de contexto, acesso direto ao NIC via drivers de modo de sondagem (PMDs).
  • Arquitetura de Plugins: Extensível via bibliotecas compartilhadas: roteamento, ACL, NAT, IPsec, balanceamento de carga, roteamento por segmento (SRv6), telemetria, memif, virtio.
  • Separação do Plano de Controle: Plano de dados (VPP) + plano de controle (processo separado: GoBGP, FRR, API gRPC/REST personalizada).
  • Multi-threading: Threads de trabalho afixados a núcleos de CPU; buffers de anel livres de trava para comunicação entre threads.

Características de Desempenho

  • 10–50+ Mpps/núcleo (dependendo do conjunto de recursos, tamanho do pacote, CPU)
  • Latência de submicrosegundo (plano de dados)
  • Escala linear com núcleos (cientes de NUMA)

Casos de Uso

  • vCPE / uCPE (CPE universal), vRouter, vBNG, vFirewall
  • 5G UPF (Função de Plano de Usuário), MEC (Computação de Borda de Acesso Múltiplo)
  • Provedor de Serviço: BNG, CGNAT, DPI, balanceamento de carga
  • Empresarial: borda SD-WAN, microsegmentação
  • Nuvem/NFV: VPP como VNF/CNF em OpenStack, Kubernetes (FD.io CSIT, VPP K8s Operator)
  • Teste e Medição: TRex, geradores de tráfego baseados em VPP

Começando

  • GitHub: fdio/vpp (licença Apache 2.0)
  • Docs: docs.fd.io
  • Binários: pacotes Ubuntu, CentOS, RHEL, Debian; imagens Docker; caixas Vagrant.
  • Requer: NIC compatível com DPDK (Intel XL710, X710, E810, Mellanox ConnectX, virtio).

O VPP é o mecanismo de plano de dados por trás do Cisco Meraki, Cisco SD-WAN, Comcast, NTT e inúmeras implantações de telco/nuvem.