Enhanced internet packet routing lookup

Information

  • Patent Grant
  • 6512766
  • Patent Number
    6,512,766
  • Date Filed
    Friday, August 22, 1997
    27 years ago
  • Date Issued
    Tuesday, January 28, 2003
    21 years ago
Abstract
The invention provides a method and system for routing information lookup for packets using routing protocols such as IP or IP multicast (IGMP), or MPLS (multiprotocol label switching, also known as tag switching or label switching) or MPLS multicast, in which both the destination address and the length of that destination address are matched using a lookup table having separate entries for selected addresses and their lengths, which can be accessed in parallel for multiple representations of destination addresses, and in which the input interface associated with the packet is included in the information used for matching.
Description




This application is submitted in the name of the following inventor:

















Inventor




Citizenship




Residence Address











Wilford, Bruce A.




United Kingdom




935 Eastwood Place








Los Altos, California 94024














The assignee is Cisco Technology, Inc., a California corporation having an office at 170 West Tasman Drive, San Jose CA 95134.




Title of Invention




Enhanced Internet Packet Routing Lookup




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 problem which has arisen in the art is that routing lookup, that is, determining an output interface on which to output the packet in response to the header information from the packet, can take substantial processing time, and that the demand on the router from that processing time continues to grow with increased network demand and increased network size. This problem has been exacerbated by addition of more complexity in routing protocols and routing techniques, such as the use of access control lists, network flow switching, quality of service requirements, and of attempts to determine the nature or routing treatment of packets in response to their source.




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., attorney docket number CIS-016, now U.S. Pat. No. 6,243,667 and U.S. application Ser. No. 08/771,438, having the same title, filed Dec. 19, 1996, in the name of the same inventors, assigned to the same assignee, attorney docket number CIS-017, now U.S. Pat. No. 6,308,148 determine routing lookup in response to a network “flow” associated with the packet, rather than just in response to the destination address for the packet. This technique, called network flow switching, allows the router to determine routing procedure a single time for the entire flow, and to route all packets for the flow in the same manner.




While such routers are able to reduce the number of routing lookup operations required for a sequence of packets in a flow, they do not take advantage of all information available for rapid routing. For a first example, for some packets the amount of packet header information for determining an output interface can be relatively longer or shorter (as in IP protocols, where entire sets of destination addresses can sometimes be assigned to a single output interface). For a second example, for some packets (as in multicast protocols, due to the nature of the multicast tree) the choice of output interface can be responsive to the input interface from which the packet was received.




Accordingly, it would be desirable to provide a method and system for performing routing lookup, which is responsive both to the header information associated with a packet and to the length of that header information, and which is makes use of all useful information including an input interface from which the packet was received. These advantages are achieved in an embodiment of the invention in which both the destination address and the length of that destination address are matched using a lookup table having separate entries for selected addresses and their lengths, which can be accessed in parallel for multiple representations of destination addresses, and in which the input interface associated with the packet is included in the information used for matching.




SUMMARY OF THE INVENTION




The invention provides a method and system for routing information lookup for packets using routing protocols such as IP or IP multicast (IGMP), or MPLS (multiprotocol label switching, also known as tag switching or label switching) or MPLS multicast, in which both the destination address and the length of that destination address are matched using a lookup table having separate entries for selected addresses and their lengths, which can be accessed in parallel for multiple representations of destination addresses, and in which the input interface associated with the packet is included in the information used for matching.











BRIEF DESCRIPTION OF THE DRAWINGS





FIG. 1

shows information for an example packet using an MPLS protocol.





FIG. 2

shows a process flow diagram of a method of operating the system.











DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT




In the following description, a preferred embodiment of the invention is described with regard to preferred process steps and data structures. Those skilled in the art would recognize after perusal of this application that embodiments of the invention can be implemented using general purpose processors or special purpose processors or other circuits adapted to particular process steps and data structures described herein, and that implementation of the process steps and data structures described herein would not require undue experimentation or further invention.




Inventions described herein can be used in conjunction with inventions described in the following applications:




application Ser. No. 08/918,505, filed the same day, Express Mail Mailing No. EM337222825US, in the name of the same inventor, titled “Multiprotocol Packet Recognition and Switching”, attorney docket number CIS-020A, now U.S. Pat. No. 6,157,641; and




