NetFPGA : An Open-Source Hardware Platform for Network Research and Teaching. Nick McKeown, John W. Lockwood, Jad Naous, Glen Gibb

Size: px
Start display at page:

Download "NetFPGA : An Open-Source Hardware Platform for Network Research and Teaching. Nick McKeown, John W. Lockwood, Jad Naous, Glen Gibb"

Transcription

1 NetFPGA : An Open-Source Hardware Platform for Network Research and Teaching Nick McKeown, John W. Lockwood, Jad Naous, Glen Gibb S T A N F O R D U N I V E R S I T Y SIGMETRICS Tutorial #2 Tuesday, June 12, 1:45-4:45 pm San Diego, California SIGMETICS NetFPGA Tutorial 1 S T A N F O R D U N I V E R S I T Y Background Basics of an IP Router The NetFPGA Platform The Stanford Reference Router Tutorial Outline Demo 1: Stanford Reference Router running on NetFPGA Programming NetFPGA Inside the NetFPGA hardware Breakneck introduction to Verilog Exercise 1: Make your own Reference Router Using NetFPGA for teaching and research Example of classroom use Examples of research Example of Enhanced Router: Observing and controlling queue size Motivation: Understanding buffer size requirements in a router Demo 2: An enhanced Reference Router Exercise 2: Enhancing the Reference Router SIGMETICS NetFPGA Tutorial 2 S T A N F O R D U N I V E R S I T Y

2 A What does a router do? R3 R1 R4 D B E C D R2 Destination D E F Next Hop R3 R3 R5 R5 F SIGMETICS NetFPGA Tutorial 3 S T A N F O R D U N I V E R S I T Y A B 20 bytes C TTL What does a router do? R3 R1 R Ver HLen T.Service Total Packet Length Fragment ID Flags Fragment Offset D Protocol Header Checksum R2 Source Address Destination Destination Address Next Hop R5 Options D (if any) R3 E Data R3 F R5 D F E SIGMETICS NetFPGA Tutorial 4 S T A N F O R D U N I V E R S I T Y

3 What does a router do? R3 A R1 R4 D B E C R2 R5 F SIGMETICS NetFPGA Tutorial 5 S T A N F O R D U N I V E R S I T Y Basic Components of an IP Router Management & CLI Routing Protocols Routing Table Software Control Plane Forwarding Table Switching Hardware Datapath per-packet processing SIGMETICS NetFPGA Tutorial 6 S T A N F O R D U N I V E R S I T Y

4 Per-packet processing in an IP Router 1. Accept packet arriving on an incoming link. 2. Lookup packet destination address in the forwarding table, to identify outgoing port(s). 3. Manipulate IP header: e.g., decrement TTL, update header checksum. 5. Buffer packet in the output queue. 6. Transmit packet onto outgoing link. SIGMETICS NetFPGA Tutorial 7 S T A N F O R D U N I V E R S I T Y Generic Datapath Architecture Header Processing Data Hdr Data Hdr Lookup Update Queue IP Address Header Packet IP Address Next Hop Address Table Buffer Memory SIGMETICS NetFPGA Tutorial 8 S T A N F O R D U N I V E R S I T Y

5 CIDR and Longest Prefix Matches The IP address space is broken into line segments. Each line segment is described by a prefix. A prefix is of the form x/y where x indicates the prefix of all addresses in the line segment, and y indicates the length of the segment. e.g. The prefix 128.9/16 represents the line segment containing addresses in the range: / / / SIGMETICS NetFPGA Tutorial 9 S T A N F O R D U N I V E R S I T Y Classless Interdomain Routing (CIDR) / / / / / Most specific route = longest matching prefix SIGMETICS NetFPGA Tutorial 10 S T A N F O R D U N I V E R S I T Y

6 Techniques for LPM in hardware Linear search Direct lookup Currently requires too much memory Updating a prefix leads to many changes Tries Deterministic lookup time Easily pipelined But requires multiple memories/references TCAM (Ternary CAM) Simple and widely used But low-density, high-power Gradually being replaced by new algorithms SIGMETICS NetFPGA Tutorial 11 S T A N F O R D U N I V E R S I T Y An IP Router on NetFPGA Management & CLI Exception Processing Routing Protocols Routing Table Software Linux user-level processes Forwarding Table Switching Hardware Verilog on NetFPGA PCI board SIGMETICS NetFPGA Tutorial 12 S T A N F O R D U N I V E R S I T Y

7 NetFPGA Router Function 4 Gigabit Ethernet ports Fully programmable FPGA hardware Low cost Open-source FPGA hardware Verilog base design Open-souce Software Drivers in C and C++ SIGMETICS NetFPGA Tutorial 13 S T A N F O R D U N I V E R S I T Y NetFPGA Platform Major Components Interfaces 4 Gigabit Ethernet Ports PCI Host Interface Memories 36Mbits Static RAM 512Mbits DDR2 Dynamic RAM FPGA Resources Block RAMs Configurable Logic Block (CLBs) Memory Mapped Registers SIGMETICS NetFPGA Tutorial 14 S T A N F O R D U N I V E R S I T Y

8 NetFPGA System CAD Tools Monitor Software User Space Linux Kernel Traffic Generator Packet Forwarding Table PCI PCI-e VI VI VI VI NetFPGA Router Hardware NIC (nf2c0.. 3) (eth1.. 2) SIGMETICS NetFPGA Tutorial 15 S T A N F O R D U N I V E R S I T Y NetFPGA System Implementation NetFPGA Blocks Virtex-2 Pro FPGA 4MB ZBT SRAM 64MB DDR2 DRAM PCI Host Interface 4 Gigabit Ethernet ports Intranet Test Ports Dual or Quad Gigabit Etherents on PCI-e Internet Gigabit Ethernet on Motherboard Processor Dual-Core CPU Operating System Linux CentOS 4.4 SIGMETICS NetFPGA Tutorial 16 S T A N F O R D U N I V E R S I T Y

9 NetFPGA Lab Setup Traffic Generator CPU x2 Monitor Software CAD Tools PCI-e PCI NIC Net-FPGA Internet Router Hardware (eth1.. 2) (nf2c0.. 3) Traffic Generator CPU x2 Monitor Software CAD Tools PCI-e PCI NIC Net-FPGA Internet Router Hardware Traffic Generator CPU x2 Monitor Software CAD Tools PCI-e PCI NIC Net-FPGA Internet Router Hardware Video Client SIGMETICS NetFPGA Tutorial 17 S T A N F O R D U N I V E R S I T Y Background Basics of an IP Router The NetFPGA Platform The Stanford Reference Router Tutorial Outline Demo 1: Stanford Reference Router running on NetFPGA Programming NetFPGA Inside the NetFPGA hardware Breakneck introduction to Verilog Exercise 1: Make your own Reference Router Using NetFPGA for teaching and research Example of classroom use Examples of research Example of Enhanced Router: Observing and controlling queue size Motivation: Understanding buffer size requirements in a router Demo 2: An enhanced Reference Router Exercise 2: Enhancing the Reference Router SIGMETICS NetFPGA Tutorial 18 S T A N F O R D U N I V E R S I T Y

10 Demo 1 Topology of NetFPGA Routers Video Server HD Display SIGMETICS NetFPGA Tutorial 19 S T A N F O R D U N I V E R S I T Y Demo 1 Setup for the Reference Router Each NetFPGA card has four ports Port 2 connected to local host Ports 1 and 3 connect to Ethernet switch Topology: Ring host NetFPGA Ethernet Switch Video Client SIGMETICS NetFPGA Tutorial 20 S T A N F O R D U N I V E R S I T Y

11 NetFPGA System Setup Traffic Generator CPU x2 Monitor Software CAD Tools PCI-e PCI NIC Net-FPGA Internet Router Hardware Traffic Generator CPU x2 Monitor Software CAD Tools PCI-e PCI NIC Net-FPGA Internet Router Hardware Traffic Generator CPU x2 Monitor Software CAD Tools PCI-e PCI NIC Net-FPGA Internet Router Hardware SIGMETICS NetFPGA Tutorial 21 S T A N F O R D U N I V E R S I T Y Gigabit Switch / Patch Panel SIGMETICS NetFPGA Tutorial 22 S T A N F O R D U N I V E R S I T Y

12 Demo 1 Demo 1: Logical Topology Video Server SIGMETICS NetFPGA Tutorial 23 S T A N F O R D U N I V E R S I T Y Shortest Path Video Client Demo 1 Working IP Router Objectives Become familiar with Stanford Reference Router Observe PW-OSPF re-routing traffic around a failure SIGMETICS NetFPGA Tutorial 24 S T A N F O R D U N I V E R S I T Y

