2. Introducción Es apoyado por Colciencias y RENATA Entidades desarrolladoras: Universidad Pontificia Bolivariana- Bucaramanga Grupo GITEL Universidad Católica Popular del Risaralda Grupo TICs
3. El problema a solucionar En Colombia: Somos usuarios de las tecnologías de comunicaciones No somos desarrolladores de tecnologías de comunicaciones Existe un vacío en el conocimiento acerca de cómo construir equipos de Telecomunicaciones, en especial Routers y switches. Para hacer investigación de punta en Telecomunicaciones se requieren herramientas para crear prototipos. (Hasta ahora se llega hasta simulaciones y modelamiento matemático)
4. Objetivo del proyecto Construir una herramienta de pruebas que permita crear nuevos mecanismos de tratamiento de los paquetes en los Routers de Internet. Esta herramienta podrá ser operada de forma remota a través de una interfaz web soportada en la infraestructura de RENATA.
5. Estado del Arte Existen dos importantes proyectos en el mundo: Universidad Standford (NetFPGAcard) Universidad de Washington (Open Network Laboratory)
7. Universidad de Stanford: tarjeta NetFPGA Conector PCI: bus estándar de 32 bits, 33Mhz. Esto permite conectar la tarjeta a un PC. 4 Interfaces GbitEthernet (1Gbps) Un chip FPGA Virtex-2 4 bancos de memoria SRAM y DRAM
8. Nuestro objetivo: Desarrollar una herramienta con la tarjeta NetFPGA para investigación y enseñanza en el área de Routers y switches. Desarrollar un sistema remoto para acceder al Router y hacer pruebas a distancia mediante la infraestructura de RENATA.
11. Características de un RouterNetFPGA 4 puertos Gigabit Ethernet Completamente “Programable” (Hardware con FPGAs) Bajo costo Hardware FPGA open source: Diseño basado en Verilog Software Open-source: Drivers en C y C++
12. Características de la tarjeta NetFPGA Conector PCI: bus estándar de 32 bits, 33Mhz. Esto permite conectar la tarjeta a un PC. 4 Interfaces GbitEthernet (1Gbps) Un chip FPGA Virtex-2 4 bancos de memoria SRAM y DRAM
15. Dos SRAM externas de 18Mbits, organizadas en una configuración de 512Kx36 bits (capacidad total 4.5 Mbytes). Operan de forma síncrona con la FPGA a 125Mhz.
16. Un banco externo de SDRAM DDR2 organizado en una configuración de 26Mx32 bits (Capacidad total: 64MBytes). Usando ambos flancos de un reloj separado de 200Mhz, la memoria tiene un ancho de banda de 400MWords/s (1600 Mbytes/s ó 12800 Mbps)
17. Transceptores Broadcom BCM5464SR a Gbps, usando cables UTP categorías 5, 5E o 6. Hay un softcore en la FPGA que es un controlador MAC Ethernet para las 4 interfaces físicas.
18.
19. Librerías re-utilizables (NFPs) NetFPGA permite descargar de la página principal (www.netfpga.org) diferentes bloques ya construidos (Hardware y Software) con funciones de Networking (NFP- NetFPGAPackages)
20. Contenido de las NFPs Se divide en tres partes: Gateware (Verilog) Software del Sistema Software para pruebas de regresión Las NFPs incluyen: 1 IPv4 Router, 1 four-port NIC, 1 IPv4 Router with Output Queues Monitoring System, the PW-OSPF software that interacts with the IPv4 Router (SCONE), and the Router Kit which is a daemon that reflects the routing table and ARP cache from the Linux host to the IPv4 router on NetFPGA.
21. Opciones de uso de NetFPGA Se pueden descargar las librerías del Router básico e instalarlas directamente en la tarjeta NetFPGA. Las modificaciones se hacen en el software del PC para construir protocolos. Se puede descargar el Router básico en la tarjeta NetFPGA y agregar módulos de extensión a la misma (módulos Hardware). Construir un nuevo router con librerías construidas por el usuario-diseñador.
22. Uso de NetFPGA: Primera opción Se descarga e instala un Router IPv4 en la tarjeta NetFPGA. El Host Linux utiliza el Software “Router Kit” distribuido con la NFP. Router Kit: Es un daemon de Linux Hace un espejo de las tablas de enrutamiento y tablas de ARP del Host en la tarjeta NetFPGA. Esto permite hacer procesamiento a velocidad de línea en la NetFPGA El usuario puede modificar los programas en Linux para hacer nuevos protocolos y probarlos.
23. OSPF BGP My Protocol user kernel Routing Table “Mirror” 1GE FPGA Fwding Table Packet Buffer 1GE 1GE 1GE 1GE IPv4 Router 1GE Memory 1GE 1GE Running the Router KitUser-space development, 4x1GE line-rate forwarding Usage #1 CPU Memory PCI
24. Uso de NetFPGA: Segunda Opción Descargar y utilizar el hardware original provisto por la NFP Modificar el hardware agregando módulos extraídos de otras NFPs o agregando nuevos módulos propios. Compilar el código fuente en Verilog con las herramientas estándares Descargar el bitfile a la FPGA El nuevo hardware puede complementarse agregando nuevo software al Host o modificando el existente. Ejemplos: En el Router IPv4, implementar TrieLongestPrefix Match (LPM) Lookup en lugar del existente CAM LPM Lookup, para la tabla de enrutamiento del hardware. Modificar el Router IPv4 para implementar NAT (Network AddressTranslation) o un Firewall.
25. Verilog EDA Tools (Xilinx, Mentor, etc.) NetFPGA Driver Design Simulate Synthesize Download 1GE In Q Mgmt L2 Parse L3 Parse 1GE 1GE IP Lookup Out Q Mgmt 1GE Verilog modules interconnected by FIFO interfaces Enhancing Modular Reference Designs Usage #2 PW-OSPF CPU Memory Java GUI Front Panel (Extensible) PCI 1GE FPGA 1GE 1GE My Block Memory 1GE
26. Uso de NetFPGA: Tercera opción Construir un nuevo router con librerías construidas por el usuario-diseñador
27. Verilog EDA Tools (Xilinx, Mentor, etc.) Design Simulate Synthesize Download NetFPGA Driver 1GE My Design (1GE MAC is soft/replaceable) 1GE 1GE 1GE Creating new systems Usage #3 CPU Memory PCI 1GE FPGA 1GE 1GE Memory 1GE
28. Ejemplo: Router Básico 5 fases: Entrada Arbitraje de entrada Decisión de enrutamiento y modificación de paquetes Encolamiento de salida Salida
29. Ejemplo: Router Ampliado Nuevos módulos: Limitación de tasas de bits Retardos Captura de eventos