Teaching Networking
                    Hardware
               Stanford High Performance Network 
                       ...
Motivation
    (networking hardware experience needed in classroom)


●   Many students go to work in the networking 
    ...
Motivation
   (cool stuff in networks is hard to get to)
                App
               TCP/IP
                Phy    ...
(The Punchline)
        CS344: Advanced Projects in Networks

●   Students design routers in hardware and 
    software
● ...
Presentation Overview
                                         (a bit late)


●        Technologies developed to support c...
Course Tools
    •NetFPGA : a programmable 8­port Ethernet device that can 
                            be programmed and ...
NetFPGA
NetFPGA is:

    • Programmable Network device
    • Each board contains three FPGAs and an 
       8­port Etherne...
NetFPGA Board




ITICSE  2005    Stanford High Performance Networking Group
NetFPGA Boardof 10Mbit/ s
                         To/ from server ports
                                      8
         ...
Virtual Network System
          (emulate network topologies)

Internet




 ITICSE  2005     Stanford High Performance Ne...
Virtual Network System
    •Maps NetFPGA boards into complex networks connected to 
    the Internet

    •Allows students...
VNS + NetFPGA = 
    •Build hardware­software routers on the Internet

    •Each team can have an isolated topology or mul...
CS344: Building an Internet 
                        Router
                 CLI   “User Apps”

                       TCP...
