IXP2400 Protocol Offloading Yan Luo Chris Baron

Slides:



Advertisements
Similar presentations
Lecture 101 Lecture 10: Kernel Modules and Device Drivers ECE 412: Microcomputer Laboratory.
Advertisements

Device Drivers. Linux Device Drivers Linux supports three types of hardware device: character, block and network –character devices: R/W without buffering.
COMS W6998 Spring 2010 Erich Nahum
Supercharging PlanetLab A High Performance,Multi-Alpplication,Overlay Network Platform Reviewed by YoungSoo Lee CSL.
A First Example: The Bump in the Wire A First Example: The Bump in the Wire 9/ INF5061: Multimedia data communication using network processors.
1 SpaceWire Update NASA GSFC November 25, GSFC SpaceWire Status New Link core with split clock domains complete (Much faster) New Router core.
1 ELEN 602 Lecture 18 Packet switches Traffic Management.
Shivkumar Kalyanaraman Rensselaer Polytechnic Institute 1 TCP/IP Stack Introduction: Looking Under the Hood! Shiv Kalyanaraman Rensselaer Polytechnic Institute.
VIA and Its Extension To TCP/IP Network Yingping Lu Based on Paper “Queue Pair IP, …” by Philip Buonadonna.
PC To GT Program Load Shachar Rosenberg Alex Normatov Technion - Digital Lab.
Page: 1 Director 1.0 TECHNION Department of Computer Science The Computer Communication Lab (236340) Summer 2002 Submitted by: David Schwartz Idan Zak.
1 Design and Implementation of A Content-aware Switch using A Network Processor Li Zhao, Yan Luo, Laxmi Bhuyan University of California, Riverside Ravi.
Cache Table. ARP Modules Output Module Sleep until IP packet is received from IP Software Check cache table for entry corresponding to the destination.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
04/16/2010CSCI 315 Operating Systems Design1 I/O Systems Notice: The slides for this lecture have been largely based on those accompanying an earlier edition.
Ubiquitous Component Remoting Support on Overlay Network Adaptation support with Ontology-based annotation Roaming support of wireless component communication.
Students:Gilad Goldman Lior Kamran Supervisor:Mony Orbach Mid-Semester Presentation Spring 2005 Network Sniffer.
TCP/IP Protocol Suite 1 Chapter 11 Upon completion you will be able to: User Datagram Protocol Be able to explain process-to-process communication Know.
Shyamal Pandya Implementation of Network Processor Packet Filtering and Parameterization for Higher Performance Network Processors 1 Implementation of.
Anush Rengarajan Feng Zheng Thomas Madaelil
1 Today I/O Systems Storage. 2 I/O Devices Many different kinds of I/O devices Software that controls them: device drivers.
An overview of Infiniband Reykjavik, June 24th 2008 R E Y K J A V I K U N I V E R S I T Y Dept. Computer Science Center for Analysis and Design of Intelligent.
Router Architectures An overview of router architectures.
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Router Architectures An overview of router architectures.
Copyright ©: Nahrstedt, Angrave, Abdelzaher
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
Paper Review Building a Robust Software-based Router Using Network Processors.
ECE 526 – Network Processing Systems Design Network Processor Architecture and Scalability Chapter 13,14: D. E. Comer.
Hardware Definitions –Port: Point of connection –Bus: Interface Daisy Chain (A=>B=>…=>X) Shared Direct Device Access –Controller: Device Electronics –Registers:
I/O Systems I/O Hardware Application I/O Interface
1 Lecture 20: I/O n I/O hardware n I/O structure n communication with controllers n device interrupts n device drivers n streams.
High Performance Computing & Communication Research Laboratory 12/11/1997 [1] Hyok Kim Performance Analysis of TCP/IP Data.
SpliceNP: A TCP Splicer using a Network Processor Li Zhao +, Yan Luo*, Laxmi Bhuyan University of California Riverside Ravi Iyer Intel Corporation + Now.
Transport Layer: TCP and UDP. Overview of TCP/IP protocols Comparing TCP and UDP TCP connection: establishment, data transfer, and termination Allocation.
NS Training Hardware.
An initial study on Multi Path Routing Over Multiple Devices in Linux 2.4.x kernel Towards CS522 term project By Syama Sundar Kosuri.
Queues, Pipes and Sockets. QUEUE A structure with a series of data elements with the first element waiting for an operation Used when an element is not.
Virtual Machine Queue Driver Development Sambhrama Mundkur Sr. Software Design Engineer Core Networking
Monitor- ing, Basic IP Header Proc., Packet Classi- fication and Routing APIC Driver Rcv Side APIC Plugin Ctl. Unit... Resource Controller... Rcv Input.
CS 4396 Computer Networks Lab Router Architectures.
CS 6401 Introduction to Computer Networks 09/21/2010 Outline - UNIX sockets - A simple client-server program - Project 1 - LAN bridges and learning.
NetCP - NWAL API Flow. NetCP (HW,SW) Overview NWAL Feature Overview Data path offload Control configuration –Blocking / Non Blocking support –L2: MAC.
Chapter 13 – I/O Systems (Pgs ). Devices  Two conflicting properties A. Growing uniformity in interfaces (both h/w and s/w): e.g., USB, TWAIN.
1 CSE 5346 Spring Network Simulator Project.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 12: I/O Systems I/O hardwared Application I/O Interface Kernel I/O.
David M. Zar Block Design Review: PlanetLab Line Card Header Format.
1 Kyung Hee University Chapter 11 User Datagram Protocol.
Mart Haitjema Block Design Review: ONL NP Router Multiplexer (MUX)
WINLAB Open Cognitive Radio Platform Architecture v1.0 WINLAB – Rutgers University Date : July 27th 2009 Authors : Prasanthi Maddala,
Input/Output (I/O) Important OS function – control I/O
Supercharged PlanetLab Platform, Control Overview
Chapter 11 User Datagram Protocol
Reference Router on NetFPGA 1G
CS 286 Computer Organization and Architecture
CSCI 315 Operating Systems Design
Flow Stats Module James Moscola September 6, 2007.
An NP-Based Router for the Open Network Lab Overview by JST
Supercharged PlanetLab Platform, Control Overview
I/O Systems I/O Hardware Application I/O Interface
CS703 - Advanced Operating Systems
Code Review for IPv4 Metarouter Header Format
Code Review for IPv4 Metarouter Header Format
An NP-Based Router for the Open Network Lab Meeting Notes
Implementing an OpenFlow Switch on the NetFPGA platform
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Network Layer: Control/data plane, addressing, routers
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Reference Router on NetFPGA 1G
Socket Programming with UDP
Presentation transcript:

