Creación de una SmartNIC componible de 400G: una guía paso a paso
[ad_1]
Estos bloques lógicos programables incluyen dos tipos excepcionales de memorias locales que residen junto con la lógica del chip: un archivo de registro de alta velocidad llamado LRAM y memorias de bloque llamadas BRAM, así como procesadores de señales digitales y procesadores de aprendizaje automático asociados con cada bloque. Luego, estos bloques lógicos se vinculan a todos los bloques IP protegidos perimetralmente a través de una red de malla bidimensional en chip. Esto proporciona una estructura completa para cargar una canalización de red de varias etapas que se puede componer dinámicamente y está construida a partir de uno o más flujos de bits para configurar la lógica programable.
Navegando por el proceso suave: información sobre el procesamiento de paquetes
Este suave pipeline consta de varias etapas. (Ver imagen). El primero recibe y procesa paquetes del controlador Ethernet. Luego se almacenan en caché en una cola de primero en entrar, primero en salir (FIFO) en GDDR6 hasta que el resto de la canalización esté lista para su procesamiento.
Esta fase de nuestra implementación se llama interfaz del paquete. Tiene un segundo componente que toma un búfer y lo transmite como un paquete al controlador Ethernet. Para 400 GbE, la interfaz de paquetes tiene cuatro puntos de acceso a la red (NAP) independientes en la estructura de malla del chip, lo que le permite admitir 400 Gbps en ambas direcciones.
La siguiente etapa de canalización se denomina analizador de paquetes en el lado receptor. Se alimenta de la cola FIFO, recupera paquetes de ella, separa el encabezado y luego realiza algunas transformaciones básicas en el encabezado. Luego, esto se almacena como metadatos junto con el encabezado en una tabla de flujo gigantesca para su procesamiento futuro y posible indexación.
En esta fase también se descomprimen los paquetes y protocolos de virtualización. El paquete podría pasarse a un código personalizado escrito por un integrador, un OEM o el cliente.
Gestión avanzada de flujos: GFT y Rules Engine
Este código personalizado escrito en RTL puede hacer cualquier cosa con los paquetes de red. El único límite es la cantidad de recursos físicos, lógicos y de memoria disponibles, así como la imaginación del ingeniero que construye los bloques lógicos:
- Una Tabla de Flujo Genérico (GFT) que utiliza el hash del encabezado del paquete calculado por el analizador de paquetes antes mencionado para determinar de forma "ruta rápida" si este paquete es parte de un flujo que ya ha sido visto. Si es así, registra las estadísticas y realiza la acción definida para ese paquete. El kit de desarrollo de software (SDK) con SmartNIC 400G componible incluye una herramienta para precargar el GFT con entradas de tabla al inicio y otra herramienta para recuperar las estadísticas del GFT durante el uso. Esta fase está actualmente en desarrollo y estará disponible pronto.
- Un motor de reglas para paquetes que no coinciden con una entrada en la tabla de flujo anterior se pasaría a un motor de reglas para determinar qué hacer con el primer paquete de un nuevo flujo. Una vez que una regla coincide, se crea una entrada GFT para el flujo representado por ese primer paquete y se toma la acción correspondiente. En esta arquitectura, una regla se puede probar con un paquete en cada ciclo de reloj y el motor de reglas puede procesar varios paquetes en cualquier momento dado.
- Defensa contra un ataque de denegación de servicio distribuido (DDoS), en el que se examina el encabezado y posiblemente una pequeña porción de la carga útil para determinar si se trata de uno de más de dos docenas de vectores de ataque DDoS conocidos.
- La búsqueda de cadenas a través de la carga útil de un paquete, a diferencia de la inspección profunda de paquetes, es una búsqueda simple que utiliza un conjunto finito predefinido de palabras clave para determinar si están presentes en el paquete. Esto puede ser utilizado por gobiernos que buscan amenazas terroristas o por empresas para determinar si proyectos o activos clave están siendo extraídos o discutidos con entidades externas.
- Inspección profunda de paquetes a través de reglas que potencialmente deberían aplicarse después de que el paquete pasa por el GFT anterior, en paquetes destinados a un destino específico, p. B. el complejo de CPU del host o paquetes redirigidos dirigidos a otro contenedor, VM o servidor.
Hay cientos de casos de uso posibles, desde control de acceso hasta seguridad y almacenamiento. Todo depende de lo que el cliente necesite.
El bloque lógico RTL final en una SmartNIC componible es el motor DMA. En nuestro caso, admitimos los modos de anillo y de dispersión/reunión. El modo de anillo proporciona una excelente eficiencia de PCI Express (PCIe), pero requiere una copia de la memoria del host. Scatter/Gather utiliza el bus PCIe de manera ineficiente debido a lecturas/escrituras pequeñas y fragmentadas, pero evita copiar la memoria del host.
La clave es tener ambos modos disponibles para los clientes, permitiéndoles elegir cuál se adapta mejor a las necesidades de la aplicación: el rendimiento de paquetes pequeños normalmente favorece el modo de anillo. Por el contrario, los tamaños promedio de paquetes más grandes favorecen la dispersión/reunión.
Para admitir una SmartNIC componible de 400 GbE, también necesita el SDK adecuado para el servidor. Este kit contiene el controlador de dispositivo PCIe para la tarjeta FPGA que conecta el motor DMA a los buffers de memoria del host del espacio de usuario. También incluye herramientas para editar los módulos QSFP, cargar GFT y Rules Engine, recuperar estadísticas de GFT y otras herramientas y programas de ejemplo para usar el canal componible.
Lea más artículos en TechXchange: SmartNIC acelerando el centro de datos inteligente.
[ad_2]
Deja una respuesta