CS344: Building an Internet 
NetFPGA is:
                  Router
 • Build full router in hardware and software
    (6 wee...
CS344
                Hardware Requirements

• Layer­2 switching
• Protocol decoding
• ARP cache lookup
• Forwarding
    •...
CS344
                Software Requirements
• ARP    (request/response/cache)
• ICMP (echo, port unreach, ttl timeout)
• T...
CS344
                          Topologies for Testing
                                             (per team)




       ...
CS344
                               Interoperability




•   Organized by the students (entirely)
•   Must be able to con...
CS344
                    Advanced Functionality
●       Open­ended (almost anything goes)
●       2 requirements
        ...
Classroom Experience

●       2004: 7 students     (3 teams)
●       2005: 18 students   (6 teams)
●       Only 1 team has...
Classroom Experience

●       Hardware/software students must learn how 
        to communicate
●       Interoperation is ...
Classroom Experience
                   Advanced Functionality
●       MAC level encryption (DES)
●       SSH man in the m...
And Now ... 
●   Developing NetFPGA2
    –    PCI cards
    –    1 Gb/s
    –    On board CPU
●   Working on curriculum fo...
Thank You!
                            Application                                Application

                           ...
Upcoming SlideShare
Loading in …5
×

Teaching Networking Hardware

888 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
888
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Teaching Networking Hardware

  1. 1. Teaching Networking Hardware Stanford High Performance Network  Group Presented By:  Martin Casado        Gregory Watson Martin Casado Nick McKeown                                                                                                              June, 2005 ITICSE  2005 Stanford High Performance Networking Group
  2. 2. Motivation (networking hardware experience needed in classroom) ● Many students go to work in the networking  industry – complex hardware­software systems – high speed, asynchronous network environments ● Undergraduate (and graduate) hardware classes  typically focus on processor design (... how many graduating students design processors?) ● Want to create practical, useful environment for  developing working network systems ITICSE  2005 Stanford High Performance Networking Group
  3. 3. Motivation (cool stuff in networks is hard to get to) App TCP/IP Phy } OS + hardware = hard to teach ITICSE  2005 Stanford High Performance Networking Group
  4. 4. (The Punchline) CS344: Advanced Projects in Networks ● Students design routers in hardware and  software ● Teams of 1 hardware student, 1 software student ● Routers must route live Internet traffic ● All routers must interoperate on a complex  topology ● Students then get to “show off” CLI “User Apps” TCP SW VNS IP/ ICMP/ OSPF ARP HW NetFPGA IP Forwarding ITICSE  2005 Stanford High Performance Networking Group Layer 2 forwarding
  5. 5. Presentation Overview (a bit late) ● Technologies developed to support class – NetFPGA  – VNS           ● Class Overview ● Experiences in Classroom (2004, 2005) ● Looking Ahead ITICSE  2005 Stanford High Performance Networking Group
  6. 6. Course Tools •NetFPGA : a programmable 8­port Ethernet device that can                          be programmed and tested remotely •VNS: Allows user space processes to participate as routers               on the Internet  •VNS + NetFPGA : Used to develop, test and deploy                                        hardware+software routers on arbitrary                                        topologies connected to the Internet Internet ftp server SW SW HW http server ITICSE  2005 Stanford High Performance Networking Group Spring 2005
  7. 7. NetFPGA NetFPGA is: • Programmable Network device • Each board contains three FPGAs and an     8­port Ethernet controller. • A suite of scripts that invoke the various     design tools (industry standard) • Libraries to make it easy to create     verification scripts that run in simulation     environment as well as on the actual     hardware. • A web interface for remotely downloading     and running the designs. ITICSE  2005 Stanford High Performance Networking Group
  8. 8. NetFPGA Board ITICSE  2005 Stanford High Performance Networking Group
  9. 9. NetFPGA Boardof 10Mbit/ s To/ from server ports 8 full- duplex Ethernet Ethernet controller SRAM SRAM CFPGA (fixed) SRAM SRAM UFPGA 1 UFPGA 2 1MB 1MB ITICSE  2005 Stanford High Performance Networking Group
  10. 10. Virtual Network System (emulate network topologies) Internet ITICSE  2005 Stanford High Performance Networking Group
  11. 11. Virtual Network System •Maps NetFPGA boards into complex networks connected to  the Internet •Allows students to write software “cpu” for boards as user  space programs (in C) •Connect standard servers (e.g. Linux + apache) •Currently used in undergraduate networking courses to  build software only routers (stanford, WSU, Johns Hopkins) Internet ftp server SW SW HW http server ITICSE  2005 Stanford High Performance Networking Group
  12. 12. VNS + NetFPGA =  •Build hardware­software routers on the Internet •Each team can have an isolated topology or multiple  teams can connect to the same topology (interopera­ tion) •Entire design and development process can be done  remotely (e.g. Remote University) (students never have to see an actual NetFPGA board!) Internet ftp server SW SW HW http server ITICSE  2005 Stanford High Performance Networking Group
  13. 13. CS344: Building an Internet  Router CLI “User Apps” TCP Software IP/ICMP/OSPF ARP IP Forwarding Hardware Layer 2 forwarding ITICSE  2005 Stanford High Performance Networking Group
  14. 14. CS344: Building an Internet  NetFPGA is: Router • Build full router in hardware and software    (6 weeks) • Route live Internet traffic • Managed via CLI • Generate forwarding tables using OSPF­like protocol • Converge in complex topology after link failure • Inter­operate with all other routers in class on     complex network topology • Open­ended design component (build something neat)    (2 weeks) •Comprehensive design, implementation and testing    documentation ITICSE  2005 Stanford High Performance Networking Group
  15. 15. CS344 Hardware Requirements • Layer­2 switching • Protocol decoding • ARP cache lookup • Forwarding •Longest prefix match •Decrement ttl •Calculate IP checksum • Handle read/write register packets from       software ITICSE  2005 Stanford High Performance Networking Group
  16. 16. CS344 Software Requirements • ARP    (request/response/cache) • ICMP (echo, port unreach, ttl timeout) • TCP Stack (provided) • CLI •ping/traceroute •Similar to IOS •Manage interfaces, forwarding table etc. • OSPF­like protocol • Control hardware by reading writing registers    using special packets ITICSE  2005 Stanford High Performance Networking Group
  17. 17. CS344 Topologies for Testing (per team) Internet Plus any other requested topology Internet (popular during advanced functionality) ITICSE  2005 Stanford High Performance Networking Group
  18. 18. CS344 Interoperability • Organized by the students (entirely) • Must be able to converge before tcp timeout during link failure • For final test, we randomly sprinkle topology with students routers and see what happens! ITICSE  2005 Stanford High Performance Networking Group
  19. 19. CS344 Advanced Functionality ● Open­ended (almost anything goes) ● 2 requirements – Something neat – Hardware + software component ● Must consider hardware/software tradeoffs during  design ● Present designs in front of panel of industry experts  ITICSE  2005 Stanford High Performance Networking Group
  20. 20. Classroom Experience ● 2004: 7 students     (3 teams) ● 2005: 18 students   (6 teams) ● Only 1 team has failed to produce working  router ● Software typically 12,000 – 20,000 lines of C ● Hardware 7,000 – 11,000 lines of verilog ● Easy week = 10 – 15 hours of work ● Hard week = 40 – 60 hours of work ● Student evaluations very positive ● Industry feedback very positive ITICSE  2005 Stanford High Performance Networking Group
  21. 21. Classroom Experience ● Hardware/software students must learn how  to communicate ● Interoperation is hard for students  (many, many edge conditions) ● Design is really important ... bad start = chaos later on ● Software bug fix = a few minutes ● Hardware bug fix = a few hours ITICSE  2005 Stanford High Performance Networking Group
  22. 22. Classroom Experience Advanced Functionality ● MAC level encryption (DES) ● SSH man in the middle attack ● Intrusion Detection System ● Random Early Detection ● Token­based rate limiting ● Firewall ● NAT/VPN ● Distributed DNS cache ● Have really impressed industry panel ITICSE  2005 Stanford High Performance Networking Group
  23. 23. And Now ...  ● Developing NetFPGA2 – PCI cards – 1 Gb/s – On board CPU ● Working on curriculum for introductory  architecture course ● Would like to see NetFPGA used outside of Stanford  ● If you are interested, please contact us directly! – casado@cs.stanford.edu – http://yuba.stanford.edu/vns – http://yuba.stanford.edu/netfpga ITICSE  2005 Stanford High Performance Networking Group
  24. 24. Thank You! Application Application CLI Application Socket API Router API Transport Subsystem ICMP Input ICMP Output IP Routing State OSPF IP Output IP Forwarding IP Input Dropped IP Routing ARP State ARP Input ARP Output Interface Input Interface State Interface Output ARP Thread low- level input low- level output ITICSE  2005 Stanford High Performance Networking Group

×