[go: up one dir, main page]

US12206601B2 - Backpressure notifications to peers for BGP updates - Google Patents

Backpressure notifications to peers for BGP updates Download PDF

Info

Publication number
US12206601B2
US12206601B2 US18/326,726 US202318326726A US12206601B2 US 12206601 B2 US12206601 B2 US 12206601B2 US 202318326726 A US202318326726 A US 202318326726A US 12206601 B2 US12206601 B2 US 12206601B2
Authority
US
United States
Prior art keywords
bgp
backpressure
router
trigger
peers
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
US18/326,726
Other versions
US20240348564A1 (en
Inventor
Mahesh Giri
Atul MEHRA
Anurag Prakash
Yong Yin
Ritesh Singal
Peter Pieda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ciena Corp
Original Assignee
Ciena Corp
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 Ciena Corp filed Critical Ciena Corp
Assigned to CIENA CORPORATION reassignment CIENA CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PRAKASH, ANURAG, GIRI, Mahesh, MEHRA, ATUL, Singal, Ritesh, PIEDA, Peter, YIN, YONG
Priority to EP24161502.0A priority Critical patent/EP4447400A1/en
Publication of US20240348564A1 publication Critical patent/US20240348564A1/en
Priority to US18/983,608 priority patent/US20250119395A1/en
Application granted granted Critical
Publication of US12206601B2 publication Critical patent/US12206601B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • 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/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures
    • H04L49/506Backpressure

Definitions

  • the present disclosure relates generally to networking and computing. More particularly, the present disclosure relates to systems and methods for backpressure notifications to peers for Border Gateway Protocol (BGP) updates.
  • Border Gateway Protocol BGP
  • BGP is an exterior gateway protocol designed to exchange routing and reachability information among Autonomous Systems (AS) on the Internet.
  • Autonomous Systems are each a single domain that presents a defined routing policy to the Internet, via BGP. That is, network operators use BGP to advertise reachability within their networks.
  • BGP can be viewed as the protocol supporting the backbone of the Internet.
  • a given BGP router may accept Network-Layer Reachability Information (NLRI) updates from multiple neighbors (peers) and advertise NLRI to the same, or a different set, of neighbors.
  • NLRI Network-Layer Reachability Information
  • peer peer
  • the BGP process maintains several Routing Information Base (RIB).
  • RIB Routing Information Base
  • the RIB is also referred to a Routing Table (RT) which, and the RIB is a data table stored in a router that lists the routes to particular network destinations, and in some cases, metrics (distances) associated with those routes.
  • the routing table contains information about the topology of the network immediately around it.
  • RIB routers main routing information base table
  • Loc-RIB local routing information base
  • BGP maintains its own master routing table separate from the main routing table of the router
  • Adj-RIB-In for each neighbor
  • the BGP process maintains a conceptual adjacent routing information base, incoming, containing the NLRI received from the neighbor
  • Adj-RIB-Out for each neighbor
  • the BGP process maintains a conceptual adjacent routing information base, outgoing, containing the NLRI send to the neighbor, and the like.
  • the present disclosure relates to systems and methods for backpressure notifications to peers for Border Gateway Protocol (BGP) updates.
  • BGP update messages to/from neighbors (peers) can be received/transmitted at given rates.
  • peer can be received/transmitted at given rates.
  • existing techniques rely on filtering to maintain a given size of the RIB and/or terminating given BGP sessions which are problematic.
  • BGP sessions can overwhelm a router, leading to network outages.
  • the present disclosure includes detection of BGP updates (i.e., notifications) at high rates along with backpressure notifications to associated peers. These techniques lead to routers that are more scalable and resilient.
  • the present disclosure includes a method having steps, a router configured to implement Border Gateway Protocol (BGP) and the steps, a non-transitory computer-readable medium with instructions that, when executed, cause one or more processors to implement the steps.
  • the steps include receiving BGP updates from one or more BGP peers connected to the router; detecting a trigger related to BGP updates where the trigger is indicative of a need to apply backpressure by the one or more BGP peers; and sending a backpressure notification message to the one or more BGP peers based on the trigger, such that the one or more BGP peers apply the backpressure.
  • Border Gateway Protocol BGP
  • the steps include receiving BGP updates from one or more BGP peers connected to the router; detecting a trigger related to BGP updates where the trigger is indicative of a need to apply backpressure by the one or more BGP peers; and sending a backpressure notification message to the one or more BGP peers based on the trigger, such that the one or more BGP peers apply the backpressure.
  • the steps can further include monitoring one or more criteria associated with operation of the router, for the trigger.
  • the one or more criteria can include any of an incoming rate of prefixes from BGP update messages, a fill rate of a Routing Information Base (RIB), memory usage, and processor usage.
  • the steps can further include detecting the trigger related to BGP updates has cleared; and sending a second backpressure notification message to the one or more BGP peers based on the trigger, such that the one or more BGP peers remove the backpressure.
  • the trigger can have cleared when a High Water Mark (HWM) is clear along with an optional hysteresis level.
  • the backpressure can include the one or more BGP peers one or more of pausing and reducing the BGP updates to the router.
  • HWM High Water Mark
  • the steps can further include, responsive to detecting a need to remove the backpressure, causing deactivation of the backpressure.
  • the steps can further include determining which BGP peers support the backpressure, and, responsive to the trigger, constraining the backpressure notification message to the one or more BGP peers where the one or more BGP peers support the backpressure.
  • the backpressure notification message can be a BGP notification message having a specific error code designating backpressure, and an error sub-code to designate whether to apply backpressure and whether to remove backpressure.
  • FIG. 1 is a network diagram of a network having five interconnected routers.
  • FIG. 2 is a network diagram of the network focusing on the routers R1, R2 for illustrating the application of backpressure.
  • FIG. 3 is a network diagram of the network focusing on the routers R1, R2 for illustrating the removal of backpressure.
  • FIG. 4 is a diagram of a new BGP notification message, for backpressure notifications.
  • FIG. 5 is a block diagram of an example implementation of a router.
  • FIG. 6 is a block diagram of an example processing device.
  • FIG. 7 is a flowchart of a process for backpressure notifications to peers for Border Gateway Protocol (BGP) updates.
  • BGP Border Gateway Protocol
  • the present disclosure relates to systems and methods for backpressure notifications to peers for Border Gateway Protocol (BGP) updates.
  • BGP update messages to/from neighbors (peers) can be received/transmitted at given rates.
  • peer can be received/transmitted at given rates.
  • existing techniques rely of filtering to maintain a given size of the RIB and/or terminating given BGP sessions which are problematic.
  • these approaches are not always effective and there are situations where BGP sessions can overwhelm a router, leading to network outages.
  • the present disclosure includes detection of BGP updates (i.e., note the terms updates and notifications can be used interchangeably) at high rates along with backpressure notifications to associated peers. These techniques lead to routers that are more scalable and resilient.
  • the present disclosure includes sending BGP update messages to peers to either lock or reduce the update rate of sending prefixes, instead of terminating the BGP neighborship and affecting the existing configured traffic paths.
  • This can include detecting a trigger for backpressure, sending a notification to perform some remediation, detecting the trigger is gone, and sending a notification to stop the remediation.
  • the remediation can include pausing BGP updates, reducing a rate of the BGP updates, propagating a notification to its peers regarding the same, and the like.
  • the notification can be embedded in an existing BGP message as well as a new BGP message.
  • the present disclosure includes:
  • routers are physical equipment having given capabilities upon deployment (memory, processor, etc.).
  • the graph of the capabilities of routers can be viewed as stair steps, namely each router has given increases over its predecessors.
  • the rate of growth of the Internet, defined by BGP updates is not constrained to steps, but increases each moment. There are situations where these two graphs are problematic, namely the BGP updates are outside the capabilities of a given router, overwhelming that router, and potentially causing a network outage.
  • Internet outages are significant disruptions in economic terms and customer dissatisfaction.
  • network operators tend to avoid detailed explanations and tend to blame inadvertent operator error, software upgrades, etc.
  • FIG. 1 is a network diagram of a network 10 having five interconnected routers R1, R2, R3, R4, R5.
  • the network 10 is presented for illustration purposes and those skilled in the art will recognize different configurations, topologies, etc. are contemplated herewith.
  • the router R2 is illustrated in detail, from a functional perspective, whereas the routers R1, R3, R4, R5 are merely shown as a single icon.
  • all of the routers R1, R2, R3, R4, R5 include circuitry for packet switching, e.g., at layers 2 , 3 , etc., routing, and forwarding.
  • the functional details of the routers R1, R2, R3, R4, R5 are omitted here in detail as one skilled in the art appreciates how a router operates.
  • the routers R1, R4, R5 are sending BGP update messages to the route R2 which is in turn sending BGP update messages to the router R3.
  • this process can be bidirectional, namely each router R1, R2, R3, R4, R5 is both receiving and transmitting BGP update messages to one another.
  • the routers R1, R3, R4, R5 can be referred to as peers or neighbors of the router R2.
  • each router R1, R2, R3, R4, R5 can be in a separate AS (external BGP), the routers R1, R2, R3, R4, R5 can all be in the same AS (internal BGP), as well as any combination thereof.
  • the present disclosure can be used in either iBGP, eBGP, or both.
  • the routers R1, R2, R3, R4, R5 can be referred to as BGP routers as well.
  • the BGP router R2 includes receive buffers 12 , communicatively coupled to ports (not shown) that are connected to its BGP peers, e.g., in this case since we are illustrating the routers R1, R4, R5 sending BGP updates, the receive buffers 12 are connected thereto.
  • the BGP router R2 further includes transmit buffers 14 communicatively coupled to ports (not shown) that are connected to its BGP peers, e.g., in this case, to the router R3.
  • the buffers 12 , 14 are storage circuits used to buffer packets before they are sent out the ports, “on the wire,” or processed internally after being received, and while the buffers 12 , 14 can buffer any packet, the present disclosure addresses BGP update messages (which are packets).
  • BGP includes various message types, e.g., open, update, keepalive, notification, but the present disclosure addresses the BGP update messages, which require processing on the router R2, and where such processing can overwhelm the router R2.
  • the BGP router R2 receives prefixes (addition/withdrawals) from its BGP neighbors, the routers R1, R3, R4, R5, in the BGP update messages.
  • a prefix in BGP includes an Internet Protocol (IP) version 4 (IPv4) or version 6 (IPv6) address block that is being announced along with a path of AS numbers, indicating which ASNs the traffic must pass through to reach the announced address block.
  • IPv4 Internet Protocol version 4
  • IPv6 version 6
  • the BGP router R2 includes three RIBs, a BGP ADJ-IN RIB connected to the receive buffers 12 and configured to receive incoming prefixes from the BGP update messages from the routers R1, R4, R5, where the incoming prefixes are received at an incoming rate, RATE1, of X prefixes per second, or any other measurement.
  • the router R2 includes circuitry configured to filter the incoming prefixes in the BGP ADJ-IN RIB, according to policy, before they are installed in the second RIB, namely a BGP RIB, which can be filled up to some High Water Mark (HWM).
  • the router R2 further includes circuitry configured to aggregate the prefixes in the BGP RIB for sending out router R2's own BGP update messages, e.g., to the router R3.
  • the router R2 can start behaving unexpectedly or become unresponsive. That is, the inability to handle the large number of routes or BGP update messages is due to any physical equipment, software configuration, etc. in the router R2. Also, since the router R2 may now, in its poor state with unexpected behavior, flood the large volume of updates to the iBGP network, it may lead to a complete network blackout. Other problems can include session flapping with unstable links, and the like. Also, when the router tries to reconnect, there is additional processing, further exacerbating the situation.
  • Prefix filtering is helpful to manage the size of the RIB given physical capabilities of a router, namely memory and storage space. Of course, filtering also requires processor capability to perform the various techniques. Generally, prefix filtering does not alleviate issues when the BGP updates are at rates beyond the physical capabilities of a router. In general filters are configured to block propagation of routes beyond a certain point. These filtering mechanisms work well in current deployments but are prone to errors during re-configuration, upgrades, and policy updates. Terminating a BGP relationship is another possible approach to reducing the rates, but this causes the network routes in the terminated domain to go dark and be inaccessible.
  • backpressure in networking as well as in the present disclosure, means some ability to control the rate of BGP update messages from an upstream router, e.g., the router R2 being able to control the BGP update messages being sent from any of the routers R1, R4, R5.
  • the present disclosure includes updates and additional functionality in BGP to support backpressure notification where a given router R1, R4, R5 can either stop sending BGP update messages for a given time or until a further notification, as well as reduce a rate of the BGP update messages, again for a given time or until a further notification.
  • This backpressure described herein contemplates operation with existing prefix filtering approaches. In particular, we believe, even in a perfect prefix filtering scheme, there are situations where the router R2 can behave unexpectedly or become unresponsive. Also, the backpressure described herein contemplates replacing any termination of the BGP neighborship and affecting the existing configured traffic paths, thereby not affecting existing configured traffic paths.
  • the backpressure described herein can be used with routers that may not support this functionality, thereby preserving compatibility and backwards compatibility with BGP routers.
  • a router R4 e.g., receiving a backpressure notification and not being configured to apply the backpressure
  • the router R2 can realize this is not possible with the router R4 (by noticing no change in rates) and apply more backpressure to other routers, e.g., router R1, that do support the backpressure notification.
  • the router R2 can apply backpressure solely itself on its outgoing BGP update messages.
  • the router R2 can mitigate any unexpected behaviors on the network by limiting itself.
  • FIG. 2 is a network diagram of the network 10 focusing on the routers R1, R2 for illustrating the application of backpressure.
  • FIG. 3 is a network diagram of the network 10 focusing on the routers R1, R2 for illustrating the removal of backpressure.
  • the routers R1, R2 both support the backpressure notification, application, and removal.
  • the router R2 can be configured with some limit to detect a threshold and to detect the threshold has been reached.
  • this threshold can be a HWM limit of the incoming rate, RATE1, a HWM limit in the BGP RIB, a limit set at level 1 (L1), and the like.
  • the L1 and/or RATE1 threshold are physical indications that can be monitored and detected at the router R2.
  • these are example technique to detect a high rate and others are contemplated, such as some processor thresholds related to BGP prefix processing, and the like.
  • the key here is there is some way to locally detect at the router R2 that the processing of BGP update messages has become intense, problematic, etc. such that some poor behavior is at risk.
  • the present disclosure contemplates multiple criteria for detection. For example, the router R2 has its HWM limit L1 reached in the BGP RIB, and the prefix receive rate from a peer (say router R1) is more than the upper limit RATE1.
  • RIB HWM L1 and prefix rate RATE1 can also be inferred as a function of memory and processor utilization.
  • the detection can be generalized to all peers, to a subset of peers, as well as to individual peers. Note, depending on the criteria being monitored, some apply individually to peers, such as the incoming rate RATE1, whereas other criteria apply locally to the router R2, such as the HWM limit L1 in the BGP RIB. Whether the detection is individual, e.g., router R1 is sending at a rate over the limit RATE1, or global, e.g., the BGP RIB in the router R2, determines who gets the notifications, what the notifications ask for, etc. The detection can also be applied to some or all peers differently.
  • each peer is monitored for the incoming rate RATE1, and only those peers which exceed the rate will receive the new BGP backpressure notification. Also, there can be a cumulative rate exceeding some other limit, say RATE2, that is tracked and leads to backpressure notification to the peer(s) contributing the most until the cumulative rate RATE2 drops below the configured threshold.
  • the cumulative rate can include the rate of all incoming prefixes from all BGP peers.
  • step 1 in each of in FIGS. 2 and 3 relates to detection of the need for backpressure, namely some HWM has been reached ( FIG. 2 ), and the opportunity to remove the backpressure, namely the HWM has been clearer ( FIG. 3 ), as well as some hysteresis threshold to prevent flapping.
  • the router R2 Upon detection in FIG. 2 , the router R2 sends a BGP backpressure notification message to the router R1 ( FIG. 2 , step 2 ).
  • the detection in FIG. 2 can be the router R2 sending at a rate greater than RATE1 and/or the BGP RIB is filled greater than the HWM limit L1.
  • the BGP backpressure notification message is telling the router R1 to do something, namely apply backpressure ( FIG. 2 , step 3 ).
  • backpressure as anything that reduces the transmission rate of BGP updates, e.g., delaying for a period of time, stopping for a period of time, reducing the rate for a period of time, and the like.
  • the router R1 receives the backpressure notification message, it applies the backpressure to block or reduce BGP updates ( FIG. 2 , step 4 ).
  • the objective is to alleviate the condition at the router R2 that causes the need for the backpressure notification message.
  • step 1 at some point, it is determined the backpressure has been successful and the causing condition (HWM) has cleared. This triggers the router R2 to send another BGP backpressure notification message to the router R1 ( FIG. 3 , step 2 ), which notifies the router R1 to remove the backpressure (i.e., resume normal operations, FIG. 3 , step 3 ), leading the router R1 to send normal BGP updates ( FIG. 3 , step 4 ).
  • the set of backpressured sessions can create a linkage to the root of the problem and can be used by a network management solution for Root Cause Analysis (RCA), to remediate further problems with some upgrade or fix, e.g., memory or processor updates.
  • RCA Root Cause Analysis
  • the present disclosure includes a detection mechanism (described above), a backpressure application mechanism (also described above), and a notification mechanism (described herein). That is, there is a requirement for the router R2 to notify its peers to apply and remove backpressure.
  • the present disclosure contemplates any such approach, and the following describes one example implementation, for illustrative purposes.
  • the present disclosure includes a new BGP notification message, such as shown in FIG. 4 .
  • RFC 4271 “A Border Gateway Protocol 4 (BGP-4),” January 2006, the contents of which are incorporated by reference, defines the BGP notification message in Sec. 4.5, and the error handling in Sec. 6.
  • FIG. 4 is from Sec. 4.5 in RFC 4271.
  • Error code X system overload
  • Error sub-code 1 applies backpressure
  • Error sub-code 2 Z remove backpressure
  • the router R1 When the router R1 receives the BGP notification with error code X and with error sub-code 1 , it will apply backpressure to the BGP session to the router R2. After the router R2 clears the HWM condition whenever it detects normal CPU/memory/number of update messages. This can be clear via user intervention as well. Under that condition, the router R2 will send a BGP notification with error code X with error sub-code 2 and whenever router R1 receives the BGP notification with error code X with error sub-code, it will remove the backpressure.
  • the BGP notification with the error code X is one approach.
  • the error code X can be a new error code as well as an existing error code.
  • the router R2 has flexibility for backpressure with its peers and it is undesirable to bring sessions down.
  • the router R2 would only send BGP notifications for backpressure to its peers that it knows support this feature.
  • the router R2 can cause more backpressure with some peers, i.e., ones that support this feature, to address the fact that not every peer may support this feature.
  • this feature (capability) can be negotiated between routers.
  • an out of band notification can be sent towards a northbound interface so that user can take the appropriate action in overload situation.
  • the appropriate action can include hardware upgrades, configuration changes, and the like.
  • FIG. 5 is a block diagram of an example implementation of a router 100 , such as the routers R1, R2, R3, R4, R5.
  • a router 100 such as the routers R1, R2, R3, R4, R5.
  • FIG. 5 is a functional diagram in an oversimplified manner, and a practical embodiment may include additional components and suitably configured processing logic to support known or conventional operating features that are not described in detail herein.
  • the router 100 is a packet switch, but those of ordinary skill in the art will recognize the systems and methods described herein can operate with other types of network elements and other implementations that support BGP.
  • the router 100 includes a plurality of modules 102 , 104 interconnected via an interface 106 .
  • the modules 102 , 104 are also known as blades, line cards, line modules, circuit packs, pluggable modules, etc. and generally refer to components mounted on a chassis, shelf, etc. of a data switching device, i.e., the router 100 .
  • Each of the modules 102 , 104 can include numerous electronic devices and/or optical devices mounted on a circuit board along with various interconnects, including interfaces to the chassis, shelf, etc.
  • the line modules 102 include ports 108 , such as a plurality of Ethernet ports.
  • the line module 102 can include a plurality of physical ports disposed on an exterior of the module 102 for receiving ingress/egress connections.
  • the line modules 102 can include switching components to form a switching fabric via the interface 106 between all of the ports 108 , allowing data traffic to be switched/forwarded between the ports 108 on the various line modules 102 .
  • the switching fabric is a combination of hardware, software, firmware, etc. that moves data coming into the router 100 out by the correct port 108 to the next router 100 .
  • Switching fabric includes switching units in a node; integrated circuits contained in the switching units; and programming that allows switching paths to be controlled. Note, the switching fabric can be distributed on the modules 102 , 104 , in a separate module (not shown), integrated on the line module 102 , or a combination thereof.
  • the control module 104 can include a microprocessor, memory, software, and a network interface. Specifically, the microprocessor, the memory, and the software can collectively control, configure, provision, monitor, etc. the router 100 .
  • the network interface may be utilized to communicate with an element manager, a network management system, etc. Additionally, the control module 104 can include a database that tracks and maintains provisioning, configuration, operational data, and the like.
  • the router 100 can include other components which are omitted for illustration purposes, and that the systems and methods described herein are contemplated for use with a plurality of different network elements with the router 100 presented as an example type of network element.
  • the router 100 may include corresponding functionality in a distributed fashion.
  • the chassis and modules may be a single integrated unit, namely a rack-mounted shelf where the functionality of the modules 102 , 104 is built-in, i.e., a “pizza-box” configuration. That is, FIG. 5 is meant to provide a functional view, and those of ordinary skill in the art will recognize actual hardware implementations may vary.
  • FIG. 6 is a block diagram of an example processing device 200 , which can form a control module for the router 100 , etc.
  • the processing device 200 can be part of the router 100 , or a stand-alone device communicatively coupled to the router 100 .
  • the processing device 200 can be referred to in implementations as a control module, a shelf controller, a shelf processor, a system controller, etc.
  • the processing device 200 can include a processor 202 which is a hardware device for executing software instructions.
  • the processor 202 can be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the processing device 200 , a semiconductor-based microprocessor (in the form of a microchip or chipset), or generally any device for executing software instructions.
  • the processor 202 is configured to execute software stored within the memory, to communicate data to and from the memory, and to generally control operations of the processing device 200 pursuant to the software instructions.
  • the processing device 200 can also include a network interface 204 , a data store 206 , memory 208 , an I/O interface 210 , and the like, all of which are communicatively coupled to one another and to the processor 202 .
  • the network interface 204 can be used to enable the processing device 200 to communicate on a data communication network, such as to communicate to a management system.
  • the network interface 204 can include, for example, an Ethernet module.
  • the network interface 204 can include address, control, and/or data connections to enable appropriate communications on the network.
  • the data store 206 can be used to store data, such as control plane information, provisioning data, Operations, Administration, Maintenance, and Provisioning (OAM&P) data, etc.
  • the data store 206 can include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, and the like)), nonvolatile memory elements (e.g., ROM, hard drive, flash drive, CDROM, and the like), and combinations thereof.
  • RAM random access memory
  • nonvolatile memory elements e.g., ROM, hard drive, flash drive, CDROM, and the like
  • the data store 206 can incorporate electronic, magnetic, optical, and/or other types of storage media.
  • the memory 208 can include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)), nonvolatile memory elements (e.g., ROM, hard drive, flash drive, CDROM, etc.), and combinations thereof.
  • the memory 208 may incorporate electronic, magnetic, optical, and/or other types of storage media. Note that the memory 208 can have a distributed architecture, where various components are situated remotely from one another, but may be accessed by the processor 202 .
  • the I/O interface 210 includes components for the processing device 200 to communicate with other devices.
  • FIG. 7 is a flowchart of a process 300 for backpressure notifications to peers for Border Gateway Protocol (BGP) updates.
  • the process 300 contemplates implementation as a method having steps, via a processing device configured to execute the steps, and/or as a non-transitory computer-readable medium storing instructions that, when executed, cause one or more processors to implement the steps.
  • the process 300 is described with reference to the router R2 and its associated actions.
  • the process 300 relates to the transmission of backpressure notification messages to cause BGP peers to apply/remove backpressure.
  • Those skilled in the art will recognize there is also functionality implemented at the BGP peers, namely receipt of the backpressure notification messages and actions (application of or removal of backpressure).
  • the process 300 includes receiving BGP updates from one or more BGP peers connected to the router (step 302 ); detecting a trigger related to BGP updates where the trigger is indicative of a need to apply backpressure by the one or more BGP peers (step 304 ); and sending a backpressure notification message to the one or more BGP peers based on the trigger, such that the one or more BGP peers apply the backpressure (step 306 ).
  • the process 300 further includes monitoring one or more criteria associated with operation of the router, for the trigger (step 308 ).
  • the one or more criteria can include any of an incoming rate of prefixes from BGP update messages, a fill rate of a Routing Information Base (RIB), memory usage, and processor usage.
  • RIB Routing Information Base
  • the process 300 can further include detecting the trigger related to BGP updates has cleared (step 310 ); and sending a second backpressure notification message to the one or more BGP peers based on the trigger, such that the one or more BGP peers remove the backpressure (step 312 ).
  • the trigger can clear when a High Water Mark (HWM) is clear along with some optional hysteresis level.
  • HWM High Water Mark
  • the removal of the backpressure can revert implicitly.
  • the backpressure can include the one or more BGP peers pausing the BGP updates to the router.
  • the backpressure can include the one or more BGP peers reducing the BGP updates to the router.
  • the process 300 can further include determining which BGP peers support the backpressure, and responsive to the trigger, constraining the backpressure notification message to the one or more BGP peers where the one or more BGP peers support the backpressure.
  • the determining can be based on the exchange of capability information, configuration, advertisements, etc.
  • the backpressure notification message can be a BGP notification message having a specific error code designating backpressure, and an error sub-code to designate whether to apply backpressure and whether to remove backpressure.
  • processors such as microprocessors; central processing units (CPUs); digital signal processors (DSPs): customized processors such as network processors (NPs) or network processing units (NPUs), graphics processing units (GPUs), or the like; field programmable gate arrays (FPGAs); and the like along with unique stored program instructions (including both software and firmware) for control thereof to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the methods and/or systems described herein.
  • processors such as microprocessors; central processing units (CPUs); digital signal processors (DSPs): customized processors such as network processors (NPs) or network processing units (NPUs), graphics processing units (GPUs), or the like; field programmable gate arrays (FPGAs); and the like along with unique stored program instructions (including both software and firmware) for control thereof to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the methods and/or systems described herein.
  • circuitry configured or adapted to
  • logic configured or adapted to
  • some embodiments may include a non-transitory computer-readable storage medium having computer-readable code stored thereon for programming a computer, server, appliance, device, processor, circuit, etc. each of which may include a processor to perform functions as described and claimed herein.
  • Examples of such computer-readable storage mediums include, but are not limited to, a hard disk, an optical storage device, a magnetic storage device, a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), Flash memory, and the like.
  • software can include instructions executable by a processor or device (e.g., any type of programmable circuitry or logic) that, in response to such execution, cause a processor or the device to perform a set of operations, steps, methods, processes, algorithms, functions, techniques, etc. as described herein for the various embodiments.
  • a processor or device e.g., any type of programmable circuitry or logic

