Upload
lehuong
View
227
Download
0
Embed Size (px)
Citation preview
Layered Protocol Wrappers 1
Florian Braun, John Lockwood, Marcel Waldvogel
[email protected] Professor
Washington UniversityDepartment of Computer Science
Applied Research Lab1 Brookings Drive
Saint Louis, MO 63130
http://www.arl.wustl.edu/arl/projects/fpx/http://www.hoti.org/
Supported by: NSF ANI-0096052 and Xilinx Corp.
Layered Protocol Wrappers for Internet Packet Processing in
Reconfigurable Hardware
Layered Protocol Wrappers 2
Outline
• Hardware-Accelerated Packet Processing• Field Programmable Port Extender (FPX)
• Layered Internet Protocol Wrappers• Library of Synthesizable components
• Application Example • Simple, Line-speed Encryption module in wrapper
• Implementation Results• Post-synthesis chip utilization, thoughput, latency
• Conclusions
Layered Protocol Wrappers 3
Hardware-Accelerated Packet Processing
Layered Protocol Wrappers 4
Configuration of FPX Packet Processor
• Packet processing hardware performs:– Packet classification– Packet forwarding– Address Translation– Data modification– Packet buffering– Active Networking (Application-level data processing)
FPX
ExtenderPort
programmableField- Card
LineCardLine
NetworkPackets
NetworkPackets
Layered Protocol Wrappers 5
Configuration of FPX in Internet Router
• Additionally, Router interface performs:– Internet route lookup– Traffic policing and shaping
IPP
IPP OPP
OPP
SwitchFabric
Gigabit
IPP
IPP
OPP
OPP
FPX
ExtenderPort
programmableField-Card
Line
NetworkPackets
FPX
ExtenderPort
programmableField-Card
Line
NetworkPackets
Layered Protocol Wrappers 6
WUGS and FPX
Layered Protocol Wrappers 7
Field programmable Port EXtender (FPX)
• FPX fits between switch and line-card
• FPGA Hardware for user-defined applications
• Run-Time Reconfigurable
Layered Protocol Wrappers 8
Architecture of the FPX
• ReprogrammableApplication Device (RAD)– Circuit on XCV1000E FPGA– External SRAM and SDRAM– Holds 2+ user-defined
Modules– Reprogrammable over
network
• Network Interface Device (NID)– XCV600E FPGA– Controls FPX– Forwards traffic flows to
RAD modules– Programs RAD
SRAM
EC
Mod
ule
EC
NID
Switch LineCard
Mod
ule
RAD
VC VC
VCVC
RAD
Program
SDRAM SDRAM
Data Data
SRAM
Data
SRAM
Data
Layered Protocol Wrappers 9
Network Module Hardware Interface
SRAM_D_OUT[35:0]SRAM_ADDR[17:0]SRAM_WR_RD
SRAM_REQSRAM_GR
SRAM_D_IN[35:0] SRAMInterface
FPXNetworkModule
READY_L
CLKRESET_L
ENABLE_L
ModuleInterface
SDRAM_RQ
SDRAM_BL[4:0]SDRAM_ADDR[26:0]SDRAM_WR_RD
SDRAM_GRSDRAM_DATA[63:0] SDRAM
Interface
SDRAM_EN
SDRAM_OP_FIN
TCA_MOD_OUT
D_MOD_IN[31:0]SOC_MOD_IN
D_MOD_OUT[31:0]SOC_MOD_OUT
TCA_MOD_IN
DataInterface
fpx_module.vhd
Layered Protocol Wrappers 10
Layered Internet Protocol Wrappers
Layered Protocol Wrappers 11
The Layered Protocol Wrapper Library
– Circuits that streamline functions to process cells, frames, IP packets, and UDP datagrams in reprogrammable hardware
– A layered design that consists of different processing circuit in each layer
– Allows application to be implemented at a level where important details are exposed and irrelevant details are hidden
Layered Protocol Wrappers 12
Basic Concept of the Protocol Wrappers
Application
Wrapper
Wrapper
Layered Protocol Wrappers 13
Layered Protocol Wrappers
UDP Processor
IP Processor
Cell Processor
Frame Processor
Data Output
Data Input
Application-levelHardware Module
Interfaces to Off-Chip Memories
Layered Protocol Wrappers 14
The Cell Processor
• Cell Functions • Drops cells with bad cell headers• Recomputes cell header for outgoing cells
• Flow Functions• Bypasses cells for different flows
• Implements Control-Plane Interface• Handles control cells• Write control / read status
Layered Protocol Wrappers 15
The Cell Processor (Detail)
• Data Flow inside the Cell Processor
Cells
Control
DispatchCheck
HEC
HEC
Set
App or Frame
Processor
Layered Protocol Wrappers 16
The Frame Processor
• Segmentation and Reassembly– Reassembles cells into frames– Segments frames into cells
• Frame Functions– Detects frame boundaries– Checks & Generates AAL5 CRC
Layered Protocol Wrappers 17
The Frame Processor (Detail)
• Data Flow inside the Frame Processor
Frame
Detection
Cell
AAL5CRC AAL5CRCation
SegmentApp or IP Processor
Layered Protocol Wrappers 18
The IP Processor
• IP Version• Verifies IP version
• Header Checksum• Drops packet if the Header Checksum fails• Decrements TTL field (Optional)
• Provides• Signal start of payload (SOP)• Header Checksum Recomputation
Layered Protocol Wrappers 19
The IP Processor (More)
• Data Flow inside the IP Processor
IP Detect
TTLDec Checksum+Checksum
App or UDP Processor
Layered Protocol Wrappers 20
User Datagram Protocol (UDP) Processor
• Checks Protocol• Expects protocol ID (17)
• Provides Application-level signals• Start Of Datagram (SOD)
• Checksums• Checks UDP checksum• Generates UDP checksum
Layered Protocol Wrappers 21
The UDP Processor (More)
• Data Flow inside the UDP Processor
UDP
Detect Checksum
SetApp or UDP Processor
Layered Protocol Wrappers 22
Wrappers Example: An UDP Application
UDP Processor
UDPApplication
IP Processor
Cell Processor
Frame Processor
OutputInput
UDP Wrapper
Layered Protocol Wrappers 23
Application Example
Data Encryption
Layered Protocol Wrappers 24
The Layered Protocol Application Example
• Network data encryption / decryption using ROT13 algorithm– Rotates characters by 13 places
• ‘A’ ⇔ ‘N’, ‘M’ ⇔ ‘Z’, ‘a’ ⇔ ‘n’, ‘m’ ⇔ ‘z’
– Encryption Example:• ‘Hello World’ encrypts to ‘Uryyb Jbeyq’
– Decryption Example:• ‘Uryyb Jbeyq’ decrypts to ‘Hello World’
Layered Protocol Wrappers 25
The Rot13 Encryption Module
PROTOCOL WRAPPERS
ENABLE_L READY_L
SOC_MOD_IN
TCA_MOD_IN
SOC_OUT_MOD
TCA_OUT_MOD
D_OUT_MODD_MOD_IN
CLKRESET_L
UD
PE
cho
Ent
ity
ROT13Entity
ROT13Entity
ROT13Entity
ROT13Entity
Layered Protocol Wrappers 26
Simulating the ROT13 Module (More)
• The input data coming into the module
SOF indicates the start of an ATM CellSOF indicates the start of an ATM CellSOD indicates the start of an UDP DatagramSOD indicates the start of an UDP DatagramDataEn indicates the data is validDataEn indicates the data is validEOF indicates the end of an ATM CellEOF indicates the end of an ATM CellThe last two valid words are the ATM TrailerThe last two valid words are the ATM Trailer
Layered Protocol Wrappers 27
Simulating the ROT13 Module (More)
• The output data going out of the module
The UDPPayload has been encrypted / decryptedThe UDPPayload has been encrypted / decrypted
Layered Protocol Wrappers 28
Implementation Results
Layered Protocol Wrappers 29
Synthesizing the ROT13 Module (More)
Files that are included in the project
Files that are included in the project
Layered Protocol Wrappers 30
Performance Results
• Short UDP datagram – one cell• Long UDP datagram with 512 bytes payload
Wrapper
Input Delay
Throughput
Output Delay
Layered Protocol Wrappers 31
Synthesis Results (Chip Area & Data Rate)
• Wrappers Syntheized, Routed, and Placed onXilinx XCV1000E-7 FPGA
114 (2.9 Gbps)550 (2%)UDP Processor
109 (2.9 Gbps)1009 (4%)IP Processor
116 (3.0 Gbps)1251 (5%)Frame Processor
125 (3.2 Gbps)781 (3%)Cell Processor
Clock / Data RateSpace/LUTs
Layered Protocol Wrappers 32
Results (Clock Cycle Delays)
InputOutputInput
202*2744*39UDP Processor
197*2439*36IP Processor
31102221Frame Processor
6464Cell Processor
Delay for long packagesDelay for short packages
Output
* Delay dependant of frame length
Layered Protocol Wrappers 33
Conclusions
• Layered Protocol Wrappers – Simplify Development of Internet Apps in Reprogrammable Hardware
• Circuits in library process: cells, frames, IP packets, & UDP datagrams• Application implemented at level where important details are exposed
and irrelevant details are hidden
– Low Chip Utilization• 14% of XCV1000E
– High Performance• Throughput: 2.9 Gbps for OC48+ in hardware• Delay: 0.5 sec to process UDP/IP datagram
– Performance scales with FPGA Technology• Potentially OC-192 (10 Gbps or better) in ASICs or newer FPGAs• Potentially OC-768 (40 Gbps or better) with parallel data
– Synthesizable cores available for download• http://www.arl.wustl.edu/arl/projects/fpx/
Layered Protocol Wrappers 34
On-Line References
• FPX Homepage• http://www.arl.wustl.edu/arl/projects/fpx/
• Protocol Wrappers Package– Project Page
• ./fpx/wrappers
– Downloadable TAR File• ./fpx/wrappers/-wrappers.tar.gz
– Technical Report• ./fpx/wrappers/-wucs-01-10.pdf
Layered Protocol Wrappers 35
Acknowledgements
The authors would like to thankHenry Fu ([email protected])
• First student to use the wrappers • Developed KCPSM and Rot13 Application Modules• Just finished as student at Washington University• Starting at Stanford University in Fall’01