A Classified Multi-Suffix Trie for IP Lookup and Update Author: Sun-Yuan Hsieh, Ying-Chi Yang...

17
A Classified Multi- Suffix Trie for IP Lookup and Update Author: Sun-Yuan Hsieh, Ying-Chi Yang Publisher: IEEE TC Presenter: Jia-Wei Yo Date: 2011/10/12 1

Transcript of A Classified Multi-Suffix Trie for IP Lookup and Update Author: Sun-Yuan Hsieh, Ying-Chi Yang...

A Classified Multi-Suffix Trie for IP Lookup and Update

Author:Sun-Yuan Hsieh, Ying-Chi YangPublisher:IEEE TCPresenter: Jia-Wei Yo

Date:2011/10/12 1

Introduction• Propose a trie-based data structure called Classified Multi-

Suffix Trie (CMST) for designing dynamic router-tables.

• Each node can store more than one prefix and can return the longest matching prefix immediately when it is found in some internal node.

• Also propose a data structure called the Partitioning Classified Multi-Suffix Trie (PCMST) to reduce the height of a trie and expedite router-table operations.

• Two proposed data structures can be applied to both IPv4 and IPv6 routing databases.

2

*Prefix tree

3

Insert : 1*

Prefix tree deletion operation

4

CMST• A k-stride Classified Multi-Suffix Trie (k-CMST) contains two

types of nodes, a major node (m-node) and a secondary node (s-node)

• An m-node that has children is called an internal m-node, and an m-node without children is called an external m-node.

• An m-node whose stride is k has children corresponding to the possible values for the k used bits.

5

6

1. (): can be ε or a suffix, such that if (v) ≠ ε, then len((v)) > k. Port() output port of

(v) = ε, Port() = -1.

2. store output port with the length of suffix is equal to k. Otherwise , let 3. (): 0 ≤ t(v) ≤ is the number of suffixes stored in v.

4. c(): 0 ≤ c(v) ≤ is the number of (v)s with (v) −1.

5. s_pointer(): a pointer that points to a prefix tree PT comprised of s-nodes. which are used to store some suffixes q with 1 ≤ len(q) < k

CMST Insert

7

Insert : ( 00100* , Q )

CMST Insert

8

Insert : ( 0011* , R )

CMST Insert

9

Insert : ( 0010011* , S )

CMST Insert

10

Insert : ( 001101* , T )

CMST Insert

11

=> Insert : ( 111* , I )Insert : ( 001101* , T )

CMST Lookup

12

Search : 00100011* Port : Default portBAO

CMST Delete

13

Delete : 0010010*

Delete

PCMST

14

Set as the length of the shortest prefix in the given router table.=> Avoid duplicate storage of the same prefix in k-PCMST

K-CMST & K-PCMST

15

Experimental Result

16

17