13 Demo 1 Streaming Video through the NetFPGA Video server Source files /var/www/html/video Network URL : Video client Windows Media Player Linux mplayer Video traffic MPEG2 HDTV (35 Mbps) MPEG2 TV (9 Mbps) DVI (3 Mbps) WMF (1.7 Mbps) SIGMETICS NetFPGA Tutorial 25 S T A N F O R D U N I V E R S I T Y Demo 1 Step 1 Observe the Routing Tables The router is already configured and running on your machines The routing table has converged to the routing decisions with minimum number of hops Next, break a link SIGMETICS NetFPGA Tutorial 26 S T A N F O R D U N I V E R S I T Y

14 Demo 1 Step 2 - Dynamic Re-routing Break the link between video server and video client Routers re-route traffic around the broken link and video continues playing Video Client SIGMETICS NetFPGA Tutorial 27 S T A N F O R D U N I V E R S I T Y Background Basics of an IP Router The NetFPGA Platform The Stanford Reference Router Tutorial Outline Demo 1: Stanford Reference Router running on NetFPGA Programming NetFPGA Inside the NetFPGA hardware Breakneck introduction to Verilog Exercise 1: Make your own Reference Router Using NetFPGA for teaching and research Example of classroom use Examples of research Example of Enhanced Router: Observing and controlling queue size Motivation: Understanding buffer size requirements in a router Demo 2: An enhanced Reference Router Exercise 2: Enhancing the Reference Router SIGMETICS NetFPGA Tutorial 28 S T A N F O R D U N I V E R S I T Y

15 Integrated Circuit Technology Full-custom Design Complementary Metal Oxide Semiconductor (CMOS) Semi-custom ASIC Design Gate array Standard cell Programmable Logic Device Programmable Array Logic Field Programmable Gate Arrays Processors SIGMETICS NetFPGA Tutorial 29 S T A N F O R D U N I V E R S I T Y Look-Up Tables Combinatorial logic is stored in Look-Up Tables (LUTs) Also called Function Generators (FGs) Capacity is limited by only by number of inputs, not complexity Delay through the LUT is constant A B C D Combinatorial Logic Z A B C D Z Diagram From: Xilinx, Inc SIGMETICS NetFPGA Tutorial 30 S T A N F O R D U N I V E R S I T Y

16 G1 G2 G3 G4 H1 F1 F2 F3 F4 CLB 4 LUT G 4 LUT F 3 LUT H Din M M M M Clk S D Q R S D Q R YQ Y XQ X Xilinx CLB Structure Each slice has four outputs Two registered outputs, two non-registered outputs Two BUFTs associated with each CLB, accessible by all 16 CLB outputs Slice 0 PRE LUT Carry D Q CE CLR Carry logic run vertically Signals run upwards Two independent carry chains per CLB LUT Carry D PRE CE Q CLR Diagram From: Xilinx, Inc (Courtesy Jeff Weintraub) SIGMETICS NetFPGA Tutorial 31 S T A N F O R D U N I V E R S I T Y Field Programmable Gate Arrays CLB Primitive element of FPGA Routing Module Global routing Local interconnect GRM Local Routing CLB PIP Macro Blocks Block Memories Microprocessor I/O Block 3rd Generation LUT-based FPGA Macro Block (up, Mem) Pad Routing CLB Matrix I/O SIGMETICS NetFPGA Tutorial 32 S T A N F O R D U N I V E R S I T Y

17 NetFPGA Block Diagram Four Gigabit Ethernet Interfaces NetFPGA platform FPGA w/provided infrastructure 1 PHY 1 PHY 1 PHY 1 PHY Host computer 1 MAC 1 MAC 1 MAC 1 MAC FIFO packet buffers Virtex II-Pro 50 FPGA with user-defined network logic * Hardware specified with - Verilog source code - Pre-generated cores * Software written for - Embedded PowerPCs - Soft core processors (Microblaze, LEON..) Control, PCI Interface Linux OS - NetFPGA Kernel driver User-defined software networking applications 64MB 18Mb DDR2 18Mb SRAM SDRAM SRAM 3 Gb SATA Board-Board Interconnect SIGMETICS NetFPGA Tutorial 33 S T A N F O R D U N I V E R S I T Y Details of NetFPGA Fits into Standard PCI slot Standard Bus : 32 bits, 33 MHz Provides Interfaces for processing network packets 4 Gigabit Ethernet Ports Allows hardware-accelerated processing Implemented with Field Programmable Gate Array (FPGA) Logic SIGMETICS NetFPGA Tutorial 34 S T A N F O R D U N I V E R S I T Y

18 Background Basics of an IP Router The NetFPGA Platform The Stanford Reference Router Tutorial Outline Demo 1: Stanford Reference Router running on NetFPGA Programming NetFPGA Inside the NetFPGA hardware Quick introduction to Verilog Exercise 1: Make your own Reference Router Using NetFPGA for teaching and research Example of classroom use Examples of research Example of Enhanced Router: Observing and controlling queue size Motivation: Understanding buffer size requirements in a router Demo 2: An enhanced Reference Router Exercise 2: Enhancing the Reference Router SIGMETICS NetFPGA Tutorial 35 S T A N F O R D U N I V E R S I T Y Hardware Description Languages Concurrent By Default, Verilog statements evaluated concurrently Express fine grain parallelism Allows gate-level parallelism Provides Precise Description Eliminates ambiguity about operation Synthesizable Generates hardware from description SIGMETICS NetFPGA Tutorial 36 S T A N F O R D U N I V E R S I T Y

19 Verilog Data Types reg [7:0] A; // 8-bit register, MSB to LSB // (Preferred bit order for NetFPGA) reg [0:15] B; // 16-bit register, LSB to MSB B = {A[7:0],A[0:7]}; // Assignment of bits reg [31:0] Mem [0:1023]; // 1K Word Memory integer Count; // simple signed 32-bit integer integer K[1:64]; // an array of 64 integers time Start, Stop; // Two 64-bit time variables From: CSCI 320 Computer Architecture Handbook on Verilog HDL, by Dr. Daniel C. Hyde : SIGMETICS NetFPGA Tutorial 37 S T A N F O R D U N I V E R S I T Y Signal Multiplexers Two input multiplexer (using if / else) reg y; (a or b or select) if (select) y = a; else y = b; Two input multiplexer (using ternary operator?:) wire t = (select? a : b); From: SIGMETICS NetFPGA Tutorial 38 S T A N F O R D U N I V E R S I T Y

20 Larger Multiplexers Three input multiplexer reg s; (a or b or c or select2) begin case (select2) 2'b00: s = a; 2'b01: s = b; default: s = c; endcase end From: SIGMETICS NetFPGA Tutorial 39 S T A N F O R D U N I V E R S I T Y Synchronous Storage Elements Values change at times governed by clock Din Clock D Q Dout Clock Input to circuit Clock 1 0 t=0 t=1 t=2 Clock Transition time Clock Event Example: Rising edge Flip/Flop Transfers Value From D in to D out on Clock event Din t=0 Dout t=0 S0 A B C A B Clock Transition SIGMETICS NetFPGA Tutorial 40 S T A N F O R D U N I V E R S I T Y

21 Finite State Machines Inputs (X) Copyright 2001, John W. Lockwood, All Rights Reserved Outputs (Z) =λ (X,S(t)) [Mealy] -or- =λ (S(t)) [Moore] Combinational Logic S(t) Q D... Q D δ S(t+1)= (X,S(t)) Next State State Storage SIGMETICS NetFPGA Tutorial 41 S T A N F O R D U N I V E R S I T Y Synthesizable Verilog : Delay Flip/Flops D-type flip flop reg q; (posedge clk) q <= d; D type flip flop with data enable reg q; (posedge clk) if (enable) q <= d; From: SIGMETICS NetFPGA Tutorial 42 S T A N F O R D U N I V E R S I T Y

22 Background Basics of an IP Router The NetFPGA Platform The Stanford Reference Router Tutorial Outline Demo 1: Stanford Reference Router running on NetFPGA Programming NetFPGA Inside the NetFPGA hardware Breakneck introduction to Verilog Exercise 1: Make your own Reference Router Using NetFPGA for teaching and research Example of classroom use Examples of research Example of Enhanced Router: Observing and controlling queue size Motivation: Understanding buffer size requirements in a router Demo 2: An enhanced Reference Router Exercise 2: Enhancing the Reference Router SIGMETICS NetFPGA Tutorial 43 S T A N F O R D U N I V E R S I T Y Exercise 1 Make your own router Objectives: Learn how to build hardware Run the software Explore router architecture Execution Start synthesis Rerun the GUI with the new hardware Test connectivity and statistics with pings Explore pipeline in the details page Explore detailed statistics in the details page SIGMETICS NetFPGA Tutorial 44 S T A N F O R D U N I V E R S I T Y