application Ser. No. 08/917,654, filed the same day, Express Mail Mailing No. EM166118235US, in the name of the same inventor, titled “Multiple Parallel Packet Routing Lookup”, attorney docket number CIS-020B, now U.S. Pat. No. 6,212,183.




Each of these applications is hereby incorporated by reference as if fully set forth herein.




System For Enhanced Internet Packet Routing Lookup




A system for enhanced internet packet routing lookup includes a multiprotocol packet recognizer as further described in application Ser. No. 08/918,505, titled “Multiprotocol Packet Recognition and Switching”, attorney docket number CIS-020A, now U.S. Pat. No. 6,308,148 and in application Ser. No. 08/917,654, titled “Multiple Parallel Packet Routing Lookup”, attorney docket number CIS-020B, now U.S. Pat. No. 6,212,183 each of which is hereby incorporated by reference as if fully set forth herein. As more fully described in these incorporated applications, each packet is input to a packet buffer, coupled to a set of encapsulation recognizers and an encapsulation multiplexer, and coupled to a set of longest-match recognizers and a set of longest-match multiplexers, so as to first recognize the type of packet encapsulation and to second recognize relevant packet header information for routing the packet.





FIG. 1

shows information for an example packet using an MPLS protocol.




As used herein, “MPLS” refers to multiprotocol label switching, also known as “tag switching” or “label switching”, as defined in RFC 2105, “Cisco Systems' Tag Switching Architecture Overview”, by Y. Rekhter, D. Katz, E. Rosen, and G. Swallow (February 1997), which document describes label formats and packet formats, and is hereby incorporated by reference as if fully set forth herein.




1. MPLS Packet Header




The information for the example packet includes an example packet header


100


. In the case where the packet is encapsulated using an MPLS protocol, the packet header


100


includes a set of line information


101


, a destination address (DA)


102


, a source address (SA)


103


, a fixed code


104


indicating that the packet is encapsulated using MPLS, and an MPLS label


105


, followed by a sequence of words in continuation of the packet.




In a preferred embodiment, the line information


101


includes information about how the packet was received, including an input interface identifier


106


for an input interface associated with the packet.




In a preferred embodiment, the fixed code


104


indicating that the packet is encapsulated using MPLS comprises the value hexadecimal 88 47 (for MPLS unicast) or the value hexadecimal 88 48 (for MPLS multicast).




The MPLS label


105


includes information as specified by the MPLS protocol.




In a preferred embodiment, additional information is included with the packet header


100


when the packet header


100


is coupled to the longest-match recognizers, including a checksum value (CHK)


107


associated with the packet header


100


and computed by a checksum element.




Computation of the checksum value CHK


107


is further described in application Ser. No. 08/918,505, titled “Multiprotocol Packet Recognition and Switching”, attorney docket number CIS-020A, now U.S. Pat. No. 6,576,641 and in application Ser. No. 08/917,654, titled “Multiple Parallel Packet Routing Lookup”, attorney docket number CIS-020B, now U.S. Pat. No. 6,212,183 each of which is hereby incorporated by reference as if fully set forth herein. As more fully described in these incorporated applications, the checksum value CHK


107


includes one bit for each type of packet header protocol recognized by the encapsulation recognizers. In a preferred embodiment, this includes one bit for a correct IP checksum and correct packet header length, one bit for a correct CLNS checksum and correct packet header length, and one bit for just a correct packet header length. Since the MPLS protocol does not specify a checksum value, the latter bit is checked only for indicating correct packet header length.




2. Packet Header Information




The information for the example packet includes a set of packet header information


110


gleaned by operation of the encapsulation recognizers and encapsulation multiplexer in response to the example packet header


100


.




In a preferred embodiment, the packet header information


110


includes the checksum value CHK


107


, the input interface identifier


106


, a 20-bit label value


111


, a three-bit class of service (COS) value


112


, a one-bit top of stack (TOS) value


113


, and a eight-bit time-to-live (TTL) value


114


.




As described herein, the input interface identifier


106


