Small forwarding tables for fast routing lookups

For some time, the networking community has assumed that it is impossible to do IP routing lookups in software fast enough to support gigabit speeds. IP routing lookups must find the routing entry with the longest matching prefix, a task that has been thought to require hardware support at lookup frequencies of millions per second.We present a forwarding table data structure designed for quick routing lookups. Forwarding tables are small enough to fit in the cache of a conventional general purpose processor. With the table in cache, a 200 MHz Pentium Pro or a 333 MHz Alpha 21164 can perform a few million lookups per second. This means that it is feasible to do a full routing lookup for each IP packet at gigabit speeds without special hardware.The forwarding tables are very small, a large routing table with 40,000 routing entries can be compacted to a forwarding table of 150-160 Kbytes. A lookup typically requires less than 100 instructions on an Alpha, using eight memory references accessing a total of 14 bytes.

[1]  Günter Karjoth,et al.  Routing on longest-matching prefixes , 1996, TNET.

[2]  Eric Hoffman,et al.  Ipsilon Flow Management Protocol Specification for IPv4 Version 1.0 , 1996, RFC.

[3]  Stephen E. Deering,et al.  Internet Protocol, Version 6 (IPv6) Specification , 1995, RFC.

[4]  Donald R. Morrison,et al.  PATRICIA—Practical Algorithm To Retrieve Information Coded in Alphanumeric , 1968, J. ACM.

[5]  Douglas C. Schmidt,et al.  aItPm: a strategy for integrating IP with ATM , 1995, SIGCOMM '95.

[6]  D. C. Feldmeier,et al.  Improving gateway performance with a routing-table cache , 1988, IEEE INFOCOM '88,Seventh Annual Joint Conference of the IEEE Computer and Communcations Societies. Networks: Evolution or Revolution?.

[7]  Jon Postel,et al.  Internet Protocol , 1981, RFC.

[8]  Kurt Mehlhorn,et al.  A Lower Bound on the Complexity of the Union-Split-Find Problem , 1988, SIAM J. Comput..

[9]  H. V. Jagadish,et al.  Towards a Gigabit IP Router , 1992, J. High Speed Networks.

[10]  J. Ian Munro,et al.  Membership in Constant Time and Minimum Space , 1994, ESA.

[11]  G. Parulkar,et al.  Strategy for Integrating IP with ATM , 1995 .

[12]  J. Ian Munro,et al.  Neighbours on a Grid , 1996, SWAT.

[13]  Stefan Nilsson Radix Sorting & Searching , 1996 .

[14]  Greg Minshall,et al.  Flow labelled IP: a connectionless approach to ATM , 1996, Proceedings of IEEE INFOCOM '96. Conference on Computer Communications.

[15]  Paul Francis,et al.  Fast routing table lookup using CAMs , 1993, IEEE INFOCOM '93 The Conference on Computer Communications, Proceedings.

[16]  Carl Staelin,et al.  lmbench: Portable Tools for Performance Analysis , 1996, USENIX Annual Technical Conference.

[17]  D.E. Tolmie Gigabit networking , 1992, IEEE LTS.