The IT industry has been taking the most demanding and rigorous standards
as the reference in order to achieve stability, a high fidelity to protocols and a proper quality
of the final product. Whilst this model may have been useful for the past, it is inevitable that
time to market becomes a crucial bottleneck when developing custom hardware for network
appliances. At this point, Network Function Virtualization (NFV) allows creating specialized
solutions with general-purpose equipment. Broadly speaking, computing is transferred from
the hardware layer to a CPU-based software.
The main objective to treat is the exploration of the use of FPGAs, and its connectivity with
the host system, as a feasible replacement for traditional hardware (switches, routers, etc.) in
multigigabit networking environment. Own developments are disclosure under a free license
as well as the underlying technologies are conscientiously tracked. From a DMA engine capable
of ensuring the data transmission with rates above 40 gigabit per second (with measured
peaks of over 50 Gbps), to the device controllers needed to interact with the system, are explained
to the reader. The final reference platform consists of a network interface card (NIC)
which involves as many virtual functions (VFs) as instantiated interfaces. The transmitted/received
information by every abstract device is processed individually, in a transparent way to
the developer, with destination/source the computer network. The key concept is known as
SR-IOV, which accompanies by a FPGA, eases the virtualization of multiple functionalities. Independently,
several instances of virtual machines may access to a VF exclusively thanks to
PCI passthrough capabilities.
The independency of the host station hardware, and the flexibility of the suggested framework,
assure the user a notorious trade-off between performance and time production. The
popular believing that high performance computing is confronted with virtualization heads
to a wrong conclusion. In particular, an environment where the data is processed at 40 Gbps
has been released. However, the subjacent virtualization support by the hardware platform
(IOMMU) is limited and, in the system to card direction, the transferences suffer a pronounced
bottleneck (10% of the performance of the native experiments) whilst this effect is palliated in
the card to system direction (over 90% of the native results).
La industria de las telecomunicaciones ha seguido estándares muy rigurosos
que aseguren la estabilidad, fidelidad al protocolo y calidad de los productos desarrollados.
Mientras que este modelo ha funcionado bien en el pasado, son inevitables unos ciclos de producción largos con un lento avance en el hardware especializado. Es en este punto, donde la
virtualización permite generar equipos especializados con elementos de propósito general. Se
traspasa parte de la computación desde un elemento puramente dedicado a la CPU del sistema
(virtualización de funciones de red, NFV) concediendo una gran dinamicidad al entorno.
El objetivo primordial es la exploración de la viabilidad del uso de FPGAs y la conectividad
con el sistema anfitrión (basado en software) como sustituto para el hardware tradicional
(switches, routers, etc.) en entornos multigigabit. Los desarrollos propios son liberados como
contribuciones de licencia libre y las tecnologías subyacentes estudiadas en amplio detalle. Se
implementa desde un motor de DMA que permita asegurar una tasa de transferencia sostenida
para enlaces de 40 gigabits por segundo (mediciones tomadas por encima de 50 Gbps),
hasta los controladores necesarios para la interacción con el dispositivo. La plataforma final de
referencia consiste en una tarjeta de red con tantas funciones virtuales como interfaces existan.
La información transmitida/recibida por cada dispositivo abstracto es tratada de manera
independiente, transparente al desarrollador, con destino/origen final/inicial la red de ordenadores.
La tecnología clave presentada para este proceso se conoce como SR-IOV, que acompañada por una única placa FPGA, facilita la simulación de múltiples periféricos dedicados.
De manera independiente, distintas instancias de máquinas virtuales son capaces de hacer un
uso exclusivo del dispositivo gracias a las capacidades de PCI passthrough, ofreciendo la falsa
sensación de disponer de un recurso para su explotación individual. La independencia de la
estación anfitriona, en cuanto a configuración hardware se refiere, y la marcada flexibilidad de
los diseños, favorecen que esta arquitectura ofrezca un buen compromiso entre rendimiento y
tiempo de puesta en mercado. Se desmiente la falsa creencia de que virtualización está reñida
con procesamiento de alto rendimiento en todos los escenarios, aunque se han localizado carencias
en el soporte por parte del hardware actual. En particular, la cantidad máxima de datos
transferibles se ve limitada y aplicaciones que hagan uso intensivo en las comunicaciones hacia
la tarjeta pueden verse gravemente afectadas (10% del rendimiento total en las pruebas
generadas) si hacen uso de la virtualización. En la dirección inversa, un rendimiento superior
al 90% ha sido probado.