Protecting a label switched path egress without using downstream labels

A computer program product comprising computer executable instructions stored on a non-transitory computer readable medium such that when executed by a processor cause a network element to protect a label switched network against egress node failure by receiving a primary service label and a backup service label from an upstream node in the network, receiving data traffic comprising the primary service label from the upstream node for transmitting to a downstream node in the network, determining a status of a primary egress node in the network, the primary egress node being associated with a primary label switching path, forwarding the data traffic according to a primary label switching path when the primary egress node is operating properly, and replacing the primary service label with the backup service label and forwarding the data traffic according to a backup label switching path when the primary egress node has failed.

Not applicable.

REFERENCE TO A MICROFICHE APPENDIX

Not applicable.

BACKGROUND

In a label switched network, data packets are forwarded according to a preset path from a source to a destination. The preset path is defined by a plurality of labels that indicate links or hops between routers in the network. Because the path is preset, each router in the network is not be required to compute a path and create a forwarding entry prior to forwarding the data packets. Accordingly, each router may only maintain information on preset paths that have been established through the router. In some cases, a router may not know if another router downstream in the preset path has failed and a new path should be used. As such, a method of protecting the network against downstream failures is desirable.

SUMMARY

In one embodiment, the disclosure includes a method implemented in an internal node in a network comprising receiving a control message from an ingress node comprising a primary service label associated with a primary egress node and a primary label switched path (LSP) and a backup service label associated with a backup egress node and a backup LSP, establishing a bidirectional forwarding detection (BFD) session with the primary egress node, wherein the BFD session indicates a status of the primary egress node, forwarding data traffic received from an upstream node to the primary egress node according to the primary LSP when the BFD session indicates that the primary egress node is functioning properly, wherein the data traffic comprises the primary service label, forwarding data traffic received from the upstream node to the backup egress node according to the backup LSP when the BFD session indicates that the primary egress node is not functioning properly, and replacing the primary service label on the data traffic with the backup service label when the data traffic is forwarded to the backup egress node according to the backup LSP.

In another embodiment, the disclosure includes a network element comprising a receiver configured to receive a primary service label and a backup service label in a label switched network, and receive a data flow from an upstream node in the network, wherein the data flow is associated with the primary service label. The network element further comprises a processor coupled to the receiver and configured to establish a single-hop BFD session with a primary egress node in the network, forward the data flow to the primary egress node when the BFD session indicates the primary egress node is functioning, associate the data flow with the backup service label when the BFD session indicates the primary egress node has failed, and forward the data flow to a backup egress node. The network element further comprises a transmitter coupled to the processor and configured to transmit the data flow to a downstream node in the network in response to a determination by the processor of a location for transmitting the data flow.

In yet another embodiment, the disclosure includes a computer program product comprising computer executable instructions stored on a non-transitory computer readable medium such that when executed by a processor cause a network element to protect a label switched network against egress node failure by, receiving a primary service label and a backup service label from an upstream node in the network, receiving data traffic comprising the primary service label from the upstream node for transmitting to a downstream node in the network, determining a status of a primary egress node in the network that is associated with a primary LSP, forwarding the data traffic according to a primary LSP when the primary egress node is operating properly, and replacing the primary service label with the backup service label and forwarding the data traffic according to a backup LSP when the primary egress node has failed.

DETAILED DESCRIPTION

Disclosed herein is a protection scheme for protecting a label switched network against a failure of an egress node in a primary LSP. The protection scheme facilitates an internal node in the network that immediately precedes the egress node to locally protect against a failure of the egress node. The local protection enables the internal node to switch data traffic to a backup egress node. Such protection enables the network to recover rapidly from a failure of the egress node by replacing a primary label on the data traffic with a backup label before transmitting the data traffic to the backup egress node. The protection scheme discussed herein are also discussed in Internet Engineering Task Force (IETF) documents draft-chen-mpls-p2mp-egress-protection-09 and draft-ietf-mpls-rsvp-egress-protection-02, both of which are incorporated by reference as if completely reproduced herein.

