230 likes | 355 Views
Efficient prefix updates for IP router using lexicographic ordering and updateable address set. Authors: Sieteng Soh, Lely Hiryanto and Surech Publisher: IEEE Transactions on Computer, 2008 Present: Chen-Yu Lin Date: Feb,25, 2009. Notations and background. Notations :
E N D
Efficient prefix updates for IP router using lexicographic ordering and updateable address set Authors:Sieteng Soh, Lely Hiryanto and Surech Publisher: IEEE Transactions on Computer, 2008 Present:Chen-Yu Lin Date: Feb,25, 2009
Notations and background • Notations : • A routing table T contains a list of pairs T= (p, h). • Assume that T contains a pair (ε,hε) (the default next-hop interface). • A table T is sorted in decreasing lexicographic order. <T1 ,T2 ,…,Tn >. • Ti precedes Tj if and only if i < j and pj is lexicographically in lower order than pi . • pi > pj, if • 1. pj = prefix(pi) • 2. for some value of 0 < k ≤ min(|pi|,| pj |), the first k-1 bits of the two prefix agree, but the kth bit of pi (=1) is larger than the kth bit of pj(=0).
Notations and background • Given a routing table T, construct a next-hop array (NHA) of size 2w *1. Note: NHA could solve the IP lookup problem in 1 MA.
Notations and background • The FEC (full expansion/compression) techniques • [2] propose an FEC structure that is comprised of a 2D NHA (called table F). • A 32-bit address X=a.b.c.d is split into Xr0 = a.b and Xcr = c.d • In this scheme, the lookup for X is in 3 MAs. • However, a prefix update on this scheme is difficult.
Notations and background • The CNHA/CWA (Compressed next hop array/code word array) scheme • This scheme split each IP address X=a.b.c.d into a segment a.b and an offset c.d • [5] proposed using a ST(Segment Table) with 216 entries, each of which stores either a next hop or a pointer to an associated NHA (with 216 entries contains next hop). • [5] took advantage of the distribution of the prefixes within a segment to reduce the size of its NHA so that the size depends on the length of the longest prefix in the segment 16 < l ≤ 32. • Each entry in ST contains a 28-bit pointer or a 28-bit next hop and a 4-bit offset length k. offset
Goals of paper • In this paper, we propose a faster algorithm for constructing RLE sequences and an efficient unification technique for reducing the FEC construction time. • In this paper, we propose the use of lexicographically decreasing ordered prefixes to construct the CNHA and CWA structure for a given segment in O(m) time. In addition, using the updateable address set concept, we propose a technique to enable the CNHA/CWA scheme for online prefixes updates.
Updates using Lexicographic ordered prefix • Some properties of lexicographic ordered prefixes. • Property 1. • Property 2. • Property 3. Aggregated IP addresses of a prefix pq Lowest address in Aq Highest address in Aq A sequence of prefixes sorted in decreasing lexicographic order
Updates using Lexicographic ordered prefix • Ti = (pi, hi). • A segment q, denoted by ST[q] or STq , contains: • The length of longest prefixes in ST[q] , l = max(lj). • A list of triples STjq = (subprefix spj, prefix length lj ≤ 32, next hop hj). • Each Ti with |pi|≥ 16 • Represented in a segment ST[q = (pi )016 ] by a triple • Each Ti with |pi|< 16 • Needs to be expanded into a set • Represented as a triple (0.0, | pi |, hj) in 216-|pi|
Updates using Lexicographic ordered prefix • Some examples: • T = 200.27.240/20/B • Represented in segment ST[200.27] as a triple (240.0, 20, B). • T = 200.27/16/C • Represented in segment ST[200.27] as a triple (0.0, 16, C). • T = 200.24/14/C • Represented in 4 segment ST[200.24], ST[200.25], ST[200.26], ST[200.27] as a triple (0.0, 14, C). • Let be a sequence of triples (ssi, sei, hi) Starting address Ending address
Updates using Lexicographic ordered prefix • Efficient RLE sequence generation • For each segment ST[q], we generate a set of sequences RLE[q] ; thus , for an ST, we obtain a table RLE. • Each RLE[q] contains a sequence of RLEiq = <starti, endi, hi>. • 0 ≤ starti ≤ endi ≤ 216 -1. • Note that we use this RLE table to construct the FEC and CNHA/CWA structures. • As an example, consider ST[200.27]. 111
Updates using Lexicographic ordered prefix 111 update 111
Updates using Lexicographic ordered prefix • Improved technique for FEC table construction. • Convert table RLE into the FEC structure. • Note that table RLE is equivalent to row R of the FEC structure, hence, its conversion is straightforward. • The row compression steps for FEC can be directly processed by sequentially deleting any duplicate RLEq and adjusting its corresponding pointer.
Updates using Lexicographic ordered prefix • [2] used a function so that each of the non-duplicate RLE sequences contains the same number of RLEs. • In this unification step, an RLEiq = <starti, endi, hi> may be expanded into
Updates using Lexicographic ordered prefix • Improved technique for the CNHA/CWA construction. • First construct table ST. Let 0 ≤ l ≤ 32 be the length of the longest prefix in ST[q]. • For l ≤ 16 : S[q] = h • For l > 16 : S[q].offset_length = l – 16 . We use the function below to construct a CNHAq and CWAq from RLE[q].
Updates using Lexicographic ordered prefix • Example : consider RLE[200.27] in previous figure. |RLE|=6 l = 20 For i = 0 : CNHA[0] = C start0 = 0 a0 = 0 s0 = 0 w0 = 0 CWA[0].mapw = 1000000000000000 CWA[1].base = 1 For i = 1 : CNHA[1] = A start1 = 16384 a1 = 4 s1 = 0 w1 = 4 CWA[0].mapw = 1000100000000000 CWA[1].base = 2
Experimental results • Databases for test data • FEC table construction time
Experimental results • Online prefix update time on DFEC • The CNHA/CWA construction time
Experimental results • Online prefix update time for the CNHA/CWA scheme