Washington University in St. Louis

Slides:



Advertisements
Similar presentations
1 The 2-to-4 decoder is a block which decodes the 2-bit binary inputs and produces four output All but one outputs are zero One output corresponding to.
Advertisements

VHDL Lecture 1 Megan Peck EECS 443 Spring 08.
Computer Networks20-1 Chapter 20. Network Layer: Internet Protocol 20.1 Internetworking 20.2 IPv IPv6.
1 EE24C Digital Electronics Project Theory: Sequential Logic (part 2)
Give qualifications of instructors: DAP
ECE Department: University of Massachusetts, Amherst ECE 354 Lab 3: Transmitting and Receiving Ethernet Packets.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
DISCUSSION CSE 140L 3 rd November 2010 Vikram Murali.
Copyright 2001, Agrawal & BushnellVLSI Test: Lecture 291 Lecture 29 IEEE JTAG Advanced Boundary Scan & Description Language (BSDL) n Special scan.
LOOKUP MACHINE characterization Chanit Giat Rachel Stahl Instructor: Artyom Borzin הטכניון - מכון טכנולוגי לישראל המעבדה למערכות ספרתיות מהירות הפקולטה.
4/10/20081 Lab 9 RT methodology introduction Register operations Data Path Control Path ASM Example TA: Jorge Crichigno.
© 2006 Cisco Systems, Inc. All rights reserved. Optimizing Converged Cisco Networks (ONT) Module 4: Implement the DiffServ QoS Model.
Sec Case 2 Solution. Find a string in a packet.
Eng.Samra Essalaimeh Philadelphia University 2013/ nd Semester PIC Microcontrollers.
The Layered Protocol Wrappers 1 Florian Braun, Henry Fu The Layered Protocol Wrappers: A Solution to Streamline Networking Functions to Process ATM Cells,
© 2006 Cisco Systems, Inc. All rights reserved. Module 4: Implement the DiffServ QoS Model Lesson 4.2: Using NBAR for Classification.
Design of a System for Real- Time Worm Detection Bharath Madhusudan, John Lockwood Department of Computer Science and Engineering Washington University,
CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 4 : Demonstration of Machine Problem 1 : CAM-based Firewall Washington.
CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 4 : Demonstration of Machine Problem 1 : CAM-based Firewall Washington.
The FPX KCPSM Module Exercise 1 Henry Fu The FPX KCPSM Module Exercise: Network Data Encryption / Decryption Using ROT13 Algorithm Henry Fu Washington.
Extensible Networking Platform Lockwood / Zuver - Applied Research Laboratory -- Extensible Networking Development of a System-On-Chip Extensible.
CS/CoE 536 : Lockwood 1 Project Integration : In order to ensure that projects can be integrated at the end of the semester, a few rules have been developed.
Author : Ioannis Sourdis, Vasilis Dimopoulos, Dionisios Pnevmatikatos and Stamatis Vassiliadis Publisher : ANCS’06 Presenter : Zong-Lin Sie Date : 2011/01/05.
4/19/20021 TCPSplitter: A Reconfigurable Hardware Based TCP Flow Monitor David V. Schuehler.
Lecture 13: Reconfigurable Computing Applications October 10, 2013 ECE 636 Reconfigurable Computing Lecture 11 Reconfigurable Computing Applications.
Hot Interconnects TCP-Splitter: A Reconfigurable Hardware Based TCP/IP Flow Monitor David V. Schuehler
Department of Computer Science and Engineering Applied Research Laboratory Architecture for a Hardware Based, TCP/IP Content Scanning System David V. Schuehler.
CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 7 : Demonstration of Machine Problem 2 : SPAM FILTER Washington University.
Dr. Hoganson CSIS 4381 Finite State Recognizer In this project, we will use the MicroStamp to function as a Finite State Recognizer (FSR). A FSR is a type.
Department of Communication Engineering, NCTU 1 Unit 4 Arithmetic and Logic Units.
Performed by: Lior Raviv & Zohar koritzki Instructor: Reuven Nisar הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion - Israel institute of technology.
1 KU College of Engineering Elec 204: Digital Systems Design Lecture 22 Memory Definitions Memory ─ A collection of storage cells together with the necessary.
CS/EE 145A Reliable Transmission over Unreliable Channel II Netlab.caltech.edu/course.
CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 11 : Priority and Per-Flow Queuing in Machine Problem 3 (Revision 2) Washington.
Control units In the last lecture, we introduced the basic structure of a control unit, and translated our assembly instructions into a binary representation.
CS/CoE 536 : Lockwood 1 CS/CoE 536 Reconfigurable System On Chip Design Lecture 10 : MP3 Working Draft Washington University Fall 2002
WISDOM Demonstrator End of project experiment to demonstrate optical security checking Hardware/software for TCP port checking Proposal –Use software defined.
Appendix B The Basics of Logic Design
Washington University
EKT 221 : DIGITAL 2.
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
The New Internet Protocol
EKT 221 : Digital 2 COUNTERS.
Cover a section of Ch 4 Review both Exam 2 and Exam 3
CPRE 583 Reconfigurable Computing
CPRE 583 Reconfigurable Computing (VHDL Overview )
The New Internet Protocol
Digital System Design Review.
Washington University
Washington University
Dr. John P. Abraham Professor UTPA
CPRE 583 Reconfigurable Computing
ECEN 248: INTRODUCTION TO DIGITAL SYSTEMS DESIGN
Dynamic Packet-filtering in High-speed Networks Using NetFPGAs
Binary Lesson 3 Hexadecimal
Washington University, Applied Research Lab
Remote Management of the Field Programmable Port Extender (FPX)
Layered Protocol Wrappers Design and Interface review
Washington University
BLOCK DIAGRAM OF AN ADDRESS
Branch instructions We’ll implement branch instructions for the eight different conditions shown here. Bits 11-9 of the opcode field will indicate the.
Sequential Design Example
Control units In the last lecture, we introduced the basic structure of a control unit, and translated our assembly instructions into a binary representation.
Digital Logic Department of CNET Chapter-6
Digital Logic Department of CNET Chapter-6
Binary Lesson 4 Hexadecimal and Binary Practice
Review: The whole processor
Design principles for packet parsers
Transport Layer 9/22/2019.
Internet Protocol version 6 (IPv6)
Presentation transcript:

Washington University in St. Louis CSE 465 – Spring 2005 Digital Systems Laboratory Lecture 6 : String Matching in Reconfigurable Hardware John W Lockwood Washington University in St. Louis Lockwood@arl.wustl.edu Copyright 2005 http://www.arl.wustl.edu/~lockwood/class/cse465-s05/

String Scanning : 32-bit Data Format H0 Packet Header .. Header .. Packet Header (N Words) [31 downto 0] of Words H0 .. HN Packet Payload (M bytes) Bytes P0 .. PM HN P0 P1 P2 P3 Packet Payload P4 P5 P6 P7 P8 P9 P10 P11 .. Payload .. PM 32 bits

MP6 Problem Statement Problem Statement Details Implement a plug-in module that monitors a traffic flow. For cells with payloads that begin with “HELLO” Details Scan Flows destined for particular port Match the content of the cell for the “HELLO” ASCII: “HELLO” Hex: 48 – 45 – 4C – 4C – 4F Binary: 0100,1000 ; 0100,0101; 0100,1100 ; 0100,1100 ; 0100,1111

String Scanning : 32-bit Data Format H0 Packet Header .. Header .. “HELLO” at even word offset in packet HN P0 P1 P2 .. Packet Payload ‘H’ ‘E’ ‘L’ ‘L’ ‘O’ .. .. .. .. Payload .. PM 32 bits