FIG. 1is a diagram of an embodiment of a label switched network100. Network100comprises an ingress node110, one or more internal nodes120, a primary egress node130, a backup egress node140, and in some embodiments is coupled to a source150, and a destination160. Network100may in some embodiments be a multiprotocol label switching (MPLS) network. A path through network100is referred to herein as a LSP and may be a point-to-point (P2P) LSP, or a point-to-multipoint (P2MP) LSP. Ingress node110communicates with source150, and as such, transports data (e.g., data packets of a data flow) between source150and network100. Source150may be a server, a domain, a network (e.g., an Internet Protocol (IP) network), a router, a gateway, network element, a personal computer (PC), and/or any other device capable of communicating with ingress node110to transmit data for transport through network100. Ingress node110is coupled to primary egress node130and/or backup egress node140via one or more internal nodes120. Accordingly, each internal node120communicates with other internal nodes120, ingress node110, primary egress node130, and/or backup egress node140. Primary egress node130and/or backup egress node140communicates with destination160, and as such, transports data (e.g., data packets of a data flow) between network100and destination160. Destination160may be a server, a domain, a network (e.g., an IP network), a router, a gateway, network element, a PC, and/or any other device capable of communicating with primary egress node130and/or backup egress node140to receive data transported through network100.

In some embodiments, the internal nodes120are label switched routers (LSRs) that are configured to modify or update labels on data packets transported through network100. Further, in some embodiments, ingress node110, primary egress node130, and/or backup egress node140are label edge routers (LERs) that are configured to insert and/or remove labels on data packets being transported from source150to destination160through network100.

At least some of the features/methods described in this disclosure are implemented in a network element. For instance, the features/methods of this disclosure may be implemented using hardware, firmware, and/or software installed to run on hardware.FIG. 2is a schematic diagram of an embodiment of a network element200that may be used to transport and process traffic through at least a portion of a network, such as network100, shown inFIG. 1. The network element200is any device (e.g., an access point, an access point station, a router, a switch, a gateway, a bridge, a server, a client, a user-equipment, a mobile communications device, etc.) which transports data through a network, system, and/or domain. Moreover, the terms network element, network node, network component, network module, network controller, and/or similar terms may be interchangeably used to generally describe a network device and do not have a particular or special meaning unless otherwise specifically stated and/or claimed within the disclosure. For example, network element200may be incorporated within any of ingress node110, internal nodes120, primary egress node130, backup egress node140, source150, and/or destination160, each shown inFIG. 1.

The network element200comprises one or more downstream ports210coupled to a transceiver (Tx/Rx)220, which comprise transmitters, receivers, or combinations thereof. The Tx/Rx220transmits and/or receives frames from other network nodes via the downstream ports210. Similarly, the network element200comprises another Tx/Rx220coupled to a plurality of upstream ports240, wherein the Tx/Rx220transmits and/or receives frames from other nodes via the upstream ports240. The downstream ports210and/or the upstream ports240include electrical and/or optical transmitting and/or receiving components. In another embodiment, the network element200comprises one or more antennas coupled to the Tx/Rx220. The Tx/Rx220transmits and/or receives data (e.g., packets) from other network elements via wired or wireless connections, depending on the embodiment.

A processor230is coupled to the Tx/Rx220and is configured to process the frames and/or determine to which nodes to send (e.g., transmit) the packets. In an embodiment, the processor230comprises one or more multi-core processors and/or memory modules250, which function as data stores, buffers, etc. The processor230is implemented as a general processor or as part of one or more application specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and/or digital signal processors (DSPs). Although illustrated as a single processor, the processor230is not so limited and may comprise multiple processors. The processor230is configured to communicate and/or process multi-destination frames.

FIG. 2illustrates that a memory module250is coupled to the processor230and is a non-transitory medium configured to store various types of data and/or instructions. Memory module250comprises memory devices including secondary storage, read-only memory (ROM), and random-access memory (RAM). The secondary storage is typically comprised of one or more disk drives, optical drives, solid-state drives (SSDs), and/or tape drives and is used for non-volatile storage of data and as an over-flow storage device if the RAM is not large enough to hold all working data. The secondary storage is used to store programs which are loaded into the RAM when such programs are selected for execution. The ROM is used to store instructions and perhaps data that are read during program execution. The ROM is a non-volatile memory device which typically has a small memory capacity relative to the larger memory capacity of the secondary storage. The RAM is used to store volatile data and perhaps to store instructions. Access to both the ROM and RAM is typically faster than to the secondary storage.

