US20140086041A1 - System and method for providing n-way link-state routing redundancy without peer links in a network environment - Google Patents

System and method for providing n-way link-state routing redundancy without peer links in a network environment Download PDF

Info

Publication number
US20140086041A1
US20140086041A1 US13/629,587 US201213629587A US2014086041A1 US 20140086041 A1 US20140086041 A1 US 20140086041A1 US 201213629587 A US201213629587 A US 201213629587A US 2014086041 A1 US2014086041 A1 US 2014086041A1
Authority
US
United States
Prior art keywords
node
link
protocol enabled
enabled switching
forwarder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US13/629,587
Other versions
US8902794B2 (en
Inventor
Varun Shah
Tissa Senevirathne
Ayan Banerjee
Ronak Desai
Raghava Sivaramu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Priority to US13/629,587 priority Critical patent/US8902794B2/en
Assigned to CISCO TECHNOLOGY, INC. reassignment CISCO TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SHAH, Varun, SIVARAMU, RAGHAVA, SENEVIRATHNE, TISSA, DESAI, RONAK, BANERJEE, AYAN
Publication of US20140086041A1 publication Critical patent/US20140086041A1/en
Application granted granted Critical
Publication of US8902794B2 publication Critical patent/US8902794B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/44Star or tree networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation

Definitions

  • This disclosure relates in general to the field of communications and, more particularly, to providing n-way link-state routing redundancy without peer links in a network environment.
  • Spanning Tree Protocol is a network protocol that attempts to ensure a loop-free topology for a bridged Ethernet local area network by preventing bridge loops. Spanning tree protocol allows a network design to include redundant links to provide automatic backup paths if an active link fails, without the danger of bridge loops, or the need for manual enabling/disabling of these backup links. Spanning Tree Protocol (STP), standardized as IEEE 802.1D, creates a spanning tree within a mesh network of connected layer-2 bridges (typically Ethernet switches), and disables those links that are not part of the spanning tree, leaving a single active path between any two network nodes.
  • STP Spanning Tree Protocol
  • spanning tree protocol is limited in that it requires the use of only one link of a tree for forwarding traffic in order to prevent loops while another link is wasted.
  • Link-state protocols such as Transparent Interconnect of Lots of Links (TRILL) and FabricPath have been developed to overcome the shortcomings of spanning tree protocol.
  • FIG. 1 is a simplified block diagram of an embodiment of a communication system for providing n-way link-state routing redundancy without peer links in a network environment;
  • FIG. 2 illustrates an example of a communication system configured for Spanning Tree Protocol (STP) in a diamond network topology
  • STP Spanning Tree Protocol
  • FIG. 3 illustrates an embodiment of a link-state routing protocol enabled switch according to one embodiment
  • FIG. 4 is a simplified block diagram of another embodiment of a communication system for providing n-way link-state routing redundancy without peer links in a network environment;
  • FIG. 5 is a simplified flowchart illustrating one embodiment of a procedure for providing n-way link-state routing redundancy without peer links in a network environment
  • FIG. 6 illustrates an embodiment of a TLV (type-length-value) data element for advertising a nickname for a classical Ethernet (CE) switch by an edge switch;
  • TLV type-length-value
  • FIG. 7A is a simplified flowchart illustrating one embodiment of a procedure for providing for link failure recovery for a link failure between a Master Node Forwarder (MNF) and a classical Ethernet (CE) switch;
  • MNF Master Node Forwarder
  • CE classical Ethernet
  • FIG. 7B is a simplified flowchart illustrating one embodiment of a procedure for providing for link failure recovery for a link failure between a Backup Node Forwarder (BNF) and a classical Ethernet (CE) switch;
  • BNF Backup Node Forwarder
  • CE classical Ethernet
  • FIG. 7C is a simplified flowchart illustrating one embodiment of a procedure for providing for link failure recovery for a link failure between an edge switch and a classical Ethernet (CE) switch;
  • CE classical Ethernet
  • FIG. 8A is a simplified flowchart illustrating one embodiment of a procedure for providing for node failure recovery for a Group Appointed Proxy Forwarder (GAPF) node failure;
  • GAPF Group Appointed Proxy Forwarder
  • FIG. 8B is a simplified flowchart illustrating one embodiment of a procedure for providing for node failure recovery for a Backup Group Appointed Proxy Forwarder (BGAPF) node failure;
  • BGAPF Backup Group Appointed Proxy Forwarder
  • FIG. 8C is a simplified flowchart illustrating one embodiment of a procedure for providing for node failure recovery for a Master Node Forwarder (MNF) node failure.
  • MNF Master Node Forwarder
  • FIG. 8D is a simplified flowchart illustrating one embodiment of a procedure for providing for node failure recovery for a Backup Node Forwarder (BNF) node failure.
  • BNF Backup Node Forwarder
  • a method in one example and includes broadcasting a switching node identifier associated with a first link-state protocol enabled switching node to a plurality of link-state protocol enabled switching nodes.
  • the switching node identifier can be any suitable identification element in such a context.
  • the plurality of link-state protocol enabled switching nodes can be in communication with one another by a link-state protocol cloud.
  • the method further includes broadcasting a priority (inclusive of a possible relative priority) associated with the first link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes.
  • the method further includes broadcasting connectivity information of the first link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes using the link-state protocol cloud.
  • the connectivity information can include any suitable data, for example, the connectivity of the first link-state protocol enabled switching node with at least one spanning tree protocol enabled switching node.
  • the method further includes determining a proxy forwarder node for the at least one spanning tree protocol enabled switching node based upon a priority associated with each of the plurality of link-state protocol enabled switching nodes.
  • the proxy forwarder node is configured to determine a master node forwarder for the at least one spanning tree protocol enabled switching node from the plurality of link-state protocol enabled nodes.
  • the method further includes associating, for example by the master node forwarder, an identifier of the at least one spanning tree protocol enabled switching node to a multicast tree of the link-state protocol cloud.
  • the identifier of the at least one spanning tree protocol enabled switching node is an emulated switch identifier associated with the at least one spanning tree protocol enabled switching node.
  • the proxy forwarder node determines the master node forwarder based upon connectivity information of each of the plurality of link-state protocol enabled switching nodes with the at least one spanning tree protocol enabled switching node.
  • the method can also include determining a backup node forwarder for the at least one spanning tree protocol enabled switching node.
  • the backup node forwarder is configured to associate the identifier of the at least one spanning tree protocol enabled switching node to the multicast tree if the master node forwarder is determined to not be reachable by the master node forwarder.
  • the method can include determining a backup proxy forwarder node.
  • the backup proxy forwarder node is configured to determine the master node forwarder for the at least one spanning tree protocol enabled switching node if the proxy forwarder node is determined to be failed.
  • FIG. 1 is a simplified block diagram of an embodiment of a communication system 100 for providing n-way link-state routing redundancy without peer links in a network environment.
  • Communication system 100 of FIG. 1 includes a number N of classical Ethernet switches including a first classical Ethernet switch (CE1) 102 a , a second classical Ethernet switch (CE2) 102 b up to an Nth classical Ethernet switch (CE N ) 102 N.
  • classical Ethernet switches 102 a - 102 N support a traditional Spanning Tree Protocol (STP).
  • STP Spanning Tree Protocol
  • Communication system 100 further includes a number n of link-state protocol enabled switches including a first switch (S1) 104 a , a second switch (S2) 104 b , a third switch (S3) 104 c , a fourth switch (S4) 104 d , a fifth switch (S5) 104 e , and a sixth switch (S6) 104 f up to an nth switch (S n ) 104 n .
  • each of switches 104 a - 104 n support a link-state protocol, such as FabricPath or Transparent Interconnect of Lots of Links (TRILL), and are enabled with an n-way link-state routing protocol as further described herein.
  • TRILL Transparent Interconnect of Lots of Links
  • Switches 104 a - 104 n form a link-state protocol cloud.
  • switches 104 a - 104 n form a Fabricpath cloud.
  • Communication system 100 further includes a host A 106 a , a host B 106 b , a host C 106 c , a host D 106 d , and a host E 106 e.
  • First classical Ethernet switch (CE1) 102 a is in communication with first switch (S1) 104 a , second switch (S2) 104 b , sixth switch (S6) 104 f up to nth switch (S n ) 104 n .
  • second classical Ethernet switch (CE2) 102 b is also in communication with first switch (S1) 104 a , second switch (S2) 104 b , and sixth switch 104 f up to nth switch (S n ) 104 n .
  • each of the classical Ethernet switches up to Nth classical Ethernet switch (CE N ) 102 N are each in communication with first switch (S1) 104 a , second switch (S2) 104 b , sixth switch (S6) 104 f up to nth switch (S n ) 104 n .
  • First switch (S1) 104 a and second switch (S2) 104 b are further in communication with third switch (S3) 104 c , fourth switch (S4) 104 d , and fifth switch (S5) 104 e .
  • Switches 104 a - 104 n form a link state protocol cloud.
  • switches 104 a - 104 n are enabled with a FabricPath protocol and form a Fabricpath cloud.
  • switches 104 a - 104 n are enabled with a TRILL protocol and form a TRILL cloud.
  • Host A 106 a is in communication with first classical Ethernet switch (CE1) 102 a and host B 106 b is in communication with second classical Ethernet switch (CE2) 102 b .
  • Host C 106 c is in communication with third switch (S3) 104 c
  • host D 106 d is in communication with fourth switch (S4) 104 d
  • host E 106 e is in communication with fifth switch (S5) 104 e .
  • Host A 106 a , host B 106 b , host C 106 c , host D 106 d , and host E 106 e can be associated with clients, customers, or end users wishing to initiate a communication in communication system 100 via some network.
  • host is inclusive of devices used to initiate a communication, such as a receiver, a computer, a set-top box, an Internet radio device (IRD), a cell phone, a smart phone, a tablet, a personal digital assistant (PDA), a Google droid, an iPhone, and iPad, or any other device, component, element, or object capable of initiating voice, audio, video, media, or data exchanges within communication system 100 .
  • IRD Internet radio device
  • PDA personal digital assistant
  • Google droid a Google droid
  • iPhone iPad
  • One or more of host A 106 a , host B 106 b , host C 106 c , host D 106 d , and host E 106 e may also be inclusive of a suitable interface to the human user, such as a display, a keyboard, a touchpad, a remote control, or other terminal equipment.
  • One or more of host A 106 a , host B 106 b , host C 106 c , host D 106 d , and host E 106 e may also be any device that seeks to initiate a communication on behalf of another entity or element, such as a program, a database, or any other component, device, element, or object capable of initiating an exchange within communication system 100 .
  • Data refers to any type of numeric, voice, video, media, or script data, or any type of source or object code, or any other suitable information in any appropriate format that may be communicated from one point to another.
  • communication system 100 can be associated with a service provider digital subscriber line (DSL) deployment.
  • DSL digital subscriber line
  • communication system 100 would be equally applicable to other communication environments, such as an enterprise wide area network (WAN) deployment, cable scenarios, broadband generally, fixed wireless instances, fiber to the x (FTTx), which is a generic term for any broadband network architecture that uses optical fiber in last-mile architectures.
  • Communication system 100 may include a configuration capable of transmission control protocol/internet protocol (TCP/IP) communications for the transmission and/or reception of packets in a network.
  • TCP/IP transmission control protocol/internet protocol
  • Communication system 100 may also operate in conjunction with a user datagram protocol/IP (UDP/IP) or any other suitable protocol, where appropriate and based on particular needs.
  • UDP/IP user datagram protocol/IP
  • Switches 102 a - 102 n are network elements that facilitate multicast flows between hosts and/or sources in a given network (e.g., for networks such as those illustrated in FIGS. 1 and 4 ).
  • network element is meant to encompass routers, switches, gateways, bridges, loadbalancers, firewalls, inline service nodes, proxies, servers, processors, modules, or any other suitable device, component, element, proprietary appliance, or object operable to exchange information in a network environment.
  • This network element may include any suitable hardware, software, components, modules, interfaces, or objects that facilitate the operations thereof. This may be inclusive of appropriate algorithms and communication protocols that allow for the effective exchange of data or information.
  • switches 104 a - 104 n may include software to achieve (or to foster) the n-way link-state routing redundancy protocol, as outlined herein in this Specification.
  • each of these elements can have an internal structure (e.g., a processor, a memory element, etc.) to facilitate some of the operations described herein.
  • these n-way link-state routing redundancy operations may be executed externally to these elements, or included in some other network element to achieve this intended functionality.
  • switches 104 a - 104 n may include this software (or reciprocating software) that can coordinate with other network elements in order to achieve the operations, as outlined herein.
  • one or several devices may include any suitable algorithms, hardware, software, components, modules, interfaces, or objects that facilitate the operations thereof.
  • FIG. 2 illustrates an example of a communication system 200 configured for Spanning Tree Protocol (STP) in a diamond network topology.
  • STP Spanning Tree Protocol
  • node A 202 a is at the left side of the diamond topology
  • node B 202 b is at the right of the diamond topology
  • node C 202 c is at the top of the diamond topology
  • node D 202 d is at the bottom of the diamond topology.
  • Each of node A 202 a , node B 202 b , node C, 202 c , and node D 202 d are network nodes that are enabled with STP, such as classical Ethernet switches.
  • Node A 202 a is connected to node C 202 c and node D 202 d .
  • Node B 202 b is connected to node C 202 c and node D 202 d .
  • Node C 202 c is connected to node A 202 a and node B 202 b .
  • node D 202 d is connected to node A 202 a and node B 202 b.
  • Spanning Tree Protocol is a network protocol that attempts to ensure a loop-free topology for a bridged Ethernet local area network by preventing bridge loops. Spanning tree protocol allows a network design to include redundant links to provide automatic backup paths if an active link fails, without the danger of bridge loops, or the need for manual enabling/disabling of these backup links. Spanning Tree Protocol (STP), standardized as IEEE 802.1D, creates a spanning tree within a mesh network of connected layer-2 bridges (typically Ethernet switches), and disables those links that are not part of the spanning tree, leaving a single active path between any two network nodes. However, spanning tree protocol is limited in that it requires the use of only one link of a tree for forwarding traffic in order to prevent loops while another link is wasted.
  • node D 202 d wishes to send traffic to node C 202 d
  • node D 202 d could send the traffic through either a link through node A 202 a to node C 202 c or a link through node B 202 b to node C 202 c .
  • STP will require only one of the links to be used. For example, STP may require that only the link passing through node A 202 a is used to send traffic from node D 202 d to node C 202 c .
  • the other link from node D 202 d to node C 202 c through node B 202 b cannot be used and is therefore wasted.
  • TRILL and FabricPath Link-state protocols such as Transparent Interconnect of Lots of Links (TRILL) and FabricPath have been developed to overcome the shortcomings of STP.
  • TRILL and Fabricpath are two link-state protocol technologies that were developed to replace Spanning Tree Protocol (STP) in the Ethernet space.
  • TRILL and Fabricpath technologies allow for the use of all possible links in a topology.
  • Fabricpath was developed by Cisco and TRILL is an IETF standard. Both Fabricpath and TRILL use Intermediate System To Intermediate System (IS-IS) as the routing protocol used to create a loop free topology as well as to create multiple paths.
  • IS-IS is a link-state routing protocol designed to move information efficiently within a computer network, a group of physically connected computers or similar devices.
  • IS-IS operates by reliably flooding link state information throughout a network of routers or switches. Each IS-IS router or switch independently builds a database of the network's topology and aggregates the flooded network information. IS-IS uses Dijkstra's algorithm for computing the best path through the network. Packets or datagrams are then forwarded through the network to the destination based on the computed ideal path.
  • TRILL switches run a link state protocol amongst themselves.
  • a link state protocol connectivity is broadcast to all the TRILL switches, so that each TRILL switch knows about all the other TRILL switches, and the connectivity between them. This gives the TRILL switches enough information to compute pair-wise optimal paths for unicast traffic, and calculate distribution trees for delivery of frames either to destinations whose location is unknown or to multicast/broadcast groups.
  • TRILL uses IS-IS link state routing protocol because it runs directly over Layer 2, so it can be run without configuration, i.e., no IP addresses need to be assigned, and it is easy to extend by defining new TLV (type-length-value) data elements and sub-elements for carrying TRILL information.
  • the first TRILL switch is known as the “ingress RBridge” and the second TRILL switch is known as the “egress RBridge.”
  • a dynamic nickname acquisition protocol is run among the TRILL switches to select two-octet nicknames for the TRILL switches which are unique within the network, and which are an abbreviation for the six-octet IS-IS system ID of the TRILL switch.
  • the two-octet nicknames are used to specify the ingress and egress RBridges in the TRILL header.
  • the TRILL header consists of six octets.
  • the first two octets include a 6-bit decrementing hop count, plus flags, the next two octets contain the egress RBridge nickname, and the final two octets contain the ingress RBridge nickname.
  • the “egress RBridge nickname” specifies a distribution tree for the frame, where the nicknamed TRILL switch is the root of the distribution tree.
  • the ingress RBridge selects which distribution tree the frame should travel along.
  • TRILL switches are transparent to layer 3 devices, and all the links interconnected by TRILL switches appear to layer 3 devices to be a single link, TRILL switches act as link routers in the sense that, in the forwarding of a frame by a transit TRILL switch, the outer layer 2 header is replaced at each hop with an appropriate layer 2 header for the next hop, and the hop count is decreased.
  • the original encapsulated frame is preserved, including the original frame's virtual LAN (VLAN) tag. Multipathing of multi-destination frames through alternative distribution tree roots and ECMP (Equal Cost MultiPath) of unicast frames are supported. Networks with a more mesh-like structure will benefit to a greater extent from the multipathing and optimal paths provided by TRILL than will networks with a more tree-like structure.
  • Fabricpath is a link-state protocol developed by Cisco that uses the IS-IS routine protocol to implement Shortest Path First (SPF) routing to determine reachability and path selection in a network cloud.
  • Fabricpath uses the IS-IS routing protocol with Fabricpath-specific extensions such as exchanging switch ID (SID) reachability instead of IP prefixes.
  • Fabricpath may also employ equal-cost multipath (ECMP) forwarding to make use of all available bandwidth.
  • Fabricpath-enabled switches differ from classical Ethernet switches in at least two ways: they compute layer 2 paths using control messages carried over IS-IS, the routing protocol, and they encapsulate incoming Ethernet frames with a Fabricpath header. This header contains routable source and destination switch addresses and a time-to-live field for loop prevention.
  • Fabricpath In contrast to STP, Fabricpath creates a single switch fabric across all participating switches, increasing available bandwidth within a single layer-2 domain. Fabricpath also reduces broadcast flooding and media access control (MAC) address table size, both well-known issues with large layer-2 networks. Fabricpath switches use multicast rather than flooding to forward frames sent to unknown destinations, and compute routing tables with information learned from the fabric and source MAC addresses learned on each edge switch. Moreover, using an approach called “conversational learning,” switches populate MAC address tables only for ports actually involved in conversations. This differs from conventional switching, where switches see all flooded traffic within a broadcast domain and put every address into their MAC tables. In contrast, Fabricpath switches don't need large MAC address tables, even when layer-2 domains encompass tens of thousands of hosts.
  • MAC media access control
  • a virtual PortChannel allows links that are physically connected to two different switches to appear as a single PortChannel to a third device. This provides a loop free topology eliminating the spanning-tree-blocked ports and maximizing the bandwidth usage.
  • a classical (not FabricPath-enabled) Ethernet switch can be connected through a port channel to two FabricPath edge switches by using a configuration construct called emulated switch.
  • the emulated switch implementations in FabricPath, where two FabricPath edge switches provide a vPC to a third-party device, is called vPC+.
  • vPC+ carries the vPC legacy into the Fabricpath world by offering a migration solution for users or customers who desire to migrate from Classical Ethernet to TRILL or Fabricpath.
  • Emulated switch is a construct in which two FabricPath switches emulate a single switch to the rest of the FabricPath network.
  • the packets originated by the two emulated switches are sourced with the emulated switch ID.
  • the other FabricPath switches are not aware of this and simply see the emulated switch, identified by a dedicated switch ID value called the emulated switch ID, as reachable through both switches. This means that the two emulated switches have to be directly connected via peer link, and there should be a peer-keep alive path between the two switches to form the vPC+.
  • vPC allows first classical Ethernet switch (CE1) 102 a to connect to first switch (S1) 104 a , second switch (S2) 104 b , and sixth switch (S6) through nth switch (Sn) 104 n such that first switch (S1) 104 a , second switch (S2) 104 b , and sixth switch (S6) through nth switch (Sn) 104 n appear as a single device to first classical Ethernet switch (CE1) 102 a .
  • vCP allows first classical Ethernet switch (CE1) 102 a to have multiple links to first switch (S1) 104 a and bundle those links to appear as one link.
  • vPC further allows first classical Ethernet switch (CE1) 102 a to have multiple links to not just first switch (S1) 104 a , but also to second switch (S2) 104 b , sixth switch (S6) 104 f . . . nth switch (Sn) 104 n and bundle them into a single link which is called the virtual port channel.
  • CE1 classical Ethernet switch
  • S1 first switch
  • S2 second switch
  • S6 sixth switch
  • Sn sixth switch
  • vPC+ provides a similar functionality into the FabricPath domain in which first switch (S1) 104 a and second switch (S2) 104 b connect to first classical Ethernet switch (CE1) 102 a and appear as a single node to any other node in the network cloud above such as third switch (S3) 104 c , fourth switch (S4) 104 d , and fifth switch (S5) 104 e.
  • first switch (S1)) 104 a and second switch (S2) 104 b is required, for example, to exchange certain connectivity data.
  • connectivity between first classical Ethernet switch CE1 ( 102 a ) and switches 104 a - 104 n would require that each switch 104 a - 104 b have a peer link with every other switch 104 a - 104 n .
  • To set up such a mesh using current vPC+ technology is not a scalable solution.
  • Existing vPC+ implementations have limitations such as the ability to only provide two-way redundancy, and requiring cross connect peer links between boundary switches.
  • first switch (s1) 104 a and second switch (S2) 104 b to emulate a switch identifier (ID) and requires the use of a peer-link between first switch (s1) 104 a and second switch (S2) 104 b .
  • a classical Ethernet switch such as first classical Ethernet switch (CE1) 102 a can reach the Fabricpath cloud only through either first switch (s1) 104 a and second switch (S2) 104 b even if first classical Ethernet switch (CE1) 102 a has multiple uplinks to the Fabricpath cloud.
  • Various embodiments described herein provide for seamless integration of Classical Ethernet infrastructure with a link-state infrastructure such as a TRILL or Fabricpath infrastructure and provide n-way active-active forwarding, with minimum configuration by running a new reliable multicast distribution protocol to distribute link routing information in a cloud.
  • the N-way link-state routing protocol described in various embodiments herein provides for the connection of as many peer switches as desired into a cloud without requiring a peer link between any of the switches. For example, referring again to FIG.
  • first classical Ethernet switch (CE1) 102 a is able to connect to switches 104 a - 104 b and 104 f - 104 n without requiring any physical peer connections between switches 104 a - 104 n through the switches 104 a - 104 n exchanging connectivity information over a link-state protocol cloud.
  • the link-state protocol enabled switches 104 a - 104 n are in communication with one another by the link-state protocol cloud.
  • the link-state protocol cloud is a Fabricpath cloud.
  • the link-state protocol cloud is a TRILL cloud.
  • One or more embodiments of the N-way link-state routing protocol described herein support N switches within a cloud to emulate a switch identifier (ID)/nickname without needing a peer link by running a reliable multicast distribution protocol on all switches that need to emulate a switch-id/nickname to exchange information in order to correctly advertise an association of the switch with a switch ID/nickname and a tree id. Further, the reliable multicast distribution protocol relays this information to the Fabricpath control plane, which then sends the information across the Fabricpath cloud to achieve N way connectivity of each classical Ethernet (CE) switch to the Fabricpath cloud.
  • CE classical Ethernet
  • switches 104 a - 104 n each are enabled with an N-way link-state routing protocol.
  • the N-way link routing protocol is a multicast distribution protocol used by the switches 104 a - 104 n to communicate connectivity information among one other.
  • the connectivity information includes information regarding the individual connectivity of the switches 104 a - 104 n to one or more the classic Ethernet switches 102 a - 102 N information.
  • the connectivity information carried by the protocol includes an identifier for the particular switch 104 a - 104 n , a switch priority value, and the connectivity of each switch 104 a - 104 n to one or more of classical Ethernet switches 102 a - 102 n .
  • the identifier associated with switches 104 a - 102 b is the backplane Media Access Control (MAC) address of the particular switch 104 a - 104 n nodes.
  • MAC Media Access Control
  • the priority information is used to determine which of the switches 104 a - 104 b will function as a Group Appointed Proxy Forwarder (GAPF), a Master Node Forwarder (MNF), and a Backup Node Forwarder (BNF) for a given set of boundary nodes, such as one or more of switch 104 a - 104 n , and classic Ethernet switches such as one or more of classic Ethernet switches 102 a - 102 n .
  • GPF Group Appointed Proxy Forwarder
  • MNF Master Node Forwarder
  • BNF Backup Node Forwarder
  • FIG. 3 illustrates an embodiment of a link-state routing protocol enabled switch 104 according to one embodiment.
  • Switch 104 may include one or more of switches 104 a - 104 n of FIG. 1 .
  • Switch 104 includes one or more processor(s) 302 , a memory element 304 , I/O ports 306 , a routing table 308 , and n-way link-state routing protocol module 310 .
  • Processor(s) 302 is configured to execute various tasks of switch 104 as described herein and memory element 304 is configured to store data associated with switch.
  • I/O ports 306 are configured to interface with one or more of classical Ethernet switches 102 a - 102 n , another link-state protocol enabled switch 104 a - 104 n , and/or hosts 106 a - 106 e .
  • Routing table 308 is configured to store link-state and other routing information associated with switch 104 .
  • N-way link-state routing protocol module 310 is configured to implement the various functions of the N-way link-state routing protocol as further described herein.
  • switch 104 is a network element that includes software to achieve (or to foster) the N-way link-state routing protocol operations, as outlined herein in this Specification.
  • each of these elements can have an internal structure (e.g., a processor, a memory element, etc.) to facilitate some of the operations described herein.
  • these N-way link-state routing protocol operations may be executed externally to this elements, or included in some other network element to achieve this intended functionality.
  • switch 300 may include this software (or reciprocating software) that can coordinate with other network elements in order to achieve the operations, as outlined herein.
  • one or several devices may include any suitable algorithms, hardware, software, components, modules, interfaces, or objects that facilitate the operations thereof.
  • FIG. 4 is a simplified block diagram of another embodiment of a communication system 400 for providing n-way link-state routing redundancy without peer links in a network environment.
  • Communication system 400 of FIG. 4 includes first classical Ethernet switch (CE1) 102 a , and second classical Ethernet switch (CE2)
  • Communication system 400 further includes first switch (S1) 104 a , second switch (S2) 104 b , third switch (S3) 104 c , fourth switch (S4) 104 d , fifth switch (S5) 104 e , sixth switch (S6) 104 f , and seventh switch (S7) 104 g .
  • first classical Ethernet switch CE1
  • CE2 classical Ethernet switch
  • Communication system 400 further includes first switch (S1) 104 a , second switch (S2) 104 b , third switch (S3) 104 c , fourth switch (S4) 104 d , fifth switch (S5) 104 e , sixth switch (S6) 104 f , and seventh switch (S7) 104 g
  • each of switches 104 a - 104 n support the n-way link-state protocol as further described herein and form a link-state protocol cloud.
  • Communication system 400 further includes host A 106 a , host B 106 b , host C 106 c , and host D 106 d.
  • First classical Ethernet switch (CE1) 102 a is in communication with first switch (S1) 104 a , second switch (S2) 104 b , third switch (S3) 104 c , and fourth switch (S4) 104 d .
  • second classical Ethernet switch (CE2) 102 b is also in communication with first switch (S1) 104 a , second switch (S2) 104 b , third switch (S3) 104 c , and fourth switch (S4) 104 d .
  • First switch (S1) 104 a and second switch (S2) 104 b are further in communication with fifth switch (S5) 104 e , sixth switch (S6) 104 f , and seventh switch (S7) 104 g .
  • fifth switch (S5) 104 e fifth switch
  • sixth switch (S6) 104 f sixth switch
  • S7 seventh switch
  • switches 104 a - 104 g are enabled with a FabricPath protocol and form a Fabricpath cloud.
  • switches 104 a - 104 d are edge switches representing the edge of the cloud with respect to communication with classical Ethernet switches 102 a - 102 b .
  • FIG. 4 is described using FabricPath as an example, it should be understood that in other embodiments any suitable protocol may be used.
  • switches 104 a - 104 g of FIG. 4 are enabled with a TRILL protocol and form a TRILL cloud.
  • Host A 106 a is in communication with first classical Ethernet switch (CE1) 102 a and host B 106 b is in communication with second classical Ethernet switch (CE2) 102 b .
  • Host C 106 c is in communication with fifth switch (S5) 104 e
  • host D 106 d is in communication with sixth switch (S6) 104 g .
  • FIG. 4 is illustrated as using a fixed number of nodes for simplicity of description, it should be understood that in other embodiments any number of nodes may be included in communication system 400 .
  • each of the classical Ethernet (CE) switches 102 a - 102 b are advertised using a unique nickname by each of the edge switches 104 a - 104 d it is connected to provided the number of trees in the Fabricpath cloud is more than the number of edge switches 104 a - 104 d .
  • the unique nickname for a particular classical Ethernet (CE) switch is an emulated switch ID of the CE switch.
  • a tree represents a forwarding path including links through the edge switches 104 a - 104 d for traffic to transit within the cloud.
  • edge switches 104 a - 104 d advertises the particular classical Ethernet switches 102 a - 102 b as leaf nodes of the tree to the other edge switches 104 a - 104 d .
  • the edge switches 104 a - 104 d advertises via either an existing nickname type-length-value (TLV) data element or via a new IS-IS TLV called a TRILL local Reachability TLV as will be further described herein.
  • first edge switch (S1) 104 a announces a nickname for first classical Ethernet switch (CE1) 102 a along with a nickname that uniquely identifies first edge switch (s1) 104 a .
  • First edge switch (S1) 104 a also announces an affinity TLV with the nickname for first classical Ethernet switch (CE1) 102 a and a tree value on which first classical Ethernet switch (CE1) 102 a should hang off of first edge switch (S1) 104 a for delivering multicast traffic.
  • each of the CE switches 102 a - 102 b there can be multiple servers, clients, or hosts behind it sending traffic into the cloud.
  • traffic coming from behind these servers may be destined either to servers, clients, or hosts behind the second CE switch (CE2) 10 , another classical Ethernet switch in the network, or to nodes that are outside the cloud behind fifth switch (S5) 104 e , sixth switch (S6) 104 f , and seventh switch (S7) 104 g .
  • first Classical Ethernet switch (CE1) 102 a For any traffic that first Classical Ethernet switch (CE1) 102 a pushes onto the network, it uses an emulated switch ID, for example an emulated switch ID CE1 instead of, for example, a switch ID of first switch (S1) 104 a and second switch (S2) 104 b since first switch (S1) 104 a and second switch (S2) 104 b are going to eventually pump that traffic into the cloud.
  • CE1 an emulated switch ID of first switch (S1) 104 a and second switch (S2) 104 b since first switch (S1) 104 a and second switch (S2) 104 b are going to eventually pump that traffic into the cloud.
  • CE classical Ethernet
  • An advantage of at least one embodiment is that the IS-IS protocol adds classical Ethernet (CE) nodes as leaf nodes or advertising/originating nodes without having to modify an existing Shortest Path First (SPF) routing algorithm.
  • CE classical Ethernet
  • SPF Shortest Path First
  • the complexity of SPF does not increase with this process since the number of intermediate systems (IS's) that the SPF algorithm calculates is still the same. There are just extra leaves that each node needs to add.
  • Level 3 (L3) IS-IS handles many more IP prefixes per switch/router. If the complexity with N switches (with N nicknames) is O(n) then in this case with N+M(emulated nicknames) it will be O(N)+x(time to digest M nicknames) ⁇ 0(N+M).
  • one of the edge switches 104 a - 104 n is designated as a Group Appointed Proxy forwarder (GAPF) for a given set of boundary nodes and CE nodes and for a given tree.
  • the GAPF decides the edge switch through which each of CE nodes will attach on a given multicast tree.
  • the number of available multicast trees should be greater than or equal to the number of edge switches.
  • Each CE node connects to all of the multicast trees through one of the edge switches. If the number of edge switches is less than the number of trees then the CE switch hangs off the edge switches in a round robin fashion based on predetermined priorities.
  • CE ⁇ pair there is a multicast tree (MTr).
  • the particular edge switch (bRB) uses the multicast tree (MTr) to forward traffic it receives from the classical Ethernet (CE) switch.
  • Edge switches 104 a - 104 d run the n-way link-state routing protocol. As part of this protocol, edge switches 104 a - 104 d send HELLO messages to each other. HELLO messages are messages sent within a network to announce connectivity. The HELLO messages include the unique identifier of the particular edge switch 104 a and a GAPF priority representative of the priority of the particular edge switch 104 a - 104 d in being selected as the GAPF. In one or more embodiments, the unique identifier of the particular edge switch 104 a - 104 n is the backplane MAC address of the particular edge switch 104 a - 104 d .
  • the unique identifier of the particular edge switch 104 a - 104 d is a configurable value, such as a six-byte configurable value.
  • the HELLO message from a particular edge switch 104 a - 104 d further include a list of classical Ethernet (CE) switches, such as one or more of classical Ethernet switches 102 a - 102 b , to which the particular edge switch 104 a - 104 d is connected to along with the status of the link, i.e., either UP or DOWN, between the particular edge switch 104 a - 104 d and the particular classical Ethernet switch 102 a - 102 .
  • CEC classical Ethernet
  • each of the edge switches 104 a - 104 d Upon receiving the HELLO message from all of the edge switches in the cloud, each of the edge switches 104 a - 104 d runs a common algorithm to elect the GAPF as well as a back-up GAPF (BGAPF) for the particular classical Ethernet (CE) switch and the associated multicast tree.
  • the algorithm to select the GAPF includes selecting the edge switch having the highest GAPF priority value with any ties broken by selecting the edge switch having the higher MAC address.
  • the Group Appointed Proxy Forwarder then elects one of the edge switches as a Master Node Forwarder (MNF) and another of the edge switches as a Backup Node Forwarder (BNF).
  • MNF Master Node Forwarder
  • BNF Backup Node Forwarder
  • the MNF announces each classical Ethernet (CE) switch's association with a particular multicast tree to the rest of the edge switches using the emulated switch ID of the particular classical Ethernet switch.
  • CE classical Ethernet
  • different ones of the edge switches 104 a - 104 b may be chosen as the GAPF, MNF, and BNF to announce an emulated switch ID on another tree.
  • each edge switch 104 a - 104 d may be used to tie one emulated switch ID to one tree.
  • a multiple of trees are configured such that the emulated switch ID may be tied to any number of nodes.
  • first edge switch (S1) 104 a is selected as the GAPF and second edge switch S2 is selected as the back-up GAPF (BAGPF).
  • First edge switch (S1) 104 a calculates a pair of switches, for example, first edge switch (S1) 104 a and second edge switch (S2) 104 b for every classical Ethernet (CE) switch that hangs off more than two edge switches.
  • first edge switch (S1) 104 a in its role as the GAPF will elect first edge switch (S1) 104 a as the MNF and second edge switch (S2) 104 b as the BNF.
  • first classical Ethernet switch (CE1) 102 a will hang off first edge switch (S1) 104 a for multicast Tree 1.
  • first classical Ethernet switch (CE1) 102 a will hang off and second edge switch (S2) 104 b for Tree 1.
  • GAPF control information is advertised by first edge switch (S1) 104 a in a nickname TLV and the multicast tree association is announced in an affinity TLV.
  • FIG. 5 is a simplified flowchart illustrating one embodiment of a procedure 500 for providing n-way link-state routing redundancy without peer links in a network environment.
  • procedure 500 is performed by one or more link-state protocol enabled switching nodes of a plurality of link-state protocol enabled switching nodes that are configured to run the n-way link-state routing of the present description.
  • the link-state protocol enabled switching node is one or more of the switches 104 a - 104 d of FIG. 1 .
  • Procedure 500 starts at 502 .
  • the link-state protocol enabled switching node announces (or broadcasts) a switching node identifier associated with the link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes.
  • the switching node identifier is a switch ID associated with the link-state protocol enabled switching node.
  • the switch ID is the link-state protocol enabled switching node's backplane MAC address, which is a six-byte value, which may be used to uniquely identify each of the switches 104 a - 104 g within the network.
  • the link-state protocol enabled switching node announces (or broadcasts) a priority associated with the link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes.
  • the link-state protocol enabled switching node announces (or broadcasts) connectivity information of the link-state protocol enabled switching node with one or more spanning tree protocol (STP) enabled switching nodes to the plurality of link-state protocol enabled switching nodes over the link-state protocol cloud without requiring a physical peer link between the link-state protocol enabled switching nodes.
  • the connectivity information includes an emulated switch ID associated with a particular STP enabled switching node.
  • the connectivity information may further include a status of the connection with the STP enabled switching node such as whether the connection is in an UP or DOWN state.
  • the STP enabled switching nodes are one or more of classical Ethernet (CE) switching nodes 102 a - 102 b.
  • CE classical Ethernet
  • the connectivity information includes a list of CE switches 102 a - 102 b that are connected to a particular edge switch 104 a - 104 d .
  • the edge switches 104 a - 104 d know which CE switches 102 a - 102 b they are connected to because when the links between any of the edge switches 104 a - 104 d and CE switches 102 a - 102 b start to come up, there is an exchange between edge switches 104 a - 104 d and CE switches 102 a - 102 b .
  • Existing protocols are available to relay this information.
  • each of edge switches 104 a - 104 d will announce that it is connected to one or more CE switches 102 a - 102 b . Once this information is available at all nodes, this information is maintained within each of the edge switches 104 a - 104 d in case one of the edge switches 104 a - 104 d fails. In addition, the connectivity information is sent regularly between the edge switches 104 a - 104 d.
  • a Group Appointed Proxy Forwarder is determined for the STP enabled switching node based upon the priority associated with each of the plurality of link-state protocol enabled switching nodes.
  • the link-state protocol enabled switching node with the highest priority is chosen as the GAPF.
  • the link-state protocol enabled switching node having the higher MAC address is determined to be the GAPF.
  • the priority of the link-state protocol enabled switching node may include a default priority value that is user configurable. For example, a default priority of 64 may be chosen for all nodes. A user may configure a higher priority value to a link-state protocol enabled switching node that is believed to be unlikely to fail. Referring back to FIG.
  • edge switch 104 a is determined to be the GAPF.
  • the GAPF determines a Master Node Forwarder (MNF) for the STP enabled switching node from among the plurality of link-state protocol enabled switching nodes based upon the connectivity information of each of the plurality of link-state protocol enabled switching nodes with the STP enabled switching node.
  • the function of the MNF is to tie (or associate) the emulated switch ID of the STP enabled switching node onto a particular multicast tree of the cloud.
  • edge switch (S1) 104 a acting as GAPF may determine that edge switch 104 a will be the MNF and will tie the emulated switch ID of classical Ethernet switch (CE1) 102 a to multicast tree 1.
  • the GAPF announces the MNF for the particular STP enabled node and particular tree to the plurality of link-state protocol enabled switching nodes.
  • the GAPF determines a Backup Node Forwarder for the STP enabled switching node from among the plurality of link-state protocol enabled switching nodes in case the MNF fails. For example, edge switch (S1) 104 a may determine that edge switch (S2) 102 b will be the BNF for the STP enabled switching node and tree 1 in case edge switch (S1) 102 a fails.
  • the GAPF announces the BNF for the particular STP enabled switching node and particular tree so that the BNF can assume the role of the MNF in case the MNF fails.
  • the GAPF may further perform the function of selected a Backup Group Appointed Proxy Forwarder (BGAPF).
  • BGAPF Backup Group Appointed Proxy Forwarder
  • procedure 500 ends. Upon completion of procedure 500 traffic can now flow from the STP enabled switching nodes through the cloud including the link-state protocol enabled switching nodes.
  • Operations 510 - 518 of procedure 500 will be performed for each of the STP enabled switching nodes and trees.
  • edge switch 104 a acting as the GAPF will determine a MNF and BNF to tie an emulated switch ID associated with classical Ethernet switch (CE2) 102 b on tree 2.
  • CE2 classical Ethernet switch
  • FIG. 6 illustrates an embodiment of a TLV (type-length-value) data element 600 for advertising a nickname for a classical Ethernet (CE) switch by an edge switch.
  • the data element 600 is a 32-bit data element that includes a 16-bit RESERVED field 602 and a 16-bit NICKNAME field 604 .
  • the RESERVED field 602 is set to 0 at transmission and Ignored at the receiver.
  • the NICKNAME field 604 is set to the classical Ethernet (CE) switch or bridge nickname.
  • the NICKNAME field 604 is set to the emulated switch ID of the CE switch or bridge.
  • the data element 600 is sent in a TRILL Layer 2 Reachability TLV and the value of the NICKNAME filed 604 is set to legal nickname value and not set to reserved value.
  • the data element 600 is transmitted as a sub-TLV within a router capability TLV.
  • the edge switch withdraws the TRILL Layer 2 reachability TLV when it has no longer has links, that is no local connectivity to the CE switch or bridge it previously announced as reachable.
  • the nickname for the nickname for the CE switch can be advertised using an existing nickname TLV instead of the date element 600 .
  • FIG. 7A is a simplified flowchart illustrating one embodiment of a procedure 700 for providing for link failure recovery for a link failure between a Master Node Forwarder (MNF) and a classical Ethernet (CE) switch.
  • procedure 700 begins.
  • the MNF detects a link failure between the MNF and the CE switch.
  • the MNF detects a link failure between the MNF and the CE switch by detecting that HELLO messages are no longer exchanged between the MNF and the CE switch.
  • the MNF notifies the Group Appointed Proxy Forwarder (GAPF) of the reachability change between the MNF and the CE switch indicating that the MNF can no longer reach the CE switch.
  • GPF Group Appointed Proxy Forwarder
  • the GAPF reassigns the CE emulated switch ID and tree to the BNF.
  • the GAPF directly notifies the BNF and Backup GAPF (BGAPF) of the reassignment of the emulated switch ID and tree pair to the BNF.
  • BGAPF Backup GAPF
  • the MNF removes the CE emulated switch ID and tree when the link goes down to avoid packet duplication and looping.
  • the MNF stops announcing its reachability to CE by pulling the CE emulated switch ID out of the affinity TLV and the nickname TLV. The MNF only reassigns upon receiving notification from the GAPF.
  • procedure 700 ends.
  • FIG. 7B is a simplified flowchart illustrating one embodiment of a procedure 720 for providing for link failure recovery for a link failure between a Backup Node Forwarder (BNF) and a classical Ethernet (CE) switch.
  • procedure 720 begins.
  • the BNF detects a link failure between the BNF and the CE switch.
  • the BNF detects a link failure between the BNF and the CE switch by detecting that HELLO messages are no longer exchanged between the BNF and the CE switch.
  • the BNF pulls the CE emulated switch ID out of the nickname TLV.
  • the BNF notifies the GAPF of the reachability change to the CE switch indicating that the CE switch is no longer reachable by the BNF.
  • the GAPF elects a new BNF.
  • the GAPF announces the new BNF to the network.
  • procedure 720 ends.
  • FIG. 7C is a simplified flowchart illustrating one embodiment of a procedure 740 for providing for link failure recovery for a link failure between an edge switch and a classical Ethernet (CE) switch.
  • the edge (or boundary) switch is not a GAPF, BGAPF, MNF, or BNF.
  • procedure 740 begins.
  • the edge switch detects link failure between the edge switch and the CE switch.
  • the edge switch detects a link failure between the edge switch and the CE switch by detecting that HELLO messages are no longer exchanged between the edge switch and the CE switch.
  • the edge switch stops announcing its association with the CE switch in the hello messages so that it is not picked for delivering traffic to the CE switch in case other links fail.
  • procedure 740 ends.
  • FIG. 8A is a simplified flowchart illustrating one embodiment of a procedure 800 for providing for node failure recovery for a Group Appointed Proxy Forwarder (GAPF) node failure.
  • procedure 800 begins.
  • the Backup Group Appointed Proxy Forwarder (BGAPF) node detects that the GAPF node has failed.
  • the BGAPF node detects that the GAPF node has failed by detecting that a HELLO message time-out period has expired.
  • the BGAPF becomes the new GAPF for the network.
  • the BGAPF node (new GAPF) announces its new role as the GAPF node to the other nodes in the network.
  • the new GAPF node (previous BGAPF node) elects a new BGAPF node for the network.
  • the new GAPF node (previous BGAPF node) announces the new BGAPF node to the other nodes in the network.
  • procedure 800 ends.
  • FIG. 8B is a simplified flowchart illustrating one embodiment of a procedure 820 for providing for node failure recovery for a Backup Group Appointed Proxy Forwarder (BGAPF) node failure.
  • procedure 820 begins.
  • the GAPF node detects that the BGAPF node has failed.
  • the GAPF node detects that the BGAPF node has failed by detecting an expiry of a HELLO message time out period.
  • the GAPF node elects a new BGAPF node.
  • the GAPF announces the new BGAPF node to the other nodes of the network.
  • procedure 800 ends.
  • FIG. 8C is a simplified flowchart illustrating one embodiment of a procedure 840 for providing for node failure recovery for a Master Node Forwarder (MNF) node failure.
  • procedure 840 begins.
  • the GAPF node detects that the MNF node has failed. In a particular embodiment, the GAPF node detects that the MNF node has failed based upon a HELLO message time out period expiry.
  • the GAPF node elects the BNF to the MNF role. The new MNF node then starts announcing its association to the classical Ethernet (CE) switch on the tree that the old MNF was announcing affinity to.
  • CE classical Ethernet
  • the GAPF node elects a new BNF node.
  • the GAPF announces the new BNF node to the other nodes of the network.
  • procedure 840 ends.
  • FIG. 8D is a simplified flowchart illustrating one embodiment of a procedure 860 for providing for node failure recovery for a Backup Node Forwarder (BNF) node failure.
  • procedure 860 begins.
  • the GAPF node detects that the BNF node has failed.
  • the GAPF node detects that the BNF node has failed based upon a HELLO message time out period expiry.
  • the GAPF node elects a new BNF node for the network.
  • the GAPF node announces the new BNF node to the network.
  • procedure 860 ends.
  • the n-way link-state routing redundancy functions outlined herein may be implemented by logic encoded in one or more tangible non-transitory media (e.g., embedded logic provided in an application specific integrated circuit [ASIC], digital signal processor [DSP] instructions, software [potentially inclusive of object code and source code] to be executed by a processor, or other similar machine, etc.).
  • ASIC application specific integrated circuit
  • DSP digital signal processor
  • a memory element can store data used for the operations described herein. This includes the memory element being able to store software, logic, code, or processor instructions that are executed to carry out the activities described in this Specification.
  • a processor can execute any type of instructions associated with the data to achieve the operations detailed herein in this Specification.
  • the processor [as shown in FIG. 3 ] could transform an element or an article (e.g., data) from one state or thing to another state or thing.
  • the activities outlined herein may be implemented with fixed logic or programmable logic (e.g., software/computer instructions executed by a processor) and the elements identified herein could be some type of a programmable processor, programmable digital logic (e.g., a field programmable gate array [FPGA], an erasable programmable read only memory (EPROM), an electrically erasable programmable ROM (EEPROM)) or an ASIC that includes digital logic, software, code, electronic instructions, or any suitable combination thereof.
  • FPGA field programmable gate array
  • EPROM erasable programmable read only memory
  • EEPROM electrically erasable programmable ROM
  • switches 104 a - 104 n may include software in order to achieve the n-way link-state routing redundancy functions outlined herein. These activities can be facilitated by routing table 308 and/or n-way link-state routing protocol module 310 (where these modules can be suitably combined in any appropriate manner, which may be based on particular configuration and/or provisioning needs). Switches 104 a - 104 n can include memory elements for storing information to be used in achieving the n-way link-state routing redundancy activities, as discussed herein. Additionally, switches 104 a - 104 n may include a processor that can execute software or an algorithm to perform the n-way link-state routing redundancy operations, as disclosed in this Specification.
  • RAM random access memory
  • ROM read-only memory
  • EPROM erasable programmable read-only memory
  • EEPROM electrically erasable programmable read-only memory
  • ASIC application specific integrated circuit
  • Any of the memory items discussed herein e.g., database, tables, trees, cache, etc.
  • processor any of the potential processing elements, modules, and machines described in this Specification should be construed as being encompassed within the broad term ‘processor.’
  • Each of the network elements can also include suitable interfaces for receiving, transmitting, and/or otherwise communicating data or information in a network environment.
  • communication system 100 (and its teachings) are readily scalable and can accommodate a large number of components, as well as more complicated/sophisticated arrangements and configurations. Accordingly, the examples provided should not limit the scope or inhibit the broad teachings of communication system 100 as potentially applied to a myriad of other architectures.
  • communication system 100 may be applicable to other protocols and arrangements.
  • communication system 100 can be extended to any link-state routing architecture.
  • communication system 100 has been illustrated with reference to particular elements and operations that facilitate the communication process, these elements and operations may be replaced by any suitable architecture or process that achieves the intended functionality of communication system 100 .

Landscapes

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

Abstract

A method is provided in one example and includes broadcasting a switching node identifier associated with a first link-state protocol enabled switching node to a plurality of link-state protocol enabled switching nodes. The plurality of link-state protocol enabled switching nodes are in communication with one another by a link-state protocol cloud. The method further includes broadcasting a priority associated with the first link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes. The method further includes broadcasting connectivity information of the first link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes using the link-state protocol cloud. The connectivity information includes connectivity of the first link-state protocol enabled switching node with at least one spanning tree protocol enabled switching node.

Description

    TECHNICAL FIELD
  • This disclosure relates in general to the field of communications and, more particularly, to providing n-way link-state routing redundancy without peer links in a network environment.
  • BACKGROUND
  • Spanning Tree Protocol (STP) is a network protocol that attempts to ensure a loop-free topology for a bridged Ethernet local area network by preventing bridge loops. Spanning tree protocol allows a network design to include redundant links to provide automatic backup paths if an active link fails, without the danger of bridge loops, or the need for manual enabling/disabling of these backup links. Spanning Tree Protocol (STP), standardized as IEEE 802.1D, creates a spanning tree within a mesh network of connected layer-2 bridges (typically Ethernet switches), and disables those links that are not part of the spanning tree, leaving a single active path between any two network nodes. However, spanning tree protocol is limited in that it requires the use of only one link of a tree for forwarding traffic in order to prevent loops while another link is wasted. Link-state protocols such as Transparent Interconnect of Lots of Links (TRILL) and FabricPath have been developed to overcome the shortcomings of spanning tree protocol.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • To provide a more complete understanding of the present disclosure and features and advantages thereof, reference is made to the following description, taken in conjunction with the accompanying figures, wherein like reference numerals represent like parts, in which:
  • FIG. 1 is a simplified block diagram of an embodiment of a communication system for providing n-way link-state routing redundancy without peer links in a network environment;
  • FIG. 2 illustrates an example of a communication system configured for Spanning Tree Protocol (STP) in a diamond network topology;
  • FIG. 3 illustrates an embodiment of a link-state routing protocol enabled switch according to one embodiment;
  • FIG. 4 is a simplified block diagram of another embodiment of a communication system for providing n-way link-state routing redundancy without peer links in a network environment;
  • FIG. 5 is a simplified flowchart illustrating one embodiment of a procedure for providing n-way link-state routing redundancy without peer links in a network environment;
  • FIG. 6 illustrates an embodiment of a TLV (type-length-value) data element for advertising a nickname for a classical Ethernet (CE) switch by an edge switch;
  • FIG. 7A is a simplified flowchart illustrating one embodiment of a procedure for providing for link failure recovery for a link failure between a Master Node Forwarder (MNF) and a classical Ethernet (CE) switch;
  • FIG. 7B is a simplified flowchart illustrating one embodiment of a procedure for providing for link failure recovery for a link failure between a Backup Node Forwarder (BNF) and a classical Ethernet (CE) switch;
  • FIG. 7C is a simplified flowchart illustrating one embodiment of a procedure for providing for link failure recovery for a link failure between an edge switch and a classical Ethernet (CE) switch;
  • FIG. 8A is a simplified flowchart illustrating one embodiment of a procedure for providing for node failure recovery for a Group Appointed Proxy Forwarder (GAPF) node failure;
  • FIG. 8B is a simplified flowchart illustrating one embodiment of a procedure for providing for node failure recovery for a Backup Group Appointed Proxy Forwarder (BGAPF) node failure;
  • FIG. 8C is a simplified flowchart illustrating one embodiment of a procedure for providing for node failure recovery for a Master Node Forwarder (MNF) node failure; and
  • FIG. 8D is a simplified flowchart illustrating one embodiment of a procedure for providing for node failure recovery for a Backup Node Forwarder (BNF) node failure.
  • DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS Overview
  • A method is provided in one example and includes broadcasting a switching node identifier associated with a first link-state protocol enabled switching node to a plurality of link-state protocol enabled switching nodes. The switching node identifier can be any suitable identification element in such a context. The plurality of link-state protocol enabled switching nodes can be in communication with one another by a link-state protocol cloud. The method further includes broadcasting a priority (inclusive of a possible relative priority) associated with the first link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes. The method further includes broadcasting connectivity information of the first link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes using the link-state protocol cloud. The connectivity information can include any suitable data, for example, the connectivity of the first link-state protocol enabled switching node with at least one spanning tree protocol enabled switching node.
  • In more particular embodiments, the method further includes determining a proxy forwarder node for the at least one spanning tree protocol enabled switching node based upon a priority associated with each of the plurality of link-state protocol enabled switching nodes. The proxy forwarder node is configured to determine a master node forwarder for the at least one spanning tree protocol enabled switching node from the plurality of link-state protocol enabled nodes.
  • In more particular embodiments, the method further includes associating, for example by the master node forwarder, an identifier of the at least one spanning tree protocol enabled switching node to a multicast tree of the link-state protocol cloud. In still more particular embodiments, the identifier of the at least one spanning tree protocol enabled switching node is an emulated switch identifier associated with the at least one spanning tree protocol enabled switching node.
  • In still more particular embodiments, the proxy forwarder node determines the master node forwarder based upon connectivity information of each of the plurality of link-state protocol enabled switching nodes with the at least one spanning tree protocol enabled switching node. The method can also include determining a backup node forwarder for the at least one spanning tree protocol enabled switching node. The backup node forwarder is configured to associate the identifier of the at least one spanning tree protocol enabled switching node to the multicast tree if the master node forwarder is determined to not be reachable by the master node forwarder. In still more particular embodiments, the method can include determining a backup proxy forwarder node. The backup proxy forwarder node is configured to determine the master node forwarder for the at least one spanning tree protocol enabled switching node if the proxy forwarder node is determined to be failed.
  • EXAMPLE EMBODIMENTS
  • Referring to FIG. 1, FIG. 1 is a simplified block diagram of an embodiment of a communication system 100 for providing n-way link-state routing redundancy without peer links in a network environment. Communication system 100 of FIG. 1 includes a number N of classical Ethernet switches including a first classical Ethernet switch (CE1) 102 a, a second classical Ethernet switch (CE2) 102 b up to an Nth classical Ethernet switch (CEN) 102N. in the particular embodiment illustrated in FIG. 1, classical Ethernet switches 102 a-102N support a traditional Spanning Tree Protocol (STP). Communication system 100 further includes a number n of link-state protocol enabled switches including a first switch (S1) 104 a, a second switch (S2) 104 b, a third switch (S3) 104 c, a fourth switch (S4) 104 d, a fifth switch (S5) 104 e, and a sixth switch (S6) 104 f up to an nth switch (Sn) 104 n. In the particular embodiment illustrated in FIG. 1, each of switches 104 a-104 n support a link-state protocol, such as FabricPath or Transparent Interconnect of Lots of Links (TRILL), and are enabled with an n-way link-state routing protocol as further described herein. Switches 104 a-104 n form a link-state protocol cloud. In one particular embodiment, switches 104 a-104 n form a Fabricpath cloud. Communication system 100 further includes a host A 106 a, a host B 106 b, a host C 106 c, a host D 106 d, and a host E 106 e.
  • First classical Ethernet switch (CE1) 102 a is in communication with first switch (S1) 104 a, second switch (S2) 104 b, sixth switch (S6) 104 f up to nth switch (Sn) 104 n. Similarly, second classical Ethernet switch (CE2) 102 b is also in communication with first switch (S1) 104 a, second switch (S2) 104 b, and sixth switch 104 f up to nth switch (Sn) 104 n. Further, each of the classical Ethernet switches up to Nth classical Ethernet switch (CEN) 102N are each in communication with first switch (S1) 104 a, second switch (S2) 104 b, sixth switch (S6) 104 f up to nth switch (Sn) 104 n. First switch (S1) 104 a and second switch (S2) 104 b are further in communication with third switch (S3) 104 c, fourth switch (S4) 104 d, and fifth switch (S5) 104 e. Switches 104 a-104 n form a link state protocol cloud. In a particular embodiment, switches 104 a-104 n are enabled with a FabricPath protocol and form a Fabricpath cloud. Although various embodiments described herein are described using FabricPath as an example, it should be understood that in other embodiments any suitable protocol may be used. For example, in still another embodiment switches 104 a-104 n are enabled with a TRILL protocol and form a TRILL cloud.
  • Host A 106 a is in communication with first classical Ethernet switch (CE1) 102 a and host B 106 b is in communication with second classical Ethernet switch (CE2) 102 b. Host C 106 c is in communication with third switch (S3) 104 c, host D 106 d is in communication with fourth switch (S4) 104 d, and host E 106 e is in communication with fifth switch (S5) 104 e. Host A 106 a, host B 106 b, host C 106 c, host D 106 d, and host E 106 e can be associated with clients, customers, or end users wishing to initiate a communication in communication system 100 via some network. The term ‘host’ is inclusive of devices used to initiate a communication, such as a receiver, a computer, a set-top box, an Internet radio device (IRD), a cell phone, a smart phone, a tablet, a personal digital assistant (PDA), a Google droid, an iPhone, and iPad, or any other device, component, element, or object capable of initiating voice, audio, video, media, or data exchanges within communication system 100. One or more of host A 106 a, host B 106 b, host C 106 c, host D 106 d, and host E 106 e may also be inclusive of a suitable interface to the human user, such as a display, a keyboard, a touchpad, a remote control, or other terminal equipment. One or more of host A 106 a, host B 106 b, host C 106 c, host D 106 d, and host E 106 e may also be any device that seeks to initiate a communication on behalf of another entity or element, such as a program, a database, or any other component, device, element, or object capable of initiating an exchange within communication system 100. Data, as used herein in this document, refers to any type of numeric, voice, video, media, or script data, or any type of source or object code, or any other suitable information in any appropriate format that may be communicated from one point to another.
  • In one particular instance, communication system 100 can be associated with a service provider digital subscriber line (DSL) deployment. In other examples, communication system 100 would be equally applicable to other communication environments, such as an enterprise wide area network (WAN) deployment, cable scenarios, broadband generally, fixed wireless instances, fiber to the x (FTTx), which is a generic term for any broadband network architecture that uses optical fiber in last-mile architectures. Communication system 100 may include a configuration capable of transmission control protocol/internet protocol (TCP/IP) communications for the transmission and/or reception of packets in a network. Communication system 100 may also operate in conjunction with a user datagram protocol/IP (UDP/IP) or any other suitable protocol, where appropriate and based on particular needs.
  • Switches 102 a-102 n are network elements that facilitate multicast flows between hosts and/or sources in a given network (e.g., for networks such as those illustrated in FIGS. 1 and 4). As used herein in this Specification, the term ‘network element’ is meant to encompass routers, switches, gateways, bridges, loadbalancers, firewalls, inline service nodes, proxies, servers, processors, modules, or any other suitable device, component, element, proprietary appliance, or object operable to exchange information in a network environment. This network element may include any suitable hardware, software, components, modules, interfaces, or objects that facilitate the operations thereof. This may be inclusive of appropriate algorithms and communication protocols that allow for the effective exchange of data or information.
  • In one implementation, switches 104 a-104 n may include software to achieve (or to foster) the n-way link-state routing redundancy protocol, as outlined herein in this Specification. Note that in one example, each of these elements can have an internal structure (e.g., a processor, a memory element, etc.) to facilitate some of the operations described herein. In other embodiments, these n-way link-state routing redundancy operations may be executed externally to these elements, or included in some other network element to achieve this intended functionality. Alternatively, switches 104 a-104 n may include this software (or reciprocating software) that can coordinate with other network elements in order to achieve the operations, as outlined herein. In still other embodiments, one or several devices may include any suitable algorithms, hardware, software, components, modules, interfaces, or objects that facilitate the operations thereof.
  • For purposes of illustrating certain example techniques of communication system 100, it is important to understand the communications that may be traversing the network. The following foundational information may be viewed as a basis from which the present disclosure may be properly explained.
  • Referring now to FIG. 2, FIG. 2 illustrates an example of a communication system 200 configured for Spanning Tree Protocol (STP) in a diamond network topology. In the diamond topology of FIG. 2, node A 202 a is at the left side of the diamond topology, node B 202 b is at the right of the diamond topology, node C 202 c is at the top of the diamond topology, and node D 202 d is at the bottom of the diamond topology. Each of node A 202 a, node B 202 b, node C, 202 c, and node D 202 d are network nodes that are enabled with STP, such as classical Ethernet switches. Node A 202 a is connected to node C 202 c and node D 202 d. Node B 202 b is connected to node C 202 c and node D 202 d. Node C 202 c is connected to node A 202 a and node B 202 b. Finally, node D 202 d is connected to node A 202 a and node B 202 b.
  • Spanning Tree Protocol (STP) is a network protocol that attempts to ensure a loop-free topology for a bridged Ethernet local area network by preventing bridge loops. Spanning tree protocol allows a network design to include redundant links to provide automatic backup paths if an active link fails, without the danger of bridge loops, or the need for manual enabling/disabling of these backup links. Spanning Tree Protocol (STP), standardized as IEEE 802.1D, creates a spanning tree within a mesh network of connected layer-2 bridges (typically Ethernet switches), and disables those links that are not part of the spanning tree, leaving a single active path between any two network nodes. However, spanning tree protocol is limited in that it requires the use of only one link of a tree for forwarding traffic in order to prevent loops while another link is wasted.
  • If node D 202 d wishes to send traffic to node C 202 d, ideally node D 202 d could send the traffic through either a link through node A 202 a to node C 202 c or a link through node B 202 b to node C 202 c. However, STP will require only one of the links to be used. For example, STP may require that only the link passing through node A 202 a is used to send traffic from node D 202 d to node C 202 c. The other link from node D 202 d to node C 202 c through node B 202 b cannot be used and is therefore wasted.
  • Link-state protocols such as Transparent Interconnect of Lots of Links (TRILL) and FabricPath have been developed to overcome the shortcomings of STP. Essentially TRILL and Fabricpath are two link-state protocol technologies that were developed to replace Spanning Tree Protocol (STP) in the Ethernet space. TRILL and Fabricpath technologies allow for the use of all possible links in a topology. Fabricpath was developed by Cisco and TRILL is an IETF standard. Both Fabricpath and TRILL use Intermediate System To Intermediate System (IS-IS) as the routing protocol used to create a loop free topology as well as to create multiple paths. IS-IS is a link-state routing protocol designed to move information efficiently within a computer network, a group of physically connected computers or similar devices. It accomplishes this by determining the best route for datagrams through a packet-switched network. The IS-IS protocol was defined in ISO/IEC 10589:2002 as an international standard within the Open Systems Interconnection (OSI) reference design. Though originally an ISO standard, the IETF republished the protocol as an Internet Standard in RFC 1142. IS-IS operates by reliably flooding link state information throughout a network of routers or switches. Each IS-IS router or switch independently builds a database of the network's topology and aggregates the flooded network information. IS-IS uses Dijkstra's algorithm for computing the best path through the network. Packets or datagrams are then forwarded through the network to the destination based on the computed ideal path.
  • Regarding the TRILL protocol, TRILL switches run a link state protocol amongst themselves. In a link state protocol connectivity is broadcast to all the TRILL switches, so that each TRILL switch knows about all the other TRILL switches, and the connectivity between them. This gives the TRILL switches enough information to compute pair-wise optimal paths for unicast traffic, and calculate distribution trees for delivery of frames either to destinations whose location is unknown or to multicast/broadcast groups. TRILL uses IS-IS link state routing protocol because it runs directly over Layer 2, so it can be run without configuration, i.e., no IP addresses need to be assigned, and it is easy to extend by defining new TLV (type-length-value) data elements and sub-elements for carrying TRILL information. To mitigate temporary loop issues, TRILL switches forward based on a header with a hop count. TRILL switches also specify the next hop TRILL switch as the frame destination when forwarding unicast frames across a shared-media link. This avoids the spawning of additional copies of frames during a temporary loop. A Reverse Path Forwarding check and other checks are performed on multi-destination frames to further control potentially looping traffic.
  • In a typical use of TRILL, the first TRILL switch that a unicast frame encounters in encapsulates the received frame with a TRILL header that specifies the last TRILL switch where the frame is decapsulated. The first TRILL switch is known as the “ingress RBridge” and the second TRILL switch is known as the “egress RBridge.” To save room in the TRILL header and simplify forwarding lookups, a dynamic nickname acquisition protocol is run among the TRILL switches to select two-octet nicknames for the TRILL switches which are unique within the network, and which are an abbreviation for the six-octet IS-IS system ID of the TRILL switch. The two-octet nicknames are used to specify the ingress and egress RBridges in the TRILL header. The TRILL header consists of six octets. The first two octets include a 6-bit decrementing hop count, plus flags, the next two octets contain the egress RBridge nickname, and the final two octets contain the ingress RBridge nickname. For multi-destination frames, the “egress RBridge nickname” specifies a distribution tree for the frame, where the nicknamed TRILL switch is the root of the distribution tree. The ingress RBridge selects which distribution tree the frame should travel along.
  • Even though TRILL switches are transparent to layer 3 devices, and all the links interconnected by TRILL switches appear to layer 3 devices to be a single link, TRILL switches act as link routers in the sense that, in the forwarding of a frame by a transit TRILL switch, the outer layer 2 header is replaced at each hop with an appropriate layer 2 header for the next hop, and the hop count is decreased. Despite these modifications of the outer layer 2 header and the hop count in the TRILL Header, the original encapsulated frame is preserved, including the original frame's virtual LAN (VLAN) tag. Multipathing of multi-destination frames through alternative distribution tree roots and ECMP (Equal Cost MultiPath) of unicast frames are supported. Networks with a more mesh-like structure will benefit to a greater extent from the multipathing and optimal paths provided by TRILL than will networks with a more tree-like structure.
  • Similarly, Fabricpath is a link-state protocol developed by Cisco that uses the IS-IS routine protocol to implement Shortest Path First (SPF) routing to determine reachability and path selection in a network cloud. Fabricpath uses the IS-IS routing protocol with Fabricpath-specific extensions such as exchanging switch ID (SID) reachability instead of IP prefixes. Fabricpath may also employ equal-cost multipath (ECMP) forwarding to make use of all available bandwidth. Fabricpath-enabled switches differ from classical Ethernet switches in at least two ways: they compute layer 2 paths using control messages carried over IS-IS, the routing protocol, and they encapsulate incoming Ethernet frames with a Fabricpath header. This header contains routable source and destination switch addresses and a time-to-live field for loop prevention. In contrast to STP, Fabricpath creates a single switch fabric across all participating switches, increasing available bandwidth within a single layer-2 domain. Fabricpath also reduces broadcast flooding and media access control (MAC) address table size, both well-known issues with large layer-2 networks. Fabricpath switches use multicast rather than flooding to forward frames sent to unknown destinations, and compute routing tables with information learned from the fabric and source MAC addresses learned on each edge switch. Moreover, using an approach called “conversational learning,” switches populate MAC address tables only for ports actually involved in conversations. This differs from conventional switching, where switches see all flooded traffic within a broadcast domain and put every address into their MAC tables. In contrast, Fabricpath switches don't need large MAC address tables, even when layer-2 domains encompass tens of thousands of hosts.
  • A virtual PortChannel (vPC) allows links that are physically connected to two different switches to appear as a single PortChannel to a third device. This provides a loop free topology eliminating the spanning-tree-blocked ports and maximizing the bandwidth usage. In a FabricPath network, a classical (not FabricPath-enabled) Ethernet switch can be connected through a port channel to two FabricPath edge switches by using a configuration construct called emulated switch. The emulated switch implementations in FabricPath, where two FabricPath edge switches provide a vPC to a third-party device, is called vPC+. vPC+ carries the vPC legacy into the Fabricpath world by offering a migration solution for users or customers who desire to migrate from Classical Ethernet to TRILL or Fabricpath.
  • Emulated switch is a construct in which two FabricPath switches emulate a single switch to the rest of the FabricPath network. The packets originated by the two emulated switches are sourced with the emulated switch ID. The other FabricPath switches are not aware of this and simply see the emulated switch, identified by a dedicated switch ID value called the emulated switch ID, as reachable through both switches. This means that the two emulated switches have to be directly connected via peer link, and there should be a peer-keep alive path between the two switches to form the vPC+.
  • Referring again to FIG. 1, vPC allows first classical Ethernet switch (CE1) 102 a to connect to first switch (S1) 104 a, second switch (S2) 104 b, and sixth switch (S6) through nth switch (Sn) 104 n such that first switch (S1) 104 a, second switch (S2) 104 b, and sixth switch (S6) through nth switch (Sn) 104 n appear as a single device to first classical Ethernet switch (CE1) 102 a. vCP allows first classical Ethernet switch (CE1) 102 a to have multiple links to first switch (S1) 104 a and bundle those links to appear as one link. vPC further allows first classical Ethernet switch (CE1) 102 a to have multiple links to not just first switch (S1) 104 a, but also to second switch (S2) 104 b, sixth switch (S6) 104 f . . . nth switch (Sn) 104 n and bundle them into a single link which is called the virtual port channel. vPC+ provides a similar functionality into the FabricPath domain in which first switch (S1) 104 a and second switch (S2) 104 b connect to first classical Ethernet switch (CE1) 102 a and appear as a single node to any other node in the network cloud above such as third switch (S3) 104 c, fourth switch (S4) 104 d, and fifth switch (S5) 104 e.
  • With current vPC+ implementations, a physical peer link between first switch (S1)) 104 a and second switch (S2) 104 b is required, for example, to exchange certain connectivity data. For n-way vPC+ with a current implementation, connectivity between first classical Ethernet switch CE1 (102 a) and switches 104 a-104 n would require that each switch 104 a-104 b have a peer link with every other switch 104 a-104 n. To set up such a mesh using current vPC+ technology is not a scalable solution. Existing vPC+ implementations have limitations such as the ability to only provide two-way redundancy, and requiring cross connect peer links between boundary switches. In addition, current vPC+ solutions are unable to offer N-way redundancy. Further, existing vPC+ solutions allow use of only two switches, for example, first switch (s1) 104 a and second switch (S2) 104 b to emulate a switch identifier (ID) and requires the use of a peer-link between first switch (s1) 104 a and second switch (S2) 104 b. Accordingly, using the existing vPC+ solutions, a classical Ethernet switch such as first classical Ethernet switch (CE1) 102 a can reach the Fabricpath cloud only through either first switch (s1) 104 a and second switch (S2) 104 b even if first classical Ethernet switch (CE1) 102 a has multiple uplinks to the Fabricpath cloud.
  • Various embodiments described herein provide for seamless integration of Classical Ethernet infrastructure with a link-state infrastructure such as a TRILL or Fabricpath infrastructure and provide n-way active-active forwarding, with minimum configuration by running a new reliable multicast distribution protocol to distribute link routing information in a cloud. The N-way link-state routing protocol described in various embodiments herein provides for the connection of as many peer switches as desired into a cloud without requiring a peer link between any of the switches. For example, referring again to FIG. 1, using the N-way link routing protocol further described herein first classical Ethernet switch (CE1) 102 a is able to connect to switches 104 a-104 b and 104 f-104 n without requiring any physical peer connections between switches 104 a-104 n through the switches 104 a-104 n exchanging connectivity information over a link-state protocol cloud. The link-state protocol enabled switches 104 a-104 n are in communication with one another by the link-state protocol cloud. In a particular embodiment, the link-state protocol cloud is a Fabricpath cloud. In still another particular embodiment, the link-state protocol cloud is a TRILL cloud.
  • One or more embodiments of the N-way link-state routing protocol described herein support N switches within a cloud to emulate a switch identifier (ID)/nickname without needing a peer link by running a reliable multicast distribution protocol on all switches that need to emulate a switch-id/nickname to exchange information in order to correctly advertise an association of the switch with a switch ID/nickname and a tree id. Further, the reliable multicast distribution protocol relays this information to the Fabricpath control plane, which then sends the information across the Fabricpath cloud to achieve N way connectivity of each classical Ethernet (CE) switch to the Fabricpath cloud.
  • In accordance with various embodiments, switches 104 a-104 n each are enabled with an N-way link-state routing protocol. In at least one embodiment, the N-way link routing protocol is a multicast distribution protocol used by the switches 104 a-104 n to communicate connectivity information among one other. The connectivity information includes information regarding the individual connectivity of the switches 104 a-104 n to one or more the classic Ethernet switches 102 a-102N information.
  • In accordance with various embodiments, the connectivity information carried by the protocol includes an identifier for the particular switch 104 a-104 n, a switch priority value, and the connectivity of each switch 104 a-104 n to one or more of classical Ethernet switches 102 a-102 n. In a particular embodiment, the identifier associated with switches 104 a-102 b is the backplane Media Access Control (MAC) address of the particular switch 104 a-104 n nodes. The priority information is used to determine which of the switches 104 a-104 b will function as a Group Appointed Proxy Forwarder (GAPF), a Master Node Forwarder (MNF), and a Backup Node Forwarder (BNF) for a given set of boundary nodes, such as one or more of switch 104 a-104 n, and classic Ethernet switches such as one or more of classic Ethernet switches 102 a-102 n. The functions of the GAPF, MNF, and BNF will be further described herein.
  • Referring now to FIG. 3, FIG. 3 illustrates an embodiment of a link-state routing protocol enabled switch 104 according to one embodiment. Switch 104 may include one or more of switches 104 a-104 n of FIG. 1. Switch 104 includes one or more processor(s) 302, a memory element 304, I/O ports 306, a routing table 308, and n-way link-state routing protocol module 310. Processor(s) 302 is configured to execute various tasks of switch 104 as described herein and memory element 304 is configured to store data associated with switch. I/O ports 306 are configured to interface with one or more of classical Ethernet switches 102 a-102 n, another link-state protocol enabled switch 104 a-104 n, and/or hosts 106 a-106 e. Routing table 308 is configured to store link-state and other routing information associated with switch 104. N-way link-state routing protocol module 310 is configured to implement the various functions of the N-way link-state routing protocol as further described herein.
  • In one implementation, switch 104 is a network element that includes software to achieve (or to foster) the N-way link-state routing protocol operations, as outlined herein in this Specification. Note that in one example, each of these elements can have an internal structure (e.g., a processor, a memory element, etc.) to facilitate some of the operations described herein. In other embodiments, these N-way link-state routing protocol operations may be executed externally to this elements, or included in some other network element to achieve this intended functionality. Alternatively, switch 300 may include this software (or reciprocating software) that can coordinate with other network elements in order to achieve the operations, as outlined herein. In still other embodiments, one or several devices may include any suitable algorithms, hardware, software, components, modules, interfaces, or objects that facilitate the operations thereof.
  • Referring to FIG. 4, FIG. 4 is a simplified block diagram of another embodiment of a communication system 400 for providing n-way link-state routing redundancy without peer links in a network environment. Communication system 400 of FIG. 4 includes first classical Ethernet switch (CE1) 102 a, and second classical Ethernet switch (CE2) Communication system 400 further includes first switch (S1) 104 a, second switch (S2) 104 b, third switch (S3) 104 c, fourth switch (S4) 104 d, fifth switch (S5) 104 e, sixth switch (S6) 104 f, and seventh switch (S7) 104 g. In the particular embodiment illustrated in FIG. 4, each of switches 104 a-104 n support the n-way link-state protocol as further described herein and form a link-state protocol cloud. Communication system 400 further includes host A 106 a, host B 106 b, host C 106 c, and host D 106 d.
  • First classical Ethernet switch (CE1) 102 a is in communication with first switch (S1) 104 a, second switch (S2) 104 b, third switch (S3) 104 c, and fourth switch (S4) 104 d. Similarly, second classical Ethernet switch (CE2) 102 b is also in communication with first switch (S1) 104 a, second switch (S2) 104 b, third switch (S3) 104 c, and fourth switch (S4) 104 d. First switch (S1) 104 a and second switch (S2) 104 b are further in communication with fifth switch (S5) 104 e, sixth switch (S6) 104 f, and seventh switch (S7) 104 g. In the particular embodiment illustrated in FIG. 4, switches 104 a-104 g are enabled with a FabricPath protocol and form a Fabricpath cloud. In the particular embodiment illustrated in FIG. 4, switches 104 a-104 d are edge switches representing the edge of the cloud with respect to communication with classical Ethernet switches 102 a-102 b. Although the embodiment of FIG. 4 is described using FabricPath as an example, it should be understood that in other embodiments any suitable protocol may be used. For example, in still another embodiment switches 104 a-104 g of FIG. 4 are enabled with a TRILL protocol and form a TRILL cloud.
  • Host A 106 a is in communication with first classical Ethernet switch (CE1) 102 a and host B 106 b is in communication with second classical Ethernet switch (CE2) 102 b. Host C 106 c is in communication with fifth switch (S5) 104 e, host D 106 d is in communication with sixth switch (S6) 104 g. Although the communication system of FIG. 4 is illustrated as using a fixed number of nodes for simplicity of description, it should be understood that in other embodiments any number of nodes may be included in communication system 400.
  • In accordance with various embodiments, each of the classical Ethernet (CE) switches 102 a-102 b are advertised using a unique nickname by each of the edge switches 104 a-104 d it is connected to provided the number of trees in the Fabricpath cloud is more than the number of edge switches 104 a-104 d. In one or more embodiment, the unique nickname for a particular classical Ethernet (CE) switch is an emulated switch ID of the CE switch. A tree represents a forwarding path including links through the edge switches 104 a-104 d for traffic to transit within the cloud. If the number of trees is less than the number of uplinks that a particular CE switch 102 a-102 b has to edge switches 104 a-104 d, the surplus links will be held in standby and made active upon failure of a link already in use. Each of the edge switches 104 a-104 d connected to a classical Ethernet switch 102 a-102 b advertises the particular classical Ethernet switches 102 a-102 b as leaf nodes of the tree to the other edge switches 104 a-104 d. In particular embodiments, the edge switches 104 a-104 d advertises via either an existing nickname type-length-value (TLV) data element or via a new IS-IS TLV called a TRILL local Reachability TLV as will be further described herein. For example, first edge switch (S1) 104 a announces a nickname for first classical Ethernet switch (CE1) 102 a along with a nickname that uniquely identifies first edge switch (s1) 104 a. First edge switch (S1) 104 a also announces an affinity TLV with the nickname for first classical Ethernet switch (CE1) 102 a and a tree value on which first classical Ethernet switch (CE1) 102 a should hang off of first edge switch (S1) 104 a for delivering multicast traffic.
  • For each of the CE switches 102 a-102 b, there can be multiple servers, clients, or hosts behind it sending traffic into the cloud. For example, for first CE switch (CE1) 102 a, traffic coming from behind these servers may be destined either to servers, clients, or hosts behind the second CE switch (CE2) 10, another classical Ethernet switch in the network, or to nodes that are outside the cloud behind fifth switch (S5) 104 e, sixth switch (S6) 104 f, and seventh switch (S7) 104 g. For any traffic that first Classical Ethernet switch (CE1) 102 a pushes onto the network, it uses an emulated switch ID, for example an emulated switch ID CE1 instead of, for example, a switch ID of first switch (S1) 104 a and second switch (S2) 104 b since first switch (S1) 104 a and second switch (S2) 104 b are going to eventually pump that traffic into the cloud. Because there can be multiple traffic sources connected behind the classical Ethernet (CE) switches, there is a need to have multiple emulated switch IDs that first switch (S1) 104 a and second switch (S2) 104 b can use depending on where the traffic they receive originated from. Since there may be hundreds of data sources behind each CE switch, it is desirable to restrict the number of MAC addresses that are learned off one switch ID. The use of multiple emulated switch IDs behind switches 104 a-104 d and the tying of emulated switch IDs to particular trees enables this.
  • An advantage of at least one embodiment is that the IS-IS protocol adds classical Ethernet (CE) nodes as leaf nodes or advertising/originating nodes without having to modify an existing Shortest Path First (SPF) routing algorithm. The complexity of SPF does not increase with this process since the number of intermediate systems (IS's) that the SPF algorithm calculates is still the same. There are just extra leaves that each node needs to add. Level 3 (L3) IS-IS handles many more IP prefixes per switch/router. If the complexity with N switches (with N nicknames) is O(n) then in this case with N+M(emulated nicknames) it will be O(N)+x(time to digest M nicknames)<<0(N+M).
  • In accordance with the n-way link-state routing protocol of various embodiments, one of the edge switches 104 a-104 n is designated as a Group Appointed Proxy forwarder (GAPF) for a given set of boundary nodes and CE nodes and for a given tree. The GAPF decides the edge switch through which each of CE nodes will attach on a given multicast tree. The number of available multicast trees should be greater than or equal to the number of edge switches. Each CE node connects to all of the multicast trees through one of the edge switches. If the number of edge switches is less than the number of trees then the CE switch hangs off the edge switches in a round robin fashion based on predetermined priorities. In short, for each edge (or boundary) switch/classical Ethernet switch {bRB, CE} pair there is a multicast tree (MTr). The particular edge switch (bRB) uses the multicast tree (MTr) to forward traffic it receives from the classical Ethernet (CE) switch.
  • Edge switches 104 a-104 d run the n-way link-state routing protocol. As part of this protocol, edge switches 104 a-104 d send HELLO messages to each other. HELLO messages are messages sent within a network to announce connectivity. The HELLO messages include the unique identifier of the particular edge switch 104 a and a GAPF priority representative of the priority of the particular edge switch 104 a-104 d in being selected as the GAPF. In one or more embodiments, the unique identifier of the particular edge switch 104 a-104 n is the backplane MAC address of the particular edge switch 104 a-104 d. In other embodiments, the unique identifier of the particular edge switch 104 a-104 d is a configurable value, such as a six-byte configurable value. The HELLO message from a particular edge switch 104 a-104 d further include a list of classical Ethernet (CE) switches, such as one or more of classical Ethernet switches 102 a-102 b, to which the particular edge switch 104 a-104 d is connected to along with the status of the link, i.e., either UP or DOWN, between the particular edge switch 104 a-104 d and the particular classical Ethernet switch 102 a-102. Although, various embodiments are described as using HELLO messages to send connectivity information, it should be understood that in other embodiments any type of connectivity message may be used.
  • Upon receiving the HELLO message from all of the edge switches in the cloud, each of the edge switches 104 a-104 d runs a common algorithm to elect the GAPF as well as a back-up GAPF (BGAPF) for the particular classical Ethernet (CE) switch and the associated multicast tree. In at least one embodiment, the algorithm to select the GAPF includes selecting the edge switch having the highest GAPF priority value with any ties broken by selecting the edge switch having the higher MAC address. The Group Appointed Proxy Forwarder then elects one of the edge switches as a Master Node Forwarder (MNF) and another of the edge switches as a Backup Node Forwarder (BNF). The MNF, or alternately, the BNF, announces each classical Ethernet (CE) switch's association with a particular multicast tree to the rest of the edge switches using the emulated switch ID of the particular classical Ethernet switch. For a different classical Ethernet switch different ones of the edge switches 104 a-104 b may be chosen as the GAPF, MNF, and BNF to announce an emulated switch ID on another tree. In at least one embodiment, each edge switch 104 a-104 d may be used to tie one emulated switch ID to one tree. In still other embodiments, a multiple of trees are configured such that the emulated switch ID may be tied to any number of nodes.
  • For example, assuming first edge switch (S1) 104 a is selected as the GAPF and second edge switch S2 is selected as the back-up GAPF (BAGPF). First edge switch (S1) 104 a calculates a pair of switches, for example, first edge switch (S1) 104 a and second edge switch (S2) 104 b for every classical Ethernet (CE) switch that hangs off more than two edge switches. Based on information obtained from the HELLO messages, first edge switch (S1) 104 a in its role as the GAPF will elect first edge switch (S1) 104 a as the MNF and second edge switch (S2) 104 b as the BNF. In that case first classical Ethernet switch (CE1) 102 a will hang off first edge switch (S1) 104 a for multicast Tree 1. In a circumstance in which the link between first classical Ethernet switch (CE1) 102 a and first edge switch (S1) 104 a fails, first classical Ethernet switch (CE1) 102 a will hang off and second edge switch (S2) 104 b for Tree 1. In a particular embodiment, GAPF control information is advertised by first edge switch (S1) 104 a in a nickname TLV and the multicast tree association is announced in an affinity TLV.
  • Referring now to FIG. 5, FIG. 5 is a simplified flowchart illustrating one embodiment of a procedure 500 for providing n-way link-state routing redundancy without peer links in a network environment. In various embodiments, procedure 500 is performed by one or more link-state protocol enabled switching nodes of a plurality of link-state protocol enabled switching nodes that are configured to run the n-way link-state routing of the present description. In one or more embodiments, the link-state protocol enabled switching node is one or more of the switches 104 a-104 d of FIG. 1. Procedure 500 starts at 502. In 504, the link-state protocol enabled switching node announces (or broadcasts) a switching node identifier associated with the link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes. In one or more embodiments, the switching node identifier is a switch ID associated with the link-state protocol enabled switching node. In a particular embodiment, the switch ID is the link-state protocol enabled switching node's backplane MAC address, which is a six-byte value, which may be used to uniquely identify each of the switches 104 a-104 g within the network.
  • In 506, the link-state protocol enabled switching node announces (or broadcasts) a priority associated with the link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes. In 508, the link-state protocol enabled switching node announces (or broadcasts) connectivity information of the link-state protocol enabled switching node with one or more spanning tree protocol (STP) enabled switching nodes to the plurality of link-state protocol enabled switching nodes over the link-state protocol cloud without requiring a physical peer link between the link-state protocol enabled switching nodes. In a particular embodiment, the connectivity information includes an emulated switch ID associated with a particular STP enabled switching node. In at least one embodiment, the connectivity information may further include a status of the connection with the STP enabled switching node such as whether the connection is in an UP or DOWN state. In a particular embodiment, the STP enabled switching nodes are one or more of classical Ethernet (CE) switching nodes 102 a-102 b.
  • In a particular embodiment, the connectivity information includes a list of CE switches 102 a-102 b that are connected to a particular edge switch 104 a-104 d. The edge switches 104 a-104 d know which CE switches 102 a-102 b they are connected to because when the links between any of the edge switches 104 a-104 d and CE switches 102 a-102 b start to come up, there is an exchange between edge switches 104 a-104 d and CE switches 102 a-102 b. Existing protocols are available to relay this information. Once this information is available, each of edge switches 104 a-104 d will announce that it is connected to one or more CE switches 102 a-102 b. Once this information is available at all nodes, this information is maintained within each of the edge switches 104 a-104 d in case one of the edge switches 104 a-104 d fails. In addition, the connectivity information is sent regularly between the edge switches 104 a-104 d.
  • In 510, a Group Appointed Proxy Forwarder (GAPF) is determined for the STP enabled switching node based upon the priority associated with each of the plurality of link-state protocol enabled switching nodes. In at least one embodiment, the link-state protocol enabled switching node with the highest priority is chosen as the GAPF. In the case of a tie, the link-state protocol enabled switching node having the higher MAC address is determined to be the GAPF. In a particular embodiment, the priority of the link-state protocol enabled switching node may include a default priority value that is user configurable. For example, a default priority of 64 may be chosen for all nodes. A user may configure a higher priority value to a link-state protocol enabled switching node that is believed to be unlikely to fail. Referring back to FIG. 4, an example is illustrated in which edge switch 104 a is determined to be the GAPF. In 512, the GAPF determines a Master Node Forwarder (MNF) for the STP enabled switching node from among the plurality of link-state protocol enabled switching nodes based upon the connectivity information of each of the plurality of link-state protocol enabled switching nodes with the STP enabled switching node. The function of the MNF is to tie (or associate) the emulated switch ID of the STP enabled switching node onto a particular multicast tree of the cloud. For example, edge switch (S1) 104 a acting as GAPF may determine that edge switch 104 a will be the MNF and will tie the emulated switch ID of classical Ethernet switch (CE1) 102 a to multicast tree 1. In 514, the GAPF announces the MNF for the particular STP enabled node and particular tree to the plurality of link-state protocol enabled switching nodes.
  • In step 516, the GAPF determines a Backup Node Forwarder for the STP enabled switching node from among the plurality of link-state protocol enabled switching nodes in case the MNF fails. For example, edge switch (S1) 104 a may determine that edge switch (S2) 102 b will be the BNF for the STP enabled switching node and tree 1 in case edge switch (S1) 102 a fails. In 518, the GAPF announces the BNF for the particular STP enabled switching node and particular tree so that the BNF can assume the role of the MNF in case the MNF fails. In some embodiments, the GAPF may further perform the function of selected a Backup Group Appointed Proxy Forwarder (BGAPF). The function of the BAGPF is to assume the role of the GAPF in case the GAPF fails. In 520, procedure 500 ends. Upon completion of procedure 500 traffic can now flow from the STP enabled switching nodes through the cloud including the link-state protocol enabled switching nodes.
  • Operations 510-518 of procedure 500 will be performed for each of the STP enabled switching nodes and trees. For example, edge switch 104 a acting as the GAPF will determine a MNF and BNF to tie an emulated switch ID associated with classical Ethernet switch (CE2) 102 b on tree 2.
  • Referring now to FIG. 6, FIG. 6 illustrates an embodiment of a TLV (type-length-value) data element 600 for advertising a nickname for a classical Ethernet (CE) switch by an edge switch. In the particular embodiment illustrated in FIG. 6, the data element 600 is a 32-bit data element that includes a 16-bit RESERVED field 602 and a 16-bit NICKNAME field 604. In a particular embodiment, the RESERVED field 602 is set to 0 at transmission and Ignored at the receiver. The NICKNAME field 604 is set to the classical Ethernet (CE) switch or bridge nickname. In one or more embodiments, the NICKNAME field 604 is set to the emulated switch ID of the CE switch or bridge. In a particular embodiment, the data element 600 is sent in a TRILL Layer 2 Reachability TLV and the value of the NICKNAME filed 604 is set to legal nickname value and not set to reserved value. In a particular embodiment, the data element 600 is transmitted as a sub-TLV within a router capability TLV. In one or more embodiments, the edge switch withdraws the TRILL Layer 2 reachability TLV when it has no longer has links, that is no local connectivity to the CE switch or bridge it previously announced as reachable. In still other embodiments, the nickname for the nickname for the CE switch can be advertised using an existing nickname TLV instead of the date element 600.
  • Referring now to FIG. 7A, FIG. 7A is a simplified flowchart illustrating one embodiment of a procedure 700 for providing for link failure recovery for a link failure between a Master Node Forwarder (MNF) and a classical Ethernet (CE) switch. In 702, procedure 700 begins. In 704, the MNF detects a link failure between the MNF and the CE switch. In a particular embodiment, the MNF detects a link failure between the MNF and the CE switch by detecting that HELLO messages are no longer exchanged between the MNF and the CE switch. In 706, the MNF notifies the Group Appointed Proxy Forwarder (GAPF) of the reachability change between the MNF and the CE switch indicating that the MNF can no longer reach the CE switch. In 708, the GAPF reassigns the CE emulated switch ID and tree to the BNF. In 710, the GAPF directly notifies the BNF and Backup GAPF (BGAPF) of the reassignment of the emulated switch ID and tree pair to the BNF. In 712, the MNF removes the CE emulated switch ID and tree when the link goes down to avoid packet duplication and looping. In 714, the MNF stops announcing its reachability to CE by pulling the CE emulated switch ID out of the affinity TLV and the nickname TLV. The MNF only reassigns upon receiving notification from the GAPF. In 716, procedure 700 ends.
  • Referring now to FIG. 7B, FIG. 7B is a simplified flowchart illustrating one embodiment of a procedure 720 for providing for link failure recovery for a link failure between a Backup Node Forwarder (BNF) and a classical Ethernet (CE) switch. In 722, procedure 720 begins. In 724, the BNF detects a link failure between the BNF and the CE switch. In a particular embodiment, the BNF detects a link failure between the BNF and the CE switch by detecting that HELLO messages are no longer exchanged between the BNF and the CE switch. In 726, the BNF pulls the CE emulated switch ID out of the nickname TLV. In 728, the BNF notifies the GAPF of the reachability change to the CE switch indicating that the CE switch is no longer reachable by the BNF. In 730, the GAPF elects a new BNF. In 732, the GAPF announces the new BNF to the network. In 734, procedure 720 ends.
  • Referring now to FIG. 7C, FIG. 7C is a simplified flowchart illustrating one embodiment of a procedure 740 for providing for link failure recovery for a link failure between an edge switch and a classical Ethernet (CE) switch. In procedure 740 of FIG. 7C, the edge (or boundary) switch is not a GAPF, BGAPF, MNF, or BNF. In 742, procedure 740 begins. In 744, the edge switch detects link failure between the edge switch and the CE switch. In a particular embodiment, the edge switch detects a link failure between the edge switch and the CE switch by detecting that HELLO messages are no longer exchanged between the edge switch and the CE switch. In 746, the edge switch stops announcing its association with the CE switch in the hello messages so that it is not picked for delivering traffic to the CE switch in case other links fail. In 748, procedure 740 ends.
  • Referring now to FIG. 8A, FIG. 8A is a simplified flowchart illustrating one embodiment of a procedure 800 for providing for node failure recovery for a Group Appointed Proxy Forwarder (GAPF) node failure. In 802, procedure 800 begins. In 804, the Backup Group Appointed Proxy Forwarder (BGAPF) node detects that the GAPF node has failed. In a particular embodiment, the BGAPF node detects that the GAPF node has failed by detecting that a HELLO message time-out period has expired. In 806, the BGAPF becomes the new GAPF for the network. In 808, the BGAPF node (new GAPF) announces its new role as the GAPF node to the other nodes in the network. In 810, the new GAPF node (previous BGAPF node) elects a new BGAPF node for the network. In 812, the new GAPF node (previous BGAPF node) announces the new BGAPF node to the other nodes in the network. In 814, procedure 800 ends.
  • Referring now to FIG. 8B, FIG. 8B is a simplified flowchart illustrating one embodiment of a procedure 820 for providing for node failure recovery for a Backup Group Appointed Proxy Forwarder (BGAPF) node failure. In 822, procedure 820 begins. In 824, the GAPF node detects that the BGAPF node has failed. In a particular embodiment, the GAPF node detects that the BGAPF node has failed by detecting an expiry of a HELLO message time out period. In 826, the GAPF node elects a new BGAPF node. In 828, the GAPF announces the new BGAPF node to the other nodes of the network. In 830, procedure 800 ends.
  • Referring now to FIG. 8C, FIG. 8C is a simplified flowchart illustrating one embodiment of a procedure 840 for providing for node failure recovery for a Master Node Forwarder (MNF) node failure. In 842, procedure 840 begins. In 844, the GAPF node detects that the MNF node has failed. In a particular embodiment, the GAPF node detects that the MNF node has failed based upon a HELLO message time out period expiry. In 846, the GAPF node elects the BNF to the MNF role. The new MNF node then starts announcing its association to the classical Ethernet (CE) switch on the tree that the old MNF was announcing affinity to. In 848, the GAPF node elects a new BNF node. In 850, the GAPF announces the new BNF node to the other nodes of the network. In 852, procedure 840 ends.
  • Referring now to FIG. 8D, FIG. 8D is a simplified flowchart illustrating one embodiment of a procedure 860 for providing for node failure recovery for a Backup Node Forwarder (BNF) node failure. In 862, procedure 860 begins. In 864, the GAPF node detects that the BNF node has failed. In a particular embodiment, the GAPF node detects that the BNF node has failed based upon a HELLO message time out period expiry. In 866, the GAPF node elects a new BNF node for the network. In 868, the GAPF node announces the new BNF node to the network. In 870, procedure 860 ends.
  • Note that in certain example implementations, the n-way link-state routing redundancy functions outlined herein may be implemented by logic encoded in one or more tangible non-transitory media (e.g., embedded logic provided in an application specific integrated circuit [ASIC], digital signal processor [DSP] instructions, software [potentially inclusive of object code and source code] to be executed by a processor, or other similar machine, etc.). In some of these instances, a memory element [as shown in FIG. 3] can store data used for the operations described herein. This includes the memory element being able to store software, logic, code, or processor instructions that are executed to carry out the activities described in this Specification. A processor can execute any type of instructions associated with the data to achieve the operations detailed herein in this Specification. In one example, the processor [as shown in FIG. 3] could transform an element or an article (e.g., data) from one state or thing to another state or thing. In another example, the activities outlined herein may be implemented with fixed logic or programmable logic (e.g., software/computer instructions executed by a processor) and the elements identified herein could be some type of a programmable processor, programmable digital logic (e.g., a field programmable gate array [FPGA], an erasable programmable read only memory (EPROM), an electrically erasable programmable ROM (EEPROM)) or an ASIC that includes digital logic, software, code, electronic instructions, or any suitable combination thereof.
  • In one example implementation, switches 104 a-104 n may include software in order to achieve the n-way link-state routing redundancy functions outlined herein. These activities can be facilitated by routing table 308 and/or n-way link-state routing protocol module 310 (where these modules can be suitably combined in any appropriate manner, which may be based on particular configuration and/or provisioning needs). Switches 104 a-104 n can include memory elements for storing information to be used in achieving the n-way link-state routing redundancy activities, as discussed herein. Additionally, switches 104 a-104 n may include a processor that can execute software or an algorithm to perform the n-way link-state routing redundancy operations, as disclosed in this Specification. These devices may further keep information in any suitable memory element [random access memory (RAM), ROM, EPROM, EEPROM, ASIC, etc.], software, hardware, or in any other suitable component, device, element, or object where appropriate and based on particular needs. Any of the memory items discussed herein (e.g., database, tables, trees, cache, etc.) should be construed as being encompassed within the broad term ‘memory element.’ Similarly, any of the potential processing elements, modules, and machines described in this Specification should be construed as being encompassed within the broad term ‘processor.’ Each of the network elements can also include suitable interfaces for receiving, transmitting, and/or otherwise communicating data or information in a network environment.
  • Note that with the example provided above, as well as numerous other examples provided herein, interaction may be described in terms of two, three, or more network elements. However, this has been done for purposes of clarity and example only. In certain cases, it may be easier to describe one or more of the functionalities of a given set of flows by only referencing a limited number of network elements. It should be appreciated that communication system 100 (and its teachings) are readily scalable and can accommodate a large number of components, as well as more complicated/sophisticated arrangements and configurations. Accordingly, the examples provided should not limit the scope or inhibit the broad teachings of communication system 100 as potentially applied to a myriad of other architectures.
  • It is also important to note that the steps in the preceding flow diagrams illustrate only some of the possible signaling scenarios and patterns that may be executed by, or within, communication system 100. Some of these steps may be deleted or removed where appropriate, or these steps may be modified or changed considerably without departing from the scope of the present disclosure. In addition, a number of these operations have been described as being executed concurrently with, or in parallel to, one or more additional operations. However, the timing of these operations may be altered considerably. The preceding operational flows have been offered for purposes of example and discussion. Substantial flexibility is provided by communication system 100 in that any suitable arrangements, chronologies, configurations, and timing mechanisms may be provided without departing from the teachings of the present disclosure.
  • Although the present disclosure has been described in detail with reference to particular arrangements and configurations, these example configurations and arrangements may be changed significantly without departing from the scope of the present disclosure. For example, although the present disclosure has been described with reference to particular communication exchanges involving certain endpoint components and certain protocols, communication system 100 may be applicable to other protocols and arrangements. Moreover, communication system 100 can be extended to any link-state routing architecture.
  • Although communication system 100 has been illustrated with reference to particular elements and operations that facilitate the communication process, these elements and operations may be replaced by any suitable architecture or process that achieves the intended functionality of communication system 100.

Claims (21)

What is claimed is:
1. A method, comprising:
broadcasting a switching node identifier associated with a first link-state protocol enabled switching node to a plurality of link-state protocol enabled switching nodes, the plurality of link-state protocol enabled switching nodes capable of communication with one another by a link-state protocol cloud;
broadcasting a priority associated with the first link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes; and
broadcasting connectivity information of the first link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes using the link-state protocol cloud, the connectivity information including connectivity of the first link-state protocol enabled switching node with at least one spanning tree protocol enabled switching node.
2. The method of claim 1, further comprising:
determining a proxy forwarder node for the at least one spanning tree protocol enabled switching node based upon a priority associated with each of the plurality of link-state protocol enabled switching nodes, the proxy forwarder node configured to determine a master node forwarder for the at least one spanning tree protocol enabled switching node from the plurality of link-state protocol enabled nodes.
3. The method of claim 2, further comprising:
associating an identifier of the at least one spanning tree protocol enabled switching node to a multicast tree of the link-state protocol cloud.
4. The method of claim 3, wherein the identifier of the at least one spanning tree protocol enabled switching node is an emulated switch identifier associated with the at least one spanning tree protocol enabled switching node.
5. The method of claim 2, wherein the proxy forwarder node determines the master node forwarder based upon connectivity information of each of the plurality of link-state protocol enabled switching nodes with the at least one spanning tree protocol enabled switching node.
6. The method of claim 3, further comprising:
determining a backup node forwarder for the at least one spanning tree protocol enabled switching node, the backup node forwarder configured to associate the identifier of the at least one spanning tree protocol enabled switching node to the multicast tree if the master node forwarder is determined to not be reachable by the master node forwarder.
7. The method of claim 2, further comprising:
determining a backup proxy forwarder node, the backup proxy forwarder node configured to determine the master node forwarder for the at least one spanning tree protocol enabled switching node if the proxy forwarder node is determined to be failed.
8. Logic encoded in one or more non-transitory media that includes code for execution and when executed by a processor operable to perform operations comprising:
broadcasting a switching node identifier associated with a first link-state protocol enabled switching node to a plurality of link-state protocol enabled switching nodes, the plurality of link-state protocol enabled switching nodes capable of communication with one another by a link-state protocol cloud;
broadcasting a priority associated with the first link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes; and
broadcasting connectivity information of the first link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes using the link-state protocol cloud, the connectivity information including connectivity of the first link-state protocol enabled switching node with at least one spanning tree protocol enabled switching node.
9. The logic of claim 8, wherein the operations further include determining a proxy forwarder node for the at least one spanning tree protocol enabled switching node based upon a priority associated with each of the plurality of link-state protocol enabled switching nodes, the proxy forwarder node configured to determine a master node forwarder for the at least one spanning tree protocol enabled switching node from the plurality of link-state protocol enabled nodes.
10. The logic of claim 9, wherein the operations further include associating an identifier of the at least one spanning tree protocol enabled switching node to a multicast tree of the link-state protocol cloud.
11. The logic of claim 10, wherein the identifier of the at least one spanning tree protocol enabled switching node is an emulated switch identifier associated with the at least one spanning tree protocol enabled switching node.
12. The logic of claim 9, wherein the proxy forwarder node determines the master node forwarder based upon connectivity information of each of the plurality of link-state protocol enabled switching nodes with the at least one spanning tree protocol enabled switching node.
13. The logic of claim 10, wherein the operations further include determining a backup node forwarder for the at least one spanning tree protocol enabled switching node, the backup node forwarder configured to associate the identifier of the at least one spanning tree protocol enabled switching node to the multicast tree if the master node forwarder is determined to not be reachable by the master node forwarder.
14. The logic of claim 8, further the operations further include determining a backup proxy forwarder node, the backup proxy forwarder node configured to determine the master node forwarder for the at least one spanning tree protocol enabled switching node if the proxy forwarder node is determined to be failed.
15. An apparatus, comprising:
a memory element configured to store data;
a processor operable to execute instructions associated with the data; and
a link-state protocol module, the apparatus being configured to:
broadcast a switching node identifier associated with a first link-state protocol enabled switching node to a plurality of link-state protocol enabled switching nodes, the plurality of link-state protocol enabled switching nodes capable of communication with one another by a link-state protocol cloud;
broadcast a priority associated with the first link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes; and
broadcast connectivity information of the first link-state protocol enabled switching node to the plurality of link-state protocol enabled switching nodes using the link-state protocol cloud, the connectivity information including connectivity of the first link-state protocol enabled switching node with at least one spanning tree protocol enabled switching node.
16. The apparatus of claim 15, wherein the apparatus is further configured to determine a proxy forwarder node for the at least one spanning tree protocol enabled switching node based upon a priority associated with each of the plurality of link-state protocol enabled switching nodes, the proxy forwarder node configured to determine a master node forwarder for the at least one spanning tree protocol enabled switching node from the plurality of link-state protocol enabled nodes.
17. The apparatus of claim 16, wherein the apparatus is further configured to associate an identifier of the at least one spanning tree protocol enabled switching node to a multicast tree of the link-state protocol cloud.
18. The apparatus of claim 17, wherein the identifier of the at least one spanning tree protocol enabled switching node is an emulated switch identifier associated with the at least one spanning tree protocol enabled switching node.
19. The apparatus of claim 16, wherein the proxy forwarder node is configured to determine the master node forwarder based upon connectivity information of each of the plurality of link-state protocol enabled switching nodes with the at least one spanning tree protocol enabled switching node.
20. The apparatus of claim 17, wherein the apparatus is further configured to determine a backup node forwarder for the at least one spanning tree protocol enabled switching node, the backup node forwarder configured to associate the identifier of the at least one spanning tree protocol enabled switching node to the multicast tree if the master node forwarder is determined to not be reachable by the master node forwarder.
21. The apparatus of claim 16, wherein the apparatus is further configured to determine a backup proxy forwarder node, the backup proxy forwarder node configured to determine the master node forwarder for the at least one spanning tree protocol enabled switching node if the proxy forwarder node is determined to be failed.
US13/629,587 2012-09-27 2012-09-27 System and method for providing N-way link-state routing redundancy without peer links in a network environment Active 2033-03-15 US8902794B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/629,587 US8902794B2 (en) 2012-09-27 2012-09-27 System and method for providing N-way link-state routing redundancy without peer links in a network environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/629,587 US8902794B2 (en) 2012-09-27 2012-09-27 System and method for providing N-way link-state routing redundancy without peer links in a network environment

Publications (2)

Publication Number Publication Date
US20140086041A1 true US20140086041A1 (en) 2014-03-27
US8902794B2 US8902794B2 (en) 2014-12-02

Family

ID=50338728

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/629,587 Active 2033-03-15 US8902794B2 (en) 2012-09-27 2012-09-27 System and method for providing N-way link-state routing redundancy without peer links in a network environment

Country Status (1)

Country Link
US (1) US8902794B2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150023215A1 (en) * 2012-11-07 2015-01-22 Huawei Technologies Co., Ltd. TRILL Network Establishing Method, Node, and System
US20150334124A1 (en) * 2013-01-31 2015-11-19 Huawei Technologies Co., Ltd. Method and apparatus for processing packet on trill network
US20160127224A1 (en) * 2013-07-16 2016-05-05 Hangzhou H3C Technologies Co., Ltd. Electing designated routing bridge
US20180123871A1 (en) * 2015-03-23 2018-05-03 Nec Corporation Information processing device, repeating device, information processing system and method, and program
US10944669B1 (en) 2018-02-09 2021-03-09 GoTenna, Inc. System and method for efficient network-wide broadcast in a multi-hop wireless network using packet echos
US11418629B2 (en) 2014-05-19 2022-08-16 Bay Microsystems, Inc. Methods and systems for accessing remote digital data over a wide area network (WAN)
US11576011B2 (en) * 2017-09-04 2023-02-07 Nanjing Zte New Software Co., Ltd. Multicast traffic transmission method, related device and computer-readable storage medium
US11811642B2 (en) 2018-07-27 2023-11-07 GoTenna, Inc. Vine™: zero-control routing using data packet inspection for wireless mesh networks

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11985038B2 (en) 2021-11-17 2024-05-14 Hewlett Packard Enterprise Development Lp Selecting forwarder in a network installation

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040252634A1 (en) * 2003-04-28 2004-12-16 Alcatel Ip Networks, Inc. Extensions to the spanning tree protocol
US20060007951A1 (en) * 1991-11-12 2006-01-12 Meier Robert C Redundant radio frequency network having a roaming terminal communication protocol
US20070008880A1 (en) * 2005-07-07 2007-01-11 Solace Systems, Inc. Router redundancy in data communication networks
US20070206513A1 (en) * 2006-03-03 2007-09-06 Samsung Electronics Co.; Ltd Method for selecting root bridge in configuration of spanning tree
US20070245034A1 (en) * 2006-04-18 2007-10-18 Retana Alvaro E Dynamically configuring and verifying routing information of broadcast networks using link state protocols in a computer network
US20110228780A1 (en) * 2010-03-16 2011-09-22 Futurewei Technologies, Inc. Service Prioritization in Link State Controlled Layer Two Networks
US20130336434A1 (en) * 2011-06-30 2013-12-19 Huawei Technologies Co., Ltd. Method and device for establishing router neighbor

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060007951A1 (en) * 1991-11-12 2006-01-12 Meier Robert C Redundant radio frequency network having a roaming terminal communication protocol
US20040252634A1 (en) * 2003-04-28 2004-12-16 Alcatel Ip Networks, Inc. Extensions to the spanning tree protocol
US20070008880A1 (en) * 2005-07-07 2007-01-11 Solace Systems, Inc. Router redundancy in data communication networks
US20070206513A1 (en) * 2006-03-03 2007-09-06 Samsung Electronics Co.; Ltd Method for selecting root bridge in configuration of spanning tree
US20070245034A1 (en) * 2006-04-18 2007-10-18 Retana Alvaro E Dynamically configuring and verifying routing information of broadcast networks using link state protocols in a computer network
US20110228780A1 (en) * 2010-03-16 2011-09-22 Futurewei Technologies, Inc. Service Prioritization in Link State Controlled Layer Two Networks
US20130336434A1 (en) * 2011-06-30 2013-12-19 Huawei Technologies Co., Ltd. Method and device for establishing router neighbor

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150023215A1 (en) * 2012-11-07 2015-01-22 Huawei Technologies Co., Ltd. TRILL Network Establishing Method, Node, and System
US10084656B2 (en) * 2012-11-07 2018-09-25 Huawei Technologies Co., Ltd. TRILL network establishing method, node, and system
US20150334124A1 (en) * 2013-01-31 2015-11-19 Huawei Technologies Co., Ltd. Method and apparatus for processing packet on trill network
US9800591B2 (en) * 2013-01-31 2017-10-24 Huawei Technologies Co., Ltd. Method and apparatus for processing packet on trill network
US20160127224A1 (en) * 2013-07-16 2016-05-05 Hangzhou H3C Technologies Co., Ltd. Electing designated routing bridge
US11418629B2 (en) 2014-05-19 2022-08-16 Bay Microsystems, Inc. Methods and systems for accessing remote digital data over a wide area network (WAN)
US20180123871A1 (en) * 2015-03-23 2018-05-03 Nec Corporation Information processing device, repeating device, information processing system and method, and program
US11576011B2 (en) * 2017-09-04 2023-02-07 Nanjing Zte New Software Co., Ltd. Multicast traffic transmission method, related device and computer-readable storage medium
US10944669B1 (en) 2018-02-09 2021-03-09 GoTenna, Inc. System and method for efficient network-wide broadcast in a multi-hop wireless network using packet echos
US11750505B1 (en) 2018-02-09 2023-09-05 goTenna Inc. System and method for efficient network-wide broadcast in a multi-hop wireless network using packet echos
US11811642B2 (en) 2018-07-27 2023-11-07 GoTenna, Inc. Vine™: zero-control routing using data packet inspection for wireless mesh networks

Also Published As

Publication number Publication date
US8902794B2 (en) 2014-12-02

Similar Documents

Publication Publication Date Title
US10305696B2 (en) Group bundling priority dissemination through link-state routing protocol in a network environment
US8902794B2 (en) System and method for providing N-way link-state routing redundancy without peer links in a network environment
CN108353024B (en) Networking device, implementation method thereof, computing device and control plane device
US8953590B1 (en) Layer two virtual private network having control plane address learning supporting multi-homed customer networks
US8694664B2 (en) Active-active multi-homing support for overlay transport protocol
US8995444B2 (en) Method and system for extending routing domain to non-routing end stations
US8588081B2 (en) Monitoring a flow set to detect faults
JP5581441B2 (en) Method and apparatus for MPLS MAC-VPN MPLS label allocation
US9432213B2 (en) IP forwarding across a link state protocol controlled ethernet network
US20120163164A1 (en) Method and system for remote load balancing in high-availability networks
EP3378193A1 (en) Designated forwarder (df) election and re-election on provider edge (pe) failure in all-active redundancy topology
US8650286B1 (en) Prevention of looping and duplicate frame delivery in a network environment
JP2017510137A (en) Method and system for deploying a MAXIMALLY REDUNDANT TREE in a data network
US9288067B2 (en) Adjacency server for virtual private networks
CN104378297A (en) Message forwarding method and device
US12021656B2 (en) Method and system to transmit broadcast, unknown unicast, or multicast (BUM) traffic for multiple ethernet virtual private network (EVPN) instances (EVIs)
WO2018014767A1 (en) Information determination method and device, and storage medium
EP2959648B1 (en) Method and system of enhancing multiple mac registration protocol (mmrp) for protocol internetworking
US8971190B2 (en) Methods and devices for implementing shortest path bridging MAC mode support over a virtual private LAN service network
US10212075B1 (en) Convergence optimization of local switching for flexible cross-connect in ethernet virtual private network (EVPN) environments
US20130279513A1 (en) Systems and methods for pseudo-link creation
Eastlake 3rd et al. Routing bridges (rbridges): Adjacency
CN108199960A (en) Multicast data packet forwarding method, entrance routing bridge, outlet routing bridge and system
CN103595609B (en) TRILL network interconnected method, system and equipment
WO2023016234A1 (en) Method and apparatus for publishing rt4 routing message r4, and storage medium and electronic apparatus

Legal Events

Date Code Title Description
AS Assignment

Owner name: CISCO TECHNOLOGY, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SHAH, VARUN;SENEVIRATHNE, TISSA;BANERJEE, AYAN;AND OTHERS;SIGNING DATES FROM 20120807 TO 20120827;REEL/FRAME:029087/0944

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551)

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8