NetFPGA Tsinghua Tutorial May 15 -16 2010 1 S T A N F O R D U N I V E R S I T Y NetFPGA Tutorial Tsinghua University – Day 2 Presented by: James Hongyi.

Slides:



Advertisements
Similar presentations
IP Router Architectures. Outline Basic IP Router Functionalities IP Router Architectures.
Advertisements

Michaelmas 2009Building an Internet Router (P33)Handout 1 1 Building an Internet Router (P33) Handout 1: What’s a router? Class project and logistics Dr.
NetFPGA Project: 4-Port Layer 2/3 Switch Ankur Singla Gene Juknevicius
Berlin – November 10th, 2011 NetFPGA Programmable Networking for High-Speed Network Prototypes, Research and Teaching Presented by: Andrew W. Moore (University.
OpenFlow overview Joint Techs Baton Rouge. Classic Ethernet Originally a true broadcast medium Each end-system network interface card (NIC) received every.
An Overview of Software-Defined Network Presenter: Xitao Wen.
OpenFlow Costin Raiciu Using slides from Brandon Heller and Nick McKeown.
OpenFlow : Enabling Innovation in Campus Networks SIGCOMM 2008 Nick McKeown, Tom Anderson, et el. Stanford University California, USA Presented.
Router Architecture : Building high-performance routers Ian Pratt
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) SriramGopinath( )
Lab 4: Simple Router CS144 Lab 4 Screencast May 2, 2008 Ben Nham Based on slides by Clay Collier and Martin Casado.
Customizing Virtual Networks with Partial FPGA Reconfiguration
Introduction to Management Information Systems Chapter 5 Data Communications and Internet Technology HTM 304 Fall 07.
Chapter 3 Review of Protocols And Packet Formats
An Overview of Software-Defined Network
Cuenca, Ecuador – November 7, NetFPGA Informational Tutorial Presented by: Adam Covington (Stanford University) César Guerrero (Universidad Autónoma.
CS 838: NetFPGA Tutorial Theophilus Benson.
An Overview of Software-Defined Network Presenter: Xitao Wen.
Garrett Drown Tianyi Xing Group #4 CSE548 – Advanced Computer Network Security.
QualNet 2014/05/ 尉遲仲涵. Outline Directory Structure QualNet Basic Message & Event QualNet simulation architecture Protocol Model Programming.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Sponsored by the National Science Foundation A Virtual Computer Networking Lab Mike Zink, Max Ott, Jeannie Albrecht GEC 23, June 16 th 2015.
Aug 20 th, 2002 Sigcomm Education Workshop 1 Teaching tools for a network infrastructure teaching lab The Virtual Router and NetFPGA Sigcomm Education.
Paper Review Building a Robust Software-based Router Using Network Processors.
NetFPGA: Reusable Router Architecture for Experimental Research Jad Naous, Glen Gibb, Sara Bolouki, and Nick Presented.
Information-Centric Networks10b-1 Week 13 / Paper 1 OpenFlow: enabling innovation in campus networks –Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru.
Crete Tutorial – September 16-17, NetFPGA Workshop Day 2 Presented by: Hosted by: Manolis Katevenis at FORTH, Crete September , 2010
OpenFlow: Enabling Technology Transfer to Networking Industry Nikhil Handigol Nikhil Handigol Cisco Nerd.
PA3: Router Junxian (Jim) Huang EECS 489 W11 /
Hands-on Training – June 18-19, NetFPGA Hands-on Training Day 2 Presented by: Adam Covington (Stanford University) Indiana University, Bloomington.
OpenFlow: Enabling Innovation in Campus Networks
Jon Turner, John DeHart, Fred Kuhns Computer Science & Engineering Washington University Wide Area OpenFlow Demonstration.
Hands-on Training – June 18-19, NetFPGA Hands-on Training Day 1 Presented by: Adam Covington (Stanford University) Indiana University, Bloomington.
Internet Addresses. Universal Identifiers Universal Communication Service - Communication system which allows any host to communicate with any other host.
NetFPGA Cambridge Spring School Mar Day 2: NetFPGA Cambridge Spring School Module Development and Testing Presented by: Andrew W. Moore and.
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) Sriram Gopinath( )
The Layered Protocol Wrappers 1 Florian Braun, Henry Fu The Layered Protocol Wrappers: A Solution to Streamline Networking Functions to Process ATM Cells,
IP Forwarding.
Applied research laboratory David E. Taylor Users Guide: Fast IP Lookup (FIPL) in the FPX Gigabit Kits Workshop 1/2002.
NETWORKING COMPONENTS AN OVERVIEW OF COMMONLY USED HARDWARE Christopher Johnson LTEC 4550.
NetFPGA Cambridge Workshop Sep Day 2: NetFPGA Cambridge Workshop Module Development and Testing Presented by: Andrew W. Moore and David Miller.
CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 4 : Demonstration of Machine Problem 1 : CAM-based Firewall Washington.
Othman Othman M.M., Koji Okamura Kyushu University 1.
Extensible Networking Platform Lockwood / Zuver - Applied Research Laboratory -- Extensible Networking Development of a System-On-Chip Extensible.
Agilent Technologies Copyright 1999 H7211A+221 v Capture Filters, Logging, and Subnets: Module Objectives Create capture filters that control whether.
4/19/20021 TCPSplitter: A Reconfigurable Hardware Based TCP Flow Monitor David V. Schuehler.
Hot Interconnects TCP-Splitter: A Reconfigurable Hardware Based TCP/IP Flow Monitor David V. Schuehler
Field Programmable Port Extender (FPX) 1 NCHARGE: Remote Management of the Field Programmable Port Extender (FPX) Todd Sproull Washington University, Applied.
Information-Centric Networks Section # 13.2: Alternatives Instructor: George Xylomenos Department: Informatics.
OpenFlow MPLS and the Open Source Label Switched Router Department of Computer Science and Information Engineering, National Cheng Kung University, Tainan,
1 CSE 5346 Spring Network Simulator Project.
Introduction to Mininet, Open vSwitch, and POX
Packet Switch Architectures The following are (sometimes modified and rearranged slides) from an ACM Sigcomm 99 Tutorial by Nick McKeown and Balaji Prabhakar,
Field Programmable Port Extender (FPX) 1 Remote Management of the Field Programmable Port Extender (FPX) Todd Sproull Washington University, Applied Research.
October S T A N F O R D U N I V E R S I T Y A Quick Update for GENI Engineering Conference (GEC3) - Oct 30, 2008 John W. Lockwood and the NetFPGA.
InterVLAN Routing 1. InterVLAN Routing 2. Multilayer Switching.
Layered Architectures
Chapter 6: Network Layer
Reference Router on NetFPGA 1G
Informational Tutorial
The Stanford Clean Slate Program
A Quick Update for GENI Engineering Conference (GEC3) - Oct 30, 2008
Dynamic Packet-filtering in High-speed Networks Using NetFPGAs
Remote Management of the Field Programmable Port Extender (FPX)
After the Spring School…
Implementing an OpenFlow Switch on the NetFPGA platform
Reference Router on NetFPGA 1G
NetFPGA - an open network development platform
SPINE: Surveillance protection in the network Elements
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y NetFPGA Tutorial Tsinghua University – Day 2 Presented by: James Hongyi Zeng (Stanford University) Joshua Lu (Xilinx China) Beijing, China May ,

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Outline Tree Structure Develop a cryptography module –Quick overview of XOR “cryptography” –Implement crypto module –Write software simulations –Synthesize –Write hardware tests

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Tree Structure NF2 bin lib projects bitfiles (scripts for running simulations and setting up the environment) (contains the bitfiles for all projects that have been synthesized) (stable common modules and common parts needed for simulation/synthesis/design) (user projects, including reference designs)

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Tree Structure (2) lib C java Makefiles Perl5 python scripts verilog (common software and code for reference designs) (contains software for the graphical user interface) (makefiles for simulation and synthesis) (common libraries to interact with reference designs and aid in simulation) (common libraries to aid in regression tests) (scripts for common functions) (modules and files that can be reused for design)

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Tree Structure (3) projects doc include regress src sw synth verif (project specific documentation) (contains file to include verilog modules from lib, and creates project specific register defines files) (regression tests used to test generated bitfiles) (contains non-library verilog code used for synthesis and simulation) (all software parts of the project) (contains user.xco files to generate cores and Makefile to implement the design) (simulation tests)

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Cryptography Simple cryptography – XOR ABA ^ B

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Cryptography (cont.) Example: Explanation: –A ^ A = 0 –So, M ^ K ^ K = M ^ 0 = M Message: Key: Message ^ Key: Message ^ Key ^ Key:

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Implementing a Crypto Module (1) What do we want to encrypt? –IP payload only Plaintext IP header allows routing Content is hidden –Encrypt bytes 35 onward Bytes 1-14 – Ethernet header Bytes – IPv4 header (assume no options) –Assume all packets are IPv4 for simplicity

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Implementing a Crypto Module (2) State machine (draw on next page): –Module headers on each packet –Datapath 64-bits wide 34 / 8 is not an integer!  Inside the crypto module

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Crypto Module State Diagram Hint: We suggest 4 states (or 3 if you’re feeling adventurous) Skip Module Headers

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y State Diagram to Verilog (1) Module location 1.Crypto module to encrypt and decrypt packets MAC RxQ MAC RxQ CPU RxQ CPU RxQ MAC RxQ MAC RxQ CPU RxQ CPU RxQ MAC RxQ MAC RxQ CPU RxQ CPU RxQ MAC RxQ MAC RxQ CPU RxQ CPU RxQ Input Arbiter Output Port Lookup MAC TxQ MAC TxQ CPU TxQ CPU TxQ MAC TxQ MAC TxQ CPU TxQ CPU TxQ MAC TxQ MAC TxQ CPU TxQ CPU TxQ MAC TxQ MAC TxQ CPU TxQ CPU TxQ Output Queues Crypto

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Inter-module Communication data ctrl wr rdy

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y State Diagram to Verilog (2) Projects: –Each design represented by a project Format: NF2/projects/ –NF2/projects/crypto_nic –Consists of: –Missing: Verilog source Simulation tests Hardware tests Libraries Optional software State diagram implementation Simulation tests Regression tests

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y State Diagram to Verilog (3) Projects (cont): –Pull in modules from NF2/lib/verilog Generic modules that are re-used in multiple projects Specify shared modules in project’s include/lib_modules.txt –Local src modules override shared modules –crypto_nic: Local user_data_path.v, crypto.v Everything else: shared modules

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y State Diagram to Verilog (4) Your task: 1.Copy NF2/lib/verilog/module_template/src/module_template.v to NF2/projects/crypto_nic/src/crypto.v 2.Implement your state diagram in src/crypto.v –Small fallthrough FIFO –Generic register interface –Registers to be used defined in include/crypto_defines.v

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Generic Registers Module generic_regs # (.UDP_REG_SRC_WIDTH (UDP_REG_SRC_WIDTH),.TAG (`CRYPTO_BLOCK_TAG),.REG_ADDR_WIDTH (`CRYPTO_REG_ADDR_WIDTH),.NUM_COUNTERS (0),.NUM_SOFTWARE_REGS (1),.NUM_HARDWARE_REGS (0)) crypto_regs (.reg_req_in (reg_req_in), ….reg_src_out (reg_src_out), ….software_regs (key),.hardware_regs (), …

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y First Break (While writing Verilog modules)

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Testing: Simulation (1) Simulation allows testing without requiring lengthy synthesis process NetFPGA provides Perl simulation infrastructure to: –Send/receive packets Physical ports and CPU –Read/write registers –Verify results Simulations run in ModelSim/VCS

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Testing: Simulation (2) Simulations located in project/verif Multiple simulations per project –Test different features Example: –crypto_nic/verif/test_nic_short Send one packet from CPU, expect packet out physical port Send one packet in physical port, expect packet to CPU

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Testing: Simulation (3) Useful functions: –nf_PCI_read32(delay, batch, addr, expect) –nf_PCI_write32(delay, batch, addr, value) –nf_packet_in(port, length, delay, batch, pkt) –nf_expected_packet(port, length, pkt) –nf_dma_data_in(length, delay, port, pkt) –nf_expected_dma_data(port, length, pkt) –make_IP_pkt(length, da, sa, ttl, dst_ip, src_ip) –encrypt_pkt(key, pkt) –decrypt_pkt(key, pkt)

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Testing: Simulation (4) Your task: 1.Template files NF2/projects/crypto_nic/verif/test_crypto_encrypt/make_pkts.pl NF2/projects/crypto_nic/verif/test_crypto_decrypt/make_pkts.pl 2.Implement your Perl verif tests –Use the example verif test (test_nic_short )

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Running Simulations Use command nf21_run_test.pl –Optional parameters --major --minor --gui (starts the default viewing environment) test_crypto_encrypt Set env. variables to reference your project NF2_DESIGN_DIR=/root/NF2/projects/ PERL5LIB=/root/NF2/projects/ /lib/Perl5: /root/NF2/lib/Perl5: majorminor

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Running Simulations When running modelsim interactively: –Click "no" when simulator prompts to finish –Changes to code can be recompiled without quitting ModelSim: bash# cd /tmp/$(whoami)/verif/ ; make model_sim VSIM 5> restart -f; run -a –Do ensure $NF2_DESIGN_DIR is correct

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Synthesis To synthesize your project –Run make in the synth directory (NF2/projects/crypto_nic/synth)

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Second Break (while hardware compiles)

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Regression Tests Test hardware module Perl Infrastructure provided to –Read/Write registers –Read/Write tables –Send Packets –Check Counters

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Example Regression Tests Reference Router –Send Packets from CPU –Longest Prefix Matching –Longest Prefix Matching Misses –Packets dropped when queues overflow –Receiving Packets with IP TTL <= 1 –Receiving Packets with IP options or non IPv4 –Packet Forwarding –Dropping packets with bad IP Checksum

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Perl Libraries Specify the Interfaces –eth1, eth2, nf2c0 … nf2c3 Start packet capture on Interfaces Create Packets –MAC header –IP header –PDU Read/Write Registers Read/Write Reference Router tables –Longest Prefix Match –ARP –Destination IP Filter

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Regression Test Examples Reference Router –Packet Forwarding regress/test_packet_forwarding –Longest Prefix Match regress/test_lpm –Send and Receive regress/test_send_rec

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Creating a Regression Test Useful functions: –nftest_regwrite(interface, addr, value) –nftest_regread(interface, addr) –nftest_send(interface, frame) –nftest_expect(interface, frame) –encrypt_pkt(key, pkt) –decrypt_pkt(key, pkt) –$pkt = NF2::IP_pkt->new(len => $length, DA => $DA, SA => $SA, ttl => $TTL, dst_ip => $dst_ip, src_ip => $src_ip);

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Creating a Regression Test (2) Your task: 1.Template files NF2/projects/crypto_nic/regress/test_crypto_encrypt/run 2.Implement your Perl verif tests

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Running Regression Test Run the command nf2_regress_test.pl --project crypto_nic

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Third Break (while testing hardware)

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y The New 2.0 Release Modular Registers –Simplifies integration of multiple modules Many users control NetFPGAs from software –Register set joined together at build time Project specifies registers in XML list Packet Buffering in DRAM –Supports Deep buffering Single 64MByte queue in DDR2 memory Programmable Packet Encapsulation –Packet-in-packet encapsulation Enables tunnels between OpenFlowSwitch nodes

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y NetFPGA.org

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Project Ideas for the NetFPGA IPv6 Router (in high demand) TCP Traffic Generator Valiant Load Balancing Graphical User Interface (like CLACK) MAC-in-MAC Encapsulation Encryption / Decryption modules RCP Transport Protocol Packet Filtering ( Firewall, IDS, IDP ) TCP Offload Engine DRAM Packet Queues 8-Port Switch using SATA Bridge Build our own MAC (from source, rather than core) Use XML for Register Definitions

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y NetFPGA Designs Project (Title & Summary)BaseStatusOrganizationDocs. IPv4 Reference Router2.0FunctionalStanford UniversityGuide Quad-Port Gigabit NIC2.0FunctionalStanford UniversityGuide Ethernet Switch2.0FunctionalStanford UniversityGuide Hardware-Accelerated Linux Router2.0FunctionalStanford UniversityGuide Packet Generator2.0FunctionalStanford UniversityWiki OpenFlow Switch2.0FunctionalStanford UniversityWiki DRAM-Router2.0FunctionalStanford UniversityWiki NetFlow Probe1.2FunctionalBrno UniversityWiki AirFPGA2.0FunctionalStanford UniversityWiki Fast Reroute & Multipath Router2.0FunctionalStanford UniversityWiki NetThreads1.2.5FunctionalUniversity of TorontoWiki URL Extraction2.0FunctionalUniv. of New South WalesWiki zFilter Sprouter (Pub/Sub)1.2FunctionalEricssonWiki Windows Driver2.0FunctionalMicrosoft ResearchWiki IP Lookup w/Blooming Tree1.2.5In ProgressUniversity of PisaWiki DFA2.0In ProgressUMass LowellWiki G/PaX ?.?In ProgressXilinxWiki Precise Traffic Generator1.2.5In ProgressUniversity of TorontoWiki Open Network Lab2.0In ProgressWashington UniversityWiki KOREN Testbed ?.?In ProgressChungnam-KoreaWiki RED2.0In ProgressStanford UniversityWiki Virtual Data Plane1.2In ProgressGeorgia TechWiki Precise Time Protocol (PTP)2.0In ProgressStanford UniversityWiki Deficit Round Robin (DRR)1.2RepackageStanford UniversityWiki.. And more on

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Group Discussion Your plans for using the NetFPGA –Teaching –Research –Other Resources needed for your class –Source code –Courseware –Examples Your plans to contribute –Expertise –Capabilities –Collaboration Opportunities

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y NetFPGA Developers Workshops You already know that the NetFPGA implements a Gigabit NIC, a hardware-accelerated Internet router, a traffic generator, an OpenFlow switch, a NetFlow probe and more. What else can it do? We invite you to contribute a NetFPGA project and present your work at a NetFPGA workshop NetFPGA Events: – Locations: –USA (Stanford, California) –Europe (UK) –Asia (Korea) Format –Presentations –Demonstrations Example – “What can you built with your NetFPGA?”

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y The contest is split into two challenges. Teams can participate in either or both challenges. Design challenges will be posted on the start date of the contest. The design teams have 120 days to produce a working implementation employing any HW and SW design methodology and targeting the NetFPGA development platform. Dates –Contest starts on Feb 9th 2010 –Contest ends on June 1st Challenge 1: The Best Network Tester/Packet Capture system –There are a small number of very expensive packet generator and capture systems on the market, used for testing networks and network equipment. The goal of this design is to provide a usable, powerful and open-source alternative for use by universities and organizations unable to afford such expensive equipment. Challenge 2: The Best Overall Network System Design –The goal is to design and implement a novel design on the NetFPGA system. Use your imagination to devise a new use case for the NetFPGA. We are looking for solutions utilizing the NetFPGA cards that perform significant networking functionality. Rules and more Information – NetFPGA Design Contest

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Thoughts for Developers Build Modular components –Describe shared registers (as per 2.0 release) –Consider how modules would be used in larger systems Define functionality clearly –Through regression tests –With repeatable results Disseminate projects –Post open-source code –Document projects on Web, Wiki Expand the community of developers –Answer questions in the Discussion Forum –Collaborate with your peers to build new applications

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Visit

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Join the NetFPGA.org Community Log into the Wiki Access the Beta code Join the netfpga-beta mailing list Join the discussion forum

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Contribute to the Project Search for related work List your project on the Wiki Link your project homepage

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Survey How did you like this this tutorial? –What did you find useful? –What should be improved? –What should be removed? –What should be added? Can we post the video from this event? –If not, please let us know. Complete On-line survey –

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Acknowledgments NetFPGA Team at Stanford University (Past and Present): Nick McKeown, Glen Gibb, Jad Naous, David Erickson, G. Adam Covington, John W. Lockwood, Jianying Luo, Brandon Heller, Paul Hartke, Neda Beheshti, Sara Bolouki, James Zeng, Jonathan Ellithorpe, Sachidanandan Sambandan

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Special thanks to: Other NetFPGA Tutorials Presented At: SIGMETRICS Patrick Lysaght, Veena Kumar, Paul Hartke, Anna Acevedo Xilinx University Program (XUP) See:

NetFPGA Tsinghua Tutorial May S T A N F O R D U N I V E R S I T Y Acknowledgments Support for the NetFPGA project has been provided by the following companies and institutions Disclaimer: Any opinions, findings, conclusions, or recommendations expressed in these materials do not necessarily reflect the views of the National Science Foundation or of any other sponsors supporting this project.