The memory module250is used to house the instructions for carrying out the various embodiments described herein. In one embodiment, the memory module250comprises a BFD module260which is implemented via execution by the processor230. In an alternate embodiment, the processor230comprises the BFD module260. In one embodiment, the BFD module260is implemented according to embodiments of the present disclosure to detect a failure of another network element and/or network node in a network shared with network element200. For example, BFD module260may be configured to identify a failure of the other network element due to not receiving a response to a demand transmitted to the other network element and/or not receiving a periodical communication from the other network element. The memory module250further comprises a LSP egress failure protection module270which is implemented via execution by processor230. In an alternative embodiment, the processor230comprises the LSP egress failure protection module270. In one embodiment, the LSP egress failure protection module270is implemented to protect the network from a failure of a network element serving as a primary egress node in the network (e.g., primary egress node130). LSP egress failure protection module270protects the network by rerouting data traffic to a backup network element and/or backup egress node in the network (e.g., backup egress node140) when BFD module260indicates that the other network element that is serving as a primary egress node has failed and/or is not functioning properly. Rerouting the traffic comprises LSP egress failure protection module270replacing a primary service label on the data traffic with a backup service label and transmitting the data traffic to the backup network element and/or backup egress node. In an alternate embodiment, BFD module260and LSP egress failure protection module270may be implemented on different network elements (NEs) or across a plurality of NEs.

Any processing of the present disclosure may be implemented by causing a processor (e.g., a general purpose multi-core processor) to execute a computer program. In this case, a computer program product can be provided to a computer or a network device using any type of non-transitory computer readable media. The computer program product may be stored in a non-transitory computer readable medium in the computer or the network device. Non-transitory computer readable media include any type of tangible storage media. Examples of non-transitory computer readable media include magnetic storage media (such as floppy disks, magnetic tapes, hard disk drives, etc.), optical magnetic storage media (e.g., magneto-optical disks), compact disc read-only memory (CD-ROM), compact disc recordable (CD-R), compact disc rewritable (CD-R/W), digital versatile disc (DVD), Blu-ray (registered trademark) disc (BD), and semiconductor memories (such as mask ROM, programmable ROM (PROM), erasable PROM, flash ROM, and RAM). The computer program product may also be provided to a computer or a network device using any type of transitory computer readable media. Examples of transitory computer readable media include electric signals, optical signals, and electromagnetic waves. Transitory computer readable media can provide the program to a computer via a wired communication line (e.g., electric wires, and optical fibers) or a wireless communication line.

FIG. 3is a diagram of an embodiment of a protected label switched network300. Network300comprises an ingress node310, one or more internal nodes320, a primary egress node330, and a backup egress node340, and in some embodiments is coupled to a source350, and a destination360, which may be substantially similar to ingress node110, internal nodes120, primary egress node130, backup egress node140, source150, and destination160, respectively, shown inFIG. 1. Network300further comprises a primary LSP370that links ingress node310to primary egress node330for transporting data from source350to destination360. To protect network300against a failure of primary egress node330, in some embodiments network300further comprises a backup LSP380that links an immediately preceding previous hop (e.g., internal node320G) of primary egress node330with backup egress node340.

As shown inFIG. 3, in some embodiments backup LSP380exists only between internal node320G and backup egress node340. In other embodiments, a backup LSP380is established between any internal node320in primary LSP370and backup egress node340. As such, backup LSP380protects network300against the failure of primary egress node330while utilizing primary LSP370for routing in network300between ingress node310and the internal node320G. Establishing backup LSP380between internal node320G and backup egress node340rather than creating a fully diverse or disjoint backup LSP between ingress node310and backup egress node340reduces an amount of network resource needed to create a protected network, simplify operation of the protected network, and/or facilitate a rapid network response to protect against egress failure (e.g., restoring delivery of data to destination360in about 50 milliseconds). To determine when primary egress node330has failed and backup LSP380should be used, a BFD session390is created between internal node320G and primary egress node330. BFD session390transmits data packets between internal node320G and primary egress node330periodically and/or on demand to verify primary egress node330is functioning properly and has not failed. When BFD session390indicates that primary egress node330has failed and can no longer deliver data to destination360according to primary LSP370, internal node320G switches to backup LSP380to deliver the data to destination360through backup egress node340.

