System and method for rapid VLT connection failure handling

A system and method for rapid virtual link trunk connection failure handling includes receiving a packet at a first network switching unit where the packet is to be forwarded to a second network switching unit, detecting a failure in a network connection between the first network switching unit and the second network switching unit and associated with a first LAG of the first network switching unit, determining a second LAG associated with an inter-chassis link (ICL) as a failover LAG for the first LAG, redirecting the packet to the second LAG, altering the packet to set a redirection status bit to a logic value, and forwarding the altered packet using the ICL.

BACKGROUND

The present disclosure relates generally to information handling systems, and more particularly to rapid virtual link trunk connection failure handling.

Computer networks form the interconnection fabric that enables reliable and rapid communications between computer systems and data processors that are in both close proximity to each other and at distant locations. These networks create a vast spider web of intranets and internets for handling all types of communication and information. Making all of this possible is a vast array of network switching products that make forwarding decisions in order to deliver packets of information from a source system or first network node to a destination system or second network node. Due to the size, complexity, and dynamic nature of these networks, sophisticated network switching products are often required to continuously make forwarding decisions and to update forwarding information as network configurations change. This can be further complicated through other networking trends such as network virtualization.

Many networks utilize parallelization and other techniques to improve the forwarding function between two network nodes. By employing parallelization, redundancy is built into a network so that it is possible that more than one path exists between any two nodes. This provides suitably aware network switching products with the ability to select between the redundant paths to avoid network congestion, balance network loads, or to avoid failures in the network. Parallelization also provides the ability to handle more network traffic between two nodes than is possible when parallelization is not utilized. In some implementations the parallelization is treated in a more formalized fashion using virtual link trunking (VLT). In a VLT, multiple network links and/or nodes are often bundled into a group to support the parallelization function. For suitably aware network switching products, the VLT can offer a flexible option to select any of the network links in the VLT. The network switching products may also ignore the VLT and treat the network links as separate links and utilize them in a more traditional fashion. And while VLTs offer additional flexibility in network topologies they also add complexity to the forwarding function.

One function of network switching products is to deal with failures in the networks they are receiving network packets from or forwarding packets to. For example, the network switching products should be able to deal with failures in the connections between themselves and their neighboring network switching products.

Accordingly, it would be desirable to provide improved network switching products that can deal with connection failures by forwarding around failure points while minimizing adverse impact on network traffic. It would also be desirable to provide network switching products that can deal with connection failures while taking advantage of the features of VLTs.

SUMMARY

According to one embodiment, a method of connection failure handling includes receiving a packet at a first network switching unit where the packet is to be forwarded to a second network switching unit, detecting a failure in a network connection between the first network switching unit and the second network switching unit and associated with a first LAG of the first network switching unit, determining a second LAG associated with an inter-chassis link (ICL) as a failover LAG for the first LAG, redirecting the packet to the second LAG, altering the packet to set a redirection status bit to a logic value, and forwarding the altered packet using the ICL.

According to another embodiment, a method of forwarding includes receiving a packet at a first network switching unit from a second network switching unit over an inter-chassis link where the packet is to be forwarded to a third network switching unit, determining whether the packet includes a redirection status bit set to a first logic value, and when the redirection status bit is set to the first logic value altering the packet by setting the redirection status bit to a second logic value different from the first logic value and forwarding the altered packet to the third network switching unit. The first network switching unit and the second network switching unit are peers.

According to yet another embodiment, an information handling system includes a communications network. The communications network includes a first network switching unit, a first LAG coupling the first network switching unit to a second network switching unit, and a second LAG coupling the first network switching unit to a peer unit using an inter-chassis link (ICL). The first network switching unit is configured to receive a first packet, where the packet is to be forwarded to the second network switching unit, detect a failure in a network connection between the first network switching unit and the second network switching unit, determine that the second LAG is a failover LAG for the first LAG, redirect the first packet to the second LAG, alter the first packet to set a first CFI bit to 1, and forward the altered first packet using the ICL. The network connection is associated with the first LAG;

