290 likes | 404 Vues
This presentation details HEXA (History-based Encoding, eXecution, and Addressing) and its bounded variant, bHEXA. It introduces their main concepts, including one-to-one mapping and update methods for fast memory consumption in packet processing. Experimental evaluations highlight the efficacy of HEXA for IP lookups and pattern matching, showing significant improvements over traditional binary tries. The methods discussed aim to optimize data structure usage for efficient routing and searching, making them vital for modern networking.
E N D
HEXA: Compact Data Structuresor Faster Packet Processing Author: Sailesh Kumar, Jonathan Turner, Patrick Crowley, Michael Mitzenmacher. Publisher: ICNP 2007 Presenter: Yu-Ping Chiang Date: 2009/02/10
Outline • HEXA (History-based Encoding, eXecution and Addressing) • Main idea & example • One-to-one mapping • Update method • bHEXA (Bounded HEXA ) • Main idea & example • Experimental Evaluation
HEXA - Main idea & example • Standard representation: • Assume next hop information stored in shadow trie. • Fast memory consumption in this example: • 1(prefix flag) + 4(left child id) + 4(right child id) = 9 bits/node
HEXA - Main idea & example • HEXA representation: • Using path as node id • Fast memory consumption in this example: • 1(prefix flag)+1(left child exist)+1(right child exist)= 3 bits/node
HEXA - Main idea & example IP: _11010…. • Search operation Not prefix node & right child exist CINTINUE!!
HEXA - Main idea & example IP: 11010…. • Search operation prefix node & right child exist CINTINUE!! (longest prefix next hop = P1)
HEXA - Main idea & example IP: 11010…. • Search operation prefix node & left child not exist STOP!! (longest prefix next hop = P3)
HEXA - One-to-one mapping • discriminator • c bits → at most memory location can choose • HEXA ID = discriminator + historical path • Information for binary trie: 1(prefix flag)+c(left child discriminator)+c(right child discriminator) = 2c+1 bits/node • Hash: • (Discriminator, Id padding zero, Length) • mod 9
HEXA - Update method • Deletion: • Simply remove relevant node from hash table. • Insertion: • If corresponding position already taken →Find an augmenting path, and remap other nodes to other locations.
Outline • HEXA (History-based Encoding, eXecution and Addressing) • Main idea & example • One-to-one mapping • Update method • bHEXA (Bounded HEXA ) • Main idea & example • Experimental Evaluation
bHEXA - Main idea & example • Standard representation: • 1(match flag) + 3*4(node id) = 13 bits/node
bHEXA - Main idea & example • bHEXA representation • Examine a variable but finite number of symbols in history to identify a node • k transition away from root →id up to k symbol • 1(match flag) + 3*2(id length) = 7 bits/node
bHEXA - Main idea & example h = 1*1 = 1
bHEXA - Main idea & example Pattern: _a b c a…… • Match operation ( 0*0 ) mod 10 = 0
bHEXA - Main idea & example Pattern: ab c a…… • Match operation ( 1*1 ) mod 10= 1
bHEXA - Main idea & example Pattern: a bc a…… • Match operation ( 1*1 + 2*2 ) mod 10 = 5
bHEXA - Main idea & example Pattern: a b ca…… • Match operation ( 1*2 + 2*3 ) mod 10 = 8
bHEXA • Practical consideration: long path with same symbol • Let length bits indicate superlinear increment of id length • Employ a small on-chip CAM to store – spill fraction.
Outline • HEXA (History-based Encoding, eXecution and Addressing) • Main idea & example • One-to-one mapping • Update method • bHEXA (Bounded HEXA ) • Main idea & example • Experimental Evaluation
Experimental Evaluation • For ip lookup - Binary trie
Experimental Evaluation • For ip lookup - Multi-bit trie Improve only pointers to child to child’s discriminator. So less improve in large stride.
Experimental Evaluation • For ip lookup - Incremental update
Experimental Evaluation • For pattern match Cisco622 contains a string that repeat a same symbol 50 times.
Experimental Evaluation • For pattern match