A arquitetura do conjunto de instruções BPF recebeu status de padrão proposto

O Comitê IETF (Internet Engineering Task Force), que se dedica ao desenvolvimento de protocolos e arquitetura da internet, concluiu a elaboração do RFC para a arquitetura do conjunto de instruções BPF e publicou a especificação relacionada com o identificador RFC 9669. O RFC recebeu o status de "Padrão Proposto", após o qual começará o trabalho para atribuir ao RFC o status de Padrão Draft, o que significa, na prática, a completa estabilização e consideração de todas as observações feitas.

A especificação publicada descreve um conjunto de instruções de bytecode BPF e uma máquina virtual de baixo nível, utilizada no subsistema do núcleo Linux eBPF para executar manipuladores externos, capazes de alterar o comportamento do sistema em tempo real, sem a necessidade de modificar o código do núcleo. Na prática, o eBPF implementa um processador virtual básico com seu conjunto de registradores, instruções semelhantes ao RISC, pilha e contador de instruções. Os programas BPF geralmente são criados em um subconjunto da linguagem C, e depois compilados em bytecode adequado para execução em máquina virtual. A máquina virtual pode executar programas BPF tanto utilizando interpretação, quanto aplicando JIT-compilação para traduzir o bytecode em tempo real em instruções de máquina.

Espera-se que a padronização da arquitetura do conjunto de instruções BPF incentive a criação de implementações de terceiros, compatíveis com a máquina virtual eBPF e capazes de executar programas BPF escritos para o núcleo Linux. Alguns fabricantes de adaptadores de rede estão trabalhando no desenvolvimento de ferramentas para a aceleração de hardware da execução de manipuladores BPF de pacotes de rede. A ideia é expandir as capacidades do subsistema XDP (eXpress Data Path) para a execução de programas BPF não apenas no nível do driver de rede, mas também no lado da placa de rede. máquinas virtuais trabalham nesta área.

Por exemplo, a empresa Netronome adicionou suporte a BPF no adaptador Netronome Agilio CX SmartNIC e forneceu uma coleção de exemplos de programas BPF universais, que podem ser executados não apenas com CPU no núcleo com qualquer driver compatível com XDP, mas também no lado do cartão de rede, permitindo tomar decisões sobre descartar, alterar ou redirecionar pacotes sem gastar recursos da CPU. Além disso, a tecnologia XRP (eXpress Resubmission Path) está sendo desenvolvida, permitindo usar BPF para transferir algumas operações com unidades NVMe, como gerenciamento de índices e agregação de dados, para o nível do driver NVMe ou para um dispositivo externo.

Destaca-se que a adoção mais ampla dessas capacidades ainda é dificultada pelos riscos associados à quebra de compatibilidade e à necessidade de monitorar o estado do eBPF no núcleo. Devido a esses riscos, alguns fabricantes adiaram a inclusão de recursos de aceleração de hardware BPF em seus dispositivos até a formação de um padrão.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster