A Classified Multi-Suffix Trie for IP Lookup and Update Author

Download Report

Transcript A Classified Multi-Suffix Trie for IP Lookup and Update Author

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
Introduction
• Propose a trie-based data structure called Classified MultiSuffix 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
Insert : 1*
3
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 2𝑘 children corresponding to
the 2𝑘 possible values for the k used bits.
5
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 𝑝𝑜𝑟𝑡𝑖 𝑣 = −1.
3. 𝑡(𝒱): 0 ≤ t(v) ≤ 2𝑘 is the number of suffixes stored in v.
4. c(𝒱): 0 ≤ c(v) ≤ 2𝑘 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
6
CMST Insert
Insert : ( 00100* , Q )
7
CMST Insert
Insert : ( 0011* , R )
8
CMST Insert
Insert : ( 0010011* , S )
9
CMST Insert
Insert : ( 001101* , T )
10
CMST Insert
Insert : ( 001101* , T ) => Insert : ( 111* , I )
11
CMST Lookup
Search : 00100011*
Port : B
Default port
O
A
12
CMST Delete
Delete : 0010010*
13
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