String Scanning : 32-bit Data Format H0 Packet Header .. Header .. “HELLO” offset by one byte in packet HN P0 P1 P2 P3 Packet Payload .. ‘H’ ‘E’ ‘L’ ‘L’ ‘O’ .. .. .. Payload .. PM 32 bits

String Scanning : 32-bit Data Format H0 Packet Header .. Header .. “HELLO” offset by two bytes in packet HN P0 P1 P2 P3 Packet Payload P4 .. ‘H’ ‘E’ ‘L’ ‘L’ ‘O’ .. .. Payload .. PM 32 bits

String Scanning : 32-bit Data Format H0 Packet Header .. Header .. “HELLO” offset by three bytes in packet HN P0 P1 P2 P3 Packet Payload P4 P5 .. ‘H’ ‘E’ ‘L’ ‘L’ ‘O’ .. Payload .. PM 32 bits

String Scanning : Simplified State Machine Packet Header Init .. Header .. HN Header Match P0 P1 P2 .. Packet Payload ‘H’ ‘E’ ‘L’ ‘L’ ‘HELL’ Match ‘O’ .. .. .. .. Payload .. ‘HELLO’ Match PM 32 bits Basic State Transition Diagram (simplified)

String Scanning : Simplified State Machine Packet Header Init .. Header .. HN Header Match P0 P1 P2 P3 Packet Payload .. ‘H’ ‘E’ ‘L’ ‘HEL’ Match ‘L’ ‘O’ .. .. .. Payload .. ‘HELLO’ Match PM 32 bits Basic State Transition Diagram (simplified)

String Scanning : Simplified State Machine Packet Header Init .. Header .. HN Header Match P0 P1 P2 P3 Packet Payload P4 .. ‘H’ ‘E’ ‘HE’ Match ‘L’ ‘L’ ‘O’ .. .. Payload .. ‘HELLO’ Match PM 32 bits Basic State Transition Diagram (simplified)

String Scanning : Detailed State Machine Packet Header Init .. Header .. End of Packet HN Matching Port Header Match P0 P1 P2 P3 End of Packet ‘HXXX’ Packet Payload P4 P5 .. ‘H’ ‘H’ Match ‘E’ ‘L’ ‘L’ ‘O’ Not ‘HXXX’ ‘ELLO’ .. Payload .. ‘HELLO’ Match ‘HXXX’ PM 32 bits End of Packet Additional State Transitions (more detail provided)

Search Modules Specification: Search for: “HELLO” n “HELLO” match

Parallel Matching Engines Final Value ( Count @ end of document ) Control Signals 8 32 Start 8 End 8 Data_Enable … 32 = 8 Streaming Data Input 8 Count Register Match Adder 32 8 8 Initial Value ( Zero @ start of Document ) 32 Streaming Input Data 8 Parallel Finite State Machines (one for each offset)

Matching different length strings Length=2 String : “my” my** *my* **my ***m + y*** Length=3 String : “cry” cry* *cry **cr + y*** ***c + ry** Length=5 String : “laugh” laug + h*** *lau + gh** **la + ugh* ***l + augh

Special Cases : Multiple Matches in a clock For streams > 1,000 bytes, multiple packets are sent from the traffic generator State machines should only transit when Data Enabled, otherwise – stay in the same state. “MY’ count += 2 “CRY” count += 2 M Y M Y x x C R Y C R Y

Process data only when enabled Data streams can be larger than 1,000 bytes For streams > 1,000 bytes, multiple packets are sent fom the traffic generator State machines should only transit when Data Enabled, otherwise – stay in the same state. Hello Count = 1 Hello Count = 2 M Y M Y L L O H x x x x E L L O Data Enabled Data Enabled Data Enabled No Data

Data Enable Data streams can be larger than 1,000 bytes For streams > 1,000 bytes, multiple packets are sent from the traffic generator State machines should only transit when Data Enabled, otherwise – stay in the same state. Hello Count = 1 Hello Count = 2 x H E L L L O H x x x x E L L O Data Enabled Data Enabled Data Enabled No Data