In an embodiment of network300, source350transmits data to ingress node310for delivery to destination360via network300. Ingress node310determines primary LSP370for the data through network300to primary egress node330and pushes a label onto the data that describes links between nodes over which the data should be sent and/or nodes in network300to which the data should be sent. Ingress node310transmits information to the nodes in the network (e.g., nodes along the path determined by ingress node310) describing primary LSP370for the data through network300. Each node receiving the information stores the information locally, for example, as one or more entries in a forwarding table.

When or after primary egress node330determines a primary service label for the data and transmits a primary service label in a first message (e.g., a Border Gateway Protocol (BGP) message) to ingress node310, backup egress node340determines a backup service label for the data and transmits a backup service label to ingress node310in a second message. In addition to the primary service label, the first message contains a route associated with the primary service label, which is used for forwarding the data with the route from primary egress node330in network300to destination360outside of network300. The first message contains other information associated with the primary service label in some embodiments. For example, for a layer 3 virtual private network (L3VPN) service, the first message contains information such as a route distinguisher (RD) and a route target (RT) for identifying a virtual private network (VPN). For the route associated with the primary service label in the first message, the second message containing the backup service label will comprise the same route and a backup service label, which is used for forwarding the data with the route from backup egress node340in network300to destination360outside of network300. In some embodiments, the primary service label and the backup service label are the same label. In some embodiments, the primary service label and the backup service label are different labels. The second message contains the information for identifying the service, with such information being the same as information in the first message that is used for identifying the same service. Ingress node310determines that the service label in a message is the primary service label from the origin of the message. If the message is from primary egress node330, which is the egress node of LSP370, then the service label in the message is the primary service label. Ingress node310then combines the primary service label and the backup service label for the same service into an object and inserts the object into a path setup (PATH) message for LSP370for transporting the service. This PATH message is transmitted to internal node320G. In some embodiments, ingress node310sends the primary service label and the backup service label for the same service carried by LSP370to internal node320G through a BGP message. In addition to the primary service label and backup service label, the BGP message contains the information for identifying LSP370.

When primary egress node330determines to withdraw the primary service label and the route associated with the primary service label through sending a third message (e.g., a BGP message) to ingress node310, backup egress node340determines to withdraw the backup service label and the route associated with the backup service label through sending a fourth message to ingress node310. The third message contains the information associated with the primary service label for identifying the service. The fourth message contains the information associated with the backup service label for identifying the same service. After receiving the third message and the fourth message, ingress node310then removes the object containing the primary service label and the backup service label from the PATH message for LSP370for transporting the service. This updated PATH message is then transmitted to internal node320G.

In some embodiments, backup egress node340determines a backup service label for the data and transmits a backup service label in a message to primary egress node330. In addition to the backup service label, the message contains a route associated with the backup service label, and information for identifying a service. The backup service label is used for forwarding the data with the route from backup egress node340in network300to destination360outside of network300. After receiving the backup service label in the message, primary egress node330constructs an object comprising the backup service label and a primary service label. The primary service label is associated with the same route and service as the backup service label and is used for forwarding a service data from primary egress node330in network300to destination360outside of network300. The object is inserted into a path reservation (RESV) message for LSP370for carrying the service. The updated RESV message is transmitted to internal node320G.

Backup egress node340determines to withdraw the backup service label with the route through sending a message to primary egress node330. In addition to the backup service label and the route, the message contains the information for identifying a service. The backup service label is used for forwarding the data with the route from backup egress node340in network300to destination360outside of network300. After receiving the backup service label in the message, primary egress node330removes the object containing the primary service label and the backup service label from the RESV message for LSP370for carrying the service. The updated RESV message is transmitted to internal node320G.