23 Exercise 1 Step 1 - Build the hardware Start terminal, cd to Desktop/netfpga2.1/proje cts/tutorial_router/synth Start synthesis with make SIGMETICS NetFPGA Tutorial 45 S T A N F O R D U N I V E R S I T Y Exercise 1 Step 2 - Run Homemade Router cd to Desktop/ Type: java -jar router.nfp -- use_bin netfpga2.1/projects/tutori al_router/synth/nf2_top_ par.bin to use the just built router hardware The same interface should start again SIGMETICS NetFPGA Tutorial 46 S T A N F O R D U N I V E R S I T Y

24 Exercise 1 Step 3 Configure Router Click Load from File Select config file from the desktop Click Open The port configuration should be loaded and PW-OSFP would soon set the routing tables SIGMETICS NetFPGA Tutorial 47 S T A N F O R D U N I V E R S I T Y Exercise 1 Step 4 - Connectivity and Statistics Ping any addresses x.y where x is from 1-20 and y is 1 or 2 Open the statistics tab in the Quickstart window to see some statistics Explore more statistics in modules under the details tab SIGMETICS NetFPGA Tutorial 48 S T A N F O R D U N I V E R S I T Y

25 Exercise 1 Step 5 - Explore Router Architecture Click the Details tab of the Quickstart window This is the reference router pipeline a canonical, simple to understand, modular router pipeline SIGMETICS NetFPGA Tutorial 49 S T A N F O R D U N I V E R S I T Y Exercise 1 Reference Router Pipeline Five stages Input Input Arbitration Routing Decision and packet modification Output Queueing Output Packet-based module interface Pluggable design MAC rx CPU rx MAC rx CPU rx MAC rx CPU rx MAC rx CPU rx queue 0 queue 0 queue 1 queue 1 queue 2 queue 2 queue 3 queue 3 user_data_path Input Arbite r Output Port Lookup Output Queues MAC tx CPU tx MAC tx CPU tx MAC tx CPU tx MAC tx CPU tx queue 0 queue 0 queue 1 queue 1 queue 2 queue 2 queue 3 queue 3 SIGMETICS NetFPGA Tutorial 50 S T A N F O R D U N I V E R S I T Y

26 Exercise 1 Step 6 - Explore Output Queues Click on the Output Queues module in the Details tab The page gives configuration details and statistics SIGMETICS NetFPGA Tutorial 51 S T A N F O R D U N I V E R S I T Y Background Basics of an IP Router The NetFPGA Platform The Stanford Reference Router Tutorial Outline Demo 1: Stanford Reference Router running on NetFPGA Programming NetFPGA Inside the NetFPGA hardware Breakneck introduction to Verilog Exercise 1: Make your own Reference Router Using NetFPGA for teaching and research Example of classroom use Examples of research Example of Enhanced Router: Observing and controlling queue size Motivation: Understanding buffer size requirements in a router Demo 2: An enhanced Reference Router Exercise 2: Enhancing the Reference Router SIGMETICS NetFPGA Tutorial 52 S T A N F O R D U N I V E R S I T Y

27 NetFPGA in the Classroom Stanford CS344: Build an Internet Router Courseware will be available later in 2007 Students work in teams of three (2 software, 1 hardware) Design and implement hardware and software in 8 weeks Software: CLI, PW-OSPF Show interoperability with other groups Add new features in remaining two weeks Firewall, NAT, DRR, Packet capture, Data generator, SIGMETICS NetFPGA Tutorial 53 S T A N F O R D U N I V E R S I T Y Networked FPGAs in Research 1. RCP: Congestion control New module for parsing and overwriting new packet New software to calculate explicit rates 2. Packet Monitoring (ICSI) Network Shunt 3. Deep Packet Inspection (FPX) TCP/IP Flow Reconstruction Regular Expression Matching Bloom Filters 4. Ethane: Network security New switch ( managed flow-table ) deployed 5. Buffer Sizing Reduce buffer size and measure effect on network performance. Need a way to set buffer size, and measure buffer occupancy. SIGMETICS NetFPGA Tutorial 54 S T A N F O R D U N I V E R S I T Y

28 Background Basics of an IP Router The NetFPGA Platform The Stanford Reference Router Tutorial Outline Demo 1: Stanford Reference Router running on NetFPGA Programming NetFPGA Inside the NetFPGA hardware Breakneck introduction to Verilog Exercise 1: Make your own Reference Router Using NetFPGA for teaching and research Example of classroom use Examples of research Example of Enhanced Router: Observing and controlling queue size Motivation: Understanding buffer size requirements in a router Demo 2: An enhanced Reference Router Exercise 2: Enhancing the Reference Router SIGMETICS NetFPGA Tutorial 55 S T A N F O R D U N I V E R S I T Y Buffer Requirements in a Router Buffer size matters: Small queues reduce delay Large buffers are expensive Theoretical tools predict requirements Queuing theory Large deviation theory Mean field theory Yet, there is no direct answer. Flows have a closed-loop nature Question arises on whether focus should be on equilibrium state or transient state.. SIGMETICS NetFPGA Tutorial 56 S T A N F O R D U N I V E R S I T Y

29 Rule-of-thumb Source Router C Destination 2T Universally applied rule-of-thumb: A router needs a buffer size: B = 2T C 2T is the two-way propagation delay (or just 250ms) C is capacity of bottleneck link Context Mandated in backbone and edge routers. Appears in RFPs and IETF architectural guidelines. Already known by inventors of TCP [Van Jacobson, 1988] Has major consequences for router design SIGMETICS NetFPGA Tutorial 57 S T A N F O R D U N I V E R S I T Y The Story So Far # packets at 10Gb/s 1,000,000 2T C (1) 10, T C (2) O(logW ) n (1) Assume: Large number of desynchronized flows; 100% utilization (2) Assume: Large number of desynchronized flows; <100% utilization SIGMETICS NetFPGA Tutorial 58 S T A N F O R D U N I V E R S I T Y

30 Using NetFPGA to explore buffer size Need to reduce buffer size and measure occupancy Alas, not possible in commercial routers So, we will use NetFPGA instead Objective: Use NetFPGA to understand how large a buffer we need for a single TCP flow. SIGMETICS NetFPGA Tutorial 59 S T A N F O R D U N I V E R S I T Y Why 2TxC for a single flow? Only W packets may be outstanding Rule for adjusting W If an ACK is received: W W+1/W If a packet is lost: W W/2 SIGMETICS NetFPGA Tutorial 60 S T A N F O R D U N I V E R S I T Y

31 Time Evolution of a Single TCP Flow Time evolution of a single TCP flow through a router. Buffer is 2T*C Time evolution of a single TCP flow through a router. Buffer is < 2T*C SIGMETICS NetFPGA Tutorial 61 S T A N F O R D U N I V E R S I T Y Background Basics of an IP Router The NetFPGA Platform The Stanford Reference Router Tutorial Outline Demo 1: Stanford Reference Router running on NetFPGA Programming NetFPGA Inside the NetFPGA hardware Breakneck introduction to Verilog Exercise 1: Make your own Reference Router Using NetFPGA for teaching and research Example of classroom use Examples of research Example of Enhanced Router: Observing and controlling queue size Motivation: Understanding buffer size requirements in a router Demo 2: An enhanced Reference Router Exercise 2: Enhancing the Reference Router SIGMETICS NetFPGA Tutorial 62 S T A N F O R D U N I V E R S I T Y

32 Demo 2 Topology for Second Demonstration Routers connected in a star topology Port 1 is connected to central Ethernet switch Port 2 connects to local host Ports 0 and 3 unused L2 Switch Netperf Server SIGMETICS NetFPGA Tutorial 63 S T A N F O R D U N I V E R S I T Y VLAN Configuration for Star Configuration SIGMETICS NetFPGA Tutorial 64 S T A N F O R D U N I V E R S I T Y

33 Demo 2 Enhanced Router Objectives Observe router with new modules New modules: rate limiting, delay, event capture Execution Run event capture router Look at routing tables Explore details pane Start tcp transfer, look at queue occupancy Change rate/delay, look at queue occupancy SIGMETICS NetFPGA Tutorial 65 S T A N F O R D U N I V E R S I T Y Demo 2 Step 1 - Run Pre-made Enhanced Router Start terminal and cd to Desktop/ Type java -jar adv_router.nfp A familiar GUI should start SIGMETICS NetFPGA Tutorial 66 S T A N F O R D U N I V E R S I T Y

34 Demo 2 Step 2 - Load Configuration Click Load from File Select config2 file from the desktop Click Open The port configuration should be loaded and PWOSFP would soon set the routing tables SIGMETICS NetFPGA Tutorial 67 S T A N F O R D U N I V E R S I T Y Demo 2 Step 3 - Explore Enhanced Router Click on the Details tab A similar Pipeline to the one seen previously shows with some additions SIGMETICS NetFPGA Tutorial 68 S T A N F O R D U N I V E R S I T Y

