Professional Documents
Culture Documents
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
SW HW
ITICSE2005
VNS NetFPGA
StanfordHighPerformanceNetworkingGroup
PresentationOverview
(abitlate)
Technologiesdevelopedtosupportclass
NetFPGA VNS
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
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
HardwareRequirements
Layer2switching Protocoldecoding ARPcachelookup Forwarding
Handleread/writeregisterpacketsfrom software
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
CS344
AdvancedFunctionality
Openended(almostanythinggoes) 2requirements
Somethingneat Hardware+softwarecomponent
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
ITICSE2005
StanfordHighPerformanceNetworkingGroup
ClassroomExperience
AdvancedFunctionality
AndNow...
DevelopingNetFPGA2
ITICSE2005
ThankYou!
Application CLI Application Application
Socket API
Transport Subsystem ICMP Input
Router API
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
ITICSE2005
StanfordHighPerformanceNetworkingGroup