NetFPGA - an open network development platform Presented by: Andrew W. Moore (University of Cambridge) andrew.moore@cl.cam.ac.uk MSN2008 http://NetFPGA.org (some slides courtesy John W. Lockwood)
What is the NetFPGA? Networking Software running on a standard PC PC with NetFPGA Networking Software running on a standard PC CPU Memory PCI A hardware accelerator built with Field Programmable Gate Array driving Gigabit network links FPGA Memory 1GE NetFPGA Board
Introduction Don’t think of this as an FPGA thing, just as programmable hardware. Who uses the NetFPGA Educators Students Researchers How they use the NetFPGA To run the Router Kit To build modular reference designs IPv4 router 4-port NIC Ethernet switch, … To create new networking systems
Usage #1 How is the NetFPGA Used? User-space development, 4x1GE line-rate forwarding OSPF BGP My Protocol user kernel Routing Table CPU Memory PCI “Mirror” IPv4 Router 1GE Fwding Table Packet Buffer FPGA Memory 1GE
How to use a NetFPGA in a Network? Internet Gateway Network Servers running email and web services Network of NetFPGA Routers Gigabit Ethernet Links Clusters of PCs and Workstations accessing servers and running Peer-to-Peer applications
Building Modular Router Modules Usage #2 NetFPGA Driver PW-OSPF Verilog EDA Tools (Xilinx, Mentor, etc.) Design Simulate Synthesize Download CPU Memory Java GUI Front Panel (Extensible) PCI In Q Mgmt IP Lookup L2 Parse L3 Out Q 1GE Verilog modules interconnected by FIFO interfaces 1GE FPGA 1GE 1GE My Block Memory 1GE
(1GE MAC is soft/replaceable) Creating new systems Usage #3 NetFPGA Driver 1GE My Design (1GE MAC is soft/replaceable) Verilog EDA Tools (Xilinx, Mentor, etc.) Design Simulate Synthesize Download CPU Memory PCI 1GE FPGA 1GE 1GE Memory 1GE
Try the NetFPGA at a Tutorial http://netfpga.org/tutorials.html Next Tutorial : September 15-16, 2008 in Cambridge
NetFPGA in the Classroom Stanford University EE109 “Build an Ethernet Switch” Undergraduate Course for all EE students CS344 “Building an Internet Router” http://cs344.stanford.edu Rice University Network Systems Architecture http://comp519.cs.rice.edu University of Cambridge (starting 2009/2010) Masters Course “Building an Internet Router” based largely on the cs344 model
CS344 Milestones 1 2 3 4 5 6 Interoperability Final Project Emulated Build basic router Command Line Interface Routing Protocol (PWOSPF) Integrate with H/W Interoperability Final Project Emulated h/w in VNS Routing Table Protocols Management & CLI Exception Processing Management & CLI Management & CLI Routing Protocols Routing Protocols Innovate and add! Presentations Judges Exception Processing Exception Processing Routing Table Routing Table Emulated h/w in VNS Emulated h/w in VNS Management & CLI Routing Protocols Exception Processing software Routing Table hardware Forwarding Table Switching Learning Environment Modular design Testing Forwarding Table Switching 4-port non-learning switch 4-port learning switch IPv4 router forwarding path Integrate with S/W Interoperability
The NetFPGA.org Community http://netfpga.org/
Conclusions Reconfigurable Hardware Platforms Enable implementation of wire-speed programmable network nodes NetFPGA enables research and teaching at Network Level System level Circuit level NetFPGA available: worldwide for research and teaching
NetFPGA Platform Major Components Interfaces Memories FPGA Resources 4 Gigabit Ethernet Ports PCI Host Interface Memories 36Mbits Static RAM 512Mbits DDR2 Dynamic RAM FPGA Resources Block RAMs Configurable Logic Block (CLBs) Memory Mapped Registers
NetFPGA Hardware
NetFPGA Block Diagram