35 Demo 2 Enhanced Router Pipeline Three modules added 1. Event Capture to capture output queue events (writes, reads, drops) MAC rx CPU rx MAC rx CPU rx MAC rx CPU rx MAC rx CPU rx queue 0 queue 0 queue 1 queue 1 queue 2 queue 2 queue 3 queue 3 user_data_path Input Arbiter Output Port Lookup Event Capture 2. Rate Limiter to create a bottleneck 3. Delay to model large RTT latency MAC tx CPU tx queue 0 queue 0 Rate Limiter Delay Output Queues CPU tx MAC tx CPU tx MAC tx CPU tx queue 1 queue 2 queue 2 queue 3 queue 3 MAC tx queue 1 SIGMETICS NetFPGA Tutorial 69 S T A N F O R D U N I V E R S I T Y Demo 2 Step 4 - Start TCP Transfer We will use netperf to run a large TCP transfer and look at queue evolution Start a terminal and cd to Desktop/netperf Type./run_tcp_stream SIGMETICS NetFPGA Tutorial 70 S T A N F O R D U N I V E R S I T Y

36 Demo 2 Step 5 - Start Event Capture Click on the Event Capture module under the Details tab This should start the configuration page SIGMETICS NetFPGA Tutorial 71 S T A N F O R D U N I V E R S I T Y Demo 2 Step 6 - Configure Event Capture Check Send to local host to receive events on the local host Check Monitor Queue 2 to monitor output queue of MAC port1 Check Enable Capture to start Event capture SIGMETICS NetFPGA Tutorial 72 S T A N F O R D U N I V E R S I T Y

37 Demo 2 Step 7 - Watch Queue Occupancy Click on Output Queue 2 tab At full speed, router queue size is almost always 0 or 1 packets. SIGMETICS NetFPGA Tutorial 73 S T A N F O R D U N I V E R S I T Y Demo 2 Step 8 Decrease Queue Size From the Quickstart Window, Click on the Configuration tab. Change the output queues size in bytes slider to 40kB SIGMETICS NetFPGA Tutorial 74 S T A N F O R D U N I V E R S I T Y

38 Demo 2 Step 9 - Decrease the Link Rate To create bottleneck and show the TCP sawtooth, link-rate is decreased. In the Details tab click the Rate Limit module Check Enable Set link rate to 1.953Mbps SIGMETICS NetFPGA Tutorial 75 S T A N F O R D U N I V E R S I T Y Demo 2 Step 10 - Add Delay Click on the Delay module under the Details tab Check the Enabled box Increase delay to 48ms SIGMETICS NetFPGA Tutorial 76 S T A N F O R D U N I V E R S I T Y

39 Demo 2 Step 11 - Look at Event Capture Results Click on the Event Capture module under the details tab. The sawtooth pattern should now be visible. SIGMETICS NetFPGA Tutorial 77 S T A N F O R D U N I V E R S I T Y Queue Occupancy Charts SIGMETICS NetFPGA Tutorial 78 S T A N F O R D U N I V E R S I T Y

40 Background Basics of an IP Router The NetFPGA Platform The Stanford Reference Router Tutorial Outline Demo 1: Stanford Reference Router running on NetFPGA Programming NetFPGA Inside the NetFPGA hardware Breakneck introduction to Verilog Exercise 1: Make your own Reference Router Using NetFPGA for teaching and research Example of classroom use Examples of research Example of Enhanced Router: Observing and controlling queue size Motivation: Understanding buffer size requirements in a router Demo 2: An enhanced Reference Router Exercise 2: Enhancing the Reference Router SIGMETICS NetFPGA Tutorial 79 S T A N F O R D U N I V E R S I T Y Exercise 2 Enhance Your Router Objectives Add new modules to datapath Synthesize and test router Execution Open user_datapath.v, uncomment delay/rate/event capture modules Synthesize After synthesis, test the new system. SIGMETICS NetFPGA Tutorial 80 S T A N F O R D U N I V E R S I T Y

41 An aside: xemacs Tips We will be modifying the Verilog source code Slides show xemacs, but vim also available. xemacs: To undo, use ctrl+shift+'-' To cancel a multi-keystroke command, just type ctrl+g To select lines, hold shift and press the arrow keys. To comment some selected lines, type ctrl+c+c To uncomment a commented block, move the cursor to one of the lines inside the commented block and type ctrl+c+u To save type ctrl+x+s To search, type ctrl+s search_pattern SIGMETICS NetFPGA Tutorial 81 S T A N F O R D U N I V E R S I T Y Exercise 2 Step 1 - Open the Source We will modify the Verilog source code to add event capture, rate limiter, and delay modules We will simply comment and uncomment existing code Open terminal Type xemacs Desktop/ netfpga2.1/projects/tutorial_ro uter/src/udp/user_data_path.v SIGMETICS NetFPGA Tutorial 82 S T A N F O R D U N I V E R S I T Y

42 Exercise 2 Step 2 - Add wires Now we need to add wires to connect the new modules Search for new wires (ctrl+s new wires) then press Enter Uncomment the wires (ctrl+c+u) SIGMETICS NetFPGA Tutorial 83 S T A N F O R D U N I V E R S I T Y Exercise 2 Step 3 - Connect Event Capture Search for opl_output (ctrl+s opl_output) then press Enter Comment the four lines above (up, shift + up + up + up + up, ctrl+c+c) Uncomment the block below to connect the outputs (ctrl+s opl_out, ctrl+c+u) SIGMETICS NetFPGA Tutorial 84 S T A N F O R D U N I V E R S I T Y

43 Exercise 2 Step 4 - Add the Event Capture Module Search for evt_capture_top (ctrl+s evt_capture_top) the press Enter Uncomment the block (ctrl+c+u) SIGMETICS NetFPGA Tutorial 85 S T A N F O R D U N I V E R S I T Y Exercise 2 Step 5 - Connect the Output Queue to the Rate Limiter Search for port_outputs (ctrl+s ports_outputs, Enter) Comment the 4 lines above (select the four lines by using shift+arrow keys, then type ctrl+c+c) Uncomment the commented block by scrolling down into the block and typing ctrl+c+u SIGMETICS NetFPGA Tutorial 86 S T A N F O R D U N I V E R S I T Y

44 Exercise 2 Step 6 - Add Rate Limiter and Delay Scroll down until you reach the next Excluded block Uncomment the block containing the rate limiter and delay instantiations. (scroll into the block and type ctrl+c+u) Save (ctrl+x+s) SIGMETICS NetFPGA Tutorial 87 S T A N F O R D U N I V E R S I T Y Exercise 2 Step 7 - Build the hardware Start terminal, cd to Desktop/netfpga2.1/proj ects/tutorial_router/synth Start synthesis with make SIGMETICS NetFPGA Tutorial 88 S T A N F O R D U N I V E R S I T Y

45 Exercise 2 Step 8 Perfect the Router If interested, go back to Demo 2: Step 1 after synthesis is done and redo the steps with your own router. You can also change the delay, bandwidth and queue size settings to see how that effects the queue occupancy evolution. SIGMETICS NetFPGA Tutorial 89 S T A N F O R D U N I V E R S I T Y Background Basics of an IP Router The NetFPGA Platform The Stanford Reference Router Tutorial Outline Demo 1: Stanford Reference Router running on NetFPGA Programming NetFPGA Inside the NetFPGA hardware Breakneck introduction to Verilog Exercise 1: Make your own Reference Router Using NetFPGA for teaching and research Example of classroom use Examples of research Example of Enhanced Router: Observing and controlling queue size Motivation: Understanding buffer size requirements in a router Demo 2: An enhanced Reference Router Exercise 2: Enhancing the Reference Router SIGMETICS NetFPGA Tutorial 90 S T A N F O R D U N I V E R S I T Y

46 We re done! Congratulations! SIGMETICS NetFPGA Tutorial 91 S T A N F O R D U N I V E R S I T Y Acknowledgements NetFPGA Team : January 2007 Jianying Luo, Glen Gibb, Nick McKeown, Greg Watson, Jim Weaver, Jad Naous, Ramanan Raghuraman, Paul Hartke, John Lockwood SIGMETICS NetFPGA Tutorial 92 S T A N F O R D U N I V E R S I T Y

47 Acknowledgements Support for the NetFPGA project has been provided by the following companies and institutions Disclaimer: Any opinions, findings, conclusions, or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation or of the other sponsors supporting this project. SIGMETICS NetFPGA Tutorial 93 S T A N F O R D U N I V E R S I T Y References on the Web NetFPGA homepage Hardware Request Page SIGMETICS NetFPGA Tutorial 94 S T A N F O R D U N I V E R S I T Y

