27
NetFPGA: Reusable Router Architecture for Experimental Research Jad Naous, Glen Gibb, Sara Bolouki, and Nick McKeown @stanford.edu 2008. 09. 24 Presented by Jaeryong Hwang SIGCOMM PRESTO Workshop 2008

NetFPGA: Reusable Router Architecture for Experimental Research

  • Upload
    alexis

  • View
    48

  • Download
    0

Embed Size (px)

DESCRIPTION

SIGCOMM PRESTO Workshop 2008. NetFPGA: Reusable Router Architecture for Experimental Research. Jad Naous, Glen Gibb, Sara Bolouki, and Nick McKeown @stanford.edu. 2008. 09. 24 Presented by Jaeryong Hwang. Software & hardware re-use Obstacles of re-using hardware - PowerPoint PPT Presentation

Citation preview

Page 1: NetFPGA: Reusable Router Architecture for Experimental Research

NetFPGA: Reusable Router Architecture for Experimental Research

Jad Naous, Glen Gibb, Sara Bolouki, and Nick McKeown @stanford.edu

2008. 09. 24Presented by Jaeryong Hwang

SIGCOMM PRESTO Workshop 2008

Page 2: NetFPGA: Reusable Router Architecture for Experimental Research

Introduction

Software & hardware re-use

Obstacles of re-using hardware Dependencies of the particular design No underlying unifying operating system

vs

What is the open-source re-usable hardware?

Need to make FPGA based hardware design Need to make FPGA based hardware design more re-usable for network researchers more re-usable for network researchers

Field Programmable Gate Array

Page 3: NetFPGA: Reusable Router Architecture for Experimental Research

FPGAFPGA

MemoryMemory

1GE1GE

1GE1GE

1GE1GE

1GE1GE

PCI

CPUCPU MemoryMemory

NetFPGA Board

PC with NetFPGA

NetworkingSoftware

running on a standard PC

A hardware accelerator

built with FPGAdriving Gigabit network links

What is NetFPGA?

Page 4: NetFPGA: Reusable Router Architecture for Experimental Research

Who, How, Why

Who uses the NetFPGA? Teachers Students Researchers

How do they use the NetFPGA? To run the Router Kit To build modular reference designs

IPv4 router 4-port NIC Ethernet switch, …

Why do they use the NetFPGA? To measure performance of Internet systems To prototype new networking systems

Page 5: NetFPGA: Reusable Router Architecture for Experimental Research

Outline

NetFPGA Components

Pipeline Interface Details

Usage Example: IPv4 Router

Page 6: NetFPGA: Reusable Router Architecture for Experimental Research

FPGAFPGA

MemoryMemory

1GE1GE

1GE1GE

1GE1GE

1GE1GE

NetFPGA Components

PCI

CPUCPU MemoryMemory

NetFPGA DriverNetFPGA Driver

In QMgmtIn Q

Mgmt

IPLookup

IPLookup

L2Parse

L2Parse

L3Parse

L3Parse

Out QMgmtOut QMgmt

1GE1GE

1GE1GE

1GE1GE

1GE1GE

Verilog modules interconnected by FIFO interfaces

MyBlock

MyBlock

VerilogEDA Tools

(Xilinx, Mentor, etc.)

VerilogEDA Tools

(Xilinx, Mentor, etc.)

1. Design2. Simulate

3. Synthesize4. Download

1. Design2. Simulate

3. Synthesize4. Download

Page 7: NetFPGA: Reusable Router Architecture for Experimental Research

NetFPGA System

User Space

Linux Kernel

NIC

GE

PCI-ePCI

Browser& VideoClient

MonitorSoftware

GE

GE

GE

GE

GE

CADTools

NetFPGA RouterHardware

VI

VI

VI

VI

Packet Forwarding Table

(eth1 .. 2)(nf2c0 .. 3)

Web &VideoServer

Page 8: NetFPGA: Reusable Router Architecture for Experimental Research

Example of NetFPGA System

NetFPGA

Video Client

NetFPGA NetFPGA

Video Server

Page 9: NetFPGA: Reusable Router Architecture for Experimental Research

IPv4 Router

Reference router pipeline Five stages

Input Input arbitration Routing decision and packet modification Output queuing Output

Packet-based module interface

Pluggable design

Usage Examples

Page 10: NetFPGA: Reusable Router Architecture for Experimental Research

Inter-Module Communication

Using “Module Headers”:

IP Hdr

Eth Hdr

0

0

0

Last word of packet0x10

Last Module Hdry

……

Module Hdrx Contain information such as packet length,

input port, output port, …

Data Word(64 bits)

Ctrl Word(8 bits)

Usage Examples/IPv4 Router

Page 11: NetFPGA: Reusable Router Architecture for Experimental Research

Inter-Module Communication

datadata

ctrlctrlwrwrrdyrdy

Usage Examples/IPv4 Router

Page 12: NetFPGA: Reusable Router Architecture for Experimental Research