DETAILED DESCRIPTION

FIG. 1is a simplified diagram of a network including several VLTs according to some embodiments. As shown inFIG. 1, a network switching device or node100has several options for forwarding and/or routing network packets to a network switching device or node200. More specifically, node100can forward packets to node200using one of several paths that utilize intervening network switching units or more simply units110and120.

In the particular configuration ofFIG. 1, both units110and120may take advantage of parallelization in the network links between themselves and both nodes100and200. AsFIG. 1shows, unit110may include one or more communication ports (i.e., ports)112that may be coupled to one or more corresponding network links114for coupling unit110to node200. Because unit110includes one or more ports112coupled to one or more network links114for exchanging network traffic with the same destination (i.e., node200), unit110may combine the one or more ports112into a single forwarding unit or link aggregation group (LAG)116. When unit110needs to forward network traffic to node200it may do so by directing the network traffic to LAG116where a LAG hashing mechanism may be used to choose from the one or more ports112and corresponding network links114. Similarly, unit120may include one or more ports122that may be coupled to one or more corresponding network links124for coupling unit120to node200. Because unit120includes one or more ports122coupled to one or more network links124for exchanging network traffic with the same destination (i.e., node200), unit120may combine the one or more ports122into a LAG126. When unit120needs to forward network traffic to node200it may do so by directing the network traffic to LAG126where a LAG hashing mechanism may be used to choose from the one or more ports122and corresponding network links124.

Because unit110and120both have connections to both node100and node200, they may be clustered together to form a peer group130where unit100and unit120are considered peer units. As shown inFIG. 1, unit110may include one or more ports132that may be coupled to one or more corresponding network links134. Unit120may also include one or more ports136that may be coupled to the one or more corresponding network links134. Because unit110and unit120are in the peer group130, the one or more network links134may form an inter-chassis link (ICL)138. In some embodiments, unit110may additionally combine the one or more ports132into a LAG. In some embodiments, unit120may additionally combine the one or more ports136into a LAG. In some embodiments, because unit110and unit120are in the peer group130, the one or more network links114and the one more network links124may form a VLT139coupling the peer group130with the node200.

Although depicted in somewhat simpler form, peer group130may be coupled similarly to node100. Unit110may include one or more ports142that may be coupled to one or more corresponding network links144that may couple unit110to node100. Similarly, unit120may include one or more ports146that may be coupled to one or more corresponding network links148that may couple unit120to node100. In some embodiments, because unit110and unit120are in the peer group130, the one or more network links144and the one more network links148may form a VLT149coupling the peer group130with the node100.

The network inFIG. 1demonstrates many different types of parallelism. In some examples, there may be local parallelism between individual switches and nodes. For example, the one or more network links114provide more than one localized path between unit110and node200. In some examples, there may be parallelism due to the presence of the VLTs139and149and the peer group130. For example, node100may forward network traffic to node200via either unit110or unit120. As the example inFIG. 1shows, node100may forward network traffic to node200using unit120. Node100may first forward the network traffic to unit120along the one or more network links148to the one or more ports146as depicted by the flow arrow151. Once the network traffic arrives at unit120, unit120may forward the network traffic on to node200by directing the network traffic using LAG126as depicted by flow arrow152. LAG126may be used to hash the network traffic to the one or more ports122where it is placed on the one or more corresponding network links124and on to node200. According to some embodiments, the network traffic could alternatively be directed to unit110along the one or more network links144, and unit110could then forward it to node200using the LAG116. According to some embodiments, either unit110or unit120could forward the network traffic along the ICL138to its peer unit (i.e., unit120or unit110respectively), which could then forward the network traffic on to unit200.

