290 likes | 402 Views
HEXA: Compact Data Structures or 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)
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