comprises a value which identifies the input interface associated with the packet (that is, on which the packet was received).




As described herein, the checksum value CHK


107


is computed by the checksum element and simply confirms that a length of the packet header


100


in bytes is the same as specified in the packet header


100


itself.




As specified by the MPLS protocol, the 20-bit label value


111


includes information for routing the packet to an output interface.




As also specified by the MPLS protocol, other values comprising in the packet header information


110


, including the class of service value COS


112


, the type of service value TOS


113


, and the time-to-live value TTL


114


, are relevant to treatment of the packet but in a preferred embodiment do not effect the choice of output interface to which to route the packet. However, in alternative embodiments, the other values may be used to distinguish between different output interfaces which are coupled to differing routes to the destination. For example, the class of service value COS


112


might be used to distinguish between a relatively high-priority traffic route and a relatively low-priority traffic route.




3. MPLS Routing Information




The information for the example packet includes a set of example routing information


120


gleaned by operation of the longest-match recognizers and longest-match multiplexers in response to the example packet header information


110


.




The routing information


120


includes the input interface identifier


106


and the label value


111


. For packets which use an MPLS multicast protocol, the input interface identifier


106


is needed for routing the packet; for packets which use an MPLS unicast protocol, the input interface identifier


106


is generally not needed for routing the packet.




Method of Operation





FIG. 2

shows a process flow diagram of a method of operating the system.




A method


200


of operating the system is controlled by elements described in the application Ser. No. 08/918,505, titled “Multiprotocol Packet Recognition and Switching”, attorney docket number CIS-020A, now U.S. Pat. No. 6,157,641 and in application Ser. No. 08/917,654, titled “Multiple Parallel Packet Routing Lookup”, attorney docket number CIS -020B, now U.S. Pat. No. 6,212,183 each of which is hereby incorporated by reference as if fully set forth herein. The operation of those elements is fully described therein. The method


200


includes flow points and process steps as described herein.




At a flow point


210


, a packet using an MPLS protocol has arrived at an input interface, and is ready for processing.




At a step


221


, a packet header


100


for the packet is identified and coupled to the packet buffer.




At a step


222


, the packet header


100


is coupled from the packet buffer to the encapsulation recognizers. In the case where the packet is encapsulated using an MPLS protocol, the packet header


100


includes the packet header information


110


described herein with reference to FIG.


1


. In the case where the packet is encapsulated using an MPLS protocol, the packet header


100


is recognized by at least one encapsulation recognizer configured to recognize those packets which are so encapsulated.




At a step


223


, the at least one encapsulation recognizer configured to recognize packets using the MPLS protocol, along with the encapsulation multiplexer, collectively recognize and parse the packet header


100


, so as to produce the packet header information


110


.




At a step


224


, the packet header information


110


is coupled from the encapsulation multiplexer to the longest-match recognizers. In the case where the packet is encapsulated using an MPLS protocol, the packet header information


110


includes the routing information


120


described herein with reference to FIG.


1


. In the case where the packet is encapsulated using an MPLS switching protocol, the packet header information


110


is recognized by at least one longest-match recognizer configured to recognize MPLS protocol information.




At a step


225


, the at least one longest-match recognizer configured to recognize the MPLS protocol information, along with at least one longest-match multiplexer, collectively recognize and parse the packet header information


110


, so as to produce the routing information


120


.




At a step


226


, the routing information


120


is used for routing lookup for the packet. The routing lookup is responsive to the routing information


120


, and is thus responsive to both the input interface identifier


106


and to the label value


111


. In one embodiment, the routing lookup involves generating a hash key from the routing information and using the hash key to index to routing lookup tables.




At a flow point


230


, routing of the packet has been accomplished, and the system is ready to route another packet.




Alternative Embodiments




Although preferred embodiments are disclosed herein, many variations are possible which remain within the concept, scope, and spirit of the invention, and these variations would become clear to those skilled in the art after perusal of this application.



