HEXA: Compact Data Structures for Faster Packet Processing

Slides:



Advertisements
Similar presentations
February 12, 2007 WALCOM '2007 1/22 DiskTrie: An Efficient Data Structure Using Flash Memory for Mobile Devices N. M. Mosharaf Kabir Chowdhury Md. Mostofa.
Advertisements

Combinatorial Pattern Matching CS 466 Saurabh Sinha.
Network Algorithms, Lecture 4: Longest Matching Prefix Lookups George Varghese.
Michael Alves, Patrick Dugan, Robert Daniels, Carlos Vicuna
Fast Firewall Implementation for Software and Hardware-based Routers Lili Qiu, Microsoft Research George Varghese, UCSD Subhash Suri, UCSB 9 th International.
IP Routing Lookups Scalable High Speed IP Routing Lookups.
Tries Standard Tries Compressed Tries Suffix Tries.
Advanced Algorithm Design and Analysis (Lecture 4) SW5 fall 2004 Simonas Šaltenis E1-215b
An Improved Construction for Counting Bloom Filters Flavio Bonomi Michael Mitzenmacher Rina Panigrahy Sushil Singh George Varghese Presented by: Sailesh.
Prepared By: Eng.Ola M. Abd El-Latif
Fast Filter Updates for Packet Classification using TCAM Authors: Haoyu Song, Jonathan Turner. Publisher: GLOBECOM 2006, IEEE Present: Chen-Yu Lin Date:
Modified Data Structure of Aho-Corasick Project ECE-526 Spring 2006 Benfano Soewito, Ed Flanigan and John Pangrazio Southern Illinois University Carbondale.
Indexed Search Tree (Trie) Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
The Most Commonly-used Data Structures
1 HEXA: Compact Data Structures or Faster Packet Processing Author: Sailesh Kumar, Jonathan Turner, Patrick Crowley, Michael Mitzenmacher. Publisher: ICNP.
6/26/2015 7:13 PMTries1. 6/26/2015 7:13 PMTries2 Outline and Reading Standard tries (§9.2.1) Compressed tries (§9.2.2) Suffix tries (§9.2.3) Huffman encoding.
COMP 171 Data Structures and Algorithms Tutorial 10 Hash Tables.
1 HEXA : Compact Data Structures for Faster Packet Processing Department of Computer Science and Information Engineering National Cheng Kung University,
Modified Data Structure of Aho-Corasick Project ECE-526 Spring 2006 Benfano Soewito, Ed Flanigan and John Pangrazio Southern Illinois University Carbondale.
Address Lookup in IP Routers. 2 Routing Table Lookup Routing Decision Forwarding Decision Forwarding Decision Routing Table Routing Table Routing Table.
IP Address Lookup Masoud Sabaei Assistant professor
Fast and deterministic hash table lookup using discriminative bloom filters  Author: Kun Huang, Gaogang Xie,  Publisher: 2013 ELSEVIER Journal of Network.
© 2004 Goodrich, Tamassia Tries1. © 2004 Goodrich, Tamassia Tries2 Preprocessing Strings Preprocessing the pattern speeds up pattern matching queries.
Data : The Small Forwarding Table(SFT), In general, The small forwarding table is the compressed version of a trie. Since SFT organizes.
CAMP: Fast and Efficient IP Lookup Architecture Sailesh Kumar, Michela Becchi, Patrick Crowley, Jonathan Turner Washington University in St. Louis.
Addressing Queuing Bottlenecks at High Speeds Sailesh Kumar Patrick Crowley Jonathan Turner.
Lecture 12 : Trie Data Structure Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University.
1 Dynamic Pipelining: Making IP- Lookup Truly Scalable Jahangir Hasan T. N. Vijaykumar School of Electrical and Computer Engineering, Purdue University.
Doctoral Dissertation Proposal: Acceleration of Network Processing Algorithms Sailesh Kumar Advisors: Jon Turner, Patrick Crowley Committee: Roger Chamberlain,
Memory Compression Algorithms for Networking Features Sailesh Kumar.
A Small IP Forwarding Table Using Hashing Yeim-Kuan Chang and Wen-Hsin Cheng Dept. of Computer Science and Information Engineering National Cheng Kung.
Algorithms to Accelerate Multiple Regular Expressions Matching for Deep Packet Inspection Sailesh Kumar Sarang Dharmapurikar Fang Yu Patrick Crowley Jonathan.
Sets of Digital Data CSCI 2720 Fall 2005 Kraemer.
Author : Yang Xu, Lei Ma, Zhaobo Liu, H. Jonathan Chao Publisher : ANCS 2011 Presenter : Jo-Ning Yu Date : 2011/12/28.
Author: Haoyu Song, Murali Kodialam, Fang Hao and T.V. Lakshman Publisher/Conf. : IEEE International Conference on Network Protocols (ICNP), 2009 Speaker:
Updating Designed for Fast IP Lookup Author : Natasa Maksic, Zoran Chicha and Aleksandra Smiljani´c Conference: IEEE High Performance Switching and Routing.
Dynamic Pipelining: Making IP-Lookup Truly Scalable Jahangir Hasan T. N. Vijaykumar Presented by Sailesh Kumar.
An Improved DFA for Fast Regular Expression Matching Author : Domenico Ficara 、 Stefano Giordano 、 Gregorio Procissi Fabio Vitucci 、 Gianni Antichi 、 Andrea.
Author : Masanori Bando and H. Jonathan Chao Publisher : INFOCOM, 2010 Presenter : Jo-Ning Yu Date : 2011/02/16.
Advanced Algorithms for Fast and Scalable Deep Packet Inspection Author : Sailesh Kumar 、 Jonathan Turner 、 John Williams Publisher : ANCS’06 Presenter.
Ofir Luzon Supervisor: Prof. Michael Segal Longest Prefix Match For IP Lookup.
Exploiting Graphics Processors for High-performance IP Lookup in Software Routers Jin Zhao, Xinya Zhang, Xin Wang, Yangdong Deng, Xiaoming Fu IEEE INFOCOM.
Generic Trees—Trie, Compressed Trie, Suffix Trie (with Analysi
Tries 4/16/2018 8:59 AM Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and.
Data Structures and Design in Java © Rick Mercer
Tries 07/28/16 11:04 Text Compression
CHP - 9 File Structures.
Tries 5/27/2018 3:08 AM Tries Tries.
IP Routers – internal view
DATA STRUCTURES AND OBJECT ORIENTED PROGRAMMING IN C++
Mark Redekopp David Kempe
Hashing - Hash Maps and Hash Functions
CSE7701: Research Seminar on Networking
Ariel Rosenfeld Bar-Ilan Uni.
Processing Data in External Storage
Hashing Exercises.
Tries 9/14/ :13 AM Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and.
13 Text Processing Hongfei Yan June 1, 2016.
External Methods Chapter 15 (continued)
Advanced Algorithms for Fast and Scalable Deep Packet Inspection
Indexing and Hashing Basic Concepts Ordered Indices
Jason Klaus Supervisor: Duncan Elliott August 2, 2007 (Confidential)
Packet Classification Using Coarse-Grained Tuple Spaces
Higher Order Tries Key = Social Security Number.
Tries 2/23/2019 8:29 AM Tries 2/23/2019 8:29 AM Tries.
Introduction to Data Structures
A Small and Fast IP Forwarding Table Using Hashing
Tries 2/27/2019 5:37 PM Tries Tries.
CSE 542: Operating Systems
Lecture-Hashing.
Presentation transcript:

HEXA: Compact Data Structures for Faster Packet Processing Sailesh Kumar Jonathan Turner Patrick Crowley Michael Mitzenmacher

HEXA HEXA (History-based Encoding, eXecution and Addressing) Novel representation for: IP Lookup tries (directed acyclic graph) Simple finite automaton such as Aho-Corasick String Matchers Space efficient Challenges the assumption that graph structures must store log2n bits pointers to identify successor nodes Requires only 2-bit versus 20-bit pointers (for 1 million nodes)

Tries - Traditional Implementation Addr data 1 2 3 5 4 7 9 P2 P5 6 P3 8 P4 P1 Five IP prefixes 1 0, 2, 3 2 0, 4, 5 1* P1 3 1, NULL, 6 00* P2 4 1, NULL, NULL 5 0, 7, 8 6 7 0, 9, NULL 8 9 11* P3 011* P4 0100* P5 There are nine nodes; we will need 4-bit node identifiers Total memory = 9 x 9 bits Each trie node will require 9-bits in memory - a flag indicating if node is a prefix - a 4-bit left child pointer - a 4-bit right child pointer

HEXA based Implementation 1 Five IP prefixes 1 2 3 1* P1 1 1 P1 1 00* P2 4 5 6 11* P3 P2 1 P3 011* P4 7 8 0100* P5 P4 9 P5 Properties of HEXA identifiers: Define HEXA identifier of a node as the path that leads to it from the root Unique for every node Implicit (need not be stored) 1. - 2. 0 3. 1 4. 00 5. 01 6. 11 7. 010 8. 011 Can replace node pointers 9. 0100

HEXA based Implementation Hash (HEXA identifier) = memory address IP addr. : 1 1 0 0 x x x If we have a minimal perfect hash function f - A function that maps elements to unique location Then we can store the trie as shown below begin lookup at root node The prefix, we were looking Addr node mem Prefix 1 2 3 4 5 6 7 8 9 Addr node mem Prefix 1 1,0,0 P3 2 P2 3 P4 4 0,1,1 5 0,1,0 6 P5 7 8 9 1,0,1 P1 f(-) = 4 f(0) = 7 f(1) = 9 We use only 3-bits per node in fast path - Valid prefix flag - Left child flag - Right child flag Properties of HEXA identifiers: 0,1,1 f(00) = 2 f(01) = 8 f(11) = 1 Unique for every node Implicit (need not be stored) 1. - 2. 0 3. 1 4. 00 5. 01 6. 11 7. 010 8. 011 9. 0100 0,1,1 Can act as memory address f(010) = 5 f(011) = 3 f(0100) = 6 1,0,1 P1

Devising One-to-one Mapping Finding a minimal perfect hash function is difficult One-to-one mapping is essential for HEXA to work Use discriminator bits Attach c-bits to every HEXA identifier, that we can modify Thus a node can have 2c choices of identifiers We now need to store these c-bits for every child instead of a single flag With multiple choices of HEXA identifiers for a node, reduce the problem to a bipartite graph matching We need to find a perfect matching in the graph to map nodes to unique memory locations

Devising One-to-one Mapping Use 2-bit discriminators Nodes Input labels OR HEXA identifier Four choices of HEXA identifiers Choices of memory locations Bipartite graph 1 - 00 -, 01 -, 10 -, 11 - h(00) = 0, h(01) = 4 h(10) = 1, h(11) = 5 2 00 0, 01 0, 10 0, 11 0 h(000) = 1, h(010) = 5 1 PERFECT MATCHING h(100) = 2, h(110) = 6 3 1 00 1, 01 1, 10 1, 11 1 00 00, 01 00, 10 00, 11 00 00 01, 01 01, 10 01, 11 01 00 11, 01 11, 10 11, 11 11 00 010, 01 010, 10 010, 11 010 00 011, 01 011, 10 011, 11 011 00 0100, 01 0100, 10 0100, 11 0100 h() = 0, h() = 4 h() = 1, h() = 5 h() = 2, h() = 6 h() = 3, h() = 7 h() = 8, h() = 3 h() = 6, h() = 2 h() = 5, h() = 1 h() = 0, h() = 3 h() = 4, h() = 6 2 4 00 3 5 01 4 Pick Appropriate Discriminators 6 11 5 7 010 6 8 011 7 9 0100 8

HEXA based Implementation Store its discriminator instead of a single flag for left and right children Addr node mem Prefix 1 1,xx,xx P3 2 P2 3 P4 4 0,xx,xx 5 6 P5 7 8 9 P1 Here we use only 5-bits per node in fast path - Valid prefix flag - Left discriminator - Right discriminator 1. - 2. 0 3. 1 4. 00 5. 01 6. 11 7. 010 8. 011 9. 0100

Results 3 choices are sufficient to find a perfect matching (with 10% memory over-provisioning) Thus 2-bits discriminators (00 value reserved for no child) Significant reduction 2-bits per node versus log2n bits 32 Eatherton tries, each contains 100-120k prefixes.

Incremental Updates IP table updates are very frequent When a node is removed and another added, we must ensure a few memory operations. In the new bipartite graph, a new perfect matching can be found Quickly (O(n2c) time in the worst-case, typically constant time) New matching is slightly different from the previous matching Typically around 10 different edges, experimental worst-case - 18 Thus less than 18 memory operations are needed for an update

HEXA for Pattern Matching HEXA can be used to compress Aho-Corasick string matching automaton Directed graph In the future, HEXA may become useful for general finite automaton Reg-ex acceleration

Thank you and Questions???