FIG. 2is a simplified diagram of the network ofFIG. 1with a connection failure160between two switching units according to some embodiments. As shown inFIG. 2, the connection between unit120and node200has failed as depicted by failure160. In some examples, the failure160may be a failure in the one or more ports122. In some examples, the failure160may be a failure in the one or more network links124. In some examples, the failure160may be a failure at node200. In some examples, the failure160may include a combination of port, network link, and/or other failures. As a result of the failure160, it is no longer possible for packets to be forwarded from unit120to node200using the one or more network links124. In a network without parallelization or redundancy, this might isolate node200and points beyond in the network. Such is not the case here. Unit120is aware that it is part of peer group130and has access to VLT139. As a result, unit120knows that it has peer units, specifically unit110, that can also reach node200. Thus, when unit120receives packets from node100at the one or more ports146as depicted by flow arrow151, unit120is able to forward the network traffic around the failure160. Unit120may do this by forwarding the network traffic for node200to unit110using ICL138as depicted by flow arrow161. Once the packets arrive at unit110they may be forwarded using LAG116and the one or more network links114to node200as depicted by flow arrow162.

As discussed above and further emphasized here,FIGS. 1 and 2are merely examples, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. According to some embodiments, the peer group130may include more than two units functioning in parallel. This arrangement allows unit120to choose from multiple peer units to forward network traffic around the failure160. According to some embodiments, the number of network links in the one or more network links114, the one or more network links124, the one or more network links134, the one or more network links144, and/or the one or more network links148may be different from the number depicted inFIGS. 1 and 2and may include one, two, or more than two. In some examples, each of one or more network links114, the one or more network links124, the one or more network links134, the one or more network links144, and/or the one or more network links148may be the same and/or different in number.

According to some embodiments, it may not be necessary for unit120to forward network traffic for node200using ICL138and unit110when only some of the one or more network links124fail. In some examples, unit120may still forward network traffic around the failed network links and directly to node200by using any of the other remaining links in the one or more network links124. In some examples, the LAG hashing mechanism for LAG126may hash the network traffic to the other remaining links in the one or more network links124.

FIG. 3is a simplified diagram showing a method300of connection failure handing according to some embodiments. As shown inFIG. 3, the method300includes a process310for detecting a connection failure, a process320for updating forwarding data structures to use an ICL, and a process330for notifying a peer of the failure. According to certain embodiments, the method300of link failure handling can be performed using variations among the processes310-330as would be recognized by one of ordinary skill in the art. In some embodiments, one or more of the processes310-330of method300may be implemented, at least in part, in the form of executable code stored on non-transient, tangible, machine readable media that when run by one or more processors (e.g., one or more processors in the nodes100and/or200and/or the units110and/or120) may cause the one or more processors to perform one or more of the processes310-330.

At the process310, a connection failure may be detected. In some examples, the connection failure may indicate that a first network switching unit is not able to forward network traffic directly to a second network switching unit. In some examples, the connection failure may be a failure in one or more ports of the first network switching unit. In some examples, the connection failure may be a failure in one or more network links coupling the first network switching unit and the second network switching unit. In some examples, the connection failure may be a failure in one or more ports of the second network switching unit. In some examples, the connection failure may include a combination of port, network link, and/or other failures. In some examples, the connection failure may include failures associated with all of the ports in a corresponding LAG. In some examples, the connection failure may be the failure160. In some examples, the connection failure may prohibit the first network switching unit from forwarding network traffic directly to the second network switching unit.

At the process320, forwarding data structures may be updated to use an ICL. According to some embodiments, forwarding data structures in network switching units may typically be arranged as next hop tables. In some examples, the forwarding data structures may include one or more tables selected from a group comprising layer 2 (L2) media access control (MAC) tables, layer 3 (L3) forwarding information bases (FIB), LAG hashing tables, and the like. In some examples, a L2 MAC table may map destination MAC addresses to a port or a LAG that designates the next hop in a path to each known destination MAC address. In some examples, a L3 FIB may similarly map destination IP addresses to a port or a LAG that designates the next hop in a path to each known destination IP address. In some examples, the L2 MAC table and/or the L3 FIB may include hundreds or even thousands of next hop entries using a particular port or LAG. In some examples, the LAG hashing table may map LAG IDs to one or more ports.

When the connection failure occurs, the forwarding data structures may be replaced with alternate paths to destinations included in the forwarding data structures. In some examples, the LAG hashing table may be updated to include one or more ports associated with the ICL in the entry for the LAG associated with the connection failure. In some examples, the L2 MAC table may be updated to include the one or more ports associated with the ICL in each entry associated with one or more ports and/or the LAG associated with the connection failure. In some examples, the L3 FIB may be updated to include the one or more ports associated with the ICL in each entry associated with the one or more ports and/or the LAG associated with the connection failure. In some examples, the updates to the forwarding data structures may take as long as one second to complete.

At the process330, a peer unit may be notified of the failure. According to some embodiments, the peer unit may implement egress mask filtering of incoming network traffic. In some examples, egress mask filtering may prevent network traffic received over the ICL from being forwarded over a VLT. In some examples, egress mask filtering may prevent unnecessary and/or undesirable packet duplication. In some examples, egress mask filtering may achieve source suppression. In some examples, egress mask filtering may prevent any network traffic rerouted over the ICL from being properly forwarded using the VLT. In the examples ofFIG. 2, egress mask filtering may prevent unit110from forwarding network traffic received over the ICL138to node200as depicted by the flow arrow162. In some examples, the egress mask filtering may be disabled in the peer unit by notifying the peer unit of the connection failure. The notification may inform the peer unit that it will be receiving network traffic for the VLT over the ICL and that the peer unit should forward that network traffic over the VLT. In the examples ofFIG. 2, unit120may notify unit110of the failure160so that network traffic forwarded from unit120to unit110over the ICL138may be forwarded to node200using VLT139. In some examples, notifying the peer unit of the connection failure and the peer unit processing the connection failure may take as long as several seconds to complete.

According to some embodiments, a time taken for processes320and330to complete may be as long as several seconds. Until processes320and330are able to complete, it may not be possible to successfully forward network traffic over the ICL. In some examples, this may represent a significant loss of network traffic. In some examples, when high bandwidth traffic is being handled, the loss of network traffic may exceed several gigabits of data. In some embodiments, the loss of network traffic may result in undesirable failure in one or more network protocols. In some examples, the one or more network protocols include the bidirectional forwarding detection (BFD) protocol. In the BFD protocol, keep alive messages may occur at approximately 50 millisecond intervals and a hold interval may be only 150 milliseconds. A temporary network failure of several seconds may result in the undesirable failure of BFD. Accordingly, it would be advantageous to have more rapid connection failure handling.

FIG. 4is a simplified diagram of an IEEE 802.1q header400. The IEEE 802.1q protocol may often be used to support forwarding of network traffic using virtual local area networks (VLANs) and/or VLTs. In the IEEE 802.1q protocol, the 8021.q header400may be inserted into an Ethernet frame or packet between a source MAC field and an ether type field. As shown inFIG. 4, the 802.1q header400may include a 16-bit tag protocol ID (TPID) field410and a 16-bit tag control information (TCI) field420. The TCI field420may include a 3-bit priority code point (PCP) field422, a 1-bit canonical format indicator (CFI) bit424, and a 12-bit VLAN ID (VID) field426. In some examples, the CFI bit424is not used by Ethernet and may always be set to 0. Thus, according to some embodiments, the CFI bit424may be used by suitably aware network units to indicate that network traffic including a 1 in the CFI bit424may be processed and/or forwarded differently.

FIG. 5is a simplified diagram of a network with connection failure handling according to some embodiments. As shown inFIG. 5, a network switching device or node510has several options for forwarding and/or routing network packets to a network switching device or node520. More specifically, node510can forward packets to node520using one of several paths that utilize intervening network switching units or more simply units530and540.

In the particular configuration ofFIG. 5, both units530and540are taking advantage of parallelization in the network links between themselves and both nodes510and520. AsFIG. 5shows, unit530may include one or more ports532that may be coupled to one or more corresponding network links534for coupling unit530to node520. Because unit530includes one or more ports532coupled to one or more network links534for exchanging network traffic with the same destination (i.e., node520), unit530may combine the one or more ports532into a LAG536. When unit530needs to forward network traffic to node520it may do so by directing the network traffic to LAG536. Similarly, unit540may include one or more ports542that may be coupled to one or more corresponding network links544for coupling unit540to node520. Unit540may combine the one or more ports542into a LAG546. When unit540needs to forward network traffic to node520it may do so by directing the network traffic to LAG546.

