La empresa Intel ha lanzado una herramienta que permite crear aplicaciones personalizadas para el procesamiento de paquetes en los conmutadores Ethernet programables de la serie Tofino. Bajo la licencia Apache 2.0 se ha publicado el código fuente del backend para el compilador p4c y de los componentes del entorno de desarrollo Intel P4 Studio, como controladores, modelo de simulación del conmutador, servidor y cliente para el protocolo BF Runtime. Para la creación de aplicaciones, se utiliza el lenguaje de programación orientado a dominios P4 (Programming Protocol-independent Packet Processors), que está destinado a definir la lógica de procesamiento de paquetes en dispositivos de red, como tarjetas de red, conmutadores, routers y cortafuegos.
El backend publicado permite traducir programas en P4 a una representación adecuada para su instalación en los conmutadores de la serie Intel Tofino. Gracias a esto, los usuarios de los conmutadores pueden crear aplicaciones que amplían la funcionalidad básica, alteran la lógica operativa o adaptan el dispositivo a las especificidades de sus redes.
Los programas en P4 se compilan en representaciones para plataformas de destino, que pueden ser tanto hardware (FPGA, ASIC programables) como software (x86, BPF). Junto con el código para su instalación en los sistemas de destino, el compilador genera un runtime para gestionar la aplicación utilizando protocolos Protobuf/gRPC y la API P4Runtime.
La lógica típica de funcionamiento de los programas se reduce a clasificar paquetes por sus encabezados y ejecutar acciones sobre paquetes entrantes, como redirección, rechazo, modificación de TTL y reemplazo de campos. El lenguaje no está atado a protocolos de red y, en lugar de ofrecer soporte incorporado para protocolos típicos como IP, Ethernet, TCP y VxLAN, brinda a los desarrolladores la posibilidad de definir cualquier protocolo en relación con las aplicaciones compiladas (el desarrollador adjunta una descripción de los formatos de encabezado y campos del protocolo).

Además del backend publicado para los conmutadores Intel Tofino, el proyecto P4 proporciona un backend para compilar aplicaciones P4 en código en lenguaje C, que luego puede ser compilado en un formato adecuado para la ejecución en una máquina virtual eBPF dentro del núcleo de Linux. El proyecto también está desarrollando un simulador de conmutador abierto que se puede utilizar para experimentar en la red virtual Mininet, así como un backend para compilar programas P4 para el simulador.
Fuente: opennet.ru
