1 A Heuristic and Hybrid Hash- based Approach to Fast Lookup Author: Gianni Antichi, Andrea Di Pietro, Domenico Ficara, Stefano Giordano, Gregorio Procissi, Fabio Vitucci Publisher: 15th IEEE Workshop on High Performance Switching and Routing (HPSR), 2009 Presenter: Hsin-Mao Chen Date:2009/9/16
2 Outline Introduction Background H-cube Idea H-cube Data Structures H-cube Search Performance
3 Introduction From lookup tables, there is a large prefix disparity of density within each lookup table. The IP lookup problem can be the adoption of a Heuristic and Hybrid Hash-based technique.
4 Introduction Heuristic and Hybrid Hash-based (H-cube), where different data structures store different prefix ranges according to their density.
5 Background Perfect Hash Function (PHF) A perfect hash function maps a static set of n keys into a set of m integers without collisions, where m is greater than or equal to n.
6 Background Minimal Perfect Hash Function (MPHF) A minimal perfect hash function is the same as perfect hash function. If m is equal to n, the function is called minimal perfect hash function.
7 H-cube Idea
8 H-cube Data Structures 23-24(MPHF 24 ) (1)For the range, we use a MPHF realized by means of Blooming Trees. Avoiding collision, each entry of such a table stores also the first 24 bits of the relative IP destination address. (2)To be able to use such a binary search, the range we insert in the MPHF 24 a 24 bit- long rule and a bit b which signals whether more specified rules are in the range
9 H-cube Data Structures 17-22,25-32(PHF 22,PHF 32 ) For the range, we use a PHF obtained by double hashing. Each entry stores the first 22(32) bits of the relative IP address to solve potential collisions.
10 H-cube Data Structures 1-16(DA 16 ) In this range, the number of possible rules is limited(2 16 ), a direct addressing table can be used.
11 H-cube Data Structures
12 H-cube Search
13 Performance Constructing time and memory
14 Performance Average number of accesses in SRAM and scratchpad for lookup
15 Performance Memory consumption
16 Performance Memory accesses