MAC Rx QueueUsage Examples/IPv4 Router

Page 13: NetFPGA: Reusable Router Architecture for Experimental Research

Rx Queue

IP Hdr:IP Dst: 192.168.2.3,

TTL: 64, Csum:0x3ab4

Eth Hdr:Dst MAC = port 0,

Ethertype = IP

Data

0

0

0

Pkt length,input port = 0

0xff

Usage Examples/IPv4 Router

Page 14: NetFPGA: Reusable Router Architecture for Experimental Research

Input Arbiter

Pkt

Pkt

Pkt

Usage Examples/IPv4 Router

Page 15: NetFPGA: Reusable Router Architecture for Experimental Research

Output Port LookupUsage Examples/IPv4 Router

Page 16: NetFPGA: Reusable Router Architecture for Experimental Research

IP Hdr:IP Dst: 192.168.2.3,

TTL: 64, Csum:0x3ab4

IP Hdr:IP Dst: 192.168.2.3,

TTL: 63, Csum:0x3ac2

Output Port Lookup

EthHdr: Dst MAC = 0Src MAC = x,

Ethertype = IP

Data

0

0

0

Pkt length,input port = 00xff

1- Check input port matches

Dst MAC

2- Check TTL, checksum

3- Lookup next hop IP & output

port (LPM)

4- Lookup next hop MAC

address (ARP)

5- Add output port header

6- Modify MAC Dst and Src addresses

7-Decrement TTL and update

checksum

EthHdr: Dst MAC = nextHop Src MAC = port 4,

Ethertype = IP

Pkt length,input port = 0

output port = 4

Usage Examples/IPv4 Router

Page 17: NetFPGA: Reusable Router Architecture for Experimental Research

Output Queues

OQ0

OQ4

OQ7

Usage Examples/IPv4 Router

Page 18: NetFPGA: Reusable Router Architecture for Experimental Research

MAC Tx QueueUsage Examples/IPv4 Router

Page 19: NetFPGA: Reusable Router Architecture for Experimental Research

MAC Tx Queue

IP Hdr:IP Dst: 192.168.2.3,

TTL: 64, Csum:0x3ab4

IP Hdr:IP Dst: 192.168.2.3,

TTL: 63, Csum:0x3ac2

EthHdr: Dst MAC = nextHop Src MAC = port 4,

Ethertype = IP

Data

0

0

0

Pkt length,input port = 0

output port = 40xff

Usage Examples/IPv4 Router

Page 20: NetFPGA: Reusable Router Architecture for Experimental Research

Networked FPGAs in Research

1. Managed flow-table switch• http://OpenFlowSwitch.org/

2. Buffer Sizing• Reduce buffer size & measure buffer occupancy

3. RCP: Congestion Control• New module for parsing and overwriting new packet• New software to calculate explicit rates

4. Deep Packet Inspection (FPX)• TCP/IP Flow Reconstruction• Regular Expression Matching• Bloom Filters

5. Packet Monitoring (ICSI)• Network Shunt

6. Precise Time Protocol (PTP)• Synchronization among Routers

Page 21: NetFPGA: Reusable Router Architecture for Experimental Research

Visit http://NetFPGA.org

Page 22: NetFPGA: Reusable Router Architecture for Experimental Research

NetFPGA Worldwide Tutorial Series

Jiaotong Univ.Beijing, China

NICTA/UNSW:Sydney,

Australia

Eurosys:Glasgow,Scotland

CESNETBrno,

Czech Republic

SIGCOMM:Seattle,

Washington

Hot Interconnects& Summer Camp

Stanford, California SIGMETRICS

San Diego,California

IIScBangalore,

India

Cambridge:England

Page 23: NetFPGA: Reusable Router Architecture for Experimental Research

Photos from NetFPGA Tutorials

http://netfpga.org/pastevents.php and http://netfpga.org/upcomingevents.php

EuroSys - Glasgow, Scotland, U.K.

Beijing, China

SIGMETRICS - San Diego, California, USA

Bangalore, India

SIGCOMM - Seattle, Washington, USA

Page 24: NetFPGA: Reusable Router Architecture for Experimental Research

Map of Deployed Hardware (July 2008)

Page 25: NetFPGA: Reusable Router Architecture for Experimental Research

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

http://netfpga.org/netfpgawiki/index.php/Module_Wishlist

Page 26: NetFPGA: Reusable Router Architecture for Experimental Research

Conclusion

Introduce open-source re-usable NetFPGA

Providing a simple interface b/w hardware stages and an easy way to interact with the software

Allows developers to mix and match functionality provided by different modules

Page 27: NetFPGA: Reusable Router Architecture for Experimental Research

References

http://NetFPGA.org

"NetFPGA: Reusable Router Architecture for Experimental Research“ Jad Naous, Glen Gibb, Sara Bolouki, and Nick McKeown SIGCOMM PRESTO Workshop, Seattle, WA, August 2008

NetFPGA Tutorial slides