fast updating algorithms for tcams devavrat shah pankaj gupta ieee micro, jan.-feb. 2001
TRANSCRIPT
Fast Updating Algorithms for TCAMs
Devavrat ShahPankaj Gupta
IEEE MICRO, Jan.-Feb. 2001
Outline Background Introduction to TCAMs Provided algorithms Simulation Conclusion and discussion
Background A collection of rules is called a policy
database or a classifier Packet classification
To find a best matching rule Identification of the flow Generalization of the routing lookup
Routers must keep pace with link speeds
Intro. to TCAMs Fully associative memory
Parallel search for every element in the array Take three logic states
0, 1, or don’t-care X Store each field as a (var, mask) pair
(10000, 11000) represents the 5-bit prefix 10* Store forwarding table entries in order of
decreasing prefix lengths (priorities) The lower address has higher priority
Intro. to TCAMs (cont’d) Increasingly being deployed
Simplicity and speed (10 ns per clock) Forwarding table updates complicate
keeping the list of prefixes in sorted order
Intro. to TCAMs (cont’d)
Intro. to TCAMs (cont’d) If a new prefix
103.23.128/18 is added to the table There’s no empty
space between prefixes P1 and P2!
There are two intuitive solutions below.
Intuitive solution 1 Shift prefixes P2 to
P5 downward by one location each
This costs O(N), where N is the # of prefixes
Intuitive solution 2 Keeps a few empty
memory locations at all X nonempty ones
Degenerates to O(N) if empty space is filled up
Wastes precious CAM space
Provided algorithm 1 Two prefixes of the
same length don’t need to be ordered Prefix-length
ordering constraint Referred to here as
L-algorithm, which can be optimized to L/2
Provided algorithm 1 (cont’d) Keep all the
unused entries in the center
Swap at most L/2 entries to obtain an unused entry
The arrangement of Fig. 4 can again improve the time
Provided algorithm 2 PLO constraint is more
restrictive The constraint can be
relaxed to only overlapping prefixes Prefixes that lie on the
same chain of the trie need to be ordered
Chain-ancestor ordering constraint
Provided algorithm 2 (cont’d) There’s an ordering
constraint between pi and pj iff one is a prefix of the other ex. 103.23.3/24 and
103.23/16 Decrease the update
to D/2, where D is the max length of any chain in the trie
Provided algorithm 2 (cont’d)
Terminology LC(p) len(LC(p)) rootpath(p) ancestor of p prefix-child of p hcld(p) HCN(p)
Insertion Case I. Assume q is to be
inserted above the pool One empty entry can be
created by moving prefixes on LC(q) downward one by one, starting from pj to the border of the pool
The movement is less than D/2, where D is len(LC(q))
Insertion (cont’d) Case II. Assume q is to be
inserted below the pool One empty entry can be
created by moving prefixes on HCN(q) upward one by one, starting from pj to the border of the pool
Again, the movement is less than D/2
pj
pi
Pi + 1
Deletion Two exceptions
compared with insertion1. It works in reverse2. It works on the chain that
has prefix p adjacent to the free space pool
The new unused entry is rippled by moving prefixes downward on the chain
Auxiliary trie data structure To determine LC(p) and HCN(p) quickly,
the following additional fields in every trie node are maintained wt(p): the weight of each node p wt_ptr(p): the child with the highest weight hcld_ptr(p): the child at the highest location
The weight of each node 1 1
2
4
1 2
32
Simulation
Simulation (cont’d)
Simulation (cont’d)
Simulation (cont’d)
Simulation (cont’d)
Conclusion and discussion The PLO_OPT algorithm improves update
speed by a factor of two over the best-known solution
The CAO_OPT algorithm completes one prefix update in slightly greater than one memory movement per update operation
Some disadvantages of TCAMs More prices, more power consumption, less
capacity, dealing with prefixes only