Motivation to Teach Network Hardware

Motivation to Teach Network Hardware NetFPGA: An Open Platform for Gigabit-rate Network Switching and Routing John W. Lockwood, Nick McKeown Greg Watson, Glen Gibb, Paul Hartke, Jad Naous, Ramanan Raghuraman, and Jianying Luo JWLockwd@stanford.edu

More information

NetFPGA Hardware Architecture

NetFPGA Hardware Architecture NetFPGA Hardware Architecture Jeffrey Shafer Some slides adapted from Stanford NetFPGA tutorials NetFPGA http://netfpga.org 2 NetFPGA Components Virtex-II Pro 5 FPGA 53,136 logic cells 4,176 Kbit block

More information

Overview. Implementing Gigabit Routers with NetFPGA. Basic Architectural Components of an IP Router. Per-packet processing in an IP Router

Overview. Implementing Gigabit Routers with NetFPGA. Basic Architectural Components of an IP Router. Per-packet processing in an IP Router Overview Implementing Gigabit Routers with NetFPGA Prof. Sasu Tarkoma The NetFPGA is a low-cost platform for teaching networking hardware and router design, and a tool for networking researchers. The NetFPGA

More information

NetFPGA Workshop Day 1

NetFPGA Workshop Day 1 NetFPGA Workshop Day 1 Presented by: Jad Naous (Stanford University) Andrew W. Moore (Cambridge University) Hosted by: Manolis Katevenis at FORTH, Crete September 15-16, 2010 http://netfpga.org Crete Tutorial

More information

NetFPGA Update at GEC4

NetFPGA Update at GEC4 NetFPGA Update at GEC4 http://netfpga.org/ NSF GENI Engineering Conference 4 (GEC4) March 31, 2009 John W. Lockwood http://stanford.edu/~jwlockwd/ jwlockwd@stanford.edu NSF GEC4 1 March 2009 What is the

More information

NetFPGA : Workshop in Cambridge

NetFPGA : Workshop in Cambridge NetFPGA : Workshop in Cambridge Presented by: Andrew W. Moore and David Miller (University of Cambridge) Martin Žádník (Brno University of Technology) Cambridge, UK September 5-6, 28 http://netfpga.org

More information

Experience with the NetFPGA Program

Experience with the NetFPGA Program Experience with the NetFPGA Program John W. Lockwood Algo-Logic Systems Algo-Logic.com With input from the Stanford University NetFPGA Group & Xilinx XUP Program Sunday, February 21, 2010 FPGA-2010 Pre-Conference

More information

NetFPGA Tutorial. Junho Suh Monday, May 13, 13

NetFPGA Tutorial. Junho Suh Monday, May 13, 13 NetFPGA Tutorial Junho Suh (jhsuh@mmlab.snu.ac.kr) Content NetFPGA Basic IP Router A Basic IP Router on NetFPGA Exercises Prerequisites Logic Design (4190.201) Computer Network (4190.411) Computer language

More information

Sizing Router Buffers

Sizing Router Buffers Sizing Router Buffers Sachin Katti, CS244 Slides courtesy: Nick McKeown Routers need Packet Buffers It s well known that routers need packet buffers It s less clear why and how much Goal of this work is

More information

Professor Yashar Ganjali Department of Computer Science University of Toronto.

Professor Yashar Ganjali Department of Computer Science University of Toronto. Professor Yashar Ganjali Department of Computer Science University of Toronto yganjali@cs.toronto.edu http://www.cs.toronto.edu/~yganjali Today Outline What this course is about Logistics Course structure,

More information

Network Processors and their memory

Network Processors and their memory Network Processors and their memory Network Processor Workshop, Madrid 2004 Nick McKeown Departments of Electrical Engineering and Computer Science, Stanford University nickm@stanford.edu http://www.stanford.edu/~nickm

More information

The Network Layer and Routers

The Network Layer and Routers The Network Layer and Routers Daniel Zappala CS 460 Computer Networking Brigham Young University 2/18 Network Layer deliver packets from sending host to receiving host must be on every host, router in

More information

Day 2: NetFPGA Cambridge Workshop Module Development and Testing

Day 2: NetFPGA Cambridge Workshop Module Development and Testing Day 2: NetFPGA Cambridge Workshop Module Development and Testing Presented by: Andrew W. Moore and David Miller (University of Cambridge) Martin Žádník (Brno University of Technology) Cambridge UK September

More information

Introducing optical switching into the network

Introducing optical switching into the network Introducing optical switching into the network ECOC 2005, Glasgow Nick McKeown High Performance Networking Group Stanford University nickm@stanford.edu http://www.stanford.edu/~nickm Network religion Bigger

More information

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011 FPGA for Complex System Implementation National Chiao Tung University Chun-Jen Tsai 04/14/2011 About FPGA FPGA was invented by Ross Freeman in 1989 SRAM-based FPGA properties Standard parts Allowing multi-level

More information

NetFPGA Tutorial Tsinghua University Day 2

NetFPGA Tutorial Tsinghua University Day 2 NetFPGA Tutorial Tsinghua University Day 2 Presented by: James Hongyi Zeng (Stanford University) Joshua Lu (Xilinx China) Beijing, China May 15-16, 2010 http://netfpga.org NetFPGA Tsinghua Tutorial May

More information

Getting started with Digilent NetFPGA SUME, a Xilinx Virtex 7 FPGA board for high performance computing and networking systems

Getting started with Digilent NetFPGA SUME, a Xilinx Virtex 7 FPGA board for high performance computing and networking systems Getting started with Digilent NetFPGA SUME, a Xilinx Virtex 7 FPGA board for high performance computing and networking systems Introduction The NetFPGA project is a group to develop open source hardware

More information

RiceNIC. Prototyping Network Interfaces. Jeffrey Shafer Scott Rixner

RiceNIC. Prototyping Network Interfaces. Jeffrey Shafer Scott Rixner RiceNIC Prototyping Network Interfaces Jeffrey Shafer Scott Rixner RiceNIC Overview Gigabit Ethernet Network Interface Card RiceNIC - Prototyping Network Interfaces 2 RiceNIC Overview Reconfigurable and

More information

Basic FPGA Architectures. Actel FPGAs. PLD Technologies: Antifuse. 3 Digital Systems Implementation Programmable Logic Devices

Basic FPGA Architectures. Actel FPGAs. PLD Technologies: Antifuse. 3 Digital Systems Implementation Programmable Logic Devices 3 Digital Systems Implementation Programmable Logic Devices Basic FPGA Architectures Why Programmable Logic Devices (PLDs)? Low cost, low risk way of implementing digital circuits as application specific

More information

Design principles in parser design

Design principles in parser design Design principles in parser design Glen Gibb Dept. of Electrical Engineering Advisor: Prof. Nick McKeown Header parsing? 2 Header parsing? Identify headers & extract fields A???? B???? C?? Field Field

More information

Decision Forest: A Scalable Architecture for Flexible Flow Matching on FPGA

Decision Forest: A Scalable Architecture for Flexible Flow Matching on FPGA Decision Forest: A Scalable Architecture for Flexible Flow Matching on FPGA Weirong Jiang, Viktor K. Prasanna University of Southern California Norio Yamagaki NEC Corporation September 1, 2010 Outline

More information

CS344 - Build an Internet Router. Nick McKeown, Steve Ibanez (TF)

CS344 - Build an Internet Router. Nick McKeown, Steve Ibanez (TF) CS344 - Build an Internet Router Nick McKeown, Steve Ibanez (TF) Generic Packet Switch Data H Lookup Address Update Header Queue Packet Destination Address Egress link Forwarding Table Buffer Memory CS344,

More information

EECS150 - Digital Design Lecture 16 Memory 1

EECS150 - Digital Design Lecture 16 Memory 1 EECS150 - Digital Design Lecture 16 Memory 1 March 13, 2003 John Wawrzynek Spring 2003 EECS150 - Lec16-mem1 Page 1 Memory Basics Uses: Whenever a large collection of state elements is required. data &

More information

Experimental Evaluation of Passive Optical Network Based Data Centre Architecture

Experimental Evaluation of Passive Optical Network Based Data Centre Architecture Experimental Evaluation of Passive Optical Network Based Data Centre Architecture Azza E. A. Eltraify, Mohamed O. I. Musa, Ahmed Al-Quzweeni and Jaafar M.H. Elmirghani School of Electronic and Electrical

More information

EECS150 - Digital Design Lecture 16 - Memory

EECS150 - Digital Design Lecture 16 - Memory EECS150 - Digital Design Lecture 16 - Memory October 17, 2002 John Wawrzynek Fall 2002 EECS150 - Lec16-mem1 Page 1 Memory Basics Uses: data & program storage general purpose registers buffering table lookups

