13/06/2012
NetFPGA Hands-on Tutorial-Workshop
Presented by: Andrew W. Moore Paolo Costa (Cambridge University)
(Imperial College London)
Tutorial helpers: Muhummad Shahbaz, Matt Grosvenor (Cambridge University) with grateful assistance from Peter Harrison, Gareth Jones, Uli Harder (Imperial College London)
London, UK June 15th, 2012 http://NetFPGA.org LONDON – June 15th, 2012
1
Welcome Please organize into teams 2 or 3 People/computer Printed Slides are available Slides are also available online The NetFPGA machines Username: root Password: on whiteboard NetFPGA homepage http://NetFPGA.org
LONDON – June 15th, 2012
2
1
13/06/2012
Tutorial Outline •
Introduction – Motivation •
Network Review: Basics of an IP Router
•
– Demo 1: Reference Router running on the NetFPGA Exercise 1: Exploring the Reference Router
•
– Hardware : NetFPGA Platforms : 1G and 10G – Problem: Understanding buffer size requirements in a router Exercise 2: Enhancing the Reference Router
10:30 – 11:00 Coffee/Tea break
12:30 – 13:30 Lunch
– Observing and controlling the queue size – NetFPGA Community • •
•
NetThreads Altera DE4 port
– NetFPGA in the Classroom – Problem: Exploring Controlled packet-loss Exercise 3: Drop 1 in N Packets 15:00 – 15:30 Coffee/Tea break
•
Concluding Remarks – What next for you? – Group Discussion
LONDON – June 15th, 2012
3
Motivation
LONDON – June 15th, 2012
4
2
13/06/2012
NetFPGA = Networked FPGA A line-rate, flexible, open networking platform for teaching and research
LONDON – June 15th, 2012
5
NetFPGA consists of… Four elements: • NetFPGA board • Tools + reference designs
NetFPGA 1G Board
• Contributed projects • Community
LONDON – June 15th, 2012
NetFPGA 10G Board
6
3
13/06/2012
NetFPGA Board Comparison
NetFPGA 1G
NetFPGA 10G
4 x 1Gbps Ethernet Ports
4 x 10Gbps SFP+
4.5 MB ZBT SRAM 64 MB DDR2 SDRAM
27 MB QDRII-SRAM 288 MB RLDRAM-II
PCI
PCI Express x8
Virtex II-Pro 50
Virtex 5 TX240T
LONDON – June 15th, 2012
7
NetFPGA board Networking Software running on a standard PC
CPU
Memory
PCI
A hardware accelerator built with Field Programmable Gate Array driving Gigabit network links
PC with NetFPGA 1GE
FPGA
1GE 1GE
Memory
LONDON – June 15th, 2012
1GE NetFPGA Board
8
4
13/06/2012
ag Us
e#
1
Running the Router Kit User-space development, 4x1GE line-rate forwarding OSPF
BGP Memory
CPU
My Protocol user kernel
Routing Table PCI
Mirror Fwding Table
Packet Buffer
FPGA IPv4 Router Memory
LONDON – June 15th, 2012
e ag Us
#2
1GE 1GE 1GE 1GE
9
Enhancing Modular Reference Designs Verilog, System Verilog, VHDL, Bluespec…. PW-OSPF CPU
Memory
Java GUI Front Panel (Extensible)
PCI
NetFPGA Driver 1GE
FPGA
1GE 1GE
Memory
EDA Tools (Xilinx, Mentor, etc.)
1GE
L3 Parse
L2 Parse
1. Design 2. Simulate 1GE 3. In QSynthesize 4. Download Mgmt 1GE
IP Lookup
My Block
Out Q Mgmt
1GE 1GE
Verilog modules interconnected by FIFO interfaces LONDON – June 15th, 2012
10
5
13/06/2012
ag Us
e#
3
Creating new systems Verilog, System Verilog, VHDL, Bluespec….
Memory
CPU
EDA Tools (Xilinx, Mentor, etc.) 1. Design
PCI
NetFPGA 2. Driver Simulate 3. Synthesize 4. Download
1GE
FPGA
My Design
1GE 1GE
Memory
1GE
LONDON – June 15th, 2012
1GE 1GE 1GE
(1GE MAC is soft/replaceable)
1GE
11
Tools + Reference Designs 1G Tools: • Compile designs • Verify designs • Interact with hardware Reference designs: • Router (HW) • Switch (HW) • Network Interface Card (HW) • Router Kit (SW) • SCONE (SW) LONDON – June 15th, 2012
12
6
13/06/2012
Contributed Projects Project OpenFlow switch Packet generator NetFlow Probe NetThreads zFilter (Sp)router Traffic Monitor DFA
Contributor Stanford University Stanford University Brno University University of Toronto Ericsson University of Catania UMass Lowell
More projects: http://netfpga.org/foswiki/NetFPGA/OneGig/ProjectTable (pages will be refactored as we integrate NetFPGA10G) LONDON – June 15th, 2012
13
Community Wiki • Documentation – User s Guide – Developer s Guide
• Encourage users to contribute Forums • Support by users for users • Active community - 10s-100s of posts/week
LONDON – June 15th, 2012
14
7
13/06/2012
International Community Over 1,000 users, using 1,900 cards at 150 universities in 32 countries
LONDON – June 15th, 2012
15
NetFPGA’s Defining Characteristics • Line-Rate – Processes back-to-back packets • Without dropping packets • At full rate of Gigabit Ethernet Links
– Operating on packet headers • For switching, routing, and firewall rules
– And packet payloads • For content processing and intrusion prevention
• Open-source Hardware – Similar to open-source software • Full source code available • BSD-Style License
– But harder, because • Hardware modules must meeting timing • Verilog & VHDL Components have more complex interfaces • Hardware designers need high confidence in specification of modules LONDON – June 15th, 2012
16
8
13/06/2012
Test-Driven Design • Regression tests – Have repeatable results – Define the supported features – Provide clear expectation on functionality
• Example: Internet Router – Drops packets with bad IP checksum – Performs Longest Prefix Matching on destination address – Forwards IPv4 packets of length 64-1500 bytes – Generates ICMP message for packets with TTL