Because units530and540both have connections to both node510and node520, they may be clustered together to form a peer group550where unit530and unit540are considered peer units. As shown inFIG. 5, unit530may include one or more ports552that may be coupled to one or more corresponding network links554. Unit540may also include one or more ports556that may be coupled to the one or more corresponding network links554. The one or more network links554may form an ICL558. The one or more network links534and the one more network links544may form a VLT559coupling the peer group550with the node520.

Although depicted in somewhat simpler form, peer group550may be coupled similarly to node510. Unit530may include one or more ports562that may be coupled to one or more corresponding network links564that may couple unit530to node510. Similarly, unit540may include one or more ports566that may be coupled to one or more corresponding network links568that may couple unit540to node510. The one or more network links564and the one more network links568may form a VLT569coupling the peer group550with the node510.

As additionally shown inFIG. 5, the connection between unit540and node520has failed as depicted by a failure570. In some examples, the failure570may be a failure in the one or more ports542. In some examples, the failure570may be a failure in the one or more network links544. In some examples, the failure570may be a failure at node520. In some examples, the failure570may include a combination of port, network link, and/or other failures. As a result of the failure570, it is no longer possible for packets to be forwarded from unit540to node520using the one or more network links544or the LAG546.

According to some embodiments, unit540may support LAG failover. In LAG failover, when some or all network links associated with a LAG are down, a substitute LAG may be specified which may automatically be used to forward network traffic sent to the LAG network link that is down. In some examples, the LAG failover may be implemented in hardware. In some examples, LAG failover may be able to provide the substitute LAG in 10 microseconds or less. As shown inFIG. 5, LAG546may be supported by LAG failover and ICL558may be identified as the substitute LAG. Thus, when LAG546is down and forwarding data structures of unit540direct network traffic to LAG546, the network traffic may be automatically directed to ICL558.

As shown inFIG. 5, network traffic may be forwarded from node510to node520using the LAG failover of unit540. Node510may forward a packet of the network traffic to unit540using the network link581as depicted by a flow arrow581. When the packet is received by unit540, the forwarding data structures of unit540may indicate that the packet should be forwarded to LAG546in order to reach node520. As noted previously, failure570prevents LAG546from forwarding the packet directly to node520. Recognizing that LAG546is down, the LAG failover of unit540may substitute ICL558for the LAG546. The packet may then be redirected to the ICL558as the substitute for the LAG546as depicted by a flow arrow582. As the redirected packet is prepared for forwarding over ICL558, a CFI bit of the packet may be changed to 1. The altered packet may then be forwarded over the ICL558as depicted by a flow arrow583. When the altered packet is received at unit530, unit530may detect that the CFI bit is 1 indicating that egress port filtering may be ignored for the altered packet. Unit530may then change the CFI bit back to 0, indicating normal future treatment of the packet, and the packet may then be forwarded to node520using LAG536as depicted by a flow arrow584.

According to some embodiments, the connection failure handling ofFIG. 5may overcome some of the deficiencies of the method300. In some examples, the use of LAG failover by unit540to redirect the packet to ICL558may handle the redirection of the packet in 10 microseconds or less, which may be significantly faster than a time taken to update the forwarding data structures during the process320. In some examples, the altering of the packet by unit540to change the CFI bit to 1 and the ignoring of egress port filtering by unit530may allow the packet to be forwarded on to node520without having to wait for unit530to be notified of failure570during the process330. Consequently, network traffic may be forwarded around failure570without the unacceptable delays of the method300. In some examples, the connection failure handling ofFIG. 5may be rapid enough to avoid the undesirable failure of BFD.

As discussed above and further emphasized here,FIG. 5is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. According to some embodiments, the peer group550may include more than two units functioning in parallel. This arrangement allows unit540to choose from multiple peer units to forward network traffic around the failure570. According to some embodiments, the number of network links in the one or more network links534, the one or more network links544, the one or more network links554, the one or more network links564, and/or the one or more network links568may be different from the number depicted inFIG. 5and may include one, two, or more than two. In some examples, each of one or more network links534, the one or more network links544, the one or more network links554, the one or more network links564, and/or the one or more network links568may be the same and/or different in number.

FIG. 6is a simplified diagram showing a method600of connection failure handing according to some embodiments. As shown inFIG. 6, the method600includes a process610for receiving a packet; a process620for detecting a connection failure, a process630for determining a failover LAG, a process640for forwarding using the failover LAG with the CFI bit set to 1, a process650for updating forwarding data structures to use an ICL, and a process660for notifying a peer of the failure. According to certain embodiments, the method600of connection failure handling can be performed using variations among the processes610-660as would be recognized by one of ordinary skill in the art. In some embodiments, the process650and/or the process660may be omitted. In some embodiments, one or more of the processes610-660of method600may be implemented, at least in part, in the form of executable code stored on non-transient, tangible, machine readable media that when run by one or more processors (e.g., one or more processors in the nodes510and/or520and/or the units530and/or540) may cause the one or more processors to perform one or more of the processes610-660.

At the process610, a packet may be received. In some examples, the packet may be received at a first network switching unit. In some examples, the packet should be forwarded to a second network switching unit.

At the process620, a connection failure may be detected. In some examples, the connection failure may indicate that the first network switching unit is not able to forward network traffic, including the packet, to the second network switching unit. In some examples, the connection failure may be a failure in one or more ports of the first network switching unit. In some examples, the connection failure may be a failure in one or more network links coupling the first network switching unit and the second network switching unit. In some examples, the connection failure may be a failure in one or more ports of the second network switching unit. In some examples, the connection failure may include a combination of port, network link, and/or other failures. In some examples, the connection failure may include failures associated with all of the ports in a corresponding LAG. In some examples, the connection failure may be the failure570. In some examples, the connection failure may prohibit the first network switching unit from forwarding network traffic directly to the second network switching unit.

At the process630, a failover LAG may be determined. In some examples, where the first network switching unit includes support for LAG failover, the LAG associated with the connection failure may designate another LAG as a substitute LAG. In some examples, the another LAG may be an ICL. What the substitute LAG is designated, the failover LAG may be determined to be the substitute LAG. In some examples, the failover LAG may be the ICL. In some examples, the ICL is the ICL558.

At the process640, the failover LAG may be used for forwarding with the CFI bit set to 1. In some examples, the CFI bit may be included in an IEEE 802.1q header. In some examples, when the packet is redirected to the failover LAG, the packet may be altered to set the CFI bit to 1. The altered packet may then be forwarded using the failover LAG. In some examples, the altered packet may be a packet associated with the flow arrow583. In some examples, the packet may be altered and forwarded using an access control list (ACL) entry. In some examples, the ACL entry may filter packets being redirected to the ICL. In some examples, the ACL entry may trigger processing that changes the CFI bit to 1.

At the optional process650, forwarding data structures may be updated to use the ICL. According to some embodiments, forwarding data structures in network switching units may typically be arranged as next hop tables. In some examples, the forwarding data structures may include one or more tables selected from a group comprising layer 2 (L2) media access control (MAC) tables, layer 3 (L3) forwarding information bases (FIB), LAG hashing tables, and the like. In some examples, a L2 MAC table may map destination MAC addresses to a port or a LAG that designates the next hop in a path to each known destination MAC address. In some examples, a L3 FIB may similarly map destination IP addresses to a port or a LAG that designates the next hop in a path to each known destination IP address. In some examples, the L2 MAC table and/or the L3 FIB may include hundreds or even thousands of next hop entries using a particular port or LAG. In some examples, the LAG hashing table may map LAG IDs to one or more ports.

When the connection failure occurs, the forwarding data structures may be updated to include alternate paths to destinations included in the forwarding data structures. In some examples, the LAG hashing table may be updated to include one or more ports associated with the ICL in the entry for the LAG associated with the connection failure. In some examples, the L2 MAC table may be updated to include the one or more ports associated with the ICL in each entry associated with one or more ports and/or the LAG associated with the connection failure. In some examples, the L3 FIB may be updated to include the one or more ports associated with the ICL in each entry associated with the one or more ports and/or the LAG associated with the connection failure. In some examples, the updates to the forwarding data structures may take as long as one second to complete.

At the optional process660, a peer unit may be notified of the failure. In some examples, the egress mask filtering may be disabled in the peer unit by notifying the peer unit of the connection failure. The notification may inform the peer unit that it will be receiving network traffic for a VLT over the ICL and that the peer unit should forward that network traffic over the VLT. In the examples ofFIG. 5, unit540may notify unit530of the failure570so that network traffic forwarded from unit540to unit530over the ICL558may be forwarded to node520using VLT559. In some examples, notifying the peer unit of the connection failure and the peer unit processing the connection failure may take as long as several seconds to complete.

According to some embodiments, the method600of network connection handling may include two separate ways for the first switching unit to forward network traffic around the connection failure. In some examples, the processes630and640may quickly redirect network traffic through the peer unit over the ICL using LAG failover. In some examples, the processes630and640may be used as a temporary forwarding solution until processes650and660have time to complete. In some examples, the processes630and640may be used as an only solution when the processes650and660are omitted. In some examples, the processes650and660may also redirect network traffic through the peer unit over the ICL.

FIG. 7is a simplified diagram showing a method700of forwarding according to some embodiments. As shown inFIG. 7, the method700includes a process710for receiving network traffic over an ICL, a process720for determining whether the CFI bit is 1, a process730for setting the CFI bit to 0, a process740for forwarding over a VLT, and a process750for forwarding normally. According to certain embodiments, the method700of forwarding can be performed using variations among the processes710-750as would be recognized by one of ordinary skill in the art. In some embodiments, one or more of the processes710-750of method700may be implemented, at least in part, in the form of executable code stored on non-transient, tangible, machine readable media that when run by one or more processors (e.g., one or more processors in the nodes510and/or520and/or the units530and/or540) may cause the one or more processors to perform one or more of the processes710-750.

At the process710, network traffic may be received over an ICL. In some examples, a packet associated with the network traffic may be received over the ICL. In some examples, the packet may have been forwarded by a peer unit. In some examples, the packet may be an altered packet forwarded as a result of the process640. In some examples, the packet received may be a packet associated with the flow arrow583.

At the process720, it may be determined whether the CFI bit is 1. The CFI bit may be included in the packet received during the process710. In some examples, the CFI bit may be included in an IEEE 802.1q header. In some examples, an ACL entry may be used to determine whether the CFI bit is 1. When it is determined that the CFI bit is 1, the packet may be forwarded using the processes730and740. When it is determined that the CFI bit is not1, the packet may be forwarded normally in the process750.

At the process730, the CFI bit is set to 0. When the received packet includes the IEEE 802.1q header with the CFI bit set to 1, the CFI bit may be set to 0 before the packet is forwarded. In some examples, by setting the CFI bit to 0 the packet may be forwarded to another network switching unit, which may then forward the packet normally. In some examples, the ACL entry may trigger processing that changes the CFI bit to 0.

At the process740, a VLT is used for forwarding. In some examples, the VLT may be specified based on information in the packet received during the process710. The packet received during the process710may be forwarded using the VLT after the CFI bit is set to 0 during the process730. In some examples, the ACL entry may trigger processing that forwards the packet with the CFI bit set to 0 using the VLT.

In some embodiments, a single ACL entry may be used during the processes720-740. In some embodiments, multiple ACL entries may be used during the processes720-740.

