La arquitectura del conjunto de instrucciones BPF ha recibido el estatus de estándar propuesto

El Comité IETF (Internet Engineering Task Force), encargado del desarrollo de protocolos y la arquitectura de internet, ha completado la creación del RFC para la arquitectura del conjunto de instrucciones BPF y ha publicado la especificación correspondiente bajo el identificador RFC 9669. El RFC ha recibido el estatus de "Estándar Propuesto", después del cual comenzará el trabajo para otorgar al RFC el estatus de Estándar en Borrador (Draft Standard), lo que significa, de hecho, estabilización completa y consideración de todos los comentarios expresados.

La especificación publicada describe el conjunto de instrucciones de bytecode BPF y una máquina virtual de bajo nivel utilizada en el subsistema del núcleo Linux eBPF para ejecutar controladores externos, capaces de cambiar el comportamiento del sistema al vuelo sin necesidad de modificar el código del núcleo. En esencia, eBPF implementa un procesador virtual simple con su propio conjunto de registros, instrucciones tipo RISC, una pila y un contador de instrucciones. Los programas BPF generalmente se crean en un subconjunto del lenguaje C, y luego se compilan en bytecode adecuado para su ejecución en una máquina virtual. La máquina virtual puede ejecutar programas BPF utilizando tanto interpretación como JIT-compilación para traducir bytecode al vuelo en instrucciones de máquina.

Se espera que la estandarización de la arquitectura del conjunto de instrucciones BPF sirva como un estímulo para la creación de implementaciones de terceros, compatibles con la máquina virtual eBPF y capaces de ejecutar programas BPF escritos para el núcleo de Linux. En la creación de tales máquinas virtuales están trabajando algunos fabricantes de adaptadores de red, que desarrollan herramientas para la aceleración de hardware de la ejecución de controladores BPF de paquetes de red. La idea es ampliar las capacidades del subsistema XDP (eXpress Data Path) para ejecutar programas BPF no solo a nivel del controlador de red, sino también en el lado de la tarjeta de red.

Por ejemplo, la empresa Netronome ha añadido soporte para BPF en el adaptador Netronome Agilio CX SmartNIC y ha proporcionado una colección de ejemplos de programas BPF universales que pueden ejecutarse no solo mediante CPU en el núcleo con cualquier controlador compatible con XDP, sino también en el lado de la tarjeta de red, lo que permite tomar decisiones sobre el descarte, modificación o redireccionamiento de paquetes sin gastar recursos de CPU. Además, se está desarrollando la tecnología XRP (eXpress Resubmission Path), que permite utilizar BPF para llevar algunas operaciones con unidades NVMe, como el manejo de índices y la agregación de datos, al nivel del controlador NVMe o a un dispositivo externo.

Se señala que una mayor adopción de tales capacidades aún se ve obstaculizada por los riesgos asociados a la falta de compatibilidad y la necesidad de rastrear el estado de eBPF en el núcleo. Debido a estos riesgos, algunos fabricantes han pospuesto la inclusión de las capacidades de aceleración de hardware BPF en sus dispositivos hasta que se establezca un estándar.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster