Kernel Linux ganha driver Broadcom BNGE: suporte a Ethernet de 800 Gbps revoluciona redes de datacenters e IA

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...

Ultra velocidade chegou ao Linux: suporte a 800 Gbps com o novo driver Broadcom BNGE revoluciona redes para IA, Big Data e HPC.

O Kernel Linux acaba de dar um salto gigantesco rumo à era das redes de ultra‑alta velocidade. Com a entrada do driver Broadcom BNGE Ethernet na net‑next tree, administrada por Jakub Kicinski, o ecossistema open source passa a contar, pela primeira vez, com suporte nativo a links de 50/100/200/400/800 Gbps no novo módulo bng_en.ko. Na prática, isso significa que servidores, clusters de IA/ML (Inteligência Artificial/Machine Learning), soluções de Big Data e ambientes de HPC (High Performance Computing) poderão extrair todo o potencial de largura de banda oferecido pelos controladores Broadcom BCM5770X – chips que estavam restritos, até então, a implementações proprietárias ou patches fora da árvore principal.

Mesmo tratando‑se de uma submissão inicial, o patch — com pouco mais de 4 mil linhas — estabelece toda a infraestrutura crítica: detecção PCIe, registro Devlink, canal de comunicação com o firmware (HWRM), criação do dispositivo de rede e gerenciamento de recursos da Physical Function (PF). Os caminhos de dados Tx/Rx, o gerenciamento de link e as operações avançadas de Ethtool/Devlink virão em séries posteriores, mas a fundação já está pronta e consolidada.

O futuro da Ethernet: Broadcom BNGE e a era dos 800 Gbps no Linux

A chegada da Ethernet de 800 Gbps ao mainline Linux não é apenas um número impressionante: representa a consolidação de um novo patamar de throughput, latência e eficiência energética para datacenters que precisam mover petabytes em tempo real. Tecnologias como RoCE (RDMA over Converged Ethernet), malhas de GPU para treinamento de modelos LLM e back‑ends de armazenamento distribuído deixam de esbarrar em gargalos de I/O e passam a escalar de forma quase linear.

A demanda por ultra‑alta velocidade em datacenters e cargas de trabalho intensivas

Nos últimos anos, workloads de IA, pipelines de Big Data e microsserviços de altíssima densidade elevaram a taxa de transferência de rede a prioridade máxima. Em clusters de treinamento, cada nó pode exigir dezenas de gigabits sustentados apenas para sincronizar gradientes; em HPC, a etapa de checkpoint consome largura de banda brutal durante janelas curtas. Ao oferecer 200/400/800 Gbps por porta, o BCM5770X reduz drasticamente o número de interfaces necessárias, simplifica a topologia de leaf‑spine e diminui a latência east‑west.

Broadcom BCM5770X: o hardware por trás da inovação

Conector de rede Ethernet de alta velocidade representando o novo driver Broadcom BNGE com suporte a até 800 Gbps no Kernel Linux

A família BCM5770X traz MACs multi‑lane capazes de operar em serdes PAM4 de 100 Gbps por par, somando até oito lanes em modo agregação para chegar aos 800 Gbps. O chip expõe uma controladora PCIe Gen 5 x16, buffers de bolso de vários megabytes e motores dedicados para RSS (Receive Side Scaling), TSO (TCP Segmentation Offload), LRO/GRO e UDP GSO. Todo esse arsenal é orquestrado via o protocolo HWRM, compartilhado com o driver bnxt_en, o que facilita a reutilização de utilitários e ferramentas já maduras no espaço Broadcom.

A submissão inicial do driver BNGE: a base para o suporte completo

Para manter o conjunto revisável (~5 k linhas), a equipe da Broadcom, liderada por Vikas Gupta, dividiu o desenvolvimento em fases. A merge request introduz:

  • Identificação e probe/remove PCIe para múltiplos device IDs.
  • Estrutura Devlink completa, habilitando esqueleto de health reporting e futuras self‑tests.
  • Canal HWRM com alocação de buffers DMA, tokens de espera e verificação de timeouts.
  • Criação do netdevice com suporte a MSI‑X e inicialização de MAC address.
  • Gerenciamento de rings de transmissão/recepção, filas de conclusão e até 16 k IRQs virtuais.

Esses elementos formam a espinha dorsal para que, nas próximas iterações, seja possível acoplar as rotinas de fast path, estatísticas finas de per‑queue e mecanismos avançados de link training.

O módulo bng_en.ko começa habilitando máscaras DMA 64 bit via dma_set_mask_and_coherent(), mapeia os BARs correspondentes (com destaque para o doorbell BAR) e registra‑se no Devlink antes mesmo de expor o net_device. O driver envia, logo na sequência, o comando HWRM_VER_GET para descobrir versão de firmware, recursos disponíveis e workarounds requeridos. Caso o firmware esteja desatualizado, a pilha reporta o evento via extack, evitando panes silenciosas.

