Multiple parallel packet routing lookup

Multiplex communications – Pathfinding or routing – Switching a message which includes an address header

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C370S383000

Reexamination Certificate

active

06212183

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention relates to packet switching.
2. Related Art
In a packet-switched network, a “router” is a device which receives packets on one or more input interfaces and which outputs those packets on one of a plurality of output interfaces, so as to move those packets within the network from a source device to a destination device. Each packet includes header information which indicates the destination device (and other information), and the router includes routing information which associates an output interface with information about the destination device (possibly with other information). The router can also perform other operations on packets, such as rewriting the packets according to their routing protocol or to reencapsulate the packets from a first routing protocol to a second routing protocol. It is advantageous for routers to operate as quickly as possible, so that as many packets as possible can be switched in a unit time.
One operation performed by routers is routing lookup, that is, accessing routing information in response to the header information from the packet. For example, the router can determine an output interface on which to output the packet in response to a destination address specified by the packet header. In some routing protocols such as IP, an entire set of destination addresses can be associated with a single output interface, so that the operation of routing lookup can be responsive to routing information of differing lengths.
A first problem which has arisen in the art is that storing and retrieving routing information can be both complex and slow, due to the number of differing ways in which the destination address or other packet header information can be associated with that routing information. For example, methods by which the router might perform routing lookup for longer sets of routing lookup information can be inefficient for shorter sets of routing lookup information, and methods by which the router might perform routing lookup for shorter sets of routing lookup information can be inefficient for longer sets of routing lookup information.
A second problem which has arisen in the art is that header information associated with routing lookup has been seen to follow identifiable patterns, particularly for IP addresses used in the internet. Among those identifiable patterns are that 21-bit and 24-bit destination address headers are relatively common, while 32-bit destination addresses and 8-bit destination address headers are relatively rare. Thus, methods by which the router might perform routing lookup should be efficient for lookup of middle-length destination addresses without being inefficient for lookup of relatively longer or shorter destination addresses.
Some known routers, such as those described in U.S. application Ser. No. 08/655,429, “Network Flow Switching and Flow Data Export”, filed May 28, 1996, in the name of inventors Darren Kerr and Barry Bruins, and assigned to Cisco Systems, Inc., and U.S. application Ser. No. 08/771,438, having the same title, filed Dec. 20, 1996, in the name of the same inventors, assigned to the same assignee, can perform routing lookup for differing length destination addresses, by successively performing routing lookup for successive bytes of the destination address. Thus, each byte of the destination address provides further information from which specific information for routing the packet can be addressed. While this method achieves the goal of being relatively flexible with regard to the length of the destination address required for routing lookup, it can take many clock cycles to perform routing lookup, and is therefore not as relatively quick as desired. Moreover, while this method is relatively efficient for relatively shorter length destination addresses, it becomes increasingly inefficient as the lengths of destination addresses become relatively longer.
Accordingly, it would be desirable to provide a method and system for performing routing lookup, which is responsive to a plurality of different sets of routing lookup information. This advantage is achieved in an embodiment of the invention in which a plurality of sets of routing lookup information are queued for lookup in an external memory, particularly where a plurality of sets of routing lookup information are distinguished both by packet routing information and to the length of that header information.
SUMMARY OF THE INVENTION
The invention provides a method and system for routing information lookup for packets using a routing protocol such as IP. Routing information is determined responsive to the packet header, which in a preferred embodiment includes a destination address, a source address, and an input interface for the packet. Routing lookup is performed in response to at least one set of selected routing information, using a lookup table which includes tags both for the routing information and for a bitmask length (thus indicating the generality or scope of the routing information for the routing lookup).
In a preferred embodiment, the lookup table is structured so that addresses having the most common bitmask length are addressed first, but that more specific addresses are still considered when they are present. It has been discovered that most internet addresses can be found by reference to 24-bit or 21-bit IP addresses, after which 16-bit, 12-bit, and finally 32-bit IP addresses are considered. Lookup flags indicate when a relatively uncommon but more specific 32-bit IP address match is available. A memory controller pipelines the lookup requests to a hash table memory, flushes superfluous requests when a lookup result is found, and handles cases relating to 32-bit IP address matches.


REFERENCES:
patent: Re. 33900 (1992-04-01), Howson
patent: 4131767 (1978-12-01), Weinstein
patent: 4161719 (1979-07-01), Parikh et al.
patent: 4316284 (1982-02-01), Howson
patent: 4397020 (1983-08-01), Howson
patent: 4419728 (1983-12-01), Larson
patent: 4424565 (1984-01-01), Larson
patent: 4437087 (1984-03-01), Petr
patent: 4438511 (1984-03-01), Baran
patent: 4439763 (1984-03-01), Limb
patent: 4445213 (1984-04-01), Baugh et al.
patent: 4446555 (1984-05-01), Devault et al.
patent: 4456957 (1984-06-01), Schieltz
patent: 4464658 (1984-08-01), Thelen
patent: 4499576 (1985-02-01), Fraser
patent: 4506358 (1985-03-01), Montgomery
patent: 4507760 (1985-03-01), Fraser
patent: 4532626 (1985-07-01), Flores et al.
patent: 4644532 (1987-02-01), George et al.
patent: 4646287 (1987-02-01), Larson et al.
patent: 4677423 (1987-06-01), Benvenuto et al.
patent: 4679189 (1987-07-01), Olson et al.
patent: 4679227 (1987-07-01), Hughes-Hartogs
patent: 4723267 (1988-02-01), Jones et al.
patent: 4731816 (1988-03-01), Hughes-Hartogs
patent: 4750136 (1988-06-01), Arpin et al.
patent: 4757495 (1988-07-01), Decker et al.
patent: 4763191 (1988-08-01), Gordon et al.
patent: 4769810 (1988-09-01), Eckberg, Jr. et al.
patent: 4769811 (1988-09-01), Eckberg, Jr. et al.
patent: 4771425 (1988-09-01), Baran et al.
patent: 4819228 (1989-04-01), Baran et al.
patent: 4827411 (1989-05-01), Arrowood et al.
patent: 4833706 (1989-05-01), Hughes-Hartogs
patent: 4835737 (1989-05-01), Herrig et al.
patent: 4879551 (1989-11-01), Georgiou et al.
patent: 4893306 (1990-01-01), Chao et al.
patent: 4903261 (1990-02-01), Baran et al.
patent: 4922486 (1990-05-01), Lidinsky et al.
patent: 4933937 (1990-06-01), Konishi
patent: 4960310 (1990-10-01), Cushing
patent: 4962497 (1990-10-01), Ferenc et al.
patent: 4962532 (1990-10-01), Kasirai et al.
patent: 4965767 (1990-10-01), Kinoshita
patent: 4965772 (1990-10-01), Daniel et al.
patent: 4970678 (1990-11-01), Sladowski et al.
patent: 4979118 (1990-12-01), Kheradpir
patent: 4980897 (1990-12-01), Decker et al.
patent: 4991169 (1991-02-01), Davis et al.
patent: 5003595 (1991-03-01), Collins et al.
patent: 5016265 (1991-05-01), Hahne et al.
patent: 5020058 (1991-05-01), Holden et al.
patent: 5033076 (1991-07-01), Jones et al.
patent: 5034919 (1991-07-01), Sasai
patent: 5054034 (1991-10-01), Hughes-

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Multiple parallel packet routing lookup does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Multiple parallel packet routing lookup, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Multiple parallel packet routing lookup will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2548578

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.