You are on page 1of 24

TeachingNetworking Hardware

StanfordHighPerformanceNetwork Group
PresentedBy:MartinCasado GregoryWatson MartinCasado NickMcKeown June,2005
ITICSE2005 StanfordHighPerformanceNetworkingGroup

Motivation
(networkinghardwareexperienceneededinclassroom)

Manystudentsgotoworkinthenetworking industry

complexhardwaresoftwaresystems highspeed,asynchronousnetworkenvironments

Undergraduate(andgraduate)hardwareclasses typicallyfocusonprocessordesign
(...howmanygraduatingstudentsdesignprocessors?)

Wanttocreatepractical,usefulenvironmentfor developingworkingnetworksystems
ITICSE2005 StanfordHighPerformanceNetworkingGroup

Motivation
(coolstuffinnetworksishardtogetto)
App TCP/IP Phy

OS+hardware=hardtoteach

ITICSE2005

StanfordHighPerformanceNetworkingGroup

(ThePunchline) CS344:AdvancedProjectsinNetworks

Studentsdesignroutersinhardwareand software Teamsof1hardwarestudent,1softwarestudent RoutersmustrouteliveInternettraffic Allroutersmustinteroperateonacomplex topology Studentsthengettoshowoff


CLI User Apps TCP

SW HW
ITICSE2005

VNS NetFPGA
StanfordHighPerformanceNetworkingGroup

IP/ ICMP/ OSPF ARP IP Forwarding Layer 2 forwarding

PresentationOverview
(abitlate)

Technologiesdevelopedtosupportclass

NetFPGA VNS

ClassOverview ExperiencesinClassroom(2004,2005) LookingAhead


ITICSE2005

StanfordHighPerformanceNetworkingGroup

CourseTools
NetFPGA:aprogrammable8portEthernetdevicethatcan beprogrammedandtestedremotely VNS:Allowsuserspaceprocessestoparticipateasrouters ontheInternet VNS+NetFPGA:Usedtodevelop,testanddeploy hardware+softwareroutersonarbitrary topologiesconnectedtotheInternet

Internet
ftp server SW SW HW
ITICSE2005 Spring2005 StanfordHighPerformanceNetworkingGroup

http server

NetFPGAis:

NetFPGA

ProgrammableNetworkdevice

EachboardcontainsthreeFPGAsandan 8portEthernetcontroller. Asuiteofscriptsthatinvokethevarious designtools(industrystandard) Librariestomakeiteasytocreate verificationscriptsthatruninsimulation environmentaswellasontheactual hardware. Awebinterfaceforremotelydownloading andrunningthedesigns.
ITICSE2005 StanfordHighPerformanceNetworkingGroup

NetFPGABoard

ITICSE2005

StanfordHighPerformanceNetworkingGroup

NetFPGABoard 8 ports of 10Mbit/ s To/ from server


Ethernetcontroller SRAM CFPGA(fixed) SRAM

full- duplex Ethernet

SRAM 1MB

UFPGA1

UFPGA2

SRAM 1MB

ITICSE2005

StanfordHighPerformanceNetworkingGroup

VirtualNetworkSystem (emulatenetworktopologies)
Internet

ITICSE2005

StanfordHighPerformanceNetworkingGroup

VirtualNetworkSystem
MapsNetFPGAboardsintocomplexnetworksconnectedto theInternet Allowsstudentstowritesoftwarecpuforboardsasuser spaceprograms(inC) Connectstandardservers(e.g.Linux+apache) Currentlyusedinundergraduatenetworkingcoursesto buildsoftwareonlyrouters(stanford,WSU,JohnsHopkins)

Internet
ftp server SW SW HW
ITICSE2005 StanfordHighPerformanceNetworkingGroup

http server

VNS+NetFPGA=
BuildhardwaresoftwareroutersontheInternet Eachteamcanhaveanisolatedtopologyormultiple teamscanconnecttothesametopology(interopera tion) Entiredesignanddevelopmentprocesscanbedone remotely(e.g.RemoteUniversity)
(studentsneverhavetoseeanactualNetFPGAboard!)

Internet
ftp server SW SW HW
ITICSE2005 StanfordHighPerformanceNetworkingGroup

http server

CS344:BuildinganInternet Router
CLI UserApps TCP IP/ICMP/OSPF ARP IPForwarding Layer2forwarding
ITICSE2005 StanfordHighPerformanceNetworkingGroup

Software

Hardware

CS344:BuildinganInternet Router NetFPGAis:


Buildfullrouterinhardwareandsoftware (6weeks) RouteliveInternettraffic ManagedviaCLI GenerateforwardingtablesusingOSPFlikeprotocol Convergeincomplextopologyafterlinkfailure Interoperatewithallotherroutersinclasson complexnetworktopology Openendeddesigncomponent(buildsomethingneat) (2weeks) Comprehensivedesign,implementationandtesting documentation
ITICSE2005 StanfordHighPerformanceNetworkingGroup

CS344

HardwareRequirements
Layer2switching Protocoldecoding ARPcachelookup Forwarding

Handleread/writeregisterpacketsfrom software

Longestprefixmatch Decrementttl CalculateIPchecksum

ITICSE2005

StanfordHighPerformanceNetworkingGroup

CS344

SoftwareRequirements
ARP(request/response/cache) ICMP(echo,portunreach,ttltimeout) TCPStack(provided) CLI ping/traceroute SimilartoIOS Manageinterfaces,forwardingtableetc. OSPFlikeprotocol Controlhardwarebyreadingwritingregisters usingspecialpackets

ITICSE2005

StanfordHighPerformanceNetworkingGroup

CS344

TopologiesforTesting
(perteam)

Internet Plusanyotherrequestedtopology
(popularduringadvancedfunctionality)
ITICSE2005

Internet

StanfordHighPerformanceNetworkingGroup

CS344

Interoperability

Organizedbythestudents(entirely) Mustbeabletoconvergebeforetcp timeoutduringlinkfailure Forfinaltest,werandomlysprinkletopology withstudentsroutersandseewhathappens!


ITICSE2005 StanfordHighPerformanceNetworkingGroup

CS344

AdvancedFunctionality

Openended(almostanythinggoes) 2requirements

Somethingneat Hardware+softwarecomponent

Mustconsiderhardware/softwaretradeoffsduring design Presentdesignsinfrontofpanelofindustryexperts

ITICSE2005

StanfordHighPerformanceNetworkingGroup

ClassroomExperience

2004:7students(3teams) 2005:18students(6teams) Only1teamhasfailedtoproduceworking router Softwaretypically12,00020,000linesofC Hardware7,00011,000linesofverilog Easyweek=1015hoursofwork Hardweek=4060hoursofwork Studentevaluationsverypositive Industryfeedbackverypositive
ITICSE2005 StanfordHighPerformanceNetworkingGroup

ClassroomExperience

Hardware/softwarestudentsmustlearnhow tocommunicate Interoperationishardforstudents (many,manyedgeconditions) Designisreallyimportant... badstart=chaoslateron Softwarebugfix=afewminutes Hardwarebugfix=afewhours

ITICSE2005

StanfordHighPerformanceNetworkingGroup

ClassroomExperience

AdvancedFunctionality

MAClevelencryption(DES) SSHmaninthemiddleattack IntrusionDetectionSystem RandomEarlyDetection Tokenbasedratelimiting Firewall NAT/VPN DistributedDNScache Havereallyimpressedindustrypanel


ITICSE2005 StanfordHighPerformanceNetworkingGroup

AndNow...

DevelopingNetFPGA2

PCIcards 1Gb/s OnboardCPU

Workingoncurriculumforintroductory architecturecourse WouldliketoseeNetFPGAusedoutsideofStanford Ifyouareinterested,pleasecontactusdirectly!


casado@cs.stanford.edu http://yuba.stanford.edu/vns http://yuba.stanford.edu/netfpga


StanfordHighPerformanceNetworkingGroup

ITICSE2005

ThankYou!
Application CLI Application Application

Socket API
Transport Subsystem ICMP Input

Router API

ICMP Output IP Output

IP Routing State

OSPF

IP Forwarding IP Input

Dropped IP Routing ARP State ARP Input ARP Output Interface State Interface Output ARP Thread

Interface Input

low- level input

low- level output

ITICSE2005

StanfordHighPerformanceNetworkingGroup

You might also like