More information

Chapter 4: network layer. Network service model. Two key network-layer functions. Network layer. Input port functions. Router architecture overview

Chapter 4: network layer. Network service model. Two key network-layer functions. Network layer. Input port functions. Router architecture overview Chapter 4: chapter goals: understand principles behind services service models forwarding versus routing how a router works generalized forwarding instantiation, implementation in the Internet 4- Network

More information

Introduction to Field Programmable Gate Arrays

Introduction to Field Programmable Gate Arrays Introduction to Field Programmable Gate Arrays Lecture 1/3 CERN Accelerator School on Digital Signal Processing Sigtuna, Sweden, 31 May 9 June 2007 Javier Serrano, CERN AB-CO-HT Outline Historical introduction.

More information

Switch and Router Design. Packet Processing Examples. Packet Processing Examples. Packet Processing Rate 12/14/2011

Switch and Router Design. Packet Processing Examples. Packet Processing Examples. Packet Processing Rate 12/14/2011 // Bottlenecks Memory, memory, 88 - Switch and Router Design Dr. David Hay Ross 8b dhay@cs.huji.ac.il Source: Nick Mckeown, Isaac Keslassy Packet Processing Examples Address Lookup (IP/Ethernet) Where

More information

6.9. Communicating to the Outside World: Cluster Networking

6.9. Communicating to the Outside World: Cluster Networking 6.9 Communicating to the Outside World: Cluster Networking This online section describes the networking hardware and software used to connect the nodes of cluster together. As there are whole books and

More information

440GX Application Note

440GX Application Note Overview of TCP/IP Acceleration Hardware January 22, 2008 Introduction Modern interconnect technology offers Gigabit/second (Gb/s) speed that has shifted the bottleneck in communication from the physical

More information

CSC 401 Data and Computer Communications Networks

CSC 401 Data and Computer Communications Networks CSC 401 Data and Computer Communications Networks Network Layer Overview, Router Design, IP Sec 4.1. 4.2 and 4.3 Prof. Lina Battestilli Fall 2017 Chapter 4: Network Layer, Data Plane chapter goals: understand

More information

P4 for an FPGA target

P4 for an FPGA target P4 for an FPGA target Gordon Brebner Xilinx Labs San José, USA P4 Workshop, Stanford University, 4 June 2015 What this talk is about FPGAs and packet processing languages Xilinx SDNet data plane builder

More information

Verilog for High Performance

Verilog for High Performance Verilog for High Performance Course Description This course provides all necessary theoretical and practical know-how to write synthesizable HDL code through Verilog standard language. The course goes

More information

COMP211 Chapter 4 Network Layer: The Data Plane

COMP211 Chapter 4 Network Layer: The Data Plane COMP211 Chapter 4 Network Layer: The Data Plane All material copyright 1996-2016 J.F Kurose and K.W. Ross, All Rights Reserved Computer Networking: A Top Down Approach 7 th edition Jim Kurose, Keith Ross

More information

INT 1011 TCP Offload Engine (Full Offload)

INT 1011 TCP Offload Engine (Full Offload) INT 1011 TCP Offload Engine (Full Offload) Product brief, features and benefits summary Provides lowest Latency and highest bandwidth. Highly customizable hardware IP block. Easily portable to ASIC flow,

More information

CSCI-1680 Network Layer: IP & Forwarding Rodrigo Fonseca

CSCI-1680 Network Layer: IP & Forwarding Rodrigo Fonseca CSCI-1680 Network Layer: IP & Forwarding Rodrigo Fonseca Based partly on lecture notes by David Mazières, Phil Levis, John Jannotti Today Network layer: Internet Protocol (v4) Forwarding Next 2 classes:

More information

INTRODUCTION TO FPGA ARCHITECTURE

INTRODUCTION TO FPGA ARCHITECTURE 3/3/25 INTRODUCTION TO FPGA ARCHITECTURE DIGITAL LOGIC DESIGN (BASIC TECHNIQUES) a b a y 2input Black Box y b Functional Schematic a b y a b y a b y 2 Truth Table (AND) Truth Table (OR) Truth Table (XOR)

More information

CSE 123A Computer Networks

CSE 123A Computer Networks CSE 123A Computer Networks Winter 2005 Lecture 8: IP Router Design Many portions courtesy Nick McKeown Overview Router basics Interconnection architecture Input Queuing Output Queuing Virtual output Queuing

More information

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses Today Comments about assignment 3-43 Comments about assignment 3 ASICs and Programmable logic Others courses octor Per should show up in the end of the lecture Mealy machines can not be coded in a single

More information

Atacama: An Open Experimental Platform for Mixed-Criticality Networking on Top of Ethernet

Atacama: An Open Experimental Platform for Mixed-Criticality Networking on Top of Ethernet Atacama: An Open Experimental Platform for Mixed-Criticality Networking on Top of Ethernet Gonzalo Carvajal 1,2 and Sebastian Fischmeister 1 1 University of Waterloo, ON, Canada 2 Universidad de Concepcion,

More information

INT G bit TCP Offload Engine SOC

INT G bit TCP Offload Engine SOC INT 10011 10 G bit TCP Offload Engine SOC Product brief, features and benefits summary: Highly customizable hardware IP block. Easily portable to ASIC flow, Xilinx/Altera FPGAs or Structured ASIC flow.

More information

PUSHING THE LIMITS, A PERSPECTIVE ON ROUTER ARCHITECTURE CHALLENGES

PUSHING THE LIMITS, A PERSPECTIVE ON ROUTER ARCHITECTURE CHALLENGES PUSHING THE LIMITS, A PERSPECTIVE ON ROUTER ARCHITECTURE CHALLENGES Greg Hankins APRICOT 2012 2012 Brocade Communications Systems, Inc. 2012/02/28 Lookup Capacity and Forwarding

More information

Chapter 4 Network Layer: The Data Plane

Chapter 4 Network Layer: The Data Plane Chapter 4 Network Layer: The Data Plane A note on the use of these Powerpoint slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you see

More information

FPGA: What? Why? Marco D. Santambrogio

FPGA: What? Why? Marco D. Santambrogio FPGA: What? Why? Marco D. Santambrogio marco.santambrogio@polimi.it 2 Reconfigurable Hardware Reconfigurable computing is intended to fill the gap between hardware and software, achieving potentially much

More information

Chapter 4 Network Layer: The Data Plane

Chapter 4 Network Layer: The Data Plane Chapter 4 Network Layer: The Data Plane Chapter 4: outline 4.1 Overview of Network layer data plane control plane 4.2 What s inside a router 4.3 IP: Internet Protocol datagram format fragmentation IPv4

More information

Introduction to Routers and LAN Switches

Introduction to Routers and LAN Switches Introduction to Routers and LAN Switches Session 3048_05_2001_c1 2001, Cisco Systems, Inc. All rights reserved. 3 Prerequisites OSI Model Networking Fundamentals 3048_05_2001_c1 2001, Cisco Systems, Inc.

More information

CS 5114 Network Programming Languages Data Plane. Nate Foster Cornell University Spring 2013

CS 5114 Network Programming Languages Data Plane. Nate Foster Cornell University Spring 2013 CS 5114 Network Programming Languages Data Plane http://www.flickr.com/photos/rofi/2097239111/ Nate Foster Cornell University Spring 2013 Based on lecture notes by Jennifer Rexford and Michael Freedman

More information

RiceNIC. A Reconfigurable Network Interface for Experimental Research and Education. Jeffrey Shafer Scott Rixner

RiceNIC. A Reconfigurable Network Interface for Experimental Research and Education. Jeffrey Shafer Scott Rixner RiceNIC A Reconfigurable Network Interface for Experimental Research and Education Jeffrey Shafer Scott Rixner Introduction Networking is critical to modern computer systems Role of the network interface

More information

CSCI-1680 Network Layer: IP & Forwarding John Jannotti

CSCI-1680 Network Layer: IP & Forwarding John Jannotti CSCI-1680 Network Layer: IP & Forwarding John Jannotti Based partly on lecture notes by David Mazières, Phil Levis, Rodrigo Fonseca Administrivia IP out today. Your job: Find partners, get setup with Github

More information

PARALLEL ALGORITHMS FOR IP SWITCHERS/ROUTERS

PARALLEL ALGORITHMS FOR IP SWITCHERS/ROUTERS THE UNIVERSITY OF NAIROBI DEPARTMENT OF ELECTRICAL AND INFORMATION ENGINEERING FINAL YEAR PROJECT. PROJECT NO. 60 PARALLEL ALGORITHMS FOR IP SWITCHERS/ROUTERS OMARI JAPHETH N. F17/2157/2004 SUPERVISOR:

