# Patent

## Title
Hierarchical virtual private LAN service hub connectivity failure recovery

## Abstract

Techniques for recovering from hierarchical virtual private LAN service (HVPLS) hub connectivity failure are described herein. In one embodiment of the invention, a provider edge network element reuses an HVPLS spoke connectivity failure recovery mechanism in an MTU to protect against a failure of HVPLS hub connectivity. The PE network element monitors hub facing connectivity elements and declares a hub connectivity failure upon a certain amount of those hub facing connectivity elements failing, and fabricates a failure of its spoke facing connectivity elements causing the MTU to detect an HVPLS spoke connectivity failure and switch to a secondary HVPLS spoke connection. Other methods and apparatuses are described.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of application Ser. No. 12/060,122, filed Mar. 31, 2008, which is hereby incorporated by reference.


BACKGROUND
1. Field
Embodiments of the invention relate to the field of networking; and more specifically, to hierarchical virtual private LAN service (HVPLS) hub failure recovery.
2. Background
HVPLS (described in Internet Engineering Task Force (IETF) draft “draft-khandekar-ppvpn-hvpls-mpls-00”, dated November 2001) is an extension of Virtual Private LAN Service (VPLS) (described in Request For Comments (RFC) 4762 “Virtual Private LAN Service (VPLS) Using Label Distribution Protocol (LDP) Signaling”, dated January 2007). VPLS allows networks at separate geographical locations to communicate with each other across a wide area network (WAN) as if they were directly attached to each other in a local area network (LAN). Customer Edge (CE) network elements, which are on the edge of geographically separate customer networks, are connected to Provider Edge (PE) network elements on an MPLS provider network. VPLS pseudowires (sometimes referred to as virtual circuits) are created and carried over Multiprotocol Label Switching (MPLS) tunnels. A pseudowire is configured for each pair of CE network elements that are to be connected into a virtual private LAN (i.e., for each CE that wishes to contact another CE). VPLS requires a full mesh of tunnels exist between all the PE network elements that participate in the VPLS service. To reduce the amount of signaling overhead and packet replication requirement of the full mesh, hierarchical connectivity (i.e., HVPLS) may be used.
An HVPLS network includes two tiers; a spoke tier and a hub tier. The spoke tier typically includes a multi-tenant unit (MTU) that is geographically located near the customer (i.e., customer network devices (e.g., switches, hubs, routers, bridges, computers, etc.) may be directly coupled with the MTU). The MTU is typically directly coupled with a PE network element over a single pseudowire (e.g., spoke pseudowire) for each VPLS service (e.g., a primary termination point for HVPLS spoke traffic). The MTU is not directly coupled with the other PE network elements in the HVPLS network. Thus, the MTU has a single point of connectivity to the hub. The hub tier includes the PE network elements which are coupled with a full mesh of pseudowires (i.e., hub pseudowires).
To protect against the spoke pseudowire failing or the primary termination point (e.g., the directly coupled PE network element) failing, the MTU may be dual-homed into two PE network elements. For example, for each pseudowire between the MTU and the directly coupled PE network element (referred to as primary pseudowires), a secondary pseudowire communicatively couples the MTU with a different PE network element (e.g., a secondary termination point for HVPLS spoke traffic). The MTU typically is able to detect a failure of the primary spoke pseudowire and/or failure of the primary termination point. Upon detecting the failure, the MTU may switch to the secondary spoke pseudowire and send HVPLS traffic to the second termination point.



BRIEF DESCRIPTION OF THE DRAWINGS
The invention may best be understood by referring to the following description and accompanying drawings that are used to illustrate embodiments of the invention. In the drawings:
FIG. 1 is an exemplary data flow diagram illustrating reusing an HVPLS spoke recovery mechanism in an MTU to protect against a failure of HVPLS hub connectivity in a HVPLS network according to one embodiment of the invention;
FIG. 2 illustrates an exemplary provider edge network element configured to detect a failure of HVPLS hub connectivity and fabricate a failure of HVPLS spoke connectivity according to one embodiment of the invention;
FIG. 3 illustrates an exploded view of the HVPLS network illustrated in FIG. 1 with an exemplary configuration, according to one embodiment of the invention; and
FIGS. 4A and 4B are exemplary flow diagrams illustrating reusing an HVPLS spoke recovery mechanism in an MTU to protect against a failure of HVPLS hub connectivity according to one embodiment of the invention.



