WO2007064541A2 - Method and apparatus providing prioritized recursion resolution of border gateway protocol forwarding information bases - Google Patents

Method and apparatus providing prioritized recursion resolution of border gateway protocol forwarding information bases Download PDF

Info

Publication number
WO2007064541A2
WO2007064541A2 PCT/US2006/045143 US2006045143W WO2007064541A2 WO 2007064541 A2 WO2007064541 A2 WO 2007064541A2 US 2006045143 W US2006045143 W US 2006045143W WO 2007064541 A2 WO2007064541 A2 WO 2007064541A2
Authority
WO
WIPO (PCT)
Prior art keywords
fib
queues
priority
dependent
recited
Prior art date
Application number
PCT/US2006/045143
Other languages
French (fr)
Other versions
WO2007064541A3 (en
Inventor
Vijay Rangarajan
Clarence Filsfils
John Bettink
Original Assignee
Cisco Technology, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cisco Technology, Inc. filed Critical Cisco Technology, Inc.
Priority to CN2006800449550A priority Critical patent/CN101322341B/en
Priority to EP06838232.4A priority patent/EP1955459B1/en
Publication of WO2007064541A2 publication Critical patent/WO2007064541A2/en
Publication of WO2007064541A3 publication Critical patent/WO2007064541A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/033Topology update or discovery by updating distance vector protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/021Ensuring consistency of routing table updates, e.g. by using epoch numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/023Delayed use of routing table updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/028Dynamic adaptation of the update intervals, e.g. event-triggered updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/60Router architectures

Definitions

  • PEl After receiving the advertisement, PEl converts the IP prefix 5.5.5.5/32 into a VPN prefix, "1:1:5.5.5.5/32.” Next, PEl allocates the label (for example, 20) to 1 : 1 :5.5.5.5732 and installs it in both BGP and the Label Forwarding Information Base (LFIB). PEl then advertises the prefix to PE2 via MP-BGP.
  • PE routers which use an Interior Gateway Protocol (IGP) such as Intermediate System-to-intermediate System (ISIS) or Open Shortest Path First (OSPF), do not have any VPN knowledge. PE routers might optionally exchange IPv4 routes via MP-BGP.
  • IGP Interior Gateway Protocol
  • ISIS Intermediate System-to-intermediate System
  • OSPF Open Shortest Path First
  • FIB entries may have parent FIB entries that are associated with dependent (child) FIB entries.
  • An example of a parent FIB entry is an IGP entry for a BGP next hop; an example of a dependent FIB entry is a BGP route entry.
  • each dependent FIB entry contains its own forwarding information.
  • all the dependent entries are queued for re-performing the recursion resolution process.
  • affected routes are not routable; as a result, connectivity is lost for some BGP-destined data streams.
  • FIG. 3 is a block diagram that illustrates using priority queues for prioritized FIB recursion resolution
  • the time may approach (i * lOO ⁇ s), where i is the number of important prefixes such that (i « n).
  • the approaches herein are useful, for example, to network service providers that have deployed routers for delivering high-availability services. 3.0 PRIORITIZED FIB RECURSION RESOLUTION
  • a first priority queue 304A and second priority queue 304B are established.
  • FIG. 3 shows two queues merely to illustrate a clear example, and in other embodiments, any number of queues may be used.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A method, performed in a network packet routing element, comprising establishing a forwarding information base (FIB) lacking a hierarchical data structure but wherein one or more dependent FIB entries are associated with a parent FIB entry; establishing a plurality of strict priority queues, wherein each of the queues has an associated priority; receiving a change to the parent FIB entry; for each of the dependent FIB entries, selecting one of the queues and enqueuing the dependent FIB entries in the selected queues for re-resolution; dequeuing the dependent FIB entries for re-resolution, according to a priority order of the queues.

Description

METHOD AND' APPARATUS PROVIDING PRIORITIZED RECURSION RESOLUTION OF BORDER GATEWAY PROTOCOL FORWARDING INFORMATION BASES
FIELD OF THE INVENTION
[0001] The present invention generally relates to managing network routing information. The invention relates more specifically to improving how Border Gateway Protocol (BGP) peers resolve forwarding information base information.
BACKGROUND
[0002] The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section. [0003] Border Gateway Protocol (BGP) is a path vector routing protocol for exchanging routing information among network elements in the same or different Autonomous System (AS). The function of a BGP-enabled network element (a BGP host or peer) is to exchange network reachability information with other BGP-enabled network elements. The most commonly implemented version of BGP is BGP-4, which is defined in RFC 1771 (published by the Internet Engineering Task Force (IETF) in March 1995).
[0004] To exchange routing information, two BGP hosts first establish a BGP peering session by exchanging BGP OPEN messages. The BGP hosts then exchange their full routing tables. After this initial exchange, each BGP host sends to its BGP peer or peers only incremental updates for new, modified, and unavailable or withdrawn routes in one or more BGP UPDATE messages. A route is a unit of information that pairs a network destination with the attributes of a network path to that destination. Examples of path attributes include, but are not limited to, the ORIGIN attribute (which indicates how a BGP peer learned about a route), the AS_PATH attribute (which indicates the Autonomous Systems through which a route passes), the NEXT_HOP attribute (which is the address of the border router that is the next hop in a route), and the LOCAL_PREF attribute (which indicates the BGP peer's degree of preference of an exit point from the local AS for a route). In BGP literature, routes are sometimes termed prefixes. [0005] When a BGP host receives routes, the host determines a best path to each reachable node, for example, by computing a shortest path first (SPF) spanning tree of nodes between the host and the reachable node. In certain cases, other computations and route resolution steps are performed. Fully resolved routes are stored in a forwarding information base (FIB) that is coupled to or hosted in line cards of the BGP host. In this aitέKite'ctuifefp&.'cilei-forwarding logic in the line cards can determine a next hop for a received packed by performing a lookup in the FIB.
[0006] For example, in Multiprotocol Label Switching virtual private networks (MPLS VPNs), Multi-Protocol BGP (MP-BGP) provides the framework to exchange reachability information about many protocols such as IPv4, VPNv4, IPv6, multicast, and others. MP- BGP allocates labels for VPN prefixes in an advertising provider edge router (denoted PEl herein) and accepts them in a receiving provider router (PE2).
[0007] An MPLS VPN network logically comprises a control plane (analogous to call setup) and a forwarding plane (analogous to call transmission). As a specific example, assume that a sending customer edge router (CEl) advertises an IP prefix, "5.5.5.5/32," to PEl via a routing protocol such as BGP, Enhanced Interior Gateway Routing Protocol (EIGRP), Router Information Protocol (RIP), or the like.
[0008] After receiving the advertisement, PEl converts the IP prefix 5.5.5.5/32 into a VPN prefix, "1:1:5.5.5.5/32." Next, PEl allocates the label (for example, 20) to 1 : 1 :5.5.5.5732 and installs it in both BGP and the Label Forwarding Information Base (LFIB). PEl then advertises the prefix to PE2 via MP-BGP. PE routers, which use an Interior Gateway Protocol (IGP) such as Intermediate System-to-intermediate System (ISIS) or Open Shortest Path First (OSPF), do not have any VPN knowledge. PE routers might optionally exchange IPv4 routes via MP-BGP.
[0009] PE2, after receiving the MP-BGP advertisement, checks whether the VPN prefix is acceptable by comparing the route target (RT) values. If acceptable, PE2 installs the prefix and label in the BGP and VPN Routing and Forwarding (VRF) FIB tables and advertises the prefix to CE2. In the meantime, the FIB performs a recursion resolution process to find a valid route and label to VPN prefix's next-hop (for example, PEl). If the FIB finds a valid route, the FIB installs the next-hop label in the label stack that also contains the VPN label. This label stack is what FIB (at PE2) will use to forward VPN packets toward PEL
[0010] In current practice, some routers do not support a hierarchical FIB structure, but FIB entries may have parent FIB entries that are associated with dependent (child) FIB entries. An example of a parent FIB entry is an IGP entry for a BGP next hop; an example of a dependent FIB entry is a BGP route entry. In this arrangement, each dependent FIB entry contains its own forwarding information. When a change occurs in a parent FIB entry, all the dependent entries are queued for re-performing the recursion resolution process. During re-resolution, affected routes are not routable; as a result, connectivity is lost for some BGP-destined data streams. Some routers are known to have this problem. jOOl'ϊ]'' """"6h'd1"aϊp"oach for addressing this problem is to create a hierarchical FIB in which dependent FIB entries are linked directly to the forwarding information of the parent entry. This ensures that the dependent entries immediately leverage any update to the forwarding information of the parent. However, not all routers can support such linked FIB entries. There is a need to avoid the loss of connectivity and other disadvantages of current practice without requiring a linked hierarchical structure.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
[0013] FIG. 1 is a block diagram that illustrates an overview of an example network context in which an embodiment may be implemented;
[0014] FIG. 2 is a block diagram that illustrates a high level overview of one embodiment of a provider edge router in which an embodiment may be implemented;
[0015] FIG. 3 is a block diagram that illustrates using priority queues for prioritized FIB recursion resolution;
[0016] FIG. 4A is a block diagram illustrating a high-level view of a method of prioritized FIB recursion resolution;
[0017] FIG. 4B is a block diagram illustrating sources of priority information;
[0018] FIG. 5 is a block diagram that illustrates a computer system upon which an embodiment may be implemented.
DETAILED DESCRIPTION
[0019] A method and apparatus providing prioritized FIB recursion resolution in Border Gateway Protocol (BGP) service is described. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention. [0020] Embodiments are described herein according to the following outline:
1.0 General Overview
2.0 Structural and Functional Overview
3.0 Prioritized FIB Recursion Resolution
4.0 Implementation Mechanisms — Hardware Overview
5.0 Extensions and Alternatives 1.0 GENERAL OVERVIEW
[0021] The needs identified in the foregoing Background, and other needs and objects that will become apparent for the following description, are achieved in the present invention, which comprises, in one aspect, a method, performed in a network packet routing element, the method comprising establishing a forwarding information base (FIB) lacking a hierarchical data structure but wherein one or more dependent FIB entries are associated with a parent FIB entry; establishing a plurality of strict priority queues, wherein each of the queues has an associated priority; receiving a change to the parent FIB entry; for each of the dependent FIB entries, selecting one of the queues and enqueuing the dependent FIB entries in the selected queues for re-resolution; and dequeuing the dependent FIB entries for re- resolution, according to a priority order of the queues.
[0022] In one feature, one of the queues for a particular dependent FIB entry is selected based on a priority community value or other information specific to the particular dependent FIB entry. In another feature, one of the queues for a particular dependent FIB entry is selected based on a type of the change to the parent FIB entry. In yet another feature, one of the queues for a particular dependent FIB entry is selected based on a local policy stored in the network element that specifies one of the queues for all FIB entries associated with a particular service.
[0023] In still another feature, a higher-priority queue is selected when the change to the parent FIB entry is a deletion and a lower-priority queue is selected when the change is a modification. In yet another feature, a plurality of timers, each having a different reaction time value, are respectively associated with each of the queues. In a further feature, all the timers have the same reaction time value.
[0024] In another feature, the method further comprises receiving a download of a plurality of prefixes to the FIB, wherein each of the prefixes is respectively associated with one of a plurality of table version values, and establishing the priority associated with the queues based on the table version values.
[0025] In a further feature, the associated priority for the strict priority queues is established when the download is received.
[0026] In other aspects, the invention encompasses a computer apparatus and a computer-readable medium configured to carry out the foregoing steps. 2.0 STRUCTURAL AND FUNCTIONAL OVERVIEW [0027] In certain embodiments, a method and apparatus providing prioritized FIB recursion resolution are provided. The approaches herein are useful in routers and other network elements that do not support a hierarchical FIB structure. fOOΪS]1'' ""Ε&cόϊδϊkgto one method, a router or other network element establishes a forwarding information base (FIB) lacking a hierarchical data structure but wherein one or more dependent FIB entries are associated with a parent FIB entry. When the parent entry is modified, the dependent entries are queued along multiple strict priority queues. The classification of dependent entries into particular prioritized queues may be based on information specific to particular dependent entries, such as a priority community value, a type of change to the parent FIB entry (e.g., deletion of the parent FIB entry may be more important than modification), or local policy. The dependent FIB entries are enqueued in the selected queues for re-resolution. The dependent FIB entries are dequeued for re- resolution according to a priority order of the queues.
[0029] In one embodiment, each queue has an associated timer. In one particular embodiment, a conservative timer is used to delay the processing of the to-be-resolved entries, such as a one-second timer with explicit back-off behavior. In another embodiment, each queue has a different timer value, and the use of multiple priority queues allows for more aggressive timers for a subset of the entries that are important to resolve. [0030] Using this approach, the overall FIB recursion resolution time may be reduced by introducing prioritization among the to-be-resolved entries and using different reaction timers for the various priority levels. For example, in prior approaches, the Loss of Connectivity (LoC) perceived by dependent entries when a parent entry is modified and a hierarchical/linking structure is not possible is on the order of [0, 1000ms] + n * lOOμs. As there is no prioritization, n is the total number of dependent entries. Some service providers are known to have remote PE routers with up to 100,000 FIB entries depending on one single parent entry. A worst-case additional LoC of Is + 100k*100μs = 11 seconds, which is clearly unacceptable. In contrast, with the use of prioritization and aggressive timers for the entries that are important to resolve, as provided herein, the time may approach (i * lOOμs), where i is the number of important prefixes such that (i « n). [0031] The approaches herein are useful, for example, to network service providers that have deployed routers for delivering high-availability services. 3.0 PRIORITIZED FIB RECURSION RESOLUTION
[0032] FIG. 1 is a block diagram that illustrates an overview of an example network context in which an embodiment may be implemented. A service provider network 102 associated with a first service provider is coupled through edge router 106 to a provider edge router PEl of a second service provider network 104 that is associated with a second service provider. In the example of FIG. 1, the first service provider is unrelated to the second service provider; for example, networks 102, 104 are owned and operated by competitors. [00313] '' """"SScOn(I11SBrViCe provider network 104 further includes core routers 108, 110 and a second provider edge router PE2. The second edge router PE2 has a plurality of interfaces denoted Intl, Int2, and also includes a forwarding information base (FIB) 112 that stores route information useful in packet forwarding.
[0034] In an embodiment, edge routers PEl and PE2 are internally configured with the elements shown in FIG. 2, among other elements. FIG. 2 is a block diagram that illustrates a high level overview of one embodiment of a provider edge router in which an embodiment may be implemented. FIB 112 comprises a plurality of FIB entries 202, 204, 206. In the example of FIG. 2, entry 202 is a parent entry and entries 204, 206 are dependent entries related to parent entry 202.
[0035] PE2 further comprises a BGP software module 206 that hosts, is coupled to, or includes prioritized FIB recursion resolution logic 208, which comprises one or more programs, processes, or other software elements that implement the functional techniques described herein.
[0036] FIG. 3 is a block diagram that illustrates using priority queues for prioritized FIB recursion resolution. According to an embodiment, upon execution, prioritized FIB recursion resolution logic 208 establishes one or more strict priority queues in memory of
PE2. For example, a first priority queue 304A and second priority queue 304B are established. FIG. 3 shows two queues merely to illustrate a clear example, and in other embodiments, any number of queues may be used.
[0037] Each of the dependent FIB entries 202, 204 is assigned to a queue. Thus, a queue may be implemented as a linked list of pointers to dependent FIB entries. A queue may have any number of dependent FIB entries associated with the queue. Each queue also has an associated priority. For example, first queue 304A may be a higher-priority queue, and second queue 304B may be a lower-priority queue.
[0038] FIG. 4A is a block diagram illustrating a high-level view of a method of prioritized FIB recursion resolution. In an embodiment, the method of FIG. 4A is performed in a network packet routing element, such as a router or switch. Typically, the method is performed in a provider edge router, but other embodiments may be performed in network elements located elsewhere in a network topology.
[0039] In step 402, a forwarding information base (FIB) is established. The FIB lacks a hierarchical data structure, but has one or more dependent FIB entries that are associated with a parent FIB entry.
[0040] In step 404, a plurality of strict priority queues is established. Each of the queues has an associated priority. [ύdtϊf " In step 406, a change to the parent FIB entry is received. For example, BGP module 206 may receive a BGP UPDATE message from a BGP peer with which PE2 has established a BGP peering session. The BGP UPDATE message may require a change in a RIB that holds a particular prefix. After performing route update computations, the BGP module downloads modified route information to the FIB. The modified route information may require a change in a parent FIB entry.
[0042] At step 408, for each of the dependent FIB entries, one of the queues is selected, and the dependent FIB entries are enqueued in the selected queues for re-resolution. Selection of a queue or priority may proceed as described above in connection with FIG. 4B. At step 410, the dependent FIB entries are dequeued for re-resolution, according to a priority order of the queues.
[0043] Dependent FIB entries may be assigned to a priority queue based on a variety of approaches. FIG. 4B is a block diagram illustrating sources of priority information. A priority 430 of a particular queue may be derived from information 420 that is specific to a dependent FIB entry, a type of change 422 to a parent entry, local policy 424, or a FIB or RIB table version 426. An example of information 420 is a priority community associated with or forming a part of a dependent FIB entry.
[0044] An example of using a type of change 422 to determine priority 430 is that a modification of a parent FIB entry could be considered more important than a deletion of the parent FIB entry, so that in the case of a modification, the dependent entries would be queued to a higher-priority queue. An example of using local policy 424 to determine priority 430 is that the local policy may specify that all FIB entries relating to a particular service (e.g., IPv4, IPv6, VPNv4, VPNv6, etc.)
[0045] In an embodiment, a table version 426 may affect a priority determination. For example, BGP module 206 may download of a plurality of prefixes from a routing information base (RIB) to the FIB. Each of the prefixes may be respectively associated with one of a plurality of table version values indicating a version number of a RIB table representing a source of the prefixes. The prioritized FIB recursion resolution logic 208 then may establish the priority 430 associated with the queues based on the table version values.
[0046] Referring again to FIG. 3, in one embodiment, each of the priority queues 304 A, 304B is associated with a respective delay timer 306 A, 306B. The delay timer imposes a variable length period of delay from consideration of the queue and performing recursion re- resolution of entries in the queue. When a timer for a particular queue expires, then all the entries in that queue are successively subjected to recursive re-resolution. The use of timers further refines the priority associated with a queue. In particular, with this approach, more- tllfe'^ϊvF'€&έrs'Ban be used for a subset of the entries that are important to resolve, and less-aggressive timers can be used for entries that are less important. [0047] The use of timers enables an embodiment to manage CPU utilization in a router effectively. For example, a small set of entries may be important to resolve, but may require a large amount of CPU time for resolution, and during resolution the CPU of the router may be effectively unavailable for other tasks. In contrast, a larger set of entries may be less important and need less CPU time. With the present approach, CPU-intensive entries may be grouped together in a queue with an aggressive timer that expires first, before the timer of the queue with the less-important entries. Therefore, CPU-intensive operations are performed first in a short amount of time, and the CPU becomes available more quickly for other critical router operations. Further, the less-intensive resolutions are delayed until later, when they can be performed by the CPU at a time that the CPU is also handling other tasks. This approach has been shown in theory to result in reduced total recursive re-resolution time.
[0048] Alternatively, no timers are used, but the queues are ordered as to priority. In this embodiment, each queue is considered in order. For example, first priority queue 304 A is considered first, and all its entries are subjected to recursive re-resolution; when all entries are resolved, then second priority queue 304B is considered, and all its entries are resolved. 4.0 IMPLEMENTATION MECHANISMS - HARDWARE OVERVIEW [0049] FIG. 5 is a block diagram that illustrates a computer system 500 upon which an embodiment of the invention may be implemented. The preferred embodiment is implemented using one or more computer programs running on a network element such as a router device. Thus, in this embodiment, the computer system 500 is a router. [0050] Computer system 500 includes a bus 502 or other communication mechanism for communicating information, and a processor 504 coupled with bus 502 for processing information. Computer system 500 also includes a main memory 506, such as a random access memory (RAM), flash memory, or other dynamic storage device, coupled to bus 502 for storing information and instructions to be executed by processor 504. Main memory 506 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 504. Computer system 500 further includes a read only memory (ROM) 508 or other static storage device coupled to bus 502 for storing static information and instructions for processor 504. A storage device 510, such as a magnetic disk, flash memory, or optical disk, is provided and coupled to bus 502 for storing information and instructions.
[0051] A communication interface 518 may be coupled to bus 502 for communicating information and command selections to processor 504. Interface 518 is a conventional 'Sfeffiliή'terfa'cfe-δudh-tfs an RS-232 or RS-422 interface. An external terminal 512 or other computer system connects to the computer system 500 and provides commands to it using the interface 514. Firmware or software running in the computer system 500 provides a terminal interface or character-based command interface so that external commands can be given to the computer system.
[0052] A switching system 516 is coupled to bus 502 and has an input interface 514 and an output interface 519 to one or more external network elements. The external network elements may include a local network 522 coupled to one or more hosts 524, or a global network such as Internet 528 having one or more servers 530. The switching system 516 switches information traffic arriving on input interface 514 to output interface 519 according to pre-determined protocols and conventions that are well known. For example, switching system 516, in cooperation with processor 504, can determine a destination of a packet of data arriving on input interface 514 and send it to the correct destination using output interface 519. The destinations may include host 524, server 530, other end stations, or other routing and switching devices in local network 522 or Internet 528. [0053] The invention is related to the use of computer system 500 for BGP service auto discovery. According to one embodiment of the invention, BGP service auto discovery is provided by computer system 500 in response to processor 504 executing one or more sequences of one or more instructions contained in main memory 506. Such instructions may be read into main memory 506 from another computer-readable medium, such as storage device 510. Execution of the sequences of instructions contained in main memory 506 causes processor 504 to perform the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory 506. In alternative embodiments, hard- wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
[0054] The term "computer-readable medium" as used herein refers to any medium that participates in providing instructions to processor 504 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 510. Volatile media includes dynamic memory, such as main memory 506. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 502. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications . ;;[M$5] ' ""!t"13biϊinϊ!6Η|rfoπns of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
[0056] Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 504 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 500 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector coupled to bus 502 can receive the data carried in the infrared signal and place the data on bus 502. Bus 502 carries the data to main memory 506, from which processor 504 retrieves and executes the instructions. The instructions received by main memory 506 may optionally be stored on storage device 510 either before or after execution by processor 504.
[0057] Communication interface 518 also provides a two-way data communication coupling to a network link 520 that is connected to a local network 522. For example, communication interface 518 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 518 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 518 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
[0058] Network link 520 typically provides data communication through one or more networks to other data devices. For example, network link 520 may provide a connection through local network 522 to a host computer 524 or to data equipment operated by an Internet Service Provider (ISP) 526. ISP 526 in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the "Internet" 528. Local network 522 and Internet 528 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 520 and through communication interface 518, which carry the digital data to and from computer system 500, are exemplary forms of carrier waves transporting the information. fδftS^f "' Coin'pufe'r'system 500 can send messages and receive data, including program code, through the network(s), network link 520, and communication interface 518. In the Internet example, a server 530 might transmit a requested code for an application program through Internet 528, ISP 526, local network 522 and communication interface 518. In accordance with the invention, one such downloaded application provides for BGP service auto discovery as described herein.
[0060] The received code may be executed by processor 504 as it is received, and/or stored in storage device 510, or other non-volatile storage for later execution. In this manner, computer system 500 may obtain application code in the form of a carrier wave. 5.0 EXTENSIONS AND ALTERNATIVES
[0061] In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

Claims

What is claimed is:
1. A method, performed in a network packet routing element, the method comprising: establishing a forwarding information base (FIB) lacking a hierarchical data structure but wherein one or more dependent FIB entries are associated with a parent FIB entry; establishing a plurality of strict priority queues, wherein each of the queues has an associated priority; receiving a change to the parent FIB entry; for each of the dependent FIB entries, selecting one of the queues and enqueuing the dependent FIB entries in the selected queues for re-resolution; dequeuing the dependent FIB entries for re-resolution, according to a priority order of the queues.
2. A method as recited in Claim I5 wherein one of the queues for a particular dependent FIB entry is selected based on a priority community value or other information specific to the particular dependent FIB entry.
3. A method as recited in Claim 1, wherein one of the queues for a particular dependent FIB entry is selected based on a type of the change to the parent FIB entry.
4. A method as recited in Claim 1, wherein one of the queues for a particular dependent FIB entry is selected based on a local policy stored in the network element that specifies one of the queues for all FIB entries associated with a particular service.
5. A method as recited in Claim 3, wherein a higher-priority queue is selected when the change to the parent FIB entry is a deletion and a lower-priority queue is selected when the change is a modification.
6. A method as recited in Claim 1, wherein a plurality of timers, each having a different reaction time value, are respectively associated with each of the queues.
7. A method as recited in Claim 5, wherein all the timers have the same reaction time value.
8'.'" A mefnoci'as recited in Claim 1, further comprising: receiving a download of a plurality of prefixes to the FIB, wherein each of the prefixes is respectively associated with one of a plurality of table version values; establishing the priority associated with the queues based on the table version values.
9. A method as recited in Claim 8, wherein the associated priority for the strict priority queues is assigned when the download is received.
10. A packet data router, performed in a network packet routing element, the packet data router comprising: one or more line cards comprising one or more interfaces that can connect to a packet-switched network; a forwarding information base (FIB) coupled to one or more of the line cards and lacking a hierarchical data structure but wherein one or more dependent FIB entries are associated with a parent FIB entry; one or more processors coupled to the FIB and the line cards; prioritized FIB recursion resolution logic coupled to the one or more processors; a plurality of strict priority queues coupled to the prioritized FIB recursion resolution logic and configured to store route information comprising FIB entries, wherein each of the queues has an associated priority; wherein the prioritized FIB recursion resolution logic is configured to cause the one or more processors to perform receiving a change to the parent FIB entry; for each of the dependent FIB entries, selecting one of the queues and enqueuing the dependent FIB entries in the selected queues for re-resolution; and dequeuing the dependent FIB entries for re- resolution, according to a priority order of the queues.
11. A packet data router as recited in Claim 10, wherein one of the queues for a particular dependent FIB entry is selected based on a priority community value or other information specific to the particular dependent FIB entry.
12. A packet data router as recited in Claim 10, wherein one of the queues for a particular dependent FIB entry is selected based on a type of the change to the parent FIB entry.
13. A packet data router as recited in Claim 10, wherein one of the queues for a particular dependent FIB entry is selected based on a local policy stored in the network "'elMiehf that1" specifies one of the queues for all FIB entries associated with a particular service.
14. A packet data router as recited in Claim 13, wherein a higher-priority queue is selected when the change to the parent FIB entry is a deletion and a lower-priority queue is selected when the change is a modification.
15. A packet data router as recited in Claim 10, wherein a plurality of timers, each having a different reaction time value, are respectively associated with each of the queues.
16. A packet data router as recited in Claim 15, wherein all the timers have the same reaction time value.
17. A packet data router as recited in Claim 10, further comprising: receiving a download of a plurality of prefixes to the FIB, wherein each of the prefixes is respectively associated with one of a plurality of table version values; establishing the priority associated with the queues based on the table version values.
18. A packet data router as recited in Claim 17, wherein the associated priority for the strict priority queues is assigned when the download is received.
19. An apparatus, performed in a network packet routing element, the method comprising: a forwarding information base (FIB) lacking a hierarchical data structure but wherein one or more dependent FIB entries are associated with a parent FIB entry; a plurality of strict priority queues coupled to the FIB, wherein each of the queues has an associated priority; means for receiving a change to the parent FIB entry; means for selecting one of the queues for each of the dependent FIB entries and for enqueuing the dependent FIB entries in the selected queues for re-resolution; means for dequeuing the dependent FIB entries for re-resolution, according to a priority order of the queues.
20. An apparatus as recited in Claim 19, wherein one of the queues for a particular dependent FIB entry is selected based on a priority community value or other information specific to the particular dependent FIB entry.
21. An apparatus as recited in Claim 19, wherein one of the queues for a particular dependent FIB entry is selected based on a type of the change to the parent FIB entry.
22. An apparatus as recited in Claim 10, wherein one of the queues for a particular dependent FIB entry is selected based on a local policy stored in the network element that specifies one of the queues for all FIB entries associated with a particular service.
23. An apparatus as recited in Claim 22, wherein a higher-priority queue is selected when the change to the parent FIB entry is a deletion and a lower-priority queue is selected when the change is a modification.
24. An apparatus as recited in Claim 1, wherein a plurality of timers, each having a different reaction time value, are respectively associated with each of the queues.
25. An apparatus as recited in Claim 5, wherein all the timers have the same reaction time value.
26. An apparatus as recited in Claim 1, further comprising: means for receiving a download of a plurality of prefixes to the FIB, wherein each of the prefixes is respectively associated with one of a plurality of table version values; means for establishing the priority associated with the queues based on the table version values.
27. An apparatus as recited in Claim 8, wherein the associated priority for the strict priority queues is assigned when the download is received.
PCT/US2006/045143 2005-11-30 2006-11-20 Method and apparatus providing prioritized recursion resolution of border gateway protocol forwarding information bases WO2007064541A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2006800449550A CN101322341B (en) 2005-11-30 2006-11-20 Method and apparatus providing prioritized recursion resolution of border gateway protocol forwarding information bases
EP06838232.4A EP1955459B1 (en) 2005-11-30 2006-11-20 Method and apparatus providing prioritized recursion resolution of border gateway protocol forwarding information bases

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/291,940 US7508829B2 (en) 2005-11-30 2005-11-30 Method and apparatus providing prioritized recursion resolution of border gateway protocol forwarding information bases
US11/291,940 2005-11-30

Publications (2)

Publication Number Publication Date
WO2007064541A2 true WO2007064541A2 (en) 2007-06-07
WO2007064541A3 WO2007064541A3 (en) 2007-12-06

Family

ID=38087352

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2006/045143 WO2007064541A2 (en) 2005-11-30 2006-11-20 Method and apparatus providing prioritized recursion resolution of border gateway protocol forwarding information bases

Country Status (4)

Country Link
US (1) US7508829B2 (en)
EP (1) EP1955459B1 (en)
CN (1) CN101322341B (en)
WO (1) WO2007064541A2 (en)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7423974B2 (en) * 2004-04-30 2008-09-09 Alcatel Disabling mutually recursive routes
US8005088B2 (en) * 2006-01-17 2011-08-23 At&T Intellectual Property I, L.P. Scalable management system for MPLS based service providers
US7508772B1 (en) * 2006-06-02 2009-03-24 Cisco Technology, Inc. Partial graceful restart for border gateway protocol (BGP)
US8432894B2 (en) * 2007-02-27 2013-04-30 Alcatel Lucent Asymmetrical forwarding in layer 3 IP VPNs
JP5292951B2 (en) * 2008-07-03 2013-09-18 日本電気株式会社 Route control method, route control system, route control device, and route control program
US7936754B2 (en) 2008-12-12 2011-05-03 At&T Intellectual Property I, L.P. Methods and apparatus to dynamically store network routes for a communication network
CN101442491B (en) * 2008-12-26 2011-03-30 杭州华三通信技术有限公司 Route transmission method and routing device for nesting VPN
WO2010097716A1 (en) * 2009-02-25 2010-09-02 Koninklijke Philips Electronics, N.V. Pressure support system with machine delivered breaths
US8995446B2 (en) * 2009-12-21 2015-03-31 Cisco Technology, Inc. Efficient generation of VPN-based BGP updates
US20120124238A1 (en) * 2010-11-12 2012-05-17 Alcatel-Lucent Bell N.V. Prioritization of routing information updates
CN102137015B (en) * 2011-03-11 2015-04-08 华为技术有限公司 Routing information acquiring method and network equipment
US9124524B2 (en) * 2011-06-29 2015-09-01 Broadcom Corporation System and method for priority based flow control between nodes
CN102724118B (en) * 2012-06-06 2014-12-31 华为技术有限公司 Label distribution method and device
CN105245452B (en) 2012-06-06 2018-11-16 华为技术有限公司 Multi-protocol label switching traffic engineering tunnel establishing method and equipment
US8982901B2 (en) * 2012-07-22 2015-03-17 Imagination Technologies, Limited Counter based fairness scheduling for QoS queues to prevent starvation
CN103888351B (en) 2012-12-20 2017-12-15 联想企业解决方案(新加坡)私人有限公司 The method and device of multiple sessions is managed in the network based on Multi-path route
US9692684B2 (en) * 2014-09-05 2017-06-27 Telefonaktiebolaget L M Ericsson (Publ) Forwarding table precedence in SDN
US9531642B1 (en) 2014-09-30 2016-12-27 Amazon Technologies, Inc. Distributing routing updates according to a synchronous mode
US9699068B1 (en) * 2014-09-30 2017-07-04 Amazon Technologies, Inc. Distributing routing updates according to a decay mode
US9819577B2 (en) * 2015-05-29 2017-11-14 Cisco Technology, Inc. Adjusting control-plane allocation of packet processing resources
US10333790B2 (en) * 2015-12-30 2019-06-25 Arista Networks, Inc. Method and system for selective route download in network devices
CN109104364B (en) * 2017-11-27 2020-11-06 新华三技术有限公司 Designated forwarder election method and device
US10862798B2 (en) 2018-02-05 2020-12-08 Juniper Networks, Inc. Prioritized formation of BGP sessions
KR102258814B1 (en) * 2018-10-04 2021-07-14 주식회사 엘지에너지솔루션 System and method for communicating between BMS
CN109525512B (en) * 2019-01-22 2022-06-21 新华三技术有限公司 BGP neighbor establishing method and device
US11165696B1 (en) * 2019-11-27 2021-11-02 Juniper Networks, Inc. Providing convergence prioritization for border gateway protocol services across providers/customers
US11323387B2 (en) * 2020-05-18 2022-05-03 Juniper, Networks, Inc. Prioritized communication session establishment in computer networks
US11303556B2 (en) * 2020-06-05 2022-04-12 Level 3 Communications, Llc Systems and methods for providing a dynamic-hybrid forwarding information base (DHFIB)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050078656A1 (en) 2003-10-14 2005-04-14 Bryant Stewart Frederick Method and apparatus for generating routing information in a data communications network

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055561A (en) * 1996-10-02 2000-04-25 International Business Machines Corporation Mapping of routing traffic to switching networks
JP4078755B2 (en) * 1999-06-02 2008-04-23 株式会社日立製作所 Bandwidth monitoring method
US6816494B1 (en) * 2000-07-20 2004-11-09 Nortel Networks Limited Method and apparatus for distributed fairness algorithm for dynamic bandwidth allocation on a ring
US20020038339A1 (en) * 2000-09-08 2002-03-28 Wei Xu Systems and methods for packet distribution
US7116640B2 (en) * 2000-12-22 2006-10-03 Mitchell Paul Tasman Architecture and mechanism for forwarding layer interfacing for networks
US6985493B1 (en) * 2001-02-23 2006-01-10 Cisco Technology, Inc. Message aggregator for channelized interface programming
US7206309B2 (en) * 2001-03-27 2007-04-17 Nortel Networks Limited High availability packet forward apparatus and method
US7028098B2 (en) * 2001-07-20 2006-04-11 Nokia, Inc. Selective routing of data flows using a TCAM
US7545814B2 (en) * 2002-02-28 2009-06-09 Nokia Corporation Method and system for dynamic remapping of packets for a router
US7499447B2 (en) * 2002-06-04 2009-03-03 Alcaltel-Lucent Usa Inc. Synchronizing multiple instances of a forwarding information base (FIB) using sequence numbers
EP1383292B1 (en) * 2002-07-16 2005-06-29 Lucent Technologies Inc. Packet ordering method and apparatus in a mobile communication network
EP1414213B1 (en) * 2002-10-24 2011-11-30 Alcatel Lucent Packet classifier and processor in a telecommunication router
US8036139B2 (en) * 2002-10-28 2011-10-11 Cisco Technology, Inc. Internal BGP downloader
CN100409646C (en) * 2003-10-28 2008-08-06 武汉烽火网络有限责任公司 Method and device for realizing different IP data packet repeating using strategic flow
US20060291446A1 (en) * 2005-06-24 2006-12-28 Donald Caldwell Systems, methods, and devices for managing routing
US7522521B2 (en) * 2005-07-12 2009-04-21 Cisco Technology, Inc. Route processor adjusting of line card admission control parameters for packets destined for the route processor
US20070115848A1 (en) * 2005-11-18 2007-05-24 Kevin Chean Adaptive application sensitive rate control system for packetized networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050078656A1 (en) 2003-10-14 2005-04-14 Bryant Stewart Frederick Method and apparatus for generating routing information in a data communications network

Also Published As

Publication number Publication date
EP1955459A4 (en) 2017-03-15
US7508829B2 (en) 2009-03-24
US20070121524A1 (en) 2007-05-31
EP1955459A2 (en) 2008-08-13
CN101322341B (en) 2012-06-20
WO2007064541A3 (en) 2007-12-06
CN101322341A (en) 2008-12-10
EP1955459B1 (en) 2019-07-17

Similar Documents

Publication Publication Date Title
EP1955459B1 (en) Method and apparatus providing prioritized recursion resolution of border gateway protocol forwarding information bases
US7318108B2 (en) Method and apparatus providing prioritized convergence in border gateway protocol
US8675656B2 (en) Scaling virtual private networks using service insertion architecture
US7778248B2 (en) Method and apparatus for prioritized processing of routing information
US8223666B2 (en) Method of constructing a forwarding database for a data communications network
EP1609279B1 (en) Method for recursive bgp route updates in mpls networks
US7436838B2 (en) Automatic prioritization of BGP next-hop in IGP
US7983153B2 (en) Fast reroute (FRR) protection at the edge of a RFC 2547 network
US9998353B2 (en) System and method for finding point-to-multipoint label switched path crossing multiple domains
US8467394B2 (en) Automatic route tagging of BGP next-hop routes in IGP
CN113347091B (en) Flexible algorithm aware border gateway protocol prefix segment route identifier
EP1913731B1 (en) Method and apparatus for enabling routing of label switched data packets
EP2832062B1 (en) Packet network routing
US8565232B2 (en) Method and apparatus for virtual circuit routes
US20120124238A1 (en) Prioritization of routing information updates
EP4256767A1 (en) Systems and methods for scalable validation of multiple paths in a network using segment routing
US7969995B2 (en) Method and apparatus for constructing a forwarding database for a data communications network
US7243161B1 (en) Two label stack for transport of network layer protocols over label switched networks
CN117938748A (en) Method, device and related equipment for notifying information of computing force node

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200680044955.0

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006838232

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE