Download presentation

Published byChase Kington Modified over 3 years ago

1
**Fast Incremental Updates on Ternary-CAMs for Routing Lookups and Packet Classification**

August 17, 2000 Hot Interconnects 8 Devavrat Shah and Pankaj Gupta Department of Computer Science Stanford University {devavrat,

2
**Unicast destination address based lookup**

Lookup in an IP Router HEADER Dstn Addr Forwarding Engine Next Hop Next Hop Computation Forwarding Table Dstn-prefix Next Hop ---- ---- ---- ---- Incoming Packet ---- ---- Unicast destination address based lookup

3
**IP Lookup = Longest Prefix Matching**

Next-hop 100/9 103.23/16 /23 101.20/13 101.1/16 Forwarding Table Find the longest prefix matching the incoming destination address

4
**Requirements of a Route Lookup Scheme**

High Speed : tens of millions per sec Low storage : ~100K entries Fast updates: few thousands per second, but ideally at lookup speed

5
Route Lookup Schemes Various algorithms : come to tutorial tomorrow if interested This paper is about ternary CAMs

6
**Content-addressable Memory (CAM)**

Fully associative memory Exact match (fixed-length) search operation in a single clock cycle TCAM: stores a 0, 1 or X in each cell: useful for wildcard matching

7
**Route Lookup Using TCAM**

Location Prefix Next-hop 1 P1 /23 1 P2 1 103.23/16 P3 101.1/16 2 Priority Encoder P1 P4 101.20/13 3 P5 4 100/9 5 6 To find the longest prefix cheaply, need to keep entries sorted in order of decreasing prefix lengths

8
**General TCAM Configuration For Longest Prefix Matching**

32 bit Prefixes 31 bit Prefixes 30 bit Prefixes Prefix-length ordering constraint (PLO) 10 bit Prefixes 9 bit Prefixes 8 bit Prefixes

9
**Incremental Update Problem**

Updates: Insert a new prefix Delete an old prefix Problem: how to keep the sorting invariant (e.g., the PLO) under updates

10
Target Update Rate ? Many are happy with a few hundred thousand per second Others want (and claim) single clock-cycle updates Our goal: make them as fast as possible (ideally single-cycle)

11
Common Solution: O(N) 32 bit Prefix 31 bit Prefix Add new 30-bit prefix 30 bit Prefix M N 10 bit Prefix Problem: How to manage the empty space for best update time and TCAM utilization? 9 bit Prefix 8 bit Prefix Empty Space

12
**Better Average Update Rate**

32 bit Prefix 31 bit Prefix Add new 30-bit prefix 30 bit Prefix 9 bit Prefix 8 bit Prefix Worst case is still O(N)

13
**An L-solution (L=32) Two prefixes of same length can be in any order**

32 bit Prefix 31 bit Prefix Add 30 bit Prefix Two prefixes of same length can be in any order 10 bit Prefix 9 bit Prefix 8 bit Prefix Empty Space

14
**Routing Table for Simulation**

Mae-East Entries 43344 Insertion 34204 Deletion 4140 Snapshot + 3-hour updates on the original table Source: - March 1, 2000

15
**Performance of L-solution**

Avg #memory writes # Entries

16
**Outline of Rest of the Talk**

Algorithm PLO_OPT: worst case L/2 memory shifts (provably optimal) Algorithm CAO_OPT: even better (conjectured to be optimal)

17
**PLO_OPT Worst-case L/2 Add 32 bit Prefix 31 bit Prefix 21 bit Prefix**

Empty Space 20 bit Prefix Worst-case L/2 9 bit Prefix 8 bit Prefix

18
PLO_OPT (MAE-EAST)

19
**Better Algorithm ? PLO_OPT is optimal under the PLO constraint**

Question: can we relax the constraint and still achieve correct lookup operation?

20
**Yes: PLO Constraint is More Restrictive Than Needed**

31 Maximal chain P2 has no ordering constraint with P3 or P4 P4 < P3 < P1, P2 < P1 Chain ancestor Ordering Constraint P3 29 P1 10/8 P2 10.64/15 P3 /29 P4 /31 P2 15 8 P1

21
Algorithm CAO_OPT Maintain free space pool in the “middle” of the maximal chain Basic idea: for every prefix, the longest chain that this prefix belongs to should be split around the free space pool as equally as possible

22
**CAO_OPT: Example P4 < P3 < P1, P2 < P1 P4 P2 P3 P1 P1 10/8 P2**

10.64/15 P3 /29 P4 /31 P4 < P3 < P1, P2 < P1 P1

23
CAO_OPT: Updates Insertion : find the maximal chain to which new entry belongs and insert it such that this chain is distributed as equally as possible around the free space : D/2 operations Deletion : reverse operation with update possibly using another chain

24
**Auxiliary Data Structure**

Trie of prefixes with two additional fields per node Update operation takes L memory writes in software and D/2 in TCAM

25
**Maximal-chain Length (D) Distribution**

Number of chains Chain Length

26
CAO_OPT (MAE-EAST) Avg #memory writes # Entries

27
**Summary of Simulation Results**

Algorithm CAO_OPT PLO_OPT L-soln Mean 1.015 4.098 7.27 Variance 0.01 2.03 4.09 Worst Case 3 12 21 Hence, can achieve 1-2 cycle updates

Similar presentations

OK

Fast binary and multiway prefix searches for pachet forwarding Author: Yeim-Kuan Chang Publisher: COMPUTER NETWORKS, Volume 51, Issue 3, pp. 588-605, February.

Fast binary and multiway prefix searches for pachet forwarding Author: Yeim-Kuan Chang Publisher: COMPUTER NETWORKS, Volume 51, Issue 3, pp. 588-605, February.

© 2018 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google