Claims
  • 1. A method including:receiving a packet header and an input interface identifier; coupling said packet header to plural encapsulation recognizers configured to produce header information from said packet header, said plural encapsulation recognizers recognizing packet headers for multiple protocols, said header information including said input interface identifier; coupling said header information to plural longest match recognizers so as to produce routing information, said plural longest match recognizers operating in parallel, said routing information determined responsive to a longest match recognized for said header information including said input interface identifier; and using said routing information to index to one or more routing lookup tables having treatment information regarding treatment of packets, said treatment information being responsive to said routing information and therefore to said input interface identifier.
  • 2. A method as in claim 1, wherein said one or more routing lookup tables include a plurality of entries corresponding to said packet header and differing with regard to said input interface identifier.
  • 3. A method as in claim 2, wherein said one or more routing lookup tables include a plurality of entries corresponding to said packet header and responsive to a multicast packet.
  • 4. A method as in claim 3, wherein said multicast packet is encapsulated using an multiprotocol lable switching protocol.
  • 5. An apparatus for use in packet routing, comprising:an input interface that receives a packet header, said input interface having an input interface identifier; plural encapsulation recognizers configured to produce header information from said packet header, said plural encapsulation recognizers recognizing packet headers for multiple protocols, said header information including said input interface identifier; plural longest match recognizers that produce routing information from said header information, said plural longest match recognizers operating in parallel, said routing information determined responsive to a longest match recognized for said header information including said input interface identifier; and one or more routing lookup tables having treatment information regarding treatment of packets, said treatment information being responsive to said routing information and therefore to said input interface identifier.
  • 6. An apparatus as in claim 5, wherein said one or more routing lookup tables include a plurality of entries corresponding to said packet header and differing with regard to said input interface identifier.
  • 7. An apparatus as in claim 6, wherein said one or more routing lookup tables include a plurality of entries corresponding to said packet header and responsive to a multicast packet.
  • 8. An apparatus as in claim 7, wherein said multicast packet is encapsulated using an multiprotocol lable switching protocol.
  • 9. A memory storing information including instructions, the instructions executable by a processor, the instructions comprising:code to receive a packet header and an input interface identifier; code to couple said packet header to plural encapsulation recognizers configured to produce header information from said packet header, said plural encapsulation recognizers recognizing packet headers for multiple protocols, said header information including said input interface identifier; code to couple said header information to plural longest match recognizers so as to produce routing information, said plural longest match recognizers operating in parallel, said routing information determined responsive to a longest match recognized for said header information including said input interface identifier; and code to use said routing information to index to one or more routing lookup tables having treatment information regarding treatment of packets, said treatment information being responsive to said routing information and therefore to said input interface identifier.
  • 10. A memory as in claim 9, wherein said one or more routing lookup tables include a plurality of entries corresponding to said packet header and differing with regard to said input interface identifier.
  • 11. A memory as in claim 10, wherein said one or more routing lookup tables include a plurality of entries corresponding to said packet header and responsive to a multicast packet.
  • 12. A memory as in claims 11, wherein said multicast packet is encapsulated using an multiprotocol lable switching protocol.