At the process750, normal forwarding occurs. When the packet received during the process710includes a CFI bit set to 0 it may be forwarded normally. In some examples, when egress port filtering is used, the packet received during the process710may be dropped and not forwarded because egress port filtering may prevent the forwarding of packets over the VLT that are received over the ICL.

FIG. 8shows a simplified diagram of a network including a square VLT according to some embodiments. As shown inFIG. 8, a node800has several options for forwarding and/or routing network packets to a node900. More specifically, node800can forward packets to node900using one of several paths that utilize intervening network switch units810,820,830, and840. In the particular configuration ofFIG. 8, node800may first utilize a VLT850to reach either unit810along network link852or reach unit820along network link854. Units810and unit820may be clustered together to form a peer group815where unit810and unit820are considered peer units. Unit810and unit820may be coupled using an ICL817.

As also shown inFIG. 8, peer group815may utilize a VLT860to reach either unit830or unit840. Unit810may reach unit830along network link862or reach unit840along network link864. Unit820may reach unit830along network link866or reach unit840along network link868. Unit830and unit840may also be clustered to form a peer group835that also includes an ICL837. Collectively the peer groups815and835may form a square VLT as suggested by the geometric relationship between the units810,820,830, and840.

As depicted inFIG. 8, node800may send network traffic to node900through one of numerous paths through the peer groups815and835. For the purposes of illustration, assume that one or more forwarding data structures of node800, unit820, and unit840include forwarding information that may result in the forwarding of network traffic from node800to unit820using network link854as depicted by a flow arrow891, from unit820to unit840using network link868, and finally from unit840to node900using network link874. When a connection failure880occurs between unit820and unit840, network traffic for node900may be redirected using alternate paths using the methods600and700.

In some embodiments, the methods600and700may be applied to network traffic being forwarded from node800to node900. When a packet from the network traffic is received by unit820during the process610from node800with a destination of node900or beyond (as depicted by the flow arrow891), the forwarding data structure in unit820may direct the packet to a LAG890associated with the network link568for forwarding to unit840. As noted above, connection failure880may prohibit forwarding of the packet directly to unit840using LAG890so the connection failure880may be detected during the process620. Using the LAG failover for LAG890, ICL817may be determined to be the failover LAG during the process630. The packet may then be redirected to ICL817as depicted by a flow arrow892. The CFI bit may be set to 1, and the altered packet may be forwarded to unit810using ICL817as depicted by a flow arrow893during the process640. According to some embodiments, the use of the LAG failover for LAG890may only be temporary. In some examples, the LAG associated with VLT860may still be used to forward network traffic to peer group835from unit820using the network link866. In some examples, a LAG hashing table for unit820may be updated to remove network link868from the LAG associated with VLT860. In some examples, the LAG hashing table for unit820may be updated using a process similar to the process650.

The altered packet may then be received by unit810during the process710. The CFI bit may be determined to be 1 during the process720. The CFI bit may then be set to 0 during the process730and the packet may then be forwarded to unit830using VLT860as depicted by a flow arrow894during the process740. The packet may then be received by unit830where it may be forwarded normally to node900as depicted by a flow arrow895.

As discussed above and further emphasized here,FIG. 8is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. According to some embodiments, the peer group815and/or the peer group835may include more than two units functioning in parallel. This arrangement allows adjoining nodes and clusters to choose from multiple forwarding paths that still exist through the cluster815and/or the cluster835during network failures. According to some embodiments, any of the network links817,837,852,854,862,864,866,868,872and/or874may each include more than one network link. According to some embodiments, the same LAG failover may be used to forward traffic around a failure in unit840as is used to forward network traffic around connection failure880.

According to some embodiments, a connection failure between unit840and node900may be handled using a similar LAG failover in unit840as shown in the examples ofFIG. 5. The LAG failover in unit840may redirect network traffic for a LAG associated with the network link874to the ICL837. The network traffic may then be forwarded over the ICL837with the CFI bit set to 1. When the network traffic is received at unit830the CFI bit may be set to 0 and the network traffic forwarded to node900using the VLT870and the network link872.