DETAILED DESCRIPTION
In the following description, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known circuits, structures and techniques have not been shown in detail in order not to obscure the understanding of this description. It will be appreciated, however, by one skilled in the art that the invention may be practiced without such specific details. In other instances, control structures, gate level circuits and full software instruction sequences have not been shown in detail in order not to obscure the invention. Those of ordinary skill in the art, with the included descriptions, will be able to implement appropriate functionality without undue experimentation.
References in the specification to “one embodiment”, “an embodiment”, “an example embodiment”, etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
In the following description and claims, the terms “coupled” and “connected,” along with their derivatives, may be used. It should be understood that these terms are not intended as synonyms for each other. “Coupled” is used to indicate that two or more elements, which may or may not be in direct physical or electrical contact with each other, co-operate or interact with each other. “Connected” is used to indicate the establishment of communication between two or more elements that are coupled with each other.
The techniques shown in the figures can be implemented using code and data stored and executed on one or more electronic devices (e.g., a computer, a network element, etc.). Such electronic devices store and communicate (internally and with other electronic devices over a network) code and data using machine-readable media, such as machine storage media (e.g., magnetic disks; optical disks; random access memory; read only memory; flash memory devices) and machine communication media (e.g., electrical, optical, acoustical or other form of propagated signals—such as carrier waves, infrared signals, digital signals, etc.). In addition, such electronic devices typically include a set of one or more processors coupled to one or more other components, such as a storage device, one or more user input/output devices (e.g., a keyboard and/or a display), and a network connection. The coupling of the set of processors and other components is typically through one or more busses and bridges (also termed as bus controllers). The storage device and signals carrying the network traffic respectively represent one or more machine storage media and machine communication media. Thus, the storage device of a given electronic device typically stores code and/or data for execution on the set of one or more processors of that electronic device. Of course, one or more parts of an embodiment of the invention may be implemented using different combinations of software, firmware, and/or hardware.
As used herein, a network element (e.g., a router, switch, bridge, etc.) is a piece of networking equipment, including hardware and software that communicatively interconnects other equipment on the network (e.g., other network elements, computer end stations, etc.). Subscriber computer end stations (e.g., workstations, laptops, palm tops, mobile phones, etc.) access content/services provided over the Internet and/or content/services provided on virtual private networks (VPNs) overlaid on the Internet. The content and/or services are typically provided by one or more server computing end stations belonging to a service or content provider, and may include public webpages (free content, store fronts, search services, etc.), private webpages (e.g., username/password accessed webpages providing email services, etc.), corporate networks over VPNs, etc. Typically, subscriber computing end stations are coupled (e.g., through customer premise equipment coupled to an access network, wirelessly to an access network) to edge network elements, which are coupled through core network elements of the Internet to the server computing end stations.
Some edge network elements support the configuration of multiple contexts. As used herein, each context is an instance of a virtual network element (e.g., a virtual router or a virtual bridge). Each context typically shares one or more computing resources (e.g., memory, processing cycles, etc.) with other contexts configured on the edge network element, yet is independently administrable. For example, in the case of multiple virtual routers, each of the virtual routers shares computing resources, but is separate from those other virtual routers regarding its management domain, authentication, authorization, and accounting (AAA) name space, IP address, and routing database(es). By this separation, service providers may employ multiple contexts to provide direct network access for customers and/or provide different classes of services for customers.
Within an edge network element, multiple interfaces may be configured. As used herein, each interface is a logical entity, typically configured as part of a context, which provides higher-layer protocol and service information (e.g., Layer 3 addressing) and is independent of physical ports and circuits. AAA may be provided for through an internal or external server, such as a RADIUS (Remote Authentication Dial-In User Service) or DIAMETER server. The AAA server provides subscriber records for subscribers that identify, among other subscriber configuration requirements, to which context (e.g., which of the virtual routers) the corresponding subscribers should be bound within the edge network element. As used herein, a binding forms an association between a physical entity (e.g., port, channel, etc.) or a logical entity (e.g., interface, virtual circuit, etc.) with a higher-layer protocol interface over which network protocols (e.g., routing protocols, bridging protocols) are configured for a given context. Subscriber data flows on the physical entity when some higher-layer protocol interface is configured and associated with that physical entity. By way of a summary example, AAA processing is performed to identify the subscriber record for a subscriber, that subscriber record identifies one or more virtual routers in the edge network element to which that subscriber's traffic should be bound, and the physical entity carrying that subscriber's traffic (e.g., the circuit) is bound to an interface of that virtual router.
A Provider Edge (PE) network element is a type of edge network element situated at the edge of the provider's network. A Customer Edge (PE) network element is a type of edge network element located at the customer premise and typically communicates with PE network elements.
A method and apparatus for HVPLS hub connectivity failure recovery is described. According to one embodiment of the invention, a provider edge network element reuses an HVPLS spoke connectivity failure recovery mechanism in an MTU to protect against a failure of HVPLS hub connectivity. The PE network element monitors hub facing connectivity elements and declares a hub connectivity failure upon a certain amount of those hub facing connectivity elements failing. In addition, the PE network element fabricates a failure of the spoke facing connectivity elements causing the MTU to detect an HVPLS spoke connectivity failure and switch to a secondary HVPLS spoke connection.
FIG. 1 is an exemplary data flow diagram illustrating reusing an HVPLS spoke recovery mechanism in an MTU to protect against a failure of HVPLS hub connectivity in a HVPLS network according to one embodiment of the invention. The operations of FIG. 1 will be described with reference to the exemplary embodiment of FIGS. 2, 3, 4A and 4B. However, it should be understood that the operations of FIG. 1 can be performed by embodiments of the invention other than discussed with reference to FIGS. 2, 3, 4A, and 4B, and the embodiments discussed with reference to FIGS. 2, 3, 4A, and 4B can perform differently than those discussed with reference to FIG. 1.
In FIG. 1, the HVPLS network 100 is illustrated. The HVPLS network 100 is divided into two tiers: a spoke tier and a hub tier. The hub tier includes the provider edge (PE) network elements 115, 120, and 125 each coupled together in a full mesh. For example, the PE network element 114 is coupled with the PE network elements 120 and 125 over the hub connections 140E and 140C respectively. The PE network element 125 is further coupled with the PE network element 120 over hub connection 140D. It should be understood that although not shown in FIG. 1 for simplicity purposes, one or more network elements (e.g., core network elements) may exist between each of the PE network elements in the hub tier.
The spoke tier includes the multi-tenant unit (MTU) 110 being coupled to the HVPLS hub in a dual homed state (e.g., the MTU 110 is coupled with the PE network element 115 over the primary spoke connection 140A and is coupled with the PE network element 120 over the secondary spoke connection 140B). Thus, the PE network element 115 is the primary connection point to the HVPLS hub for the MTU 110, and the PE network element 120 is the secondary connection point to the HVPLS hub for the MTU 110. The MTU 110 is further coupled with the CE network element 150 over an attachment connection 170 (e.g., Ethernet link, ATM link, etc.). Similarly, the CE network elements 152 and 154 are coupled with the PE network elements 120 and 125 over the attachment connections 172 and 174 respectively. During normal operation, the MTU 110 communicates with the HVPLS hub via the PE network element 115 over the primary spoke connection 140A. During primary spoke connectivity failure (e.g., failure of the primary spoke connection 140A), the MTU transitions to communicating with the HVPLS hub via the PE network element 120 over the secondary spoke connection 140B. It should be understood that although not shown in FIG. 1 for simplicity purposes, one or more network elements (e.g., core network elements) may exist between the MTU 110 and the PE network elements 115 and/or 120.
Although not shown for simplicity purposes, the primary spoke connection 140A and the secondary spoke connection 140B each include one or more spoke pseudowires (sometimes called virtual circuits). Similarly, the hub connections 140C, 140D, and 140E each include one or more hub pseudowires corresponding to the spoke pseudowires. In addition, a tunnel may be provisioned between the MTU 110 and each of the PE network elements 115 and 120 that carry the pseudowires of the spoke connections 140A and 140B. Similarly, a tunnel may be provisioned between each of the PE network elements 115, 120, and 125 that carry the hub pseudowires of the hub connections 140C, 140D, and 140E. For example, referring to FIG. 3, which is an exploded view of the HVPLS network 100 illustrated in FIG. 1 with an exemplary configuration, the spoke connections (e.g., primary spoke connection 140A and secondary spoke connection 140B) include a spoke pseudowire 340A and spoke pseudowire 342A, each carried through the encapsulation tunnel 310. Also transmitted through the tunnel 310 is non-HVPLS traffic 344 (e.g., traffic not destined for the CE network devices 152 and 154). Similarly, the hub connections 140C, 140D, and 140E include the hub pseudowires 340C-E respectively carried through encapsulation tunnels 312, 314, and 316 respectively. It should be understood that the non-HVPLS traffic 344 is not transmitted in the HVPLS hub. It should be understood that the configuration illustrated in FIG. 3 is exemplary, and thus there are many different possible configurations (e.g., the interfaces, tunnels, types of traffic, etc.).
The MTU 110 includes a prior art mechanism to recover from an HVPLS spoke connectivity failure. For example, the MTU 110 includes the spoke connectivity failure recovery module 112 to detect and recover from a failure of HVPLS spoke connectivity. For example, the spoke connectivity failure recovery module detects whether the primary spoke connection 140A fails (e.g., the pseudowire failing, a tunnel carrying the pseudowire failing, the port carrying the interface failing, and/or the physical link failing, etc.) and causes a switchover to begin communicating with the HVPLS hub over the secondary spoke connection 140B. The PE network element 115 includes a hub connectivity failure recovery module 117 which will be described in greater detail with reference to FIG. 2.
FIG. 2 illustrates the PE network element 115 configured to detect a failure of HVPLS hub connectivity and fabricate a failure of HVPLS spoke connectivity according to one embodiment of the invention. The PE network element 115 includes the hub connectivity failure recovery module 117 which is coupled with a spoke facing configuration structure 226 and a hub facing configuration structure 214. Also included in the PE network element 115 are one or more hub facing connectivity elements 212 and one or more spoke facing connectivity elements 232. Each hub facing connectivity element is a component (software or hardware component depending on the type of hub facing connectivity element) over which the PE element 115 communicates with other network elements in the HVPLS hub. Thus, the hub facing connectivity elements provide the hub connections to the other network elements in the HVPLS hub (e.g., the hub connections 140C-140E). For example, hub facing connectivity elements are components over which the PE network element 115 communicates with the PE network elements 120 and 125 (e.g., pseudowire(s), tunnel(s) carrying the pseudowire(s), interface(s) carrying the tunnel(s), port(s), physical link, etc.). Similarly, a spoke facing connectivity element is a component (software or hardware component depending on the type of spoke facing connectivity element) which the PE network element 115 communicates with the MTU 110 (e.g., pseudowire(s), tunnel(s) carrying the pseudowire(s), interface(s) carrying the tunnel(s), port(s), physical link, etc.). In addition, the hub connectivity failure recovery module 117 may monitor the status of its next hops of the tunnels to the HVPLS hub if intermediate devices exist between the PE network element 115 and the other PE network elements in the hub. In the exemplary configuration of FIG. 3, the spoke facing connectivity elements of the PE network element 115 include the spoke pseudowires 340A and 342, the tunnel 310, the interfaces 360 and 362, and the port 370; while the hub facing connectivity elements of the PE network element 115 include the hub pseudowires 340C, 340E, 342C, and 342E, the tunnels 312 and 314, the interfaces 361 and 363, and the ports 374 and 372.
Thus, according to one embodiment of the invention, there are several levels of granularity of connectivity elements. For example, the lowest level of granularity is a pseudowire. Multiple pseudowires may be carried in a single tunnel (thus the tunnel is the next level of granularity). Multiple tunnels may be configured on a single interface (thus an interface is the next level of granularity) and multiple interfaces may be bound to a single port (thus a port is the next level of granularity). It should be understood that if a higher level of granularity of connectivity element is in a failed state, each of the connectivity elements belonging to that failed connectivity element is also in a failed state. For example, referring to FIG. 3, if the interface 361 or the port 374 is determined to be in a failed state, the tunnel 312 and the hub pseudowires 340C and 342C will also inherently be in a failed state. However, the converse is not necessarily true (i.e., a lower level of granularity of connectivity element failing does not necessarily indicate that one of its higher level of granularity of connectivity element is also failed). For example, the hub pseudowire 340C may fail independently from the hub pseudowire 342C, the tunnel 312, the interface 361, and/or the port 374. Referring back to FIG. 2, the hub facing configuration structure 214 includes a connectivity failure policy 216, a hub facing connectivity element(s) state 318, and a hub facing connectivity element(s) to monitor structure 220. Included within the spoke facing configuration structure 226 is a MTU switchover policy 228, a spoke facing connectivity element(s) state 229, and a shared connectivity element(s) structure 230. Included within the hub connectivity failure recovery module 117 is a hub facing connectivity element(s) state detection module 210, a hub connectivity failure declaration and reporting module 222, and a spoke facing connectivity element(s) state switching module 224. Each of the above will be described in greater detail later herein.
Referring back to FIG. 1, at operation 1, the hub connectivity failure recovery module 117 declares a hub connectivity failure. While in one embodiment of the invention the hub connectivity failure recovery module 117 declares a hub connectivity failure upon each of its hub connections failing (e.g., the hub connections 140C and 140E each failing), in alternative embodiments of the invention the hub connectivity failure recovery module 117 declares a hub connectivity failure upon a different criteria (e.g., upon a predefined amount of hub facing connectivity elements failing, etc.). For example, referring to FIGS. 2 and 4A, the hub facing connectivity element(s) state detection module 210 monitors the hub facing connectivity element(s) to detect hub connectivity failure at block 402. According to one embodiment of the invention, the hub facing connectivity element(s) state detection module monitors the ones of the hub facing connectivity element(s) 212 as indicated in the hub facing connectivity element(s) to monitor structure 220 to detect the state (e.g., operating or failed) of the monitored connectivity elements.
The hub facing connectivity element(s) may be monitored with numerous techniques. For example, if the hub facing connectivity element that is being monitored is a pseudowire (e.g., hub pseudowires 340C, 342C, 340E, and/or 342E), that connectivity element may be monitored with use of operations and management (OAM) techniques such as virtual circuit connectivity verification (VCCV) (described in RFC 5085 “Pseudowire Virtual Circuit Connectivity Verification (VCCV): A Control Channel for Pseudowires”, December 2007), connectivity fault management (CFM) messages (described in Institute of Electrical and Electronics Engineers (IEEE) standard 802.1ag, “Virtual Bridged Local Area Networks, Amendment 5: Connectivity Fault Management”, Dec. 17, 2007), and/or other keepalive messages. For example, the hub facing connectivity element(s) state detection module may use the keepalive mechanism module(s) 238 to monitor the pseudowire connectivity elements. Tunnels (e.g., tunnel 312 and/or tunnel 314) may be monitored with such connectivity verification techniques such as ping, MPLS ping, Bidirectional Forwarding Detection (BFD) messages, and/or other keepalive messages. Ports (e.g., port 374 and/or port 372) and/or interfaces (e.g., interface 361 and/or 363) may be monitored through such mechanisms as loss of signal, link aggregation control protocol (LACP) messages (e.g., by using the link level mechanism module(s) 240), and/or other keepalive messages. It should be understood that the cause of the failure of a hub facing connectivity element may exist because of any number of reasons. The failure may occur due to something wrong on the PE network element 115 (e.g., configuration error, hardware failure, etc.) or something wrong on the other network elements in the HVPLS hub (e.g., PE 120 and/or PE 125). Additionally, the failure may occur between the hub elements (e.g., a physical link failure).
Referring back to FIG. 2, the hub facing connectivity element(s) state detection module 210 updates the hub facing connectivity element(s) state 218 for each monitored connectivity element (e.g., operating or failed, up or down, etc.). According to one embodiment of the invention, a hub connectivity failure is declared by the hub connectivity failure declaration and reporting module 222 if a certain amount of hub facing connectivity element(s) fail. According to one embodiment of the invention the hub connectivity failure policy 216 includes the threshold for declaring a hub connectivity failure (e.g., one connectivity element failed (e.g., a single pseudowire failed), 50 percent failed, 100 percent, a tunnel connectivity element failed, etc.). According to one embodiment of the invention, a network administrator determines the threshold for declaring a hub connectivity failure and configures this as the hub connectivity failure policy 216.
Thus, referring to FIG. 4A, at block 404, the hub facing connectivity failure declaration and reporting module 222 determines whether to declare hub connectivity failure. If hub connectivity failure is not declared, control flows back to block 402. If hub connectivity failure is declared, control flows to block 406. Referring back to FIG. 1, sometime after the hub connectivity failure of 130A and 130B, at an operation 2, the hub connectivity failure recovery module 117 declares a hub connectivity failure 132.
Sometime after declaring the hub connectivity failure, at block 406 of FIG. 4A, the hub connectivity failure recovery module 117 determines which spoke facing connectivity element(s) are affected by the hub connectivity failure. For example, referring to FIG. 2, the spoke and hub connectivity element mapping structure 234 includes information associating hub connectivity element(s) with spoke connectivity element(s). According to one embodiment of the invention, the hub connectivity failure detection and reporting module 222 determines, through use of the spoke and hub connectivity element mapping structure 234, which spoke facing connectivity element(s) are affected by the hub connectivity failure. Sometime after the affected spoke facing connectivity element(s) are determined, the hub connectivity failure detection and reporting module 222 passes this information to the spoke facing connectivity element(s) state switching module 224. It should be understood that in certain cases, for each spoke facing pseudowire connectivity element that is affected by the hub connectivity failure, the MTU does not have access to the HVPLS hub for those pseudowires (i.e., the pair of CE network elements that are to be connected with the affected pseudowire will not be able to communicate with each other through the HVPLS hub). Thus, the MTU is isolated from the HVPLS hub for those affected pseudowires.
In addition, the MTU does not detect the status of HVPLS hub connectivity (i.e., the MTU does not have visibility into the HVPLS hub besides the primary termination point(s) (e.g., termination point for each spoke pseudowire at the PE network element 115) or the secondary termination point(s) (e.g., termination point for each secondary spoke pseudowire at the PE network element 120). Thus, the MTU does not detect whether the PE network element 115 can access the HVPLS hub (i.e., whether the hub pseudowires connecting the PE network element 115 (e.g., hub pseudowires 340C, 342C, 340E, and/or 342E) with the other PE network elements have failed). If the MTU detects an operable spoke connection (e.g., the pseudowire is operable and the primary termination point is operable) the MTU assumes that everything is working correctly. However, as illustrated in FIG. 1, it is possible that the MTU 110 may be able access the primary connection point to the HVPLS hub (PE network element 115) via the primary spoke connection 140A yet not be able to access the other HVPLS hub network elements (e.g., PE network elements 120 and/or 125) as the primary connection point to the HVPLS hub has lost its hub connectivity. Thus, in this case, the CE network element 150 would not able to communicate with the CE network elements 152 and 154 via the HVPLS network 100. Since the MTU is not aware of a lack of connectivity to the HVPLS hub due to the loss of connections by the primary PE, the MTU is not aware to switch to the PE network element designated as its secondary connection point to the HVPLS hub. Thus, in a typical implementation of a MTU in a typical HVPLS network, if the HVPLS hub connectivity has failed (e.g., HVPLS hub connections have failed) yet the spoke connection is operating, the MTU will not able to communicate with the HVPLS hub and will not be aware to use its dual-homed spoke connectivity failure recovery mechanism to switch to the secondary spoke connection.
Referring back to FIG. 4A, sometime after determining which spoke facing connectivity element(s) are affected by the hub connectivity failure, the hub connectivity failure recovery module 117 determines appropriate spoke facing connectivity element(s) to disable, at an operation 408. According to one embodiment of the invention, the spoke facing connectivity element(s) state switching module 224 determines which spoke facing connectivity element(s) to disable based on the MTU switchover policy 228. Disabling a spoke facing connectivity element(s) 232 effectively fabricates a failure of that connectivity element with the intention that the MTU 110 will detect this fabricated failure and treat it as a real failure. Thus, for example, the hub connectivity failure recovery module 117 may fabricate a failing of a spoke facing port connectivity element by disabling that port, which is described in greater detail later herein.
Similarly to the hub facing connectivity elements, there are several levels of granularity of spoke facing connectivity elements (e.g., pseudowire, tunnel, interface, port). The MTU switchover policy 228 may indicate at which granularity level to disable. For example, referring to FIG. 3, the single pseudowire level 388A and 388B each belong to a single pseudowire (e.g., the spoke pseudowire 340A and the spoke pseudowire 342A respectively) and may each be separately disabled (e.g., if the failure of hub connectivity affects only one of the spoke pseudowires, that pseudowire may be individually disabled). The pseudowires level 386 includes both of the spoke pseudowires (e.g., spoke pseudowires 388A and 388B). The tunnel level 384 includes both of the spoke pseudowires (e.g., spoke pseudowires 388A and 388B) and other traffic carried on that tunnel (e.g., non-HVPLS traffic link 344). The interface level 382 includes the tunnel level 384 (and inherently any levels encompassed by the tunnel level 384) and any other traffic carried on that interface (e.g., the non-HVPLS traffic link 346). The port level 380 includes the interface level 382 (and inherently any levels encompassed by the interface level 382 and below). In addition, the hub connectivity failure recovery module 117 may disable the next hops of the tunnels to the MTU 110 if an intermediate device exists between the PE network element 115 and the MTU 110.
It should be understood that if the hub connectivity failure recovery module 117 disables a spoke facing connectivity element, all traffic using that particular spoke facing connectivity element will be interrupted, regardless whether the traffic is HVPLS traffic and/or non-HVPLS traffic. For example, if the hub connectivity failure recover module 117 disables the port 370, inherently all the traffic received at the port 370 will be interrupted (e.g., non-HVPLS traffic 348 sent by the MTU 110 (through port 364) to the interface 362, traffic sent on the spoke pseudowires 340A and 342A sent from the MTU 110 (through port 364) the interface 360 over the tunnel 310, and non-HVPLS traffic 344 and 346). Similarly, if the hub connectivity failure reporting module 117 disables the interface 360, all the traffic received at that interface will be interrupted (e.g., the spoke pseudowires 340A and 342A, and the non-HVPLS traffic 344 and 346). Similarly, if the hub connectivity failure reporting module 117 disables the tunnel 310, all the traffic transmitted over that tunnel will be interrupted (e.g., the spoke pseudowires 340A and 342A, and non-HVPLS traffic 344).
According to one embodiment of the invention, the level of granularity of connectivity element to disable is based upon the MTU switchover policy 228. According to one embodiment of the invention, a network administrator configures the information in the MTU switchover policy 228 (e.g., which level of granularity of connectivity element to disable). It should be understood that a network administrator may choose to disable a higher level of granularity of connectivity element than is necessary (i.e., more than the individual pseudowires that are affected by the hub connectivity failure) for scalability purposes. For example, since disabling a higher level of granularity of spoke facing connectivity element inherently disables its lower level of granularity of spoke facing connectivity elements, the affected pseudowires are disabled more quickly than if they were each individually disabled. However, since disabling a higher level of granularity of connectivity element may have the undesirable effect that non-HVPLS traffic and/or services unaffected by the hub connectivity failure may be interrupted by that disablement, the hub connectivity failure recovery module 117 limits the amount of interruption. For example, referring back to FIG. 4A, at block 410 the hub connectivity failure recovery module 117 determines if other non-HVPLS traffic is associated with the connectivity element(s) that are chosen to be disabled (i.e., whether non-HVPLS traffic will be affected if those connectivity element(s) are disabled). If non-HVPLS traffic will be affected, flow moves to block 420. If no non-HVPLS traffic will be affected if those connectivity element(s) are disabled, flow moves to the block 412. According to one embodiment of the invention, for each connectivity element that is to be disabled, the spoke facing connectivity element(s) state switching module 224 determines whether any non-HVPLS traffic will be affected through use of the shared connectivity element(s) structure 230. Thus, the shared connectivity element(s) structure 230 includes information indicating whether, and which other connection links, share a connectivity element with a HVPLS connectivity element. According to another embodiment of the invention, the spoke facing connectivity element(s) state switching module 224 assumes that each spoke facing connectivity element, with the exception of spoke facing pseudowire connectivity elements, may share a connection with non-HVPLS traffic. According to another embodiment of the invention, the spoke facing connectivity element(s) state switching module 224 assumes that each spoke facing connectivity element, with the exception of spoke facing pseudowire connectivity elements and spoke facing tunnel connectivity elements, may share a connection with non-HVPLS traffic.
Referring to FIG. 4B, at block 412, those spoke facing connectivity element(s) 232 that were selected to be disabled (e.g., in block 408) are disabled by the hub connectivity failure recovery module. For example, referring to FIG. 1, the spoke facing connectivity element(s) 134 terminating the primary spoke connection 140A are disabled. Similarly, at block 412, those spoke facing connectivity element(s) 232 that were selected to be disabled (e.g., in block 408) are disabled by the hub connectivity failure recovery module. For example, referring to FIG. 1, the spoke facing connectivity element(s) 134 terminating the primary spoke connection 140A are disabled.
The hub connectivity failure recovery module 117 may disable the spoke facing connectivity elements 232 to fabricate a failure of those connectivity elements in numerous ways, actively and/or passively, depending on connectivity element type (e.g., actively through use of signaling protocols (e.g., Label Distribution Protocol (LDP), Resource Reservation Protocol (RSVP), passively through keepalive mechanisms (e.g., BFD, ping, MPLS ping, etc.) and/or through link loss mechanisms (e.g., LOS, LACP), etc.). For example, the hub connectivity failure recovery module 117 may fabricate a failure of a spoke facing pseudowire connectivity element through signaling the MTU 110 (e.g., through the signaling protocol module(s) 236) that the pseudowire identifier (PWID, which is a globally unique identifier in the HVPLS network 100 that identifies a particular pseudowire) corresponding to the spoke facing pseudowire connectivity element is down. According to one embodiment of the invention, the spoke facing connectivity element(s) state switching module 224 changes the state of the spoke facing pseudowire connectivity element that is to be disabled to a state of down in the spoke facing connectivity element(s) state structure 229. Additionally, the spoke facing connectivity element(s) state switching module 224 notifies the signaling protocol module(s) 236 to signal the MTU indicating the spoke pseudowire is down (i.e., to fabricate the failure of the spoke pseudowire). For example, referring to FIG. 3, the PE network element 115 may signal the MTU 110 indicating the spoke pseudowire 340A and/or 342A are down.
According to one embodiment of the invention, the hub connectivity failure recovery module 117 may actively fabricate a failure of a spoke facing tunnel connectivity element (e.g., the tunnel 310) through signaling the MTU 110 indicating the tunnel is down in a similar fashion as was described for fabricating failure of spoke facing pseudowire connectivity elements. According to one embodiment of the invention, the hub connectivity failure recovery module 117 may passively fabricate a failure of a spoke facing tunnel connectivity element by temporarily suspending transmission of keepalive messages (e.g., BFD, ping, MPLS ping) associated with that tunnel. Of course, it should be understood that the particular keepalive mechanism selected must be understandable by the MTU 110 (i.e., the MTU 100 must be monitoring that tunnel through that particular keepalive mechanism). For example, after determining to disable a spoke facing tunnel connectivity element (e.g., for the tunnel 310) the spoke facing connectivity element(s) state switching module 224 changes the state of that tunnel to a state of down in the spoke facing connectivity element(s) state structure 229. As long as that spoke facing tunnel connectivity element has a state of down, (e.g., as indicated in the spoke facing connectivity element(s) state structure 229), the keepalive mechanism module(s) does not transmit keepalive messages for that spoke facing tunnel connectivity element. In one embodiment of the invention, the MTU 110 assumes that the tunnel is down if it does not receive a keepalive message associated with that tunnel for a specified period of time (e.g., the MTU 110 does not receive a response to a keepalive message it transmits for 3 consecutive attempts). It should be understood that if the MTU 110 assumes the tunnel is down, the MTU 110 inherently assumes that all of the traffic carried on that tunnel (primary spoke pseudowires and/or non-HVPLS traffic) is also down. For example, the MTU 110 assumes that the spoke pseudowires 340A and 342A and non-HVPLS traffic 344 are down if it does not receive a keepalive mechanism for the tunnel 310.
In the case that a spoke facing interface connectivity element is to be disabled (e.g., the interface 360), the spoke facing connectivity element(s) state switching module changes the state of that interface connectivity element to a state of down in the spoke facing connectivity element(s) state structure 229. As long as that interface has a state of down, the tunnels associated with that interface and the pseudowires carried on those tunnels also have a state of down. Thus, in one embodiment of the invention, the spoke facing connectivity element(s) state switching module changes the states of each connectivity element belonging to that spoke facing interface connectivity element to a state of down, and the hub connectivity failure recovery module 117 disables each of those connectivity elements in a similar fashion as described previously (e.g., through use of the signaling protocol module(s) 236 and/or temporarily disabling the keepalive mechanism module(s) 238 from transmitting keepalive messages to the MTU 110). Of course it should be understood that as long as a spoke facing interface connectivity element has a state of down, no traffic (e.g., HVPLS traffic and/or non-HVPLS traffic) may be received for that interface.
According to one embodiment of the invention, the hub connectivity failure recovery module 117 may passively fabricate a failure of a spoke facing port connectivity element by temporarily suspending transmission of link level messages (e.g., through use of the link level mechanism module(s) 240 (e.g., LOS, LACP)) associated with that port. As long as that port connectivity element has a state of down, the spoke facing interfaces bound to that port, the tunnels associated with those interfaces, and the pseudowires carried on those tunnels, also have a state of down (thus are also disabled). Thus, as long as the port connectivity element has a state of down, all traffic (e.g., HVPLS and non-HVPLS traffic) arriving (or exiting) that port will be interrupted.
According to one embodiment of the invention, regardless of the method chosen to disable the appropriate connectivity element, in order for the MTU 110 to switch to secondary spoke pseudowires, at a minimum the MTU must be able to detect the change of state of the spoke pseudowires.
Referring back to FIG. 1, at operation 4, the spoke connectivity failure recovery module 112 detects a failure of the primary spoke connectivity 136 due to the fabricated failure of the primary spoke connection 140A (the dotted line of the primary spoke connection 140A indicates a fabricated failure). The spoke connectivity failure recovery module 112 performs an HVPLS spoke recovery mechanism to switch to the secondary spoke connection 138 at operation 5. Thus, the MTU 110 has access to the HVPLS hub through the secondary spoke connection 140B and the PE network element 120.
According to one embodiment of the invention, the PE network element 115 may fabricate any number of the spoke facing connectivity elements 232. The MTU, in response to the fabricated failure(s), switches only those spoke pseudowires which are affected by the fabricated failure. For example, the MTU switches to the secondary spoke pseudowire 340B upon detecting the fabricated failure of the primary spoke pseudowire 340A. The primary spoke pseudowire 342A may be unaffected by the fabricated failure and thus may not be switched to the secondary spoke pseudowire 342B. However, as another example, the MTU switches to the secondary spoke pseudowires 340B and 342B upon detecting the fabricated failure of the tunnel 310, since a failure of the tunnel 310 affects both of the primary spoke pseudowires 340A and 342A.
Since fabricating a failure of a spoke facing connectivity element at a higher granularity level than a pseudowire connectivity element (e.g., tunnel, interface, port) may negatively affect non-HVPLS traffic (e.g., non-HVPLS traffic cannot use that connectivity element when it is disabled), according to one embodiment of the invention, the hub connectivity failure recovery module 117 re-enables those disabled spoke facing connectivity elements, with the exception of the spoke facing pseudowire connectivity elements, at a point in time after which it is expected that the MTU will or has switched to the secondary spoke connection (block 422). According to another embodiment of the invention, the hub connectivity failure recovery module 117 re-enables those disabled spoke facing connectivity elements, with the exception of the spoke facing pseudowire connectivity elements, soon after the spoke facing pseudowire connectivity elements are disabled (e.g., the hub connectivity failure recovery module 117 may toggle a spoke facing tunnel connectivity element (i.e., bring down and quickly bring up) while keeping all of the spoke facing pseudowire connectivity elements associated with that tunnel in a disabled state). According to another embodiment of the invention, the hub connectivity failure recovery module 117 re-enables only those disabled spoke facing connectivity elements which may carry non-HVPLS traffic (e.g., the hub connectivity failure recovery module 117 may keep a spoke facing tunnel connectivity element in a disabled state if that tunnel carries only HVPLS traffic (i.e., only carries spoke pseudowires)). For example, referring to FIG. 3, if the spoke facing connectivity element for the interface 360 was disabled (e.g., the state of the interface 360 is marked as down), the hub connectivity failure recovery module 117 re-enables that interface (e.g., the spoke facing connectivity element(s) state switching module 224 changes the state of the interface 360 to up) to allow the non-HVPLS traffic 346 to continue to be received at the interface 360. Thus, while connectivity to the HVPLS hub is failed through the primary connection point (e.g., the PE network element 115), the affected primary spoke pseudowires are switched to the secondary spoke pseudowires allowing the MTU 110 to connect with the HVPLS hub through the secondary connection point (e.g., the PE network element 120) and non-HVPLS traffic may continue to use any temporarily disabled hub connectivity elements (e.g., tunnel, interface, port) after a brief interruption of service.
Referring back to FIG. 4B, at block 414, the hub connectivity failure recovery module 117 monitors the failed hub facing connectivity elements to detect hub connectivity reestablishment. For example, the hub facing connectivity element(s) state detection module 210 monitors those hub facing connectivity element(s) 212 which are in a failed state as indicated in the hub facing connectivity element(s) state 218. The mechanisms to monitor the failed hub facing connectivity elements are similar as described previously in reference to monitoring for a failure of the hub facing connectivity elements 212. The hub facing connectivity element(s) state detection module further changes the state of each re-enabled hub facing connectivity element to operating upon detecting reestablishment of that connectivity element. At block 416, the hub connectivity failure recovery module 117 determines if hub connectivity has been reestablished. According to one embodiment of the invention, the hub connectivity failure recovery module 117 waits a certain amount of time (e.g., a hold down time period) after detecting the reestablishment of the previously failed hub facing connectivity elements to determine that the hub facing connectivity elements are stable before declaring hub connectivity has been reestablished (e.g., to protect against a hub facing connectivity element flapping (i.e., quickly going down and quickly coming back up)). For example, if the previously failed hub facing connectivity element(s) stays stable during the entire hold down time period, the hub connectivity failure recovery module 117 declares that hub connectivity has been reestablished (and thus the disabled spoke facing connectivity elements may be re-enabled). If the previously failed hub facing connectivity element(s) does not stay stable (e.g., fails) during the hold down time period, the hold down time period is restarted.
If hub connectivity has been reestablished, control moves to block 418. At block 418, the hub connectivity failure recovery module 117 enables those disabled spoke facing connectivity elements to cause the MTU to switch back to the primary spoke connection. According to one embodiment of the invention, the spoke facing connectivity element(s) state switching module 224 changes the state of each disabled spoke facing connectivity element to up, and ends the fabricated failure of those connectivity elements (e.g., the PE network element 115 resumes transmitting OAM messages for those re-enabled connectivity elements).
According to one embodiment of the invention, the PE network element 115 includes one or more contexts. For example, the PE network element 115 may include a separate Virtual Private Local Area Network (VPLAN) context for each VPLS service instance. In other words, a separate VPLAN context exists for each pair of CE network elements that are to be communicatively connected by a VPLAN. Each VPLAN context may be associated with multiple ports (both ingress and egress ports). In addition, the VPLAN contexts may share ports. However, as previously described, each VPLAN context includes its own management domain, AAA name space, IP address, and routing database(es). For example, the PE network element 115 may include a VPLAN context (VPLAN context A) associated with the pairing of the CE network element 150 with the CE network element 154 (e.g., through spoke pseudowire 340A and hub pseudowires 340C-340E) and include a VPLAN context (VPLAN context B) associated with the pairing of the CE network element 150 with the CE network element 152 (e.g., through spoke pseudowire 342A and hub pseudowires 342C-342E).
While the flow diagrams in the figures show a particular order of operations performed by certain embodiments of the invention, it should be understood that such order is exemplary (e.g., alternative embodiments may perform the operations in a different order, combine certain operations, overlap certain operations, etc.)
While the invention has been described in terms of several embodiments, those skilled in the art will recognize that the invention is not limited to the embodiments described, can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting.

## Claims

1. A computer implemented method for protecting against a connectivity failure of a hub connection in a first tier of an hierarchical network that includes a plurality of network elements, the method comprising:
detecting, in a first one of the plurality of network elements of the first tier, the connectivity failure in the hub connection between that first network element of the first tier and at least a second one of the plurality of network elements of the first tier; and
responsive to the step of detecting, the first network element of the first tier disabling at least a portion of a primary connection between the first network element of the first tier and a network element of a second tier of the hierarchical network to cause the network element of the second tier to transition the portion of the primary connection to a secondary connection between the network element of the second tier and one of the plurality of network elements of the first tier other than the first network element of the first tier, wherein the failed hub connection between the first network element of the first tier and the at least second one of the plurality of network elements of the first tier is different from the primary connection between the first network element of the first tier and the network element of the second tier.

2. The computer implemented method of claim 1, wherein the portion of the primary connection is disabled by temporarily suspending responses to operations, administration, and maintenance (OAM) messages associated with the portion of the primary connection that are received from the network element of the second tier.

3. The computer implemented method of claim 1, wherein the portion of the primary connection is disabled by temporarily suspending transmission of keep-alive messages associated with the portion of the primary connection.

4. The computer implemented method of claim 1, wherein the portion of the primary connection is disabled by signaling to the network element of the second tier that the portion of the primary connection is in a down state.

5. The computer implemented method of claim 1, wherein the first network element of the first tier that detected the connectivity failure is coupled to the network element of the second tier through one or more pseudowires that is part of a tunnel that couples to an interface of a physical port of that first network element of the first tier, and the portion of the primary connection being disabled is at least one of:
at least one of the pseudowires;
the tunnel;
the interface; and
the physical port that couples the network element of the second tier to the first network element of the first tier that detected the connectivity failure.

6. The computer implemented method of claim 5, wherein a first subset of the pseudowires carries a first type of traffic in the primary connection between the first network element of the first tier that detected the connectivity failure and the network element of the second tier, a second subset of the pseudowires carries a second type of traffic in the primary connection between the network element of the first tier that detected the connectivity failure and the network element of the second tier, and wherein the detected connectivity failure only affects the first type of traffic in the first subset of the pseudowires, and only the first subset of pseudowires are disabled to transition the first type of traffic to the secondary connection.

7. The computer implemented method of claim 1, wherein the portion of the primary connection is disabled after a threshold amount of connectivity elements that couples the first network element of the first tier that detected the connectivity failure to the second network element of the first tier is in a failed state.

8. The computer implemented method of claim 1, wherein the hierarchical network is a hierarchical virtual private LAN service (HVPLS) hub-and-spoke network, the first tier is a hub tier of fully meshed provider edge network elements, and the second tier is a spoke tier, wherein the network element of the second tier is a multi-tenant unit (MTU) that couples to one or more customer edge network elements in the spoke tier.

9. A network element in a first tier of a hierarchical network, the network element comprising:
a set of one or more first tier connectivity elements to provide a set of one or more first tier connections to set of one or more other network elements in the first tier respectively;
a second tier connectivity element to provide a primary connection to a network element in a second tier of the hierarchical network; and
a connectivity failure recovery module coupled to the first tier connectivity elements and the second tier connectivity element, the connectivity failure recovery module configured to perform the following:
detect a connectivity failure of a hub connection affecting at least one of the first tier connectivity elements between the network element and at least one of the other network elements of the first tier, and
disable the second tier connectivity element used in the primary connection to the network element in the second tier to cause that network element in the second tier to transition to a secondary connection that communicatively couples that network element in the second tier to the first tier of the hierarchical network, wherein the hub connection between the network element and at least one of the other network elements of the first tier is different from the primary connection between the network element in the first tier and the network element in the second tier.

10. The network element of claim 9, wherein the connectivity failure recovery module is to disable the second tier connectivity element by configuring the second tier connectivity element to temporarily suspend responding to operations, administration, and maintenance (OAM) messages from the network element in the second tier.

11. The network element of claim 9, wherein the connectivity failure recovery module is to disable the second tier connectivity element by configuring the second tier connectivity element to temporarily suspend transmission of keep-alive messages to the network element in the second tier.

12. The network element of claim 9, wherein the connectivity failure recovery module is to disable the second tier connectivity element by signaling to the network element in the second tier that the second tier connectivity element is in a down state.

13. The network element of claim 9, wherein the second tier connectivity element is one of a physical port, an interface, a tunnel, or a pseudowire.

14. The network element of claim 9, wherein the hierarchical network is a hierarchical virtual private LAN service (HVPLS) hub-and-spoke network, the first tier is a hub tier of fully meshed provider edge network elements that includes the network element, and the second tier is a spoke tier, wherein the network element in the second tier is a multi-tenant unit (MTU) that couples to one or more customer edge network elements in the spoke tier.

15. A non-transitory machine-readable storage medium that provides instructions that, if executed by a processor, will cause said processor to:
detect, in a first one of a plurality of network elements of a first tier of an hierarchical network, a connectivity failure of a hub connection between that first network element of the first tier and at least a second one of the plurality of network elements of the first tier; and
disable, in the first network element of the first tier, at least a portion of a primary connection between the first network element of the first tier and a network element of a second tier of the hierarchical network to cause the network element of the second tier to transition the portion of the primary connection to a secondary connection between the network element of the second tier and one of the plurality of network elements of the first tier other than the first network element of the first tier, wherein the failed hub connection between the first network element of the first tier and the at least second one of the plurality of network elements of the first tier is different from the primary connection between the first network element of the first tier and the network element of the second tier.

16. The non-transitory machine-readable storage medium of claim 15, wherein the portion of the primary connection is disabled by temporarily suspending responses to operations, administration, and maintenance (OAM) messages associated with the portion of the primary connection that are received from the network element of the second tier.

17. The non-transitory machine-readable storage medium of claim 15, wherein the portion of the primary connection is disabled by temporarily suspending transmission of keep-alive messages associated with the portion of the primary connection.

18. The non-transitory machine-readable storage medium of claim 15, wherein the portion of the primary connection is disabled by signaling to the network element of the second tier that the portion of the primary connection is in a down state.

19. The non-transitory machine-readable storage medium of claim 15, wherein the first network element of the first tier that detected the connectivity failure is coupled to the network element of the second tier through one or more pseudowires that is part of a tunnel that couples to an interface of a physical port of that first network element of the first tier, and the portion of the primary connection being disabled is at least one of:
at least one of the pseudowires;
the tunnel;
the interface; and
the physical port that couples the network element of the second tier to the first network element of the first tier that detected the connectivity failure.

20. The non-transitory machine-readable storage medium of claim 19, wherein a first subset of the pseudowires carries a first type of traffic in the primary connection between the first network element of the first tier that detected the connectivity failure and the network element of the second tier, a second subset of the pseudowires carries a second type of traffic in the primary connection between the network element of the first tier that detected the connectivity failure and the network element of the second tier, and wherein the detected connectivity failure only affects the first type of traffic in the first subset of the pseudowires, and only the first subset of pseudowires are disabled to transition the first type of traffic to the secondary connection.

21. The non-transitory machine-readable storage medium of claim 15, wherein the portion of the primary connection is disabled after a threshold amount of connectivity elements that couples the first network element of the first tier that detected the connectivity failure to the second network element of the first tier is in a failed state.

22. The non-transitory machine-readable storage medium of claim 15, wherein the hierarchical network is a hierarchical virtual private LAN service (HVPLS) hub-and-spoke network, the first tier is a hub tier of fully meshed provider edge network elements, and the second tier is a spoke tier, wherein the network element of the second tier is a multi-tenant unit (MTU) that couples to one or more customer edge network elements in the spoke tier.