More information

internet technologies and standards

internet technologies and standards Institute of Telecommunications Warsaw University of Technology 2017 internet technologies and standards Piotr Gajowniczek Andrzej Bąk Michał Jarociński Network Layer The majority of slides presented in

More information

Computer Network Fundamentals Spring Week 4 Network Layer Andreas Terzis

Computer Network Fundamentals Spring Week 4 Network Layer Andreas Terzis Computer Network Fundamentals Spring 2008 Week 4 Network Layer Andreas Terzis Outline Internet Protocol Service Model Addressing Original addressing scheme Subnetting CIDR Fragmentation ICMP Address Shortage

More information

Lecture 3: Packet Forwarding

Lecture 3: Packet Forwarding Lecture 3: Packet Forwarding CSE 222A: Computer Communication Networks Alex C. Snoeren Thanks: Mike Freedman & Amin Vahdat Lecture 3 Overview Paper reviews Packet Forwarding IP Addressing Subnetting/CIDR

More information

EITF35: Introduction to Structured VLSI Design

EITF35: Introduction to Structured VLSI Design EITF35: Introduction to Structured VLSI Design Introduction to FPGA design Rakesh Gangarajaiah Rakesh.gangarajaiah@eit.lth.se Slides from Chenxin Zhang and Steffan Malkowsky WWW.FPGA What is FPGA? Field

More information

Prototyping Fast, Simple, Secure Switches for Ethane

Prototyping Fast, Simple, Secure Switches for Ethane Prototyping Fast, Simple, Secure Switches for Ethane Jianying Luo, Justin Pettit, Martin Casado, John Lockwood, Nick McKeown (jyluo,jpettit,casado,jwlockwd,nickm)@stanford.edu Abstract We recently proposed

More information

Barcelona: a Fibre Channel Switch SoC for Enterprise SANs Nital P. Patwa Hardware Engineering Manager/Technical Leader

Barcelona: a Fibre Channel Switch SoC for Enterprise SANs Nital P. Patwa Hardware Engineering Manager/Technical Leader Barcelona: a Fibre Channel Switch SoC for Enterprise SANs Nital P. Patwa Hardware Engineering Manager/Technical Leader 1 Agenda Introduction to Fibre Channel Switching in Enterprise SANs Barcelona Switch-On-a-Chip

More information

International Journal of Engineering Trends and Technology (IJETT) Volume 6 Number 3- Dec 2013

International Journal of Engineering Trends and Technology (IJETT) Volume 6 Number 3- Dec 2013 High Speed Design of Ethernet MAC * Bolleddu Alekya 1 P. Bala Nagu 2 1 PG Student (M. Tech), Dept. of ECE, Chirala Engineering College, Chirala, A.P, India. 2 Associate Professor, Dept. of ECE, Chirala

More information

Chapter 4. Routers with Tiny Buffers: Experiments. 4.1 Testbed experiments Setup

Chapter 4. Routers with Tiny Buffers: Experiments. 4.1 Testbed experiments Setup Chapter 4 Routers with Tiny Buffers: Experiments This chapter describes two sets of experiments with tiny buffers in networks: one in a testbed and the other in a real network over the Internet2 1 backbone.

More information

cs144 Midterm Review Fall 2010

cs144 Midterm Review Fall 2010 cs144 Midterm Review Fall 2010 Administrivia Lab 3 in flight. Due: Thursday, Oct 28 Midterm is this Thursday, Oct 21 (during class) Remember Grading Policy: - Exam grade = max (final, (final + midterm)/2)

More information

Routers: Forwarding EECS 122: Lecture 13

Routers: Forwarding EECS 122: Lecture 13 Routers: Forwarding EECS 122: Lecture 13 epartment of Electrical Engineering and Computer Sciences University of California Berkeley Router Architecture Overview Two key router functions: run routing algorithms/protocol

More information

VHDL for Synthesis. Course Description. Course Duration. Goals

VHDL for Synthesis. Course Description. Course Duration. Goals VHDL for Synthesis Course Description This course provides all necessary theoretical and practical know how to write an efficient synthesizable HDL code through VHDL standard language. The course goes

More information

Basic FPGA Architecture Xilinx, Inc. All Rights Reserved

Basic FPGA Architecture Xilinx, Inc. All Rights Reserved Basic FPGA Architecture 2005 Xilinx, Inc. All Rights Reserved Objectives After completing this module, you will be able to: Identify the basic architectural resources of the Virtex -II FPGA List the differences

More information

CprE 583 Reconfigurable Computing

CprE 583 Reconfigurable Computing CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #9 Logic Emulation Technology Recap FPGA-Based Router (FPX)

More information

Router Architectures

Router Architectures Router Architectures Venkat Padmanabhan Microsoft Research 13 April 2001 Venkat Padmanabhan 1 Outline Router architecture overview 50 Gbps multi-gigabit router (Partridge et al.) Technology trends Venkat

More information

An easy to read reference is:

An easy to read reference is: 1. Synopsis: Timing Analysis and Timing Constraints The objective of this lab is to make you familiar with two critical reports produced by the Xilinx ISE during your design synthesis and implementation.

More information

CSCI-GA Operating Systems. Networking. Hubertus Franke

CSCI-GA Operating Systems. Networking. Hubertus Franke CSCI-GA.2250-001 Operating Systems Networking Hubertus Franke frankeh@cs.nyu.edu Source: Ganesh Sittampalam NYU TCP/IP protocol family IP : Internet Protocol UDP : User Datagram Protocol RTP, traceroute

More information

EC441 Fall 2018 Introduction to Computer Networking Chapter4: Network Layer Data Plane

EC441 Fall 2018 Introduction to Computer Networking Chapter4: Network Layer Data Plane EC441 Fall 2018 Introduction to Computer Networking Chapter4: Network Layer Data Plane This presentation is adapted from slides produced by Jim Kurose and Keith Ross for their book, Computer Networking:

More information

Student ID: CS457: Computer Networking Date: 3/20/2007 Name:

Student ID: CS457: Computer Networking Date: 3/20/2007 Name: CS457: Computer Networking Date: 3/20/2007 Name: Instructions: 1. Be sure that you have 9 questions 2. Be sure your answers are legible. 3. Write your Student ID at the top of every page 4. This is a closed

More information

Overview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips

Overview. CSE372 Digital Systems Organization and Design Lab. Hardware CAD. Two Types of Chips Overview CSE372 Digital Systems Organization and Design Lab Prof. Milo Martin Unit 5: Hardware Synthesis CAD (Computer Aided Design) Use computers to design computers Virtuous cycle Architectural-level,

More information

Lecture 16: Network Layer Overview, Internet Protocol

Lecture 16: Network Layer Overview, Internet Protocol Lecture 16: Network Layer Overview, Internet Protocol COMP 332, Spring 2018 Victoria Manfredi Acknowledgements: materials adapted from Computer Networking: A Top Down Approach 7 th edition: 1996-2016,

More information

Network Performance: Queuing

Network Performance: Queuing Network Performance: Queuing EE 122: Intro to Communication Networks Fall 2007 (WF 4-5:30 in Cory 277) Vern Paxson TAs: Lisa Fowler, Daniel Killebrew & Jorge Ortiz http://inst.eecs.berkeley.edu/~ee122/

More information

CS 552 Computer Networks

CS 552 Computer Networks CS 55 Computer Networks IP forwarding Fall 00 Rich Martin (Slides from D. Culler and N. McKeown) Position Paper Goals: Practice writing to convince others Research an interesting topic related to networking.

More information

Open Network Laboratory

Open Network Laboratory Open Network Laboratory Raj Jain Raj Jain Washington University in Saint Louis Saint Louis, MO 63130 Jain@wustl.edu Audio/Video recordings of this lecture are available on-line at: http://www.cse.wustl.edu/~jain/cse473-11/

More information

NetFPGA Summer Course

NetFPGA Summer Course NetFPGA Summer Course Presented by: Andrew W Moore, Noa Zilberman, Gianni Antichi Stephen Ibanez, Marcin Wojcik, Jong Hun Han, Salvator Galea, Murali Ramanujam, Jingyun Zhang, Yuta Tokusashi University

More information

A Network Storage LSI Suitable for Home Network

A Network Storage LSI Suitable for Home Network 258 HAN-KYU LIM et al : A NETWORK STORAGE LSI SUITABLE FOR HOME NETWORK A Network Storage LSI Suitable for Home Network Han-Kyu Lim*, Ji-Ho Han**, and Deog-Kyoon Jeong*** Abstract Storage over (SoE) is

More information

The QR code here provides a shortcut to go to the course webpage.

The QR code here provides a shortcut to go to the course webpage. Welcome to this MSc Lab Experiment. All my teaching materials for this Lab-based module are also available on the webpage: www.ee.ic.ac.uk/pcheung/teaching/msc_experiment/ The QR code here provides a shortcut

More information

TSEA44 - Design for FPGAs

TSEA44 - Design for FPGAs 2015-11-24 Now for something else... Adapting designs to FPGAs Why? Clock frequency Area Power Target FPGA architecture: Xilinx FPGAs with 4 input LUTs (such as Virtex-II) Determining the maximum frequency

More information

Lecture 3. The Network Layer (cont d) Network Layer 1-1

Lecture 3. The Network Layer (cont d) Network Layer 1-1 Lecture 3 The Network Layer (cont d) Network Layer 1-1 Agenda The Network Layer (cont d) What is inside a router? Internet Protocol (IP) IPv4 fragmentation and addressing IP Address Classes and Subnets

More information

Chapter 4 Network Layer: The Data Plane

Chapter 4 Network Layer: The Data Plane Chapter 4 Network Layer: The Data Plane Lu Su Assistant Professor Department of Computer Science and Engineering State University of New York at Buffalo Adapted from the slides of the book s authors Computer

More information

CPE/EE 422/522. Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices. Dr. Rhonda Kay Gaede UAH. Outline

CPE/EE 422/522. Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices. Dr. Rhonda Kay Gaede UAH. Outline CPE/EE 422/522 Introduction to Xilinx Virtex Field-Programmable Gate Arrays Devices Dr. Rhonda Kay Gaede UAH Outline Introduction Field-Programmable Gate Arrays Virtex Virtex-E, Virtex-II, and Virtex-II

More information

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now?

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now? Outline EECS 5 - Components and Design Techniques for Digital Systems Lec Putting it all together -5-4 David Culler Electrical Engineering and Computer Sciences University of California Berkeley Top-to-bottom

More information

Intro to HW Design & Externs for P4àNetFPGA. CS344 Lecture 5

Intro to HW Design & Externs for P4àNetFPGA. CS344 Lecture 5 Intro to HW Design & Externs for P4àNetFPGA CS344 Lecture 5 Announcements Updated deliverable description for next Tuesday Implement most of the required functionality Make sure baseline tests are passing

More information

EECS 151/251A Spring 2019 Digital Design and Integrated Circuits. Instructor: John Wawrzynek. Lecture 18 EE141

EECS 151/251A Spring 2019 Digital Design and Integrated Circuits. Instructor: John Wawrzynek. Lecture 18 EE141 EECS 151/251A Spring 2019 Digital Design and Integrated Circuits Instructor: John Wawrzynek Lecture 18 Memory Blocks Multi-ported RAM Combining Memory blocks FIFOs FPGA memory blocks Memory block synthesis

More information

PowerPC on NetFPGA CSE 237B. Erik Rubow

PowerPC on NetFPGA CSE 237B. Erik Rubow PowerPC on NetFPGA CSE 237B Erik Rubow NetFPGA PCI card + FPGA + 4 GbE ports FPGA (Virtex II Pro) has 2 PowerPC hard cores Untapped resource within NetFPGA community Goals Evaluate performance of on chip

More information

High Capacity and High Performance 20nm FPGAs. Steve Young, Dinesh Gaitonde August Copyright 2014 Xilinx

High Capacity and High Performance 20nm FPGAs. Steve Young, Dinesh Gaitonde August Copyright 2014 Xilinx High Capacity and High Performance 20nm FPGAs Steve Young, Dinesh Gaitonde August 2014 Not a Complete Product Overview Page 2 Outline Page 3 Petabytes per month Increasing Bandwidth Global IP Traffic Growth

More information

CHAPTER 6 FPGA IMPLEMENTATION OF ARBITERS ALGORITHM FOR NETWORK-ON-CHIP

CHAPTER 6 FPGA IMPLEMENTATION OF ARBITERS ALGORITHM FOR NETWORK-ON-CHIP 133 CHAPTER 6 FPGA IMPLEMENTATION OF ARBITERS ALGORITHM FOR NETWORK-ON-CHIP 6.1 INTRODUCTION As the era of a billion transistors on a one chip approaches, a lot of Processing Elements (PEs) could be located

More information

INT-1010 TCP Offload Engine

INT-1010 TCP Offload Engine INT-1010 TCP Offload Engine Product brief, features and benefits summary Highly customizable hardware IP block. Easily portable to ASIC flow, Xilinx or Altera FPGAs INT-1010 is highly flexible that is

More information

A Framework for Rule Processing in Reconfigurable Network Systems

A Framework for Rule Processing in Reconfigurable Network Systems A Framework for Rule Processing in Reconfigurable Network Systems Michael Attig and John Lockwood Washington University in Saint Louis Applied Research Laboratory Department of Computer Science and Engineering

More information

internet technologies and standards

internet technologies and standards Institute of Telecommunications Warsaw University of Technology 2015 internet technologies and standards Piotr Gajowniczek Andrzej Bąk Michał Jarociński Network Layer The majority of slides presented in

More information

Intelop. *As new IP blocks become available, please contact the factory for the latest updated info.

Intelop. *As new IP blocks become available, please contact the factory for the latest updated info. A FPGA based development platform as part of an EDK is available to target intelop provided IPs or other standard IPs. The platform with Virtex-4 FX12 Evaluation Kit provides a complete hardware environment

More information

CSCI-1680 Network Layer: IP & Forwarding Rodrigo Fonseca Instructor: Nicholas DeMarinis

CSCI-1680 Network Layer: IP & Forwarding Rodrigo Fonseca Instructor: Nicholas DeMarinis CSCI-1680 Network Layer: IP & Forwarding Rodrigo Fonseca Instructor: Nicholas DeMarinis Based partly on lecture notes by David Mazières, Phil Levis, John Jannotti Administrivia IP out today. Your job:

More information

1-1. Switching Networks (Fall 2010) EE 586 Communication and. October 25, Lecture 24

1-1. Switching Networks (Fall 2010) EE 586 Communication and. October 25, Lecture 24 EE 586 Communication and Switching Networks (Fall 2010) Lecture 24 October 25, 2010 1-1 Announcements Midterm 1: Mean = 92.2 Stdev = 8 Still grading your programs (sorry about the delay) Network Layer

More information

ECEN 651: Microprogrammed Control of Digital Systems Department of Electrical and Computer Engineering Texas A&M University

ECEN 651: Microprogrammed Control of Digital Systems Department of Electrical and Computer Engineering Texas A&M University ECEN 651: Microprogrammed Control of Digital Systems Department of Electrical and Computer Engineering Texas A&M University Prof. Mi Lu TA: Ehsan Rohani Laboratory Exercise #3 Storage Elements in Verilog

More information

08 - Address Generator Unit (AGU)

08 - Address Generator Unit (AGU) October 2, 2014 Todays lecture Memory subsystem Address Generator Unit (AGU) Schedule change A new lecture has been entered into the schedule (to compensate for the lost lecture last week) Memory subsystem

More information

Custom Computing. wl

Custom Computing. wl Custom Computing theory and practice of customising designs one of the fastest growing technologies impact on ASIC, CPU, many-core, GPU, multi-scale dataflow wide range of architectures and applications

More information

T NetFPGA prototype of zfilter forwarding. Petri Jokela ericsson research, Nomadiclab

T NetFPGA prototype of zfilter forwarding. Petri Jokela ericsson research, Nomadiclab T-110.5110 NetFPGA prototype of zfilter forwarding Petri Jokela ericsson research, Nomadiclab 23.11.2009 CONTENT Information centric networking Reasoning, background Forwarding with In-packet Bloom Filters

More information

Lecture 11: Networks & Networking

Lecture 11: Networks & Networking Lecture 11: Networks & Networking Contents Distributed systems Network types Network standards ISO and TCP/IP network models Internet architecture IP addressing IP datagrams AE4B33OSS Lecture 11 / Page

More information

Router Architecture Overview

Router Architecture Overview Chapter 4: r Introduction (forwarding and routing) r Review of queueing theory r Router design and operation r IP: Internet Protocol m IPv4 (datagram format, addressing, ICMP, NAT) m Ipv6 r Generalized

More information

Chapter 4: network layer

Chapter 4: network layer Chapter 4: network layer chapter goals: understand principles behind network layer services: network layer service models forwarding versus routing how a router works routing (path selection) broadcast,

More information

Users Guide: Fast IP Lookup (FIPL) in the FPX

Users Guide: Fast IP Lookup (FIPL) in the FPX Users Guide: Fast IP Lookup (FIPL) in the FPX Gigabit Kits Workshop /22 FIPL System Design Each FIPL Engine performs a longest matching prefix lookup on a single 32-bit IPv4 destination address FIPL Engine

More information