Internal node320G utilizes the message received from ingress node310or primary egress node330in providing protection against a failure of primary egress node330of LSP370. To protect against a failure of primary egress node330, internal node320G updates a primary-backup service label table (PBSLT) containing a list of pairs of primary service label and backup service label, and establishes BFD session390with primary egress node330. The table is associated with LSP370. For the message with an inserted object containing a primary service label and backup service label, internal node320G adds the primary service label and backup service label as a pair into PBSLT. For the message with the removed object containing a primary service label and backup service label, internal node320G deletes the pair for the primary service label and backup service label from PBSLT. The BFD session390is referred to as a single-hop BFD session because it exists between internal node320G and primary egress node330without any intervening nodes. As such, and as shown inFIG. 3, internal node320G immediately precedes primary egress node330in network300(e.g., immediately precedes primary egress node330according to the sequential path of primary LSP370in network300). Internal node320G locally protects primary egress node330and/or network300against failure due to the proximity of internal node320G to primary egress node330in network300and the single-hop nature of the protection. Additionally, internal node320G immediately precedes backup egress node340in network300(e.g., immediately precedes backup egress node340in backup LSP380in network300). Internal node320G utilizes BFD session390to determine whether primary egress node330has failed or is operating properly.

When internal node320G determines, according to BFD session390, that primary egress node330is operating properly, data traffic that includes the primary service label is forwarded to primary egress node330according to primary LSP370. Primary egress node330then forwards the data traffic to destination360outside of network300according to the primary service label.

When internal node320G determines, according to BFD session390, that primary egress node330has failed and/or is not functioning properly, internal node320G replaces the primary service label with the backup service label in traffic being received from LSP370at internal node320G and including the primary service label through using the PBSLT associated with LSP370. After replacing the label, internal node320G forwards the data traffic to backup egress node340according to backup LSP380. Backup egress node340then forwards the data traffic to destination360outside of network300according to the backup service label.

By detecting a failure of primary egress node330and rerouting data traffic to backup egress node340, internal node320G protects network300from egress failure with a rapid recovery time and limited network resource usage.

FIG. 4is a flowchart of an embodiment of a method400for providing egress node failure protection in a network. Method400may be implemented in a network element (e.g., network element200, shown inFIG. 2) that operates in a network (e.g., a label switched network such as network300, shown inFIG. 3). At step410, the network element receives a message from an ingress node. The message is, for example, an MPLS PATH or a BGP UPDATE message and comprises a primary service label and a backup service label. The primary service label and a backup service label are determined by a primary egress node and a backup egress node, respectively, and are transmitted to the ingress node to be combined to form a part of the message. Alternatively, the network element receives a message from the primary egress node. For example, the message is an MPLS RESV or a BGP UPDATE message and comprises a primary service label and a backup service label determined by the primary egress node and the backup egress node, respectively.

At step420, the network element establishes a BFD session with the primary egress node. Establishing the BFD session enables the network element to monitor the primary egress node and have knowledge of a failure of the primary egress node. The BFD session comprises periodically transmitting data packets between the network element and the primary egress node to verify proper operation of the primary egress node. The BFD session further comprises a response indicating that the primary egress node is operating properly. The response is transmitted to the network element when the network element demands the response.

At step430, the network element determines whether the primary egress node is functioning properly according to the BFD session. If the egress node is functioning properly, at step440, the network element forwards data traffic received from an upstream node in a primary LSP in the network to the primary egress node. In some embodiments, the data traffic forwarded to the primary egress node comprises the primary service label.

At step450, if the egress node is not functioning properly, the network element replaces the primary service label that is included in the data traffic with the backup service label. In some embodiments, replacing the service label comprises popping the primary service label off of one or more data packets in the data traffic via a pop operation and pushing the backup service label onto the one or more data packets via a push operation. Alternatively, replacing the service label comprises executing a swap operation. After replacing the primary service label with the backup service label, the network element forwards the data traffic received from an upstream node in the primary LSP in the network to a backup egress node according to a backup LSP at step460. In some embodiments, the data traffic forwarded to the backup egress node comprises the backup service label.