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.