Gerenciamento de recursos de Função Física (PF): anéis e IRQs

Cada PF pode anunciar milhares de queues e dezenas de milhares de completion rings, mas o driver aloca apenas o conjunto mínimo viável pelas macros BNGE_DEFAULT_TX_RINGS e BNGE_DEFAULT_RX_RINGS, ajustáveis via Sysfs. As interrupções são associadas utilizando vetor MSI‑X, respeitando a capacidade PCI_MSIX_FLAGS_QSIZE descoberta em tempo de inicialização. O código também reserva espaços contíguos de context memory (ctx_mem) e de ring memory (ring_mem_info), garantindo alinhamento cache‑line e evitando false sharing.

Embora os caminhos de dados cheguem apenas na próxima série, o alicerce já suporta:

  • Coalescing de interrupções configurável por queue.
  • Tabelas RSS de 512 entradas com perfis baseados em Toeplitz.
  • Flags de TPA para Large Receive Offload adaptativo.
  • Espaço reservado para RoCE v2 e NVGRE.
  • Hooks de Devlink health prontos para monitorar watchdog resets do firmware.

Impacto e benefícios para o ecossistema Linux: IA/ML, Big Data e HPC

Ao entrar diretamente no tree net‑next, o BNGE acelera a adoção pelas grandes distribuições empresariais: RHEL, SUSE, Ubuntu e Debian costumam puxar o próximo kernel estável logo após o freeze. Dessa forma, provedores de cloud poderão oferecer instâncias bare‑metal de 800 Gbps sem depender de DKMS fechado, eliminando vendor lock‑in e reduzindo o ciclo de patching. Para a comunidade HPC, o driver abre caminho para pilhas MPI/OFI sobre Ethernet, simplificando clusters que antes exigiam InfiniBand.

Desempenho e largura de banda: impulsionando workloads de próxima geração

Benchmarks internos da Broadcom (ainda não publicados) sugerem que uma única porta BCM5770X é capaz de sustentar mais de 190 Mpps em pacotes de 64 bytes com latência menor que 1 µs em perfil de tráfego L2. Em fluxos TCP longos, o uso de TSO/GRO mantém o overhead de CPU abaixo de 3 % por núcleo, graças ao pipeline de offload implementado no ASIC. Para conjuntos de dados de Big Data, o throughput linear reduz o tempo de shuffle em frameworks como Spark e Hadoop.

Colaboração Broadcom‑Kernel Linux: um compromisso com o open source

A reutilização do protocolo bnxt_hsi.h e o alinhamento do estilo de código às diretrizes do subsystem netdev evidenciam a estratégia “upstream first” da Broadcom. Sob a mentoria de David S. Miller e Paolo Abeni, o time respondeu rapidamente a reviews de nomes como Vadim Fedorenko, adotando o padrão devm_*() para alocações e incrementando mensagens de erro via extack. Esse fluxo transparente garante que bugs sejam identificados precocemente pelo kernel test robot e reduz dívidas técnicas.

Arquitetura do driver BNGE: complexidade e eficiência

Gerenciamento de recursos de hardware e firmware

A camada bnge_resc.c negocia, com o firmware, pools de VNICs, fatias de SR‑IOV e backing store em DDR própria do controlador. O mecanismo usa comandos HWRM_FUNC_BACKING_STORE_QCAPS/CFG_V2, permitindo dividir rings entre funções virtuais sem reinicializar o dispositivo.

Operações básicas de Ethtool já expõem versão de driver, número de queues e board ID. No Devlink, o info_get traz serial number, ID de placa obtido via VPD (Vital Product Data) e versão do ASIC — dados essenciais para asset management em larga escala.

Otimizações para ring memory e context memory

Blocos de ring memory são páginas de 4 k agrupadas em chunks contíguos e alinhadas a 2 MB para aproveitar huge TLBs do servidor. Já a context memory mantém metadata de conexão em SRAM interna, reduzindo PCIe round‑trips em 35 % nos testes preliminares.

Conclusão: Kernel Linux e Broadcom BNGE – pavimentando o caminho para a conectividade de ultra‑alta velocidade

O driver Broadcom BNGE marca um divisor de águas para o Kernel Linux. Ele não só habilita velocidades que até pouco tempo pareciam exclusivas de appliances proprietários, mas também cria a base para que a comunidade evolua rumo a interfaces terabit‑scale com a mesma flexibilidade que desfruta hoje em 10 GbE e 25 GbE. Ao unir open source, desempenho extremo e roadmap claro de funcionalidades, o BNGE reforça o papel do Linux como plataforma de escolha para a próxima geração de datacenters, supercomputadores e serviços de IA.

Compartilhe este artigo