Landscapes

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

Abstract

A router configured to implement Border Gateway Protocol (BGP) includes circuitry configured to receive BGP updates from one or more BGP peers connected to the router, detect a trigger related to BGP updates where the trigger is indicative of a need to apply backpressure by the one or more BGP peers, and send a backpressure notification message to the one or more BGP peers based on the trigger, such that the one or more BGP peers apply the backpressure. The circuitry can be further configured to monitor one or more criteria associated with operation of the router, for the trigger.

Description

FIELD OF THE DISCLOSURE
The present disclosure relates generally to networking and computing. More particularly, the present disclosure relates to systems and methods for backpressure notifications to peers for Border Gateway Protocol (BGP) updates.
BACKGROUND OF THE DISCLOSURE
BGP is an exterior gateway protocol designed to exchange routing and reachability information among Autonomous Systems (AS) on the Internet. Autonomous Systems are each a single domain that presents a defined routing policy to the Internet, via BGP. That is, network operators use BGP to advertise reachability within their networks. BGP can be viewed as the protocol supporting the backbone of the Internet. A given BGP router may accept Network-Layer Reachability Information (NLRI) updates from multiple neighbors (peers) and advertise NLRI to the same, or a different set, of neighbors. The BGP process maintains several Routing Information Base (RIB). The RIB is also referred to a Routing Table (RT) which, and the RIB is a data table stored in a router that lists the routes to particular network destinations, and in some cases, metrics (distances) associated with those routes. The routing table contains information about the topology of the network immediately around it. There can be different variations of the RIB, all of which are contemplated herein, such as RIB: routers main routing information base table, Loc-RIB: local routing information base BGP maintains its own master routing table separate from the main routing table of the router, Adj-RIB-In: for each neighbor, the BGP process maintains a conceptual adjacent routing information base, incoming, containing the NLRI received from the neighbor, Adj-RIB-Out: for each neighbor, the BGP process maintains a conceptual adjacent routing information base, outgoing, containing the NLRI send to the neighbor, and the like.
BRIEF SUMMARY OF THE DISCLOSURE
The present disclosure relates to systems and methods for backpressure notifications to peers for Border Gateway Protocol (BGP) updates. BGP update messages to/from neighbors (peers) can be received/transmitted at given rates. To accommodate the size of the RIB and the update rates, existing techniques rely on filtering to maintain a given size of the RIB and/or terminating given BGP sessions which are problematic. However, these approaches are not always effective and there are situations where BGP sessions can overwhelm a router, leading to network outages. To that end, the present disclosure includes detection of BGP updates (i.e., notifications) at high rates along with backpressure notifications to associated peers. These techniques lead to routers that are more scalable and resilient.
In some embodiments, the present disclosure includes a method having steps, a router configured to implement Border Gateway Protocol (BGP) and the steps, a non-transitory computer-readable medium with instructions that, when executed, cause one or more processors to implement the steps. The steps include receiving BGP updates from one or more BGP peers connected to the router; detecting a trigger related to BGP updates where the trigger is indicative of a need to apply backpressure by the one or more BGP peers; and sending a backpressure notification message to the one or more BGP peers based on the trigger, such that the one or more BGP peers apply the backpressure.
The steps can further include monitoring one or more criteria associated with operation of the router, for the trigger. The one or more criteria can include any of an incoming rate of prefixes from BGP update messages, a fill rate of a Routing Information Base (RIB), memory usage, and processor usage. The steps can further include detecting the trigger related to BGP updates has cleared; and sending a second backpressure notification message to the one or more BGP peers based on the trigger, such that the one or more BGP peers remove the backpressure. The trigger can have cleared when a High Water Mark (HWM) is clear along with an optional hysteresis level. The backpressure can include the one or more BGP peers one or more of pausing and reducing the BGP updates to the router.
The steps can further include, responsive to detecting a need to remove the backpressure, causing deactivation of the backpressure. The steps can further include determining which BGP peers support the backpressure, and, responsive to the trigger, constraining the backpressure notification message to the one or more BGP peers where the one or more BGP peers support the backpressure. The backpressure notification message can be a BGP notification message having a specific error code designating backpressure, and an error sub-code to designate whether to apply backpressure and whether to remove backpressure.
BRIEF DESCRIPTION OF THE DRAWINGS
The present disclosure is illustrated and described herein with reference to the various drawings, in which like reference numbers are used to denote like system components/method steps, as appropriate, and in which:
FIG. 1 is a network diagram of a network having five interconnected routers.
FIG. 2 is a network diagram of the network focusing on the routers R1, R2 for illustrating the application of backpressure.
FIG. 3 is a network diagram of the network focusing on the routers R1, R2 for illustrating the removal of backpressure.
FIG. 4 is a diagram of a new BGP notification message, for backpressure notifications.
FIG. 5 is a block diagram of an example implementation of a router.
FIG. 6 is a block diagram of an example processing device.
FIG. 7 is a flowchart of a process for backpressure notifications to peers for Border Gateway Protocol (BGP) updates.
DETAILED DESCRIPTION OF THE DISCLOSURE
Again, the present disclosure relates to systems and methods for backpressure notifications to peers for Border Gateway Protocol (BGP) updates. BGP update messages to/from neighbors (peers) can be received/transmitted at given rates. To accommodate the size of the RIB and the update rates, existing techniques rely of filtering to maintain a given size of the RIB and/or terminating given BGP sessions which are problematic. However, these approaches are not always effective and there are situations where BGP sessions can overwhelm a router, leading to network outages. To that end, the present disclosure includes detection of BGP updates (i.e., note the terms updates and notifications can be used interchangeably) at high rates along with backpressure notifications to associated peers. These techniques lead to routers that are more scalable and resilient.
The present disclosure includes sending BGP update messages to peers to either lock or reduce the update rate of sending prefixes, instead of terminating the BGP neighborship and affecting the existing configured traffic paths. This can include detecting a trigger for backpressure, sending a notification to perform some remediation, detecting the trigger is gone, and sending a notification to stop the remediation. The remediation can include pausing BGP updates, reducing a rate of the BGP updates, propagating a notification to its peers regarding the same, and the like. The notification can be embedded in an existing BGP message as well as a new BGP message.
The present disclosure includes:
    • Early detection of backpressure based on the engineered limits of a router.
    • Sending a BGP notification to the BGP peer to trigger it to lock themselves (so no prefixes are sent) rather than terminating the BGP neighborship.
    • Automatic BGP Session lockout to prevent network fallout without taking down a peer adjacency which would cause a withdraw and further deterioration.
    • Determination of lockout sessions amongst a confederation of BGP peers.
    • Further to BGP backpressure notification, enhancements can be built to check on the BGP session automatically periodically for the state to clear or trigger any alarms for the network operator indicative of a remedial action.
    • Since a backpressure leads to a partially converged network, it is not ideal to leave the network in such a state. However, a locked-out session avoids a network fallout, and guarantees RIB and Forwarding Information Base (FIB) are up to date with the engineered capacity of a router. Having only a part of the network in a deteriorated state also may allow the operator to have access to the problem router for triage and restoration of services.
      Problem
