[en] The main goal of this project is to create an application capable to simulate the behavior of a 10 Gpbs network in order to test equipment which is connected to a network at these speeds. The possibility to have simulation or emulation tools for real network traffic is useful to check the use of new protocols or equipments in an environment that may resemble conditions that supports a real network. Currently there are software tools running on general-purpose hardware that can emulate the traffic such as the well-known Netem [Lin15] tool. This tool is widely used in low-speed (up to Gbps) but has serious limitations when line rates are increased (multi-Gbps) and when internal delay are below the microseconds. The solution to support high line rates with low latency is using dedicated hardware instead of software running on an operating system. For cost and flexibility reasons the solution is the use of reconfigurable circuits like FPGA (Field Programmable Gates Array) [Qui15] providing nanoseconds precition and multiGpbs rates. The hardware solution based on FPGAs boards guarantees both speed and low latency but traditional programming based on hardware description languages (HDL) such as VHDL or Verilog is costly in terms of effort and development time. To mitigate the development cost, have appeared on the market approaches based on high level language which leads to the notion High Leven Synthesis (HLS). Specifically this project will create a functional model of Netem application using High Level Languages (HLL), specifically synthesized with Vivado-HLS [Xil15a] tool targeting to use in FPGAs boards. The system is able of receiving packets at 10 Gbps, associating a pseudorandom delay and loss rate packets generated outbound traffic in order to emulate a packet network.

[es] El objetivo de este proyecto es crear una aplicación capaz de simular el comportamiento de una red de 10 Gbps con el objetivo de testar equipamiento que se conecta a una red a estas velocidades. Disponer de herramientas de simulación o emulación del tráfico real de red es de gran utilidad para poder comprobar o verificar el uso de nuevos protocolos y equipos en un entorno que pueda parecerse a las condiciones que soporta una red real. Actualmente existen herramientas Software ejecutándose sobre hardware de propósito general que pueden emular el tráfico como es el caso de la conocida herramienta Netem [Lin15]. Esta herramienta es ampliamente utilizada en entornos de baja velocidad (hasta un Gbps) pero tienen serias limitaciones cuando las tasas de línea se incrementan (multi-Gbps) y se quiere tener precisiones internas que estén por debajo del microsegundos. La solución para soportar altas tasas de línea con bajas latencias prescindiendo de software corriendo sobre un sistema operativo es realizar una solución hardware. Por cuestiones de coste de desarrollo y flexibilidad la solución es el uso de circuitos reconfigurables tipo FPGAs (Field Programmable Gates Arrays) [Qui15] que brindan precisiones del orden de nanosegundos y tasas de multiGpbs. La solución HW basado en tarjetas de FPGAs garantiza tanto alta velocidad como baja latencia pero la programación tradicional basada en lenguajes de descripción de hardware (HDL – Hardware Description Languajes) como VHDL o Verilog es sumamente costosa en términos de esfuerzo y tiempo de desarrollo. Para mitigar el esfuerzo de desarrollo han aparecido en el mercado aproximaciones basadas en lenguaje de alto nivel lo que deriva en la noción de síntesis de circuitos desde alto nivel (HLS – High Level Synthesis). Concretamente este proyecto creará un modelo funcional con características reducidas de la aplicación Netem utilizando lenguajes de alto nivel, concretamente se sintetiza con la herramienta Vivado-HLS [Xil15a], para ser utilizado en tarjetas basadas en dispositivos FPGAs. El sistema es capaz de recibir paquetes a 10Gbps, asociarles un retardo pseudoaleatorio y una tasa de pérdida de paquetes generando el tráfico de salida con el objeto de emular una red de paquetes.