US Referenced Citations (231)
Number Name Date Kind
3389377 Cole Jun 1968 A
3402398 Koerner et al. Sep 1968 A
3483528 Koerner et al. Dec 1969 A
3518631 Lindquist et al. Jun 1970 A
3602899 Lindquist et al. Aug 1971 A
3868642 Sachs Feb 1975 A
4131767 Weinstein Dec 1978 A
4161719 Parikh et al. Jul 1979 A
4316284 Howson Feb 1982 A
4397020 Howson Aug 1983 A
4419728 Larson Dec 1983 A
4424565 Larson Jan 1984 A
4437087 Petr Mar 1984 A
4438511 Baran Mar 1984 A
4439763 Limb Mar 1984 A
4445213 Baugh et al. Apr 1984 A
4446555 Devault et al. May 1984 A
4456957 Schieltz Jun 1984 A
4464658 Thelen Aug 1984 A
4499576 Fraser Feb 1985 A
4506358 Montgomery Mar 1985 A
4507760 Fraser Mar 1985 A
4532626 Flores et al. Jul 1985 A
4644532 George et al. Feb 1987 A
4646287 Larson et al. Feb 1987 A
4677423 Benvenuto et al. Jun 1987 A
4679189 Olson et al. Jul 1987 A
4679227 Hughes-Hartogs Jul 1987 A
4723267 Jones et al. Feb 1988 A
4731816 Hughes-Hartogs Mar 1988 A
4750136 Arpin et al. Jun 1988 A
4757495 Decker et al. Jul 1988 A
4763191 Gordon et al. Aug 1988 A
4769810 Eckberg, Jr. et al. Sep 1988 A
4769811 Eckberg, Jr. et al. Sep 1988 A
4771425 Baran et al. Sep 1988 A
4819228 Baran et al. Apr 1989 A
4827411 Arrowood et al. May 1989 A
4833706 Hughes-Hartogs May 1989 A
4835737 Herrig et al. May 1989 A
4879551 Georgiou et al. Nov 1989 A
4893306 Chao et al. Jan 1990 A
4903261 Baran et al. Feb 1990 A
4922486 Lidinsky et al. May 1990 A
4933937 Konishi Jun 1990 A
4960310 Cushing Oct 1990 A
4962497 Ferenc et al. Oct 1990 A
4962532 Kasiraj et al. Oct 1990 A
4965767 Kinoshita et al. Oct 1990 A
4965772 Daniel et al. Oct 1990 A
4970678 Sladowski et al. Nov 1990 A
4979118 Kheradpir Dec 1990 A
4980897 Decker et al. Dec 1990 A
4991169 Davis et al. Feb 1991 A
5003595 Collins et al. Mar 1991 A
5014265 Hahne et al. May 1991 A
5014327 Potter et al. May 1991 A
5020058 Holden et al. May 1991 A
5033076 Jones et al. Jul 1991 A
5034919 Sasai et al. Jul 1991 A
5054034 Hughes-Hartogs Oct 1991 A
5059925 Weisbloom Oct 1991 A
5063612 McKeown Nov 1991 A
5072449 Enns et al. Dec 1991 A
5088032 Bosack Feb 1992 A
5095480 Fenner Mar 1992 A
RE33900 Howson Apr 1992 E
5115431 Williams et al. May 1992 A
5128945 Enns et al. Jul 1992 A
5136580 Videlock et al. Aug 1992 A
5166930 Braff et al. Nov 1992 A
5199049 Wilson Mar 1993 A
5206886 Bingham Apr 1993 A
5208811 Kashio et al. May 1993 A
5212686 Joy et al. May 1993 A
5224099 Corbalis et al. Jun 1993 A
5226120 Brown et al. Jul 1993 A
5228062 Bingham Jul 1993 A
5229994 Balzano et al. Jul 1993 A
5233604 Ahmadi et al. Aug 1993 A
5237564 Lespagnol et al. Aug 1993 A
5241682 Bryant et al. Aug 1993 A
5243342 Kattemalalavadi et al. Sep 1993 A
5243596 Port et al. Sep 1993 A
5247516 Bernstein et al. Sep 1993 A
5249178 Kurano et al. Sep 1993 A
5249292 Chiappa Sep 1993 A
5253251 Aramaki Oct 1993 A
5255291 Holden et al. Oct 1993 A
5260933 Rouse Nov 1993 A
5260978 Fleischer et al. Nov 1993 A
5267235 Thacker Nov 1993 A
5268592 Bellamy et al. Dec 1993 A
5268900 Hluchyj et al. Dec 1993 A
5271004 Proctor et al. Dec 1993 A
5274631 Bhardwaj Dec 1993 A
5274635 Rahman et al. Dec 1993 A
5274643 Fisk Dec 1993 A
5280470 Buhrke et al. Jan 1994 A
5280480 Pitt et al. Jan 1994 A
5280500 Mazzola et al. Jan 1994 A
5283783 Nguyen et al. Feb 1994 A
5287103 Kasprzyk et al. Feb 1994 A
5287453 Roberts Feb 1994 A
5291482 McHarg et al. Mar 1994 A
5305311 Lyles Apr 1994 A
5307343 Bostica et al. Apr 1994 A
5309437 Perlman et al. May 1994 A
5311509 Heddes et al. May 1994 A
5313454 Bustini et al. May 1994 A
5313582 Hendel et al. May 1994 A
5317562 Nardin et al. May 1994 A
5319644 Liang Jun 1994 A
5327421 Hiller et al. Jul 1994 A
5331637 Francis et al. Jul 1994 A
5345445 Hiller et al. Sep 1994 A
5345446 Hiller et al. Sep 1994 A
5353283 Tsuchiya Oct 1994 A
5359592 Corbalis et al. Oct 1994 A
5361250 Nguyen et al. Nov 1994 A
5361256 Doeringer et al. Nov 1994 A
5361259 Hunt et al. Nov 1994 A
5365524 Hiller et al. Nov 1994 A
5367517 Cidon et al. Nov 1994 A
5371852 Attanasio et al. Dec 1994 A
5386413 McAuley et al. Jan 1995 A
5386567 Lien et al. Jan 1995 A
5390170 Sawant et al. Feb 1995 A
5390175 Hiller et al. Feb 1995 A
5394394 Crowther et al. Feb 1995 A
5394402 Ross Feb 1995 A
5396491 Newman Mar 1995 A
5400325 Chatwani et al. Mar 1995 A
5408469 Opher et al. Apr 1995 A
5416842 Aziz May 1995 A
5422880 Heitkamp et al. Jun 1995 A
5422882 Hiller et al. Jun 1995 A
5423002 Hart Jun 1995 A
5426636 Hiller et al. Jun 1995 A
5428607 Hiller et al. Jun 1995 A
5430715 Corbalis et al. Jul 1995 A
5430729 Rahnema Jul 1995 A
5442457 Najafi Aug 1995 A
5442630 Gagliardi et al. Aug 1995 A
5452297 Hiller et al. Sep 1995 A
5473599 Li et al. Dec 1995 A
5473607 Hausman et al. Dec 1995 A
5477541 White et al. Dec 1995 A
5485455 Dobbins Jan 1996 A
5490140 Abensour et al. Feb 1996 A
5490258 Fenner Feb 1996 A
5491687 Christensen et al. Feb 1996 A
5491804 Heath et al. Feb 1996 A
5497368 Reijnierse et al. Mar 1996 A
5504747 Sweasey Apr 1996 A
5509006 Wilford et al. Apr 1996 A
5517494 Green May 1996 A
5519704 Farinacci et al. May 1996 A
5519858 Walton et al. May 1996 A
5526489 Nilakantan et al. Jun 1996 A
5530963 Moore et al. Jun 1996 A
5535195 Lee Jul 1996 A
5539734 Burwell et al. Jul 1996 A
5541911 Nilakantan et al. Jul 1996 A
5546370 Ishikawa Aug 1996 A
5555244 Gupta et al. Sep 1996 A
5561669 Lenney et al. Oct 1996 A
5566170 Bakke Oct 1996 A
5583862 Callon Dec 1996 A
5592470 Rudrapatna et al. Jan 1997 A
5598581 Daines et al. Jan 1997 A
5600798 Cherukuri et al. Feb 1997 A
5602770 Ohira Feb 1997 A
5604868 Komine et al. Feb 1997 A
5608726 Virgile Mar 1997 A
5617417 Sathe et al. Apr 1997 A
5617421 Chin et al. Apr 1997 A
5630125 Zellweger May 1997 A
5631908 Saxe May 1997 A
5632021 Jennings et al. May 1997 A
5633869 Burnett et al. May 1997 A
5634010 Ciscon et al. May 1997 A
5638359 Peltola et al. Jun 1997 A
5644718 Belove et al. Jul 1997 A
5659684 Giovannoni et al. Aug 1997 A
5666353 Klausmeier et al. Sep 1997 A
5673265 Gupta et al. Sep 1997 A
5675579 Watson et al. Oct 1997 A
5678006 Valizadeh et al. Oct 1997 A
5680116 Hashimoto et al. Oct 1997 A
5684797 Aznar et al. Nov 1997 A
5684954 Kaiserwerth Nov 1997 A
5687324 Green et al. Nov 1997 A
5689506 Chiussi et al. Nov 1997 A
5694390 Yamato et al. Dec 1997 A
5724351 Chao et al. Mar 1998 A
5740097 Satoh Apr 1998 A
5748186 Raman May 1998 A
5748617 McLain, Jr. May 1998 A
5754547 Nakazawa May 1998 A
5781772 Wilkinson, III et al. Jul 1998 A
5802054 Bellenger Sep 1998 A
5802065 Ogawa Sep 1998 A
5835710 Nagami et al. Nov 1998 A
5841874 Kempke et al. Nov 1998 A
5854903 Morrison et al. Dec 1998 A
5856981 Voelker Jan 1999 A
5872783 Chin Feb 1999 A
5892924 Lyon Apr 1999 A
5898686 Virgile Apr 1999 A
5903559 Acharya et al. May 1999 A
5909440 Ferguson Jun 1999 A
5909686 Muller et al. Jun 1999 A
5914953 Krause et al. Jun 1999 A
5917820 Rekhter Jun 1999 A
5920566 Hendel Jul 1999 A
5938736 Muller Aug 1999 A
5949786 Bellenger Sep 1999 A
5996021 Civanlar Nov 1999 A
6011795 Varghese et al. Jan 2000 A
6014659 Wilkinson, III et al. Jan 2000 A
6018524 Turner et al. Jan 2000 A
6034958 Wicklund Mar 2000 A
6052683 Irwin Apr 2000 A
6061712 Tzeng May 2000 A
6078590 Farinacci et al. Jun 2000 A
6081522 Hendel Jun 2000 A
6088356 Hendel Jul 2000 A
6122279 Milway Sep 2000 A
6157641 Wilford Oct 2000 A
6212183 Wilford Apr 2001 B1
Foreign Referenced Citations (9)
Number Date Country
0 384 758 Feb 1990 EP
0 384 758 Aug 1990 EP
0 431 751 Nov 1990 EP
0 431 751 Jun 1991 EP
0 567 217 Oct 1993 EP
WO 9307569 Apr 1993 WO
WO 9307692 Apr 1993 WO
WO 9401828 Jan 1994 WO
WO 9520850 Aug 1995 WO
Non-Patent Literature Citations (14)
Entry
Allen, M., “Novell IPX Over Various Wan Media (IPXW AN),” Network Working Group, RFC 1551, Dec. 1993, pp. 1-22.
Becker, D., “3c589.c: A 3c589 EtherLink3 ethernet driver for linux.” becker@CESDIS.gsfc.nasa.gov, May 3, 1994, pp. 1-13.
Chowdhury, et al., “Alternative Bandwidth Allocation Algorithms for Packet Video in ATM Networks,” INFOCOM 1992, pp. 1061-1068.
Doeringer, W., “Routing on Longest-Matching Prefixes,” IEEE/ACM Transactions in Networking, vol. 4, No. 1, Feb. 1996, pp. 86-97.
Esaki, et al., “Datagram Delivery in an ATM-Internet,” 2334b IEICE Transactions on Communications, Mar. 1994, No. 3, Tokyo, Japan.
IBM Corporation, “Method and Apparatus for the Statistical Multiplexing of Voice, Data and Image Signals,” IBM Technical Disclosure Bulletin, No. 6, Nov. 1992, pp. 409-411.
Pei, et al., “Putting Routing Tables in Silicon,” IEEE Network Magazine, Jan. 1992, pp. 42-50.
Perkins, D., “Requirements for an Internet Standard Point-to-Point Protocol,” Network Working Group, RFC 1547, Dec. 1993, pp. 1-19.
Simpson, W., “The Point-to-Point Protocol (PPP),” Network Working Group, RFC 1548, Dec. 1993, pp. 1-53.
Tsuchiya, P.F., “A Search Algorithm for Table Entries with Non-contiguous Wildcarding,” Abstract, Bellcore.
Zhang, et al., “Rate-Controlled Static-Priority Queueing,” INFOCOM 1993, pp. 227-236.
Girish P. Chandranmenon and George Varghese, Member IEEE. “Trading Packet Headers for Packet Processing”. 1996 IEEE/ACM Transactions on Networking, vol. 4, No. 2, Apr. 1996.
“Pluris Massively Parallel Routing”. (White Paper).
William Stallings, Data and Computer Communications, pp. 329-333, Prentice Hall, Upper Saddle River, New Jersey 07458.