1 hexa: compact data structures or faster packet processing author: sailesh kumar, jonathan turner,...

29
1 HEXA: Compact Data Structures or Faster Packet Processing Author: Sailesh Kumar, Jonathan Turner, Patrick Crowley, Michael Mitzenmac her. Publisher: ICNP 2007 Presenter: Yu-Ping Chiang Date: 2009/02/10

Post on 21-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

1

HEXA: Compact Data Structuresor Faster Packet Processing

Author: Sailesh Kumar, Jonathan Turner, Patrick Crowley, Michael Mitzenmacher.

Publisher: ICNP 2007Presenter: Yu-Ping ChiangDate: 2009/02/10

2

Outline HEXA

(History-based Encoding, eXecution and Addressing)Main idea & exampleOne-to-one mappingUpdate method

bHEXA (Bounded HEXA )Main idea & example

Experimental Evaluation

3

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

4

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

5

HEXA - Main idea & example Search operation

IP: _11010….

Not prefix node & right child existCINTINUE!!

6

HEXA - Main idea & example Search operation

IP: 11010….

prefix node & right child existCINTINUE!!

(longest prefix next hop = P1)

7

HEXA - Main idea & example Search operation

IP: 11010….

prefix node & left child not existSTOP!!

(longest prefix next hop = P3)

8

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

12 c

9

10

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.

11

Outline HEXA

(History-based Encoding, eXecution and Addressing)Main idea & exampleOne-to-one mappingUpdate method

bHEXA (Bounded HEXA )Main idea & example

Experimental Evaluation

12

bHEXA - Main idea & example Standard representation:

1(match flag) + 3*4(node id) = 13 bits/node

13

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

14

bHEXA - Main idea & example

15

bHEXA - Main idea & example

h = 1*1 = 1

16

bHEXA - Main idea & example

17

bHEXA - Main idea & example

18

bHEXA - Main idea & example

19

bHEXA - Main idea & example

Pattern: _ a b c a……

Match operation

( 0*0 ) mod 10 = 0

20

bHEXA - Main idea & example

Pattern: a b c a……

Match operation

( 1*1 ) mod 10 = 1

21

bHEXA - Main idea & example

Pattern: a b c a……

Match operation

( 1*1 + 2*2 ) mod 10 = 5

22

bHEXA - Main idea & example

Pattern: a b c a……

Match operation

( 1*2 + 2*3 ) mod 10 = 8

23

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.

24

Outline HEXA

(History-based Encoding, eXecution and Addressing)Main idea & exampleOne-to-one mappingUpdate method

bHEXA (Bounded HEXA )Main idea & example

Experimental Evaluation

25

Experimental Evaluation

For ip lookup - Binary trie

26

Experimental Evaluation For ip lookup - Multi-bit trie

Improve only pointers to child to child’s discriminator.So less improve in large stride.

27

Experimental Evaluation For ip lookup - Incremental update

28

Experimental Evaluation For pattern match

Cisco622 contains a string that repeat a same symbol 50 times.

29

Experimental Evaluation For pattern match