Title: Dynamic IP RouterTables Using Highest Priority Matching
1Dynamic IP Router-Tables Using Highest Priority
Matching
- Haibin Lu. Sartaj Sahni
- Computers and Communications, 2004. Proceedings.
ISCC 2004. Ninth International Symposium on
, Volume 2 , 28 June-1 July 2004
2Outline
- Preliminaries
- Nonintersecting Highest Priority Rule Tables
(NHPRTs) BOB - Highest Priority Prefix Table (HPPTs) PBOB
- Longest Matching Prefix Tables (LMPTS) LMPBOB
- Experiment and conclusion
3Preliminaries
- Def1 Let ru, v and sx, y be two ranges. R
and s are disjoint iff - rnsØ. R and s are nested iff one
of the ranges is contained - within the other. r and s
intersect iff r and s have a nonempty - intersection that is different
from both r and s - Def2 The range set R is nonintersecting iff
there is no pair of - ranges r and s ? R such that r
and s intersect - Def3 Let R be a range set, ranges(d, R)(or
simply ranges(d) when - R is implicit) is the subset of
ranges of R that match the - destination address d. hpr(d) is
the highest-priority range in - ranges(d)
4Preliminaries
- Def4 Let r and s be two ranges. rlts ? start(r)
lt start(s) v - (start(r)start(s) ? finish(r) gt
finish(s)) - Lemma1 Let R be a nonintersecting range set. If
rnsØ for r, s ? R , - then the following are
true -
- 1 start(r) lt start(s) gt finish(r)
finish(s). - 2 finish(r) gt finish(s) gt start(r)
start(s)
5(NHPRTs) BOB (Data structure)
- The data structure binary tree on binary tree
(BOB) comprises a single balanced binary search
tree at the top level - Top-level balanced binary search tree is called
the point search tree (PTST) - Each node z of PTST, we associate a point,
point(z). For every node z of PTST, node in the
left subtree of z have smaller point values than
point(z), and nodes in the right subtree of z
have larger point values than point(z)
6(NHPRTs) BOB (Data structure)
- Let R be the set of nonintersecting ranges of the
NHPRT. - Each range of R is stored in exactly one of the
nodes of the PTST - The root of the PTST stores all ranges r ? R such
that start(r) point(root) finish(r) all
ranges r ? R such that finish(r) lt point(root)
are stored in the left subtree of the root all
ranges r ? R such that point(root) lt start(r) are
stored in the right subtree of the root
7(NHPRTs) BOB (Data structure)
8(NHPRTs) BOB (Data structure)
- The number inside each node is point(z), and the
outside each node, we give ranges(z)
9(NHPRTs) BOB (Data structure)
- The ranges in ranges(z) may be ordered using the
lt relation of Def4. Using this lt relation, we put
the ranges of ranges(z) into a red-black tree
called the range search-tree or RST(z) - Each node x of RST(z) stores exactly one range of
ranges(z), we refer to this range as range(x) - Every node y in the left (right) subtree of node
x of RST(z) has range(y) lt range(x) (range(y) gt
range(x))
10(NHPRTs) BOB (Data structure)
- Each node x stores the quantity mp(x), which is
the maximum of the priorities of the ranges
associated with the nodes in the subtree rooted
at x - When x is a leaf, mp(x) p(x), where
- p(x) priority(range(x)),
- and when x is not a leaf
- mp(x) maxmp(leftchild(x)),
mp(rightchild(x)), p(x) -
11(NHPRTs) BOB (Data structure)
12(NHPRTs) BOB (Data structure)
- Lemma 2
- Let z be a node in a PTST and let x be a node
in RST(z). - Let st(x) start(range(x)) and fn(x)
finish(range(x)) - 1 for every node y in the right subtree of x,
st(y) st(x) - and fn(y) fn(x)
- 2 for every node y in the left subtree of x,
st(y) st(x) - and fn(y) fn(x)
13(NHPRTs) BOB (search for hpr(d))
14(NHPRTs) BOB (search for hpr(d))
15(NHPRTs) BOB (insert a range)
16(NHPRTs) BOB (complexity of BOB)
- Lookup O(lognlogmaxR)
- a destination address is matched by about 1
prefix on average, the maximum number of prefixes
that match a destination address is at most 6. we
conclude that maxRlt6. so complexity of BOB on
real router tables is O(logn) per operation - Insert, delete gt O(logn)
17Highest Priority Prefix Table (HPPTs) PBOB
- Since maxRlt6 for real router-tables, we replace
the RST in each node z of the BOB PTST with an
array linear list. ALL(z) of pairs of the form
(pLength, priority) - The pairs in ALL(z) are in ascending order of
pLength
18Longest Matching Prefix Tables (LMPTS) LMPBOB
- Using priority pLength
- Replace the array linear list that is stored in
each node of the PTST by a W-bit vector,
bit(z)i denotes the ith bit of the bit vector
stored in node z of the PTST, bit(z)i1 iff
ALL(z) has a prefix whose length is i
19Experiment and conclusion
20Experiment and conclusion
21Experiment and conclusion
22Experiment and conclusion