The problem can be summarized based on the fact routers are physical equipment having given capabilities upon deployment (memory, processor, etc.). The graph of the capabilities of routers can be viewed as stair steps, namely each router has given increases over its predecessors. The rate of growth of the Internet, defined by BGP updates, is not constrained to steps, but increases each moment. There are situations where these two graphs are problematic, namely the BGP updates are outside the capabilities of a given router, overwhelming that router, and potentially causing a network outage.
Internet outages are significant disruptions in economic terms and customer dissatisfaction. When there is a significant Internet outage, network operators tend to avoid detailed explanations and tend to blame inadvertent operator error, software upgrades, etc. However, it is possible to analyze the activity before an outage and during the outage to surmise a cause. It has been seen that spikes in BGP updates are seen before some outages, leading to the assumption that routers are crashing due to BGP updates overwhelming physical capabilities. Network operators avoid these detailed explanations and rather blame simple, fixable problems such as operator error, for obvious reasons.
FIG. 1 is a network diagram of a network 10 having five interconnected routers R1, R2, R3, R4, R5. The network 10 is presented for illustration purposes and those skilled in the art will recognize different configurations, topologies, etc. are contemplated herewith. For illustration purposes, the router R2 is illustrated in detail, from a functional perspective, whereas the routers R1, R3, R4, R5 are merely shown as a single icon. Of course, all of the routers R1, R2, R3, R4, R5 include circuitry for packet switching, e.g., at layers 2, 3, etc., routing, and forwarding. The functional details of the routers R1, R2, R3, R4, R5 are omitted here in detail as one skilled in the art appreciates how a router operates.
In this example, the routers R1, R4, R5 are sending BGP update messages to the route R2 which is in turn sending BGP update messages to the router R3. Of course, this process can be bidirectional, namely each router R1, R2, R3, R4, R5 is both receiving and transmitting BGP update messages to one another. In this context, the routers R1, R3, R4, R5 can be referred to as peers or neighbors of the router R2. Also, those skilled in the art will recognize each router R1, R2, R3, R4, R5 can be in a separate AS (external BGP), the routers R1, R2, R3, R4, R5 can all be in the same AS (internal BGP), as well as any combination thereof. Stated differently, the present disclosure can be used in either iBGP, eBGP, or both. The routers R1, R2, R3, R4, R5 can be referred to as BGP routers as well.
The BGP router R2 includes receive buffers 12, communicatively coupled to ports (not shown) that are connected to its BGP peers, e.g., in this case since we are illustrating the routers R1, R4, R5 sending BGP updates, the receive buffers 12 are connected thereto. The BGP router R2 further includes transmit buffers 14 communicatively coupled to ports (not shown) that are connected to its BGP peers, e.g., in this case, to the router R3. The buffers 12, 14 are storage circuits used to buffer packets before they are sent out the ports, “on the wire,” or processed internally after being received, and while the buffers 12, 14 can buffer any packet, the present disclosure addresses BGP update messages (which are packets).
BGP includes various message types, e.g., open, update, keepalive, notification, but the present disclosure addresses the BGP update messages, which require processing on the router R2, and where such processing can overwhelm the router R2. The BGP router R2 receives prefixes (addition/withdrawals) from its BGP neighbors, the routers R1, R3, R4, R5, in the BGP update messages. As is known in the art, a prefix in BGP includes an Internet Protocol (IP) version 4 (IPv4) or version 6 (IPv6) address block that is being announced along with a path of AS numbers, indicating which ASNs the traffic must pass through to reach the announced address block. The BGP router R2 processes these prefixes, installs the routes into its RIB and announces them to other BGP peers.
The BGP router R2 includes three RIBs, a BGP ADJ-IN RIB connected to the receive buffers 12 and configured to receive incoming prefixes from the BGP update messages from the routers R1, R4, R5, where the incoming prefixes are received at an incoming rate, RATE1, of X prefixes per second, or any other measurement. The router R2 includes circuitry configured to filter the incoming prefixes in the BGP ADJ-IN RIB, according to policy, before they are installed in the second RIB, namely a BGP RIB, which can be filled up to some High Water Mark (HWM). The router R2 further includes circuitry configured to aggregate the prefixes in the BGP RIB for sending out router R2's own BGP update messages, e.g., to the router R3.
We had a key observation that, in the case where the router R2 is not able to handle the large number of routes (prefixes) or BGP update messages (due to memory limitation, processor overloads, or any other scale limiting factors), the router R2 can start behaving unexpectedly or become unresponsive. That is, the inability to handle the large number of routes or BGP update messages is due to any physical equipment, software configuration, etc. in the router R2. Also, since the router R2 may now, in its poor state with unexpected behavior, flood the large volume of updates to the iBGP network, it may lead to a complete network blackout. Other problems can include session flapping with unstable links, and the like. Also, when the router tries to reconnect, there is additional processing, further exacerbating the situation.
Prefix filtering is helpful to manage the size of the RIB given physical capabilities of a router, namely memory and storage space. Of course, filtering also requires processor capability to perform the various techniques. Generally, prefix filtering does not alleviate issues when the BGP updates are at rates beyond the physical capabilities of a router. In general filters are configured to block propagation of routes beyond a certain point. These filtering mechanisms work well in current deployments but are prone to errors during re-configuration, upgrades, and policy updates. Terminating a BGP relationship is another possible approach to reducing the rates, but this causes the network routes in the terminated domain to go dark and be inaccessible.
There is no solution existing to apply backpressure to the prefix announcing peer. As described herein, the term backpressure, in networking as well as in the present disclosure, means some ability to control the rate of BGP update messages from an upstream router, e.g., the router R2 being able to control the BGP update messages being sent from any of the routers R1, R4, R5.
BGP Backpressure Notification
The present disclosure includes updates and additional functionality in BGP to support backpressure notification where a given router R1, R4, R5 can either stop sending BGP update messages for a given time or until a further notification, as well as reduce a rate of the BGP update messages, again for a given time or until a further notification. This backpressure described herein contemplates operation with existing prefix filtering approaches. In particular, we believe, even in a perfect prefix filtering scheme, there are situations where the router R2 can behave unexpectedly or become unresponsive. Also, the backpressure described herein contemplates replacing any termination of the BGP neighborship and affecting the existing configured traffic paths, thereby not affecting existing configured traffic paths.
Even further, the backpressure described herein can be used with routers that may not support this functionality, thereby preserving compatibility and backwards compatibility with BGP routers. In this case, a router R4, e.g., receiving a backpressure notification and not being configured to apply the backpressure, the router R2 can realize this is not possible with the router R4 (by noticing no change in rates) and apply more backpressure to other routers, e.g., router R1, that do support the backpressure notification. Also, assume none of its BGP router peers support this functionality, the router R2 can apply backpressure solely itself on its outgoing BGP update messages. Here, the router R2 can mitigate any unexpected behaviors on the network by limiting itself.
Example Backpressure Operation
FIG. 2 is a network diagram of the network 10 focusing on the routers R1, R2 for illustrating the application of backpressure. FIG. 3 is a network diagram of the network 10 focusing on the routers R1, R2 for illustrating the removal of backpressure. In this example, the routers R1, R2 both support the backpressure notification, application, and removal. The router R2 can be configured with some limit to detect a threshold and to detect the threshold has been reached. Here, we describe this threshold as a HWM limit. In this example, the threshold can be a HWM limit of the incoming rate, RATE1, a HWM limit in the BGP RIB, a limit set at level 1 (L1), and the like. Here, the L1 and/or RATE1 threshold are physical indications that can be monitored and detected at the router R2. Those skilled in the art will recognize these are example technique to detect a high rate and others are contemplated, such as some processor thresholds related to BGP prefix processing, and the like. The key here is there is some way to locally detect at the router R2 that the processing of BGP update messages has become intense, problematic, etc. such that some poor behavior is at risk. Also, the present disclosure contemplates multiple criteria for detection. For example, the router R2 has its HWM limit L1 reached in the BGP RIB, and the prefix receive rate from a peer (say router R1) is more than the upper limit RATE1. Those skilled in the art will recognize there can be any implementation for this detection; all of which are contemplated herewith, as well as combinations thereof. That is, the RIB HWM L1 and prefix rate RATE1 can also be inferred as a function of memory and processor utilization.
Also, assume the router R2 has multiple peers, which practically will always be the case, the detection can be generalized to all peers, to a subset of peers, as well as to individual peers. Note, depending on the criteria being monitored, some apply individually to peers, such as the incoming rate RATE1, whereas other criteria apply locally to the router R2, such as the HWM limit L1 in the BGP RIB. Whether the detection is individual, e.g., router R1 is sending at a rate over the limit RATE1, or global, e.g., the BGP RIB in the router R2, determines who gets the notifications, what the notifications ask for, etc. The detection can also be applied to some or all peers differently. For example, each peer is monitored for the incoming rate RATE1, and only those peers which exceed the rate will receive the new BGP backpressure notification. Also, there can be a cumulative rate exceeding some other limit, say RATE2, that is tracked and leads to backpressure notification to the peer(s) contributing the most until the cumulative rate RATE2 drops below the configured threshold. The cumulative rate can include the rate of all incoming prefixes from all BGP peers.
Note, step 1 in each of in FIGS. 2 and 3 relates to detection of the need for backpressure, namely some HWM has been reached (FIG. 2 ), and the opportunity to remove the backpressure, namely the HWM has been clearer (FIG. 3 ), as well as some hysteresis threshold to prevent flapping. Upon detection in FIG. 2 , the router R2 sends a BGP backpressure notification message to the router R1 (FIG. 2 , step 2). For example, the detection in FIG. 2 can be the router R2 sending at a rate greater than RATE1 and/or the BGP RIB is filled greater than the HWM limit L1. In FIG. 2 , the BGP backpressure notification message is telling the router R1 to do something, namely apply backpressure (FIG. 2 , step 3). Again, the present disclosure defines backpressure as anything that reduces the transmission rate of BGP updates, e.g., delaying for a period of time, stopping for a period of time, reducing the rate for a period of time, and the like. Once the router R1 receives the backpressure notification message, it applies the backpressure to block or reduce BGP updates (FIG. 2 , step 4).
The objective is to alleviate the condition at the router R2 that causes the need for the backpressure notification message. In FIG. 3 , step 1, at some point, it is determined the backpressure has been successful and the causing condition (HWM) has cleared. This triggers the router R2 to send another BGP backpressure notification message to the router R1 (FIG. 3 , step 2), which notifies the router R1 to remove the backpressure (i.e., resume normal operations, FIG. 3 , step 3), leading the router R1 to send normal BGP updates (FIG. 3 , step 4).
In this approach, we do not take down the BGP session which causes further BGP table route table announcements and updates. The set of backpressured sessions can create a linkage to the root of the problem and can be used by a network management solution for Root Cause Analysis (RCA), to remediate further problems with some upgrade or fix, e.g., memory or processor updates.
Example Notifications
The present disclosure includes a detection mechanism (described above), a backpressure application mechanism (also described above), and a notification mechanism (described herein). That is, there is a requirement for the router R2 to notify its peers to apply and remove backpressure. The present disclosure contemplates any such approach, and the following describes one example implementation, for illustrative purposes.
In an embodiment, the present disclosure includes a new BGP notification message, such as shown in FIG. 4 . RFC 4271, “A Border Gateway Protocol 4 (BGP-4),” January 2006, the contents of which are incorporated by reference, defines the BGP notification message in Sec. 4.5, and the error handling in Sec. 6. FIG. 4 is from Sec. 4.5 in RFC 4271. In an embodiment, we propose a new error code and new error subcode related to BGP backpressure notifications. Those skilled in the art will appreciate the following is merely an example.
Error code X (system overload)
Error sub-code 1 Y (apply backpressure)
Error sub-code 2 Z (remove backpressure)
When the router R1 receives the BGP notification with error code X and with error sub-code 1, it will apply backpressure to the BGP session to the router R2. After the router R2 clears the HWM condition whenever it detects normal CPU/memory/number of update messages. This can be clear via user intervention as well. Under that condition, the router R2 will send a BGP notification with error code X with error sub-code 2 and whenever router R1 receives the BGP notification with error code X with error sub-code, it will remove the backpressure.
Note, the BGP notification with the error code X is one approach. Here, the error code X can be a new error code as well as an existing error code. Of note, per RFC 4271, if a receiving router does not support the error code and the error sub-code, it brings down the BGP session. This may be undesirable. In an embodiment, there can be some indication, such as at BGP session creation, as to whether a given router supports backpressure. Again, the router R2 has flexibility for backpressure with its peers and it is undesirable to bring sessions down. Here, the router R2 would only send BGP notifications for backpressure to its peers that it knows support this feature. The router R2 can cause more backpressure with some peers, i.e., ones that support this feature, to address the fact that not every peer may support this feature. In an embodiment, this feature (capability) can be negotiated between routers.
Also, there can be some notification from the router R2 to a management system when there is a need for backpressure, e.g., an out of band notification can be sent towards a northbound interface so that user can take the appropriate action in overload situation. The appropriate action can include hardware upgrades, configuration changes, and the like.
Example Router
FIG. 5 is a block diagram of an example implementation of a router 100, such as the routers R1, R2, R3, R4, R5. Those of ordinary skill in the art will recognize FIG. 5 is a functional diagram in an oversimplified manner, and a practical embodiment may include additional components and suitably configured processing logic to support known or conventional operating features that are not described in detail herein.
In an embodiment, the router 100 is a packet switch, but those of ordinary skill in the art will recognize the systems and methods described herein can operate with other types of network elements and other implementations that support BGP. In this embodiment, the router 100 includes a plurality of modules 102, 104 interconnected via an interface 106. The modules 102, 104 are also known as blades, line cards, line modules, circuit packs, pluggable modules, etc. and generally refer to components mounted on a chassis, shelf, etc. of a data switching device, i.e., the router 100. Each of the modules 102, 104 can include numerous electronic devices and/or optical devices mounted on a circuit board along with various interconnects, including interfaces to the chassis, shelf, etc.
Two example modules are illustrated with line modules 102 and a control module 104. The line modules 102 include ports 108, such as a plurality of Ethernet ports. For example, the line module 102 can include a plurality of physical ports disposed on an exterior of the module 102 for receiving ingress/egress connections. Additionally, the line modules 102 can include switching components to form a switching fabric via the interface 106 between all of the ports 108, allowing data traffic to be switched/forwarded between the ports 108 on the various line modules 102. The switching fabric is a combination of hardware, software, firmware, etc. that moves data coming into the router 100 out by the correct port 108 to the next router 100. “Switching fabric” includes switching units in a node; integrated circuits contained in the switching units; and programming that allows switching paths to be controlled. Note, the switching fabric can be distributed on the modules 102, 104, in a separate module (not shown), integrated on the line module 102, or a combination thereof.
The control module 104 can include a microprocessor, memory, software, and a network interface. Specifically, the microprocessor, the memory, and the software can collectively control, configure, provision, monitor, etc. the router 100. The network interface may be utilized to communicate with an element manager, a network management system, etc. Additionally, the control module 104 can include a database that tracks and maintains provisioning, configuration, operational data, and the like.
Again, those of ordinary skill in the art will recognize the router 100 can include other components which are omitted for illustration purposes, and that the systems and methods described herein are contemplated for use with a plurality of different network elements with the router 100 presented as an example type of network element. For example, in another embodiment, the router 100 may include corresponding functionality in a distributed fashion. In a further embodiment, the chassis and modules may be a single integrated unit, namely a rack-mounted shelf where the functionality of the modules 102, 104 is built-in, i.e., a “pizza-box” configuration. That is, FIG. 5 is meant to provide a functional view, and those of ordinary skill in the art will recognize actual hardware implementations may vary.
Example Controller
FIG. 6 is a block diagram of an example processing device 200, which can form a control module for the router 100, etc. The processing device 200 can be part of the router 100, or a stand-alone device communicatively coupled to the router 100. Also, the processing device 200 can be referred to in implementations as a control module, a shelf controller, a shelf processor, a system controller, etc. The processing device 200 can include a processor 202 which is a hardware device for executing software instructions. The processor 202 can be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the processing device 200, a semiconductor-based microprocessor (in the form of a microchip or chipset), or generally any device for executing software instructions. When the processing device 200 is in operation, the processor 202 is configured to execute software stored within the memory, to communicate data to and from the memory, and to generally control operations of the processing device 200 pursuant to the software instructions. The processing device 200 can also include a network interface 204, a data store 206, memory 208, an I/O interface 210, and the like, all of which are communicatively coupled to one another and to the processor 202.
The network interface 204 can be used to enable the processing device 200 to communicate on a data communication network, such as to communicate to a management system. The network interface 204 can include, for example, an Ethernet module. The network interface 204 can include address, control, and/or data connections to enable appropriate communications on the network. The data store 206 can be used to store data, such as control plane information, provisioning data, Operations, Administration, Maintenance, and Provisioning (OAM&P) data, etc. The data store 206 can include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, and the like)), nonvolatile memory elements (e.g., ROM, hard drive, flash drive, CDROM, and the like), and combinations thereof. Moreover, the data store 206 can incorporate electronic, magnetic, optical, and/or other types of storage media. The memory 208 can include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)), nonvolatile memory elements (e.g., ROM, hard drive, flash drive, CDROM, etc.), and combinations thereof. Moreover, the memory 208 may incorporate electronic, magnetic, optical, and/or other types of storage media. Note that the memory 208 can have a distributed architecture, where various components are situated remotely from one another, but may be accessed by the processor 202. The I/O interface 210 includes components for the processing device 200 to communicate with other devices.
BGP Backpressure Process
FIG. 7 is a flowchart of a process 300 for backpressure notifications to peers for Border Gateway Protocol (BGP) updates. The process 300 contemplates implementation as a method having steps, via a processing device configured to execute the steps, and/or as a non-transitory computer-readable medium storing instructions that, when executed, cause one or more processors to implement the steps. For example, the process 300 is described with reference to the router R2 and its associated actions. The process 300 relates to the transmission of backpressure notification messages to cause BGP peers to apply/remove backpressure. Those skilled in the art will recognize there is also functionality implemented at the BGP peers, namely receipt of the backpressure notification messages and actions (application of or removal of backpressure).
The process 300 includes receiving BGP updates from one or more BGP peers connected to the router (step 302); detecting a trigger related to BGP updates where the trigger is indicative of a need to apply backpressure by the one or more BGP peers (step 304); and sending a backpressure notification message to the one or more BGP peers based on the trigger, such that the one or more BGP peers apply the backpressure (step 306). The process 300 further includes monitoring one or more criteria associated with operation of the router, for the trigger (step 308). The one or more criteria can include any of an incoming rate of prefixes from BGP update messages, a fill rate of a Routing Information Base (RIB), memory usage, and processor usage.
The process 300 can further include detecting the trigger related to BGP updates has cleared (step 310); and sending a second backpressure notification message to the one or more BGP peers based on the trigger, such that the one or more BGP peers remove the backpressure (step 312). The trigger can clear when a High Water Mark (HWM) is clear along with some optional hysteresis level. Of note, the removal of the backpressure can revert implicitly.
The backpressure can include the one or more BGP peers pausing the BGP updates to the router. The backpressure can include the one or more BGP peers reducing the BGP updates to the router.
The process 300 can further include determining which BGP peers support the backpressure, and responsive to the trigger, constraining the backpressure notification message to the one or more BGP peers where the one or more BGP peers support the backpressure. The determining can be based on the exchange of capability information, configuration, advertisements, etc.
The backpressure notification message can be a BGP notification message having a specific error code designating backpressure, and an error sub-code to designate whether to apply backpressure and whether to remove backpressure.
CONCLUSION
It will be appreciated that some embodiments described herein may include one or more generic or specialized processors (“one or more processors”) such as microprocessors; central processing units (CPUs); digital signal processors (DSPs): customized processors such as network processors (NPs) or network processing units (NPUs), graphics processing units (GPUs), or the like; field programmable gate arrays (FPGAs); and the like along with unique stored program instructions (including both software and firmware) for control thereof to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the methods and/or systems described herein. Alternatively, some or all functions may be implemented by a state machine that has no stored program instructions, or in one or more application-specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic or circuitry. Of course, a combination of the aforementioned approaches may be used. For some of the embodiments described herein, a corresponding device in hardware and optionally with software, firmware, and a combination thereof can be referred to as “circuitry configured or adapted to,” “logic configured or adapted to,” etc. perform a set of operations, steps, methods, processes, algorithms, functions, techniques, etc. on digital and/or analog signals as described herein for the various embodiments.
Moreover, some embodiments may include a non-transitory computer-readable storage medium having computer-readable code stored thereon for programming a computer, server, appliance, device, processor, circuit, etc. each of which may include a processor to perform functions as described and claimed herein. Examples of such computer-readable storage mediums include, but are not limited to, a hard disk, an optical storage device, a magnetic storage device, a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), Flash memory, and the like. When stored in the non-transitory computer-readable medium, software can include instructions executable by a processor or device (e.g., any type of programmable circuitry or logic) that, in response to such execution, cause a processor or the device to perform a set of operations, steps, methods, processes, algorithms, functions, techniques, etc. as described herein for the various embodiments.
Although the present disclosure has been illustrated and described herein with reference to preferred embodiments and specific examples thereof, it will be readily apparent to those of ordinary skill in the art that other embodiments and examples may perform similar functions and/or achieve like results. All such equivalent embodiments and examples are within the spirit and scope of the present disclosure, are contemplated thereby, and are intended to be covered by the following claims. The foregoing sections include headers for various embodiments and those skilled in the art will appreciate these various embodiments may be used in combination with one another as well as individually.

Claims (18)

What is claimed is:
1. A router configured to implement Border Gateway Protocol (BGP), the router comprising circuitry configured to:
receive BGP updates from one or more BGP peers connected to the router,
detect a trigger related to BGP updates where the trigger is indicative of a need to apply backpressure by the one or more BGP peers, wherein the trigger is based at least on a fill rate of a Routing Information Base (RIB) based on the received BGP updates, and
send a backpressure notification message to the one or more BGP peers based on the trigger, such that the one or more BGP peers apply the backpressure, wherein the backpressure notification message is a BGP notification message having a specific error code designating backpressure, and an error sub-code to designate whether to apply backpressure and whether to remove backpressure.
2. The router of claim 1, wherein the circuitry is further configured to monitor one or more criteria associated with operation of the router, for the trigger.
3. The router of claim 2, wherein the one or more criteria include any of an incoming rate of prefixes from BGP update messages, the fill rate of the RIB, memory usage, and processor usage.
4. The router of claim 1, wherein the circuitry is further configured to
detect the trigger related to BGP updates has cleared, and
send a second backpressure notification message to the one or more BGP peers based on the trigger, such that the one or more BGP peers remove the backpressure.
5. The router of claim 1, wherein the RIB is a data table in the router storing network destinations based on the BGP updates, and wherein the trigger is utilized to ensure the BGP updates do not overwhelm the RIB.
6. The router of claim 1, wherein the backpressure includes the one or more BGP peers one or more of pausing and reducing the BGP updates to the router.
7. The router of claim 1, wherein the circuitry is further configured to
responsive to detecting a need to remove the backpressure, cause deactivation of the backpressure.
8. The router of claim 1, wherein the circuitry is further configured to
determine which of the one or more BGP peers support the backpressure, and
responsive to the trigger, constrain the backpressure notification message to the one or more BGP peers where the one or more BGP peers support the backpressure.
9. A method implemented in a router configured to implement Border Gateway Protocol (BGP), the method comprising steps of:
receiving BGP updates from one or more BGP peers connected to the router;
detecting a trigger related to BGP updates where the trigger is indicative of a need to apply backpressure by the one or more BGP peers, wherein the trigger is based at least on a fill rate of a Routing Information Base (RIB) based on the received BGP updates; and
sending a backpressure notification message to the one or more BGP peers based on the trigger, such that the one or more BGP peers apply the backpressure, wherein the backpressure notification message is a BGP notification message having a specific error code designating backpressure, and an error sub-code to designate whether to apply backpressure and whether to remove backpressure.
10. The method of claim 9, wherein the steps further include
monitoring one or more criteria associated with operation of the router, for the trigger.
11. The method of claim 10, wherein the one or more criteria include any of an incoming rate of prefixes from BGP update messages, the fill rate of the RIB, memory usage, and processor usage.
12. The method of claim 9, wherein the steps further include
detecting the trigger related to BGP updates has cleared; and
sending a second backpressure notification message to the one or more BGP peers based on the trigger, such that the one or more BGP peers remove the backpressure.
13. The method of claim 9, wherein the RIB is a data table in the router storing network destinations based on the BGP updates, and wherein the trigger is utilized to ensure the BGP updates do not overwhelm the RIB.
14. The method of claim 9, wherein the backpressure includes the one or more BGP peers one or more of pausing and reducing the BGP updates to the router.
15. The method of claim 9, wherein the steps further include
responsive to detecting a need to remove the backpressure, causing deactivation of the backpressure.
16. The method of claim 9, wherein the steps further include
determining which of the one or more BGP peers support the backpressure, and
responsive to the trigger, constraining the backpressure notification message to the one or more BGP peers where the one or more BGP peers support the backpressure.
17. A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors in a router configured to implement Border Gateway Protocol (BGP), cause the one or more processors to perform steps of:
receiving BGP updates from one or more BGP peers connected to the router;
detecting a trigger related to BGP updates where the trigger is indicative of a need to apply backpressure by the one or more BGP peers, wherein the trigger is based at least on a fill rate of a Routing Information Base (RIB) based on the received BGP updates; and
sending a backpressure notification message to the one or more BGP peers based on the trigger, such that the one or more BGP peers apply the backpressure, wherein the backpressure notification message is a BGP notification message having a specific error code designating backpressure, and an error sub-code to designate whether to apply backpressure and whether to remove backpressure.
18. The non-transitory computer-readable medium of claim 17, wherein the steps further include
monitoring one or more criteria associated with operation of the router, for the trigger.
US18/326,726 2023-04-13 2023-05-31 Backpressure notifications to peers for BGP updates Active US12206601B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP24161502.0A EP4447400A1 (en) 2023-04-13 2024-03-05 Backpressure notifications to peers for bgp updates
US18/983,608 US20250119395A1 (en) 2023-04-13 2024-12-17 Backpressure notifications to peers for BGP updates

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN202311027415 2023-04-13
IN202311027415 2023-04-13

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/983,608 Continuation US20250119395A1 (en) 2023-04-13 2024-12-17 Backpressure notifications to peers for BGP updates

Publications (2)

Publication Number Publication Date
US20240348564A1 US20240348564A1 (en) 2024-10-17
US12206601B2 true US12206601B2 (en) 2025-01-21

Family

ID=93016099

Family Applications (1)

Application Number Title Priority Date Filing Date
US18/326,726 Active US12206601B2 (en) 2023-04-13 2023-05-31 Backpressure notifications to peers for BGP updates

Country Status (1)

Country Link
US (1) US12206601B2 (en)

Citations (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020009081A1 (en) 2000-06-09 2002-01-24 Broadcom Corporation Gigabit switch with frame forwarding and address learning
US6480899B1 (en) 1999-09-08 2002-11-12 Nortel Networks Limited Differentiated services IP quality of services round trip time aware intelligent traffic conditioner in an ingress node of virtual private networks
WO2002103965A1 (en) 2001-06-14 2002-12-27 Tropic Networks Inc. Methods and apparatus for selecting multiple paths taking into account shared risk
CA2358174A1 (en) 2001-10-01 2003-04-01 Tropic Networks Inc. A label switched communication network and system and method for path restoration
US20030063613A1 (en) 2001-09-28 2003-04-03 Carpini Walter Joseph Label switched communication network and system and method for path restoration
US20030193898A1 (en) 2002-04-15 2003-10-16 Wong Vincent Chi Chiu Method and apparatus for selecting maximally disjoint shortest paths in a network
US6646988B1 (en) 2000-01-31 2003-11-11 Nortel Networks Limited System, device, and method for allocating excess bandwidth in a differentiated services communication network
US20040234197A1 (en) 2002-07-10 2004-11-25 Ng Eddie Kai Ho Method and system for determining location and value of dispersion compensating modules in an optical network
US20050177634A1 (en) * 2004-02-10 2005-08-11 Scudder John G. Technique for graceful shutdown of a routing protocol in a network
CA2350449C (en) 2001-06-14 2006-01-03 Tropic Networks Inc. Methods and apparatus for selecting multiple paths taking into account shared risk
US20080089348A1 (en) * 2006-10-13 2008-04-17 Chandrashekhar Appanna Fast border gateway protocol synchronization
US7492714B1 (en) * 2003-02-04 2009-02-17 Pmc-Sierra, Inc. Method and apparatus for packet grooming and aggregation
US7978607B1 (en) * 2008-08-29 2011-07-12 Brocade Communications Systems, Inc. Source-based congestion detection and control
US8666247B2 (en) 2010-08-25 2014-03-04 Ciena Corporation Bandwidth defragmentation systems and methods in optical networks
US8682160B2 (en) 2012-02-02 2014-03-25 Ciena Corporation Path computation systems and methods in optical networks
US8718471B2 (en) 2012-04-09 2014-05-06 Ciena Corporation Optical transport network transient management systems and methods
US8737235B2 (en) 2005-12-27 2014-05-27 Cavesson Software Llc Real-time network analyzer
US8818198B2 (en) 2012-01-05 2014-08-26 Ciena Corporation Photonic link information collection and advertisement systems and methods
US8854955B2 (en) 2012-11-02 2014-10-07 Ciena Corporation Mesh restoration and bandwidth allocation systems and methods for shared risk connection groups
US20150117850A1 (en) 2013-10-13 2015-04-30 Ciena Corporation Optimization of photonic services with colorless and directionless architecture
US9054831B2 (en) 2012-01-05 2015-06-09 Ciena Corporation Optical communication network path restoration
US9118421B2 (en) 2012-05-16 2015-08-25 Ciena Corporation Extending control plane functions to the network edge in an optical transport network
IN2014DE00528A (en) 2014-02-25 2015-08-28 Ciena Corp
US9172658B2 (en) 2013-01-21 2015-10-27 Ciena Corporation Call setup systems and methods using dynamic link tagging and overbooking of links in multi-domain transport networks
US9407359B2 (en) 2014-07-30 2016-08-02 Ciena Corporation Localized network repair systems and methods
EP3051725A1 (en) 2015-01-30 2016-08-03 Ciena Corporation Control plane extensions for optical broadcast networks
US20160227303A1 (en) 2015-01-30 2016-08-04 Ciena Corporation Control plane extensions for optical broadcast networks
US9485550B2 (en) 2014-07-30 2016-11-01 Ciena Corporation Systems and methods for selection of optimal routing parameters for DWDM network services in a control plane network
US9485551B2 (en) 2013-09-25 2016-11-01 Ciena Corporation Enhanced routing and wavelength assignment techniques for reducing wavelength continuity blocking
US20170163489A1 (en) 2015-12-07 2017-06-08 Ciena Corporation Control plane discovery of services
US9800522B2 (en) 2014-10-13 2017-10-24 Ciena Corporation Make-before-break systems and methods decoupling a control plane from a data plane
US9985724B2 (en) 2016-09-09 2018-05-29 Ciena Corporation Horizontal synchronization extensions for service resizing in optical networks
US9992102B2 (en) 2015-08-28 2018-06-05 Ciena Corporation Methods and systems to select active and standby ports in link aggregation groups
US10003867B2 (en) 2016-08-31 2018-06-19 Ciena Corporation Disjoint path computation systems and methods in optical networks
US10038495B2 (en) 2014-06-13 2018-07-31 Ciena Corporation Systems and methods for statistical multiplexing with OTN and DWDM
US10097306B1 (en) 2017-11-02 2018-10-09 Ciena Corporation Path computation systems and methods in control plane based networks for photonic layer topologies
US10158448B2 (en) 2016-01-08 2018-12-18 Ciena Corporation Multilayer resource management and arbitration in transport networks
US10187144B2 (en) 2015-10-08 2019-01-22 Ciena Corporation Multi-layer network resiliency systems and methods
EP2963852B1 (en) 2014-06-13 2019-08-07 Ciena Corporation Systems and methods for statistical multiplexing with otn and dwdm
US10411806B2 (en) 2016-06-29 2019-09-10 Ciena Corporation Gridless optical routing and spectrum assignment
US10455300B2 (en) 2017-04-07 2019-10-22 Ciena Corporation Management of flexible grid and supercarriers in optical networks using a data model
US10536216B1 (en) 2018-07-24 2020-01-14 Ciena Corporation Service synchronization in retain home path scenarios in a control plane network
US10862797B2 (en) 2018-11-19 2020-12-08 Ciena Corporation Control and data plane synchronization during Make Before Break operations in Multiprotocol Label Switching
US20210042172A1 (en) 2019-08-09 2021-02-11 Ciena Corporation Normalizing messaging flows in a microservice architecture
WO2021030170A1 (en) 2019-08-09 2021-02-18 Ciena Corporation Normalizing messaging flows, optimizing messaging flows, and virtual programming in a microservice architecture
US10972359B2 (en) 2018-05-11 2021-04-06 Ciena Corporation Data structures representing models of networking equipment and methods of network management employing thereof
US11055155B2 (en) 2019-08-09 2021-07-06 Ciena Corporation Virtual programming in a microservice architecture
US20210250228A1 (en) 2020-02-12 2021-08-12 Ciena Corporation Identifying Border Gateway Protocol (BGP) anomalies at scale
US20220224629A1 (en) 2021-01-14 2022-07-14 Ciena Corporation BGP route aggregation exception systems and methods
EP2983314B1 (en) 2014-08-07 2023-01-11 Ciena Corporation Oduflex resizing systems and methods

Patent Citations (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480899B1 (en) 1999-09-08 2002-11-12 Nortel Networks Limited Differentiated services IP quality of services round trip time aware intelligent traffic conditioner in an ingress node of virtual private networks
US6646988B1 (en) 2000-01-31 2003-11-11 Nortel Networks Limited System, device, and method for allocating excess bandwidth in a differentiated services communication network
US20020009081A1 (en) 2000-06-09 2002-01-24 Broadcom Corporation Gigabit switch with frame forwarding and address learning
WO2002103965A1 (en) 2001-06-14 2002-12-27 Tropic Networks Inc. Methods and apparatus for selecting multiple paths taking into account shared risk
CA2350449C (en) 2001-06-14 2006-01-03 Tropic Networks Inc. Methods and apparatus for selecting multiple paths taking into account shared risk
US6882627B2 (en) 2001-06-14 2005-04-19 Tropic Networks Methods and apparatus for selecting multiple paths taking into account shared risk
US20030063613A1 (en) 2001-09-28 2003-04-03 Carpini Walter Joseph Label switched communication network and system and method for path restoration
CA2358174A1 (en) 2001-10-01 2003-04-01 Tropic Networks Inc. A label switched communication network and system and method for path restoration
US20030193898A1 (en) 2002-04-15 2003-10-16 Wong Vincent Chi Chiu Method and apparatus for selecting maximally disjoint shortest paths in a network
US20040234197A1 (en) 2002-07-10 2004-11-25 Ng Eddie Kai Ho Method and system for determining location and value of dispersion compensating modules in an optical network
US7492714B1 (en) * 2003-02-04 2009-02-17 Pmc-Sierra, Inc. Method and apparatus for packet grooming and aggregation
US20050177634A1 (en) * 2004-02-10 2005-08-11 Scudder John G. Technique for graceful shutdown of a routing protocol in a network
US8737235B2 (en) 2005-12-27 2014-05-27 Cavesson Software Llc Real-time network analyzer
US20080089348A1 (en) * 2006-10-13 2008-04-17 Chandrashekhar Appanna Fast border gateway protocol synchronization
US7978607B1 (en) * 2008-08-29 2011-07-12 Brocade Communications Systems, Inc. Source-based congestion detection and control
US8666247B2 (en) 2010-08-25 2014-03-04 Ciena Corporation Bandwidth defragmentation systems and methods in optical networks
US9054831B2 (en) 2012-01-05 2015-06-09 Ciena Corporation Optical communication network path restoration
US8818198B2 (en) 2012-01-05 2014-08-26 Ciena Corporation Photonic link information collection and advertisement systems and methods
US8682160B2 (en) 2012-02-02 2014-03-25 Ciena Corporation Path computation systems and methods in optical networks
US8718471B2 (en) 2012-04-09 2014-05-06 Ciena Corporation Optical transport network transient management systems and methods
US9118421B2 (en) 2012-05-16 2015-08-25 Ciena Corporation Extending control plane functions to the network edge in an optical transport network
US8854955B2 (en) 2012-11-02 2014-10-07 Ciena Corporation Mesh restoration and bandwidth allocation systems and methods for shared risk connection groups
US9172658B2 (en) 2013-01-21 2015-10-27 Ciena Corporation Call setup systems and methods using dynamic link tagging and overbooking of links in multi-domain transport networks
US9485551B2 (en) 2013-09-25 2016-11-01 Ciena Corporation Enhanced routing and wavelength assignment techniques for reducing wavelength continuity blocking
US20150117850A1 (en) 2013-10-13 2015-04-30 Ciena Corporation Optimization of photonic services with colorless and directionless architecture
IN2014DE00528A (en) 2014-02-25 2015-08-28 Ciena Corp
US10038495B2 (en) 2014-06-13 2018-07-31 Ciena Corporation Systems and methods for statistical multiplexing with OTN and DWDM
EP2963852B1 (en) 2014-06-13 2019-08-07 Ciena Corporation Systems and methods for statistical multiplexing with otn and dwdm
US9407359B2 (en) 2014-07-30 2016-08-02 Ciena Corporation Localized network repair systems and methods
US9485550B2 (en) 2014-07-30 2016-11-01 Ciena Corporation Systems and methods for selection of optimal routing parameters for DWDM network services in a control plane network
EP2983314B1 (en) 2014-08-07 2023-01-11 Ciena Corporation Oduflex resizing systems and methods
US9800522B2 (en) 2014-10-13 2017-10-24 Ciena Corporation Make-before-break systems and methods decoupling a control plane from a data plane
EP3051725A1 (en) 2015-01-30 2016-08-03 Ciena Corporation Control plane extensions for optical broadcast networks
US20160227303A1 (en) 2015-01-30 2016-08-04 Ciena Corporation Control plane extensions for optical broadcast networks
US9992102B2 (en) 2015-08-28 2018-06-05 Ciena Corporation Methods and systems to select active and standby ports in link aggregation groups
US10187144B2 (en) 2015-10-08 2019-01-22 Ciena Corporation Multi-layer network resiliency systems and methods
US20170163489A1 (en) 2015-12-07 2017-06-08 Ciena Corporation Control plane discovery of services
US10158448B2 (en) 2016-01-08 2018-12-18 Ciena Corporation Multilayer resource management and arbitration in transport networks
US10411806B2 (en) 2016-06-29 2019-09-10 Ciena Corporation Gridless optical routing and spectrum assignment
US10003867B2 (en) 2016-08-31 2018-06-19 Ciena Corporation Disjoint path computation systems and methods in optical networks
US9985724B2 (en) 2016-09-09 2018-05-29 Ciena Corporation Horizontal synchronization extensions for service resizing in optical networks
US10455300B2 (en) 2017-04-07 2019-10-22 Ciena Corporation Management of flexible grid and supercarriers in optical networks using a data model
US10097306B1 (en) 2017-11-02 2018-10-09 Ciena Corporation Path computation systems and methods in control plane based networks for photonic layer topologies
US10972359B2 (en) 2018-05-11 2021-04-06 Ciena Corporation Data structures representing models of networking equipment and methods of network management employing thereof
US10536216B1 (en) 2018-07-24 2020-01-14 Ciena Corporation Service synchronization in retain home path scenarios in a control plane network
US10862797B2 (en) 2018-11-19 2020-12-08 Ciena Corporation Control and data plane synchronization during Make Before Break operations in Multiprotocol Label Switching
US20210042172A1 (en) 2019-08-09 2021-02-11 Ciena Corporation Normalizing messaging flows in a microservice architecture
WO2021030170A1 (en) 2019-08-09 2021-02-18 Ciena Corporation Normalizing messaging flows, optimizing messaging flows, and virtual programming in a microservice architecture
US11055155B2 (en) 2019-08-09 2021-07-06 Ciena Corporation Virtual programming in a microservice architecture
US20210250228A1 (en) 2020-02-12 2021-08-12 Ciena Corporation Identifying Border Gateway Protocol (BGP) anomalies at scale
US11444828B2 (en) 2020-02-12 2022-09-13 Ciena Corporation Identifying border gateway protocol (BGP) anomalies at scale
US20220224629A1 (en) 2021-01-14 2022-07-14 Ciena Corporation BGP route aggregation exception systems and methods

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jul. 17, 2024, European Search Report for European Patent Application No. EP 24 16 1502.
Y. Rekhter et al., "A Border Gateway Protocol 4 (BGP-4)," Network Working Group, RFC 4271, Category Standards Track, The Internet Society, Jan. 2006, 103 Pages.

Also Published As

Publication number Publication date
US20240348564A1 (en) 2024-10-17

Similar Documents

Publication Publication Date Title
US12289198B2 (en) Network performance monitoring and fault management based on wide area network link health assessments
US8125911B2 (en) First-hop domain reliability measurement and load balancing in a computer network
US10225169B2 (en) Method and apparatus for autonomously relaying statistics to a network controller in a software-defined networking network
US8468590B2 (en) Rate limiting data traffic in a network
US7706281B2 (en) Selecting paths in multi-homed transport-layer network associations
US8948008B2 (en) Drop sensitive prefix (BGP path) attribute modification
US9838317B1 (en) Policy-based selective traffic reroute based on predicted traffic loss
US20130055374A1 (en) System and Method for Denial of Service Attack Mitigation Using Cloud Services
US9602374B2 (en) Systems and methods for collecting and analyzing data to determine link quality and stability in layer two networks
CN111541560A (en) Method and apparatus for partial software defined network switch replacement in IP networks
US8627137B1 (en) Graceful handling of critical traffic blackholing faults
US20090016356A1 (en) Method of operating a network
US9455894B1 (en) Selective fast re-route using forwarding plane liveliness detection protocols
CN110891018B (en) Network traffic recovery method and device, SDN controller and storage medium
US20090034542A1 (en) Method of operating a network
US11711281B2 (en) Methods and network devices for detecting and resolving abnormal routes
US20190260671A1 (en) Ethernet protection systems and methods with fast traffic recovery eliminating flooding, learning, and flushing
CN103891217A (en) Service assurance using network measurement triggers
US9769017B1 (en) Impending control plane disruption indication using forwarding plane liveliness detection protocols
CN108933818B (en) Communication method and device
US12206601B2 (en) Backpressure notifications to peers for BGP updates
US20250119395A1 (en) Backpressure notifications to peers for BGP updates
US10135670B2 (en) Response to an inoperative network device managed by a controller
US11765059B2 (en) Leveraging operation, administration and maintenance protocols (OAM) to add ethernet level intelligence to software-defined wide area network (SD-WAN) functionality
US11121964B2 (en) Data path retention during control plane failures in a multiprotocol label switching network

Legal Events

Date Code Title Description
AS Assignment

Owner name: CIENA CORPORATION, MARYLAND

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GIRI, MAHESH;MEHRA, ATUL;PRAKASH, ANURAG;AND OTHERS;SIGNING DATES FROM 20230410 TO 20230412;REEL/FRAME:063814/0117

FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

ZAAB Notice of allowance mailed

Free format text: ORIGINAL CODE: MN/=.

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED

STCF Information on status: patent grant

Free format text: PATENTED CASE