IXP2400 Protocol Offloading Yan Luo Chris Baron

NP Overview SDRAM (Packet buffer) SRAM (control structures) multi-threaded processing elements Co-processor Input ports Output ports Network Processor Bus

TCP/UDP/IP

VIA-UDP

IXP OS bypass SendBufRcvBuf Kernel User Downbuf/Upbuf PCI IXP BigPhys DRAM

Protocol Overview Customized protocol –Contains src/dest MAC, IP, and port –Unique packet ID and length of payload –Padding for ease of reading in blocks Add own protocol header in the future

Socket Table Socked id Src/dstIP Src/dstPort User send/recv buff start Phys send/recv buff start (for DMA) Send/recv buffer size Recv pointer (where data last written)

Theory of Operation (host) Setup –Client application calls open() system call, kernel adds new entry to lookup table, returns unique socket descriptor –Client calls setup_connection(), a macro to ioctl calls, to add src/dst IP and requested ports for connection –Client calls ixpmalloc(), a macro to mmap() kernel memory into userspace, used for send and receive buffers

Theory of Operation (host) Send –Macro to write() function for driver –If no space left on IXP, return error, else DMA/PIO to IXP, returning number of bytes copied –Currently uses PIO, for less latency Receive –If no data available, return error –User must loop/poll for data

Theory of Operation (IXP)

(1) Host Send User calls send data Kernel assembles the packet header based on the socket table Lookup the Downbuf tail/num in the bridgeCSR Checks if downbuf is full DMA/PIO data Updates Downbuf tail in bridgeCSR

(2) Downbuf Manager Polls bridgeCSR to get new tail of DOWNBUF Examine protocol header Fill in meta data (packet size, id etc) Dispatch to worker ME Examine the head of DOWNBUF, advance head if it is processed. Just arrive Finished In-progress head tail

(3) Downbuf Worker Get a packet from Downbuf manager Extract IP from packet Lookup MAC and output port in IP forwarding table Fill in MAC into packet Fill in meta data (packet offset, len, output port) Put the packet in TX queue

(4) XMIT ME Get a packet from TX queue Split packet into mpackets Move mpackets to TBUF of MSF Enable sending mpackets

(5) RCV ME Waked up by MSF for new packets Assemble and move mpackets to DRAM Fill in meta data (packet offset, size, input port etc) Put packet in RX queue

(6) Upbuf Manager Get a packet from RX queue Get meta data Examine packet header (dstIP, destPort etc) Look up socket table for up_rcv_ptr Prepare DMA descriptor Enable DMA Update up_tail in bridge CSR

(7) Host RCV User requests receive data Kernel looks up the bridgeCSR from socket table Returns the number of bytes arrived or error for no data available

Datapath Timing

Future additions Use Interrupts Use bridge registers more efficiently Own protocol header

END