# Patent

## Title
Clearing forwarding entries dynamically and ensuring consistency of tables across ethernet fabric switch

## Abstract

One embodiment of the present invention provides a switch. The switch includes an ownership management mechanism and a notification mechanism. The ownership management mechanism maintains a local ownership association between the switch, and a medium access control (MAC) address learned at the switch and terminates the local ownership association for the MAC address. The notification mechanism generates a first notification indicating the local ownership association and a second notification indicating the termination of the local ownership association.

## Background
RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Application No. 61/502,136, titled “Clearing Forwarding Entries Dynamically and Ensuring Consistency of Tables Across VCS with VLAGs,” by inventors Mythilikanth Raman, Mary Manohar, Wei-Chivan Chen, Gangadhar Vegesana, Venky Venkatesh, and Raju Shekarappa, filed 28 Jun. 2011, which is incorporated by reference herein.
The present disclosure is related to U.S. patent application Ser. No. 13/087,239, titled “Virtual Cluster Switching,” by inventors Suresh Vobbilisetty and Dilip Chatwani, filed 14 Apr. 2011, and U.S. patent application Ser. No. 12/725,249, titled “Redundant Host Connection in a Routed Network,” by inventors Somesh Gupta, Anoop Ghawani, Phanidhar Koganti, and Shunjia Yu, filed 16 Mar. 2010, the disclosures of which are incorporated by reference herein.


BACKGROUND
1. Field
The present disclosure relates to network management. More specifically, the present disclosure relates to a method and system for distributed management of layer-2 address table entries.
2. Related Art
The growth of the Internet has brought with it an increasing demand for bandwidth. As a result, equipment vendors race to build larger and faster networks with large number of switches, each capable of supporting a large number of end devices, to move more traffic efficiently. However, managing the forwarding entries associated with these end devices becomes complex when the forwarding information is distributed across the switches. Particularly, due to distributed forwarding table updates, it is essential to maintain consistency across a network.
Meanwhile, layer-2 (e.g., Ethernet) switching technologies continue to evolve. More routing-like functionalities, which have traditionally been the characteristics of layer-3 (e.g., Internet Protocol or IP) networks, are migrating into layer-2. Notably, the recent development of the Transparent Interconnection of Lots of Links (TRILL) protocol allows Ethernet switches to function more like routing devices. TRILL overcomes the inherent inefficiency of the conventional spanning tree protocol, which forces layer-2 switches to be coupled in a logical spanning-tree topology to avoid looping. TRILL allows routing bridges (RBridges) to be coupled in an arbitrary topology without the risk of looping by implementing routing functions in switches and including a hop count in the TRILL header.
While TRILL brings many desirable features to layer-2 networks, some issues remain unsolved when a distributed yet consistent mechanism to clear entries from a layer-2 address table is desired.
SUMMARY
One embodiment of the present invention provides a switch. The switch includes an ownership management mechanism and a notification mechanism. The ownership management mechanism maintains a local ownership association between the switch and a medium access control (MAC) address learned at the switch, and terminates the local ownership association for the MAC address. The notification mechanism generates a first notification indicating the local ownership association and a second notification indicating the termination of the local ownership association.
In a variation on this embodiment, the second notification includes a first tier message indicating initiation of the termination and a second tier message indicating the termination of specific ownership association with the switch.
In a variation on this embodiment, the switch is a TRILL RBridge.
In a variation on this embodiment, the ownership association is indicated by a bit in a bitmap, and wherein the bit is associated with the switch.
In a variation on this embodiment, the ownership mechanism also terminates an ownership association for a MAC address learned at a remote switch, in response to receiving a notification from the remote switch.
In a variation on this embodiment, the switch is part of a link aggregation. The switch also includes an age-out control mechanism that creates an age-out indication for the switch and a MAC address learned at the switch, in response to inactivity from the MAC address over a period of time. The notification mechanism also generates a third notification associated with the age-out indication.
In a further variation on this embodiment, the age-out control mechanism also suppresses local age-out notifications for the MAC address in response to creating the age-out indication.



BRIEF DESCRIPTION OF THE FIGURES
FIG. 1A illustrates an exemplary TRILL network with distributed forwarding information, in accordance with an embodiment of the present invention.
FIG. 1B illustrates an exemplary ownership bitmap for a layer-2 forwarding table entry, wherein the forwarding table entry can correspond to an end device associated with a remote RBridge, in accordance with an embodiment of the present invention.
FIG. 2A illustrates an exemplary network where a virtual RBridge identifier is assigned to two physical TRILL RBridges which are coupled to end devices via virtually aggregated links, in accordance with an embodiment of the present invention.
FIG. 2B illustrates an exemplary ownership bitmap for a layer-2 forwarding table entry, wherein the forwarding table entry corresponds to an end device associated with a virtual RBridge, in accordance with an embodiment of the present invention.
FIG. 3A presents a flowchart illustrating the process of an RBridge updating an ownership bitmap, in accordance with an embodiment of the present invention.
FIG. 3B presents a flowchart illustrating the process of clearing an entry in a forwarding table, wherein the entry can be associated with a virtual RBridge, in accordance with an embodiment of the present invention.
FIG. 4A illustrates failure scenarios in a TRILL network with distributed forwarding information, in accordance with an embodiment of the present invention.
FIG. 4B illustrates an exemplary ownership bitmap in a failure scenario for a layer-2 forwarding table entry, wherein the forwarding table entry corresponds to an end device associated with a virtual RBridge, in accordance with an embodiment of the present invention.
FIG. 5A illustrates an exemplary network where a virtual RBridge identifier is assigned to three physical TRILL RBridges which are coupled to end devices via virtually aggregated links, wherein the RBridges share age-out information of end devices, in accordance with an embodiment of the present invention.
FIG. 5B illustrates an exemplary virtual link aggregation aging table entry, in accordance with an embodiment of the present invention.
FIG. 5C illustrates an exemplary layer-2 forwarding entry associated with an aging table, in accordance with an embodiment of the present invention.
FIG. 6 presents a flowchart illustrating the process of an RBridge aging out a forwarding table entry, in accordance with an embodiment of the present invention.
FIG. 7 presents a flowchart illustrating the process of an RBridge updating an aging table entry and an associated forwarding table entry, in accordance with an embodiment of the present invention.
FIG. 8 illustrates an exemplary architecture of a switch with distributed forwarding table update capability, in accordance with an embodiment of the present invention.



DETAILED DESCRIPTION
The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the claims.
Overview
In embodiments of the present invention, the problem of consistently updating an entry in a distributed forwarding table is solved by providing ownership association to the entry. A TRILL RBridge may learn a MAC address of an end device coupled to a remote RBridge in the network and store the address in a forwarding table. In some embodiments, an RBridge may learn several thousand of such MAC addresses from a remote RBridge and save them in a local forwarding table. This can be viewed as distributed learning of forwarding information, such as MAC addresses. As the number of MAC addresses learned from a remote RBridge can be large, there can be a scenario where the addresses are removed from the remote RBridge while some of the addresses remain in the local forwarding table. For example, if all entries associated with the remote RBridge are removed (in some embodiments, this can be done from an external command to the RBridge), the local RBridge gets an instruction to remove the associated entries. However, if the instruction is received while the RBridge is still learning, then already added entries are deleted while the subsequent learned entries are stored. This leads to an inconsistency in forwarding tables of the local and the remote RBridges during the distributed learning process. Hence, it is essential to establish an ownership association and a two-tier clearing mechanism to ensure that the forwarding tables on RBridges across a TRILL network are consistent.
In some embodiments, the ownership association is implemented by associating a bitmap with each forwarding entry, wherein each bit represents an ownership association between the entry and an RBridge. Hence, the length of the bitmap should be at least the number of RBridges in the TRILL network. For example, a TRILL network with 5 RBridges should have a 5-bit bitmap for each forwarding entry, wherein each bit represents the ownership of the entry. If the end device corresponding to the entry is coupled to the second RBridge of the TRILL network, then the second bit of the bitmap should be set. In this way, an entry in the forwarding table is removed only when the owner RBridge clears the ownership bit. Consequently, an entry associated with a bitmap with all bits cleared can be removed from all RBridges in the network. In some embodiments, the length of the bitmap is predetermined and can be longer than the number of RBridges in the TRILL network, wherein the extra bits remain cleared.
Furthermore, if an RBridge issues a command to clear all forwarding entries, then the command is propagated to all other RBridges. Individual RBridges terminate their respective the ownership associations and issue a second clear command indicating the termination of ownerships. This second clear command from an issuing RBridge is also propagated to other RBridges. Upon receiving the second clear command, other RBridges clear the forwarding entries associated with the issuing RBridge. As a result, only when the owner of an entry issues a clear command is the entry cleared. This combination of ownership associations and a two-tier clearing mechanism ensures consistency across all forwarding tables in a TRILL network.
Another important aspect of maintaining consistency in distributed learning is the aging-out process of an entry. If any MAC address learned at an RBridge remains inactive over a period of time, the MAC address is considered aged out and is removed from local forwarding tables. In a TRILL network, an end device can be connected to a plurality of RBridges. Under such a scenario, the RBridges can form a virtual link aggregation that puts all links to the end device from all associated RBridges in a “trunked” mode. These physical RBridges participating in the link aggregation can be considered as partner RBridges. This link aggregation allows data to be sent to the end device via any of the partner RBridges. Consequently, in a link aggregation, a MAC address entry can be owned by multiple RBridges. Though the entry is owned by multiple RBridges, actual traffic may travel through only one RBridge. As a result, the MAC address may remain active in one of the partner RBridge while age out in the others. As the MAC address is associated with a link aggregation, the address entry should age out only when it ages out at all partner RBridges. In some embodiments of the present invention, an age-out indication is created for a respective MAC address learned from a link aggregation, wherein the indication specifies whether the MAC address is aged out at an RBridge. When the indication specifies aging out at all partner RBridges, then the MAC address can be aged out at all partner RBridges. In some embodiments, one RBridge among the partner RBridges is elected as the “master” RBridge and is responsible for notifying all partner RBridges when the MAC address is ready to be aged out.
Although the present disclosure is presented using examples based on the TRILL protocol, embodiments of the present invention are not limited to TRILL networks, or networks defined in a particular Open System Interconnection Reference Model (OSI reference model) layer.
The term “RBridge” refers to routing bridges, which are bridges implementing the TRILL protocol as described in IETF Request for Comments (RFC) “Routing Bridges (RBridges): Base Protocol Specification,” available at http://tools.ietf.org/html/rfc6325, which is incorporated by reference herein. Embodiments of the present invention are not limited to application among RBridges. Other types of switches, routers, and forwarders can also be used.
In this disclosure, the term “edge port” refers to a port which sends/receives data frames in native Ethernet format. The term “TRILL port” refers to a port which sends/receives data frames encapsulated with a TRILL header and outer MAC header.
The term “end device” refers to a network device that is typically not TRILL-capable. “End device” is a relative term with respect to the TRILL network. However, “end device” does not necessarily mean that the network device is an end host. An end device can be a host, a conventional layer-2 switch, or any other type of network device. Additionally, an end device can be coupled to other switches or hosts further away from the TRILL network. In other words, an end device can be an aggregation point for a number of network devices to enter the TRILL network.
The term “ownership” refers to the right to remove a forwarding entry from all forwarding tables in a TRILL network. An ownership association is established when an RBridge learns a MAC address at a local port. Ownership association between an RBridge and a MAC address refers to the ownership association of all forwarding entries containing the MAC address in all forwarding tables in a TRILL network. In this disclosure, ownership association with a MAC address and ownership association with forwarding entries corresponding to the MAC address is used interchangeably.
The term “forwarding entry” refers to an entry in a forwarding table in a switch. The term “forwarding table” is used in a generic sense and can refer to any data structure that contains forwarding/routing information for forwarding a frame via a layer-2, layer-3, or TRILL network. In this disclosure, setting a bit refers to assigning a value of 1 to the bit, and clearing or unsetting a bit refers to assigning a value of 0 to the bit.
The term “frame” refers to a group of bits that can be transported together across a network. “Frame” should not be interpreted as limiting embodiments of the present invention to layer-2 networks. “Frame” can be replaced by other terminologies referring to a group of bits, such as “packet,” “cell,” or “datagram.”
The term “RBridge identifier” refers to a group of bits that can be used to identify an RBridge. Note that the TRILL standard uses “RBridge ID” to denote a 48-bit intermediate-system-to-intermediate-system (IS-IS) System ID assigned to an RBridge, and “RBridge nickname” to denote a 16-bit value that serves as an abbreviation for the “RBridge ID.” In this disclosure, “RBridge identifier” is used as a generic term and is not limited to any bit format, and can refer to “RBridge ID” or “RBridge nickname” or any other format that can identify an RBridge.
Network Architecture
FIG. 1A illustrates an exemplary TRILL network with distributed forwarding information, in accordance with an embodiment of the present invention. As illustrated in FIG. 1, a TRILL network 100 includes RBridges 101, 102, 103, 104, and 105. End devices 112 and 114 are coupled to RBridge 101 and end devices 116 and 118 are coupled to RBridge 105. RBridges in network 100 use edge ports to communicate to end devices and TRILL ports to communicate to other RBridges. For example, RBridge 101 is coupled to end devices 112 and 114 via edge ports and to RBridges 102, 103, and 105 via TRILL ports.
In some embodiments, TRILL network 100 may be an Ethernet fabric switch. In some further embodiments, the Ethernet fabric switch may be a virtual cluster switch. In an exemplary Ethernet fabric switch, any number of RBridges in any arbitrary topology may logically operate as a single switch. Any new RBridge may join or leave the Ethernet fabric switch in “plug-and-play” mode without any manual configuration.
During operation, in FIG. 1, RBridge 101 dynamically learns the MAC addresses of end devices 112 and 114 when the devices send frames through RBridge 101 and stores them in a local forwarding table. In some embodiments, RBridge 101 distributes the learned MAC addresses to all other RBridges in network 100. Similarly, RBridge 105 learns the MAC addresses of end devices 116 and 118, and distributes the information to all other RBridges. During the distribution of the MAC addresses, a command to clear all dynamically learned MAC addresses can be issued from any of the RBridges, such as RBridge 103. In some embodiments, the clear command is issued from a user via a command line interface associated with RBridge 103. This simultaneous learning and clearing can lead to inconsistency in the forwarding tables in network 100.
To avoid such inconsistency, in some embodiments, an ownership association is established for a MAC address in the forwarding table. For example, as RBridge 101 locally learns the MAC addresses of end devices 112 and 114, RBridge 101 becomes the owner of the MAC addresses of end devices 112 and 114 in the forwarding tables of all RBridges in network 100. Similarly, RBridge 105 becomes the owner of the MAC addresses of end devices 116 and 118 in all forwarding tables in network 100. The ownership association ensures that only the owner of a MAC address can initiate the clearing process of the MAC address in network 100. When the first clear command is issued from RBridge 103, the command is propagated to all RBridges. Upon receiving the command, RBridge 101 clears the locally owned MAC addresses of end devices 112 and 114 from the local forwarding table and removes the ownership association of the MAC addresses. RBridge 101 then sends the updated ownership information and an associated second clear command to all other RBridges. These other RBridges then remove the entries for end devices 112 and 114 from their respective forwarding tables. Note that these other RBridges do not remove a forwarding entry owned by a remote RBridge after receiving the first clear command from RBridge 103. The forwarding entry is removed only after receiving the second clear command from the owner of the entry. Similarly, when RBridge 105 removes the ownership association for the MAC addresses of end devices 116 and 118, this removal information and an associated second clear command is propagated to all other RBridges. The other RBridges then update their respective forwarding tables accordingly.
During operation that does not involve ownership association for the dynamically learned MAC addresses, there can be inconsistencies in the forwarding tables across network 100 when a clear command is issued while an RBridge is updating a local forwarding table. In FIG. 1, during operation, RBridge 101 learns the MAC address of end devices 112 and 114, and sends the information to all other RBridges. While RBridge 101 is sending the information, a command to clear forwarding tables is issued from RBridge 103. The command reaches RBridges 104 while it has updated the local forwarding table with the MAC address of end device 112 but not with the MAC address of end device 114. After receiving the clear command, RBridge 104 clears the local forwarding table, which includes an entry for end device 112. However, after clearing the table, RBridge 104 learns the MAC address of end device 114 as the information is already sent from RBridge 101. As a result, the forwarding table in RBridge 104 includes the MAC address of RBridge 104. At the same time, when the clear command reaches RBridge 101, MAC addresses for end devices 112 and 114 are already in the local forwarding table. Consequently, RBridge 101 clears the local forwarding table and both MAC addresses are removed from the table. Hence, with distributed learning, forwarding tables in RBridges in network 100 can have inconsistencies.
In embodiments of the present invention, as illustrated in FIG. 1, during operation, RBridge 101 learns the MAC addresses of local end devices 112 and 114, and distributes this learned information to other RBridges in network 100. As these two MAC addresses are learned at RBridge 101, all other RBridges in network 100 consider RBridge 101 to be the owner of these two MAC addresses in their respective forwarding tables. For example, when RBridge 102 receives this learned MAC information, RBridge 101 is assigned as the owner of the entries in the local forwarding table associated with end devices 112 and 114. Similarly, RBridge 105 learns the MAC addresses of local end devices 116 and 118, distributes the information to other RBridges, and becomes the owner of the forwarding entries associated with end devices 116 and 118.
After receiving the first clear command issued from RBridge 103, RBridge 101 clears the MAC addresses of local end devices 112 and 114 from the local forwarding table. However, RBridge 101 does not clear MAC addresses learned from other RBridges, such as the MAC addresses of end devices 116 and 118. After clearing the locally owned MAC addresses from the local forwarding table, RBridge 101 issues a second clear command that indicates removal of ownership association between the MAC addresses of local end devices and RBridge 101, and contains a command to clear all MAC addresses owned by RBridge 101. Similarly, after receiving the first clear command, RBridge 105 clears locally owned MAC addresses from the local forwarding table, and sends a second clear command to terminate ownership of RBridge 105 and clear MAC addresses owned by RBridge 105. When the second clear command from RBridge 101 propagates to another RBridge (e.g., RBridge 102) in network 100, RBridge 102 clears all MAC address entries owned by RBridge 101 from the local forwarding table, while keeping entries from RBridge 105. When RBridge 102 receives the second clear command from RBridge 105, RBridge 102 then clears all MAC address entries owned by RBridge 105 from the local forwarding table as well.
Each RBridge removes entries owned by an RBridge from the local forwarding table only when the owner RBridge issues the second clear command. The owner RBridge issues the second clear command after sending out locally learned MAC address information. For example, if RBridge 101 has already learned the MAC addresses of end devices 112 and 114, the second clear command is issued from RBridge 101 after the learned MAC address information is distributed. As a result, other RBridges receive the second clear command after receiving the MAC addresses of end devices 112 and 114. Consequently, when other RBridges clear MAC addresses owned by RBridge 101, the MAC addresses of end devices 112 and 114 are cleared from the local forwarding table without creating any conflict.
During operation, the first clear command reaches RBridge 105 after learning the MAC address of end device 116. RBridge 105 then issues the second clear command. After issuing the second clear command, RBridge 105 learns the MAC address of end device 118 and distributes the learned MAC address to other RBridges. As a result, other RBridges first receive the MAC address of end device 116 and update their respective local forwarding tables. Afterward, other RBridges receive the second clear command and clear the MAC address of end device 116. Finally, other RBridges receive the MAC address of end device 118 and update their respective local forwarding tables. As a result, all RBridges in network 100, including RBridge 105, contain the same forwarding entry for end device 118. Hence, providing ownership association to each MAC address entry in forwarding tables and using a two-tier command for clearing MAC addresses from forwarding tables ensure consistency of distributed learning across the TRILL network.
Note that TRILL is only used as a transport between the switches within network 100. This is because TRILL can readily accommodate native Ethernet frames. Also, the TRILL standards provide a ready-to-use forwarding mechanism that can be used in any routed network with arbitrary topology. Embodiments of the present invention should not be limited to using only TRILL as the transport. Other protocols (such as multi-protocol label switching (MPLS)), either public or proprietary, can also be used for the transport.
FIG. 1B illustrates an exemplary ownership bitmap for a layer-2 forwarding table entry, wherein the forwarding table entry can correspond to an end device associated with a remote RBridge, in accordance with an embodiment of the present invention. In FIG. 1B, ownership bitmap 150 contains 5 bits, each of which represents the ownership of an RBridge. In some embodiments, the most significant bit of the bitmap is assigned to the RBridge with the largest identifier value. Assume, in FIG. 1A, that the identifier to RBridge 101 has the largest value. Consequently, the most significant bit of bitmap 150 in FIG. 1B is associated with RBridge 101. In this example, only the most significant bit of bitmap 150 is set. Hence, bitmap 150 represents an ownership by RBridge 101 and can be used to indicate the ownership of the MAC addresses of end devices 112 and 114 in respective forwarding tables in all RBridges in network 100.
Ownership in Virtual Link Agreation
In a virtual link aggregation, multiple RBridges can learn the MAC address of an end device and may become the owner of all forwarding entries associated with the MAC address. The ownership association and the two-tier clear command can maintain consistency in forwarding tables for such multiple ownership entries as well. FIG. 2A illustrates an exemplary network where a virtual RBridge identifier is assigned to two physical TRILL RBridges which are coupled to end devices via virtually aggregated links, in accordance with an embodiment of the present invention. As illustrated in FIG. 2A, a TRILL network 200 includes RBridges 201, 202, 203, 204, and 205. RBridge 205 is coupled to an end device 232. End devices 222 and 224 are both dual-homed and coupled to RBridges 201 and 202. The goal is to allow a dual-homed end station to use both physical links to two separate TRILL RBridges as a single, logical aggregate link, with the same MAC address. Such a configuration would achieve true redundancy and facilitate fast protection switching.
RBridges 201 and 202 are configured to operate in a special “trunked” mode for end devices 222 and 224. End devices 222 and 224 view RBridges 201 and 202 as a common virtual RBridge 210, with a corresponding virtual RBridge identifier. Dual-homed end devices 222 and 224 are considered to be logically coupled to virtual RBridge 210 via logical links represented by dotted lines. Virtual RBridge 210 is considered to be logically coupled to both RBridges 201 and 202, optionally with zero-cost links (also represented by dotted lines). RBridges which participate in link aggregation and form a virtual RBridge are referred to as “partner RBridges.”
When end device 222 sends a packet to end device 232 via ingress RBridge 201, RBridge 201 learns the MAC address of end device 222 and distributes the learned MAC address to all other RBridges in network 200. All other RBridges update their respective forwarding tables with an entry corresponding to end device 222 and assign RBridge 201 as the owner of the entry. As end device 222 is coupled to RBridge 202, end device 222 may send a packet to end device 232 via RBridge 202 as well. Consequently, RBridge 202 learns the MAC address of end device 222 and distributes the learned MAC address to all other RBridges in network 200. All other RBridges then add RBridge 202 as an owner of the entry associated with end device 222 as well.
FIG. 2B illustrates an exemplary ownership bitmap for a layer-2 forwarding table entry, wherein the forwarding table entry corresponds to an end device associated with a virtual RBridge, in accordance with an embodiment of the present invention. The two most significant bits of ownership bitmap 250 in FIG. 2B are associated with RBridges 201 and 202, respectively. In this example, only the two most significant bits of bitmap 250 are set. Hence, bitmap 250 represents an ownership by RBridges 201 and 202, and can be used to indicate the ownership of the MAC addresses of end devices 222 and 224 in respective forwarding tables in all RBridges in network 200.
In FIG. 2A, during operation, a first command to clear dynamically learned MAC addresses from forwarding tables is issued from RBridge 203. Upon receiving the first clear command, RBridge 201 issues a second clear command to terminate ownership of entries owned by RBridge 201. When other RBridges receive this second command, they remove the ownership associations between RBridge 201 and the MAC addresses of end devices 222 and 224. In some embodiments, the ownership association is removed by clearing the bit corresponding to RBridge 201 in an ownership bitmap. However, as forwarding entries associated with end devices 222 and 224 are also owned by RBridge 202, other RBridges do not remove these entries from local forwarding tables. Upon receiving the first clear command, RBridge 202 also issues the second clear command to terminate ownership of entries owned by RBridge 202. When other RBridges receive this second command from RBridge 202, the ownership associations between RBridge 201 and the MAC addresses of end devices 222 and 224 are terminated. As no other RBridge owns the entries for the MAC addresses of end devices 222 and 224, they are removed from the respective forwarding tables in all RBridges in network 200.
Ownership Association Management
FIG. 3A presents a flowchart illustrating the process of an RBridge updating an ownership bitmap, in accordance with an embodiment of the present invention. Upon learning a MAC address (operation 302), the RBridge adds an entry to the local forwarding table corresponding to the MAC address (operation 304). The RBridge then checks whether the MAC address was learned locally from an edge port (operation 306). If the MAC address is of a local end device and the learn was from an edge port, then the RBridge sets the bit associated with the local RBridge in an ownership bitmap associated with the MAC address entry (operation 312) indicating an ownership association between the RBridge and the entry. The RBridge then distributes the learned MAC address to all other RBridges in the network (operation 314). If the MAC address was not learned from an edge port, then the MAC address is learned from a TRILL packet and the end device associated with the MAC address is local to the ingress RBridge of the TRILL header. Under such a scenario, the RBridge sets the bit associated with the ingress RBridge in an ownership bitmap associated with the MAC address entry (operation 322).
FIG. 3B presents a flowchart illustrating the process of clearing an entry in a forwarding table, wherein the entry can be associated with a virtual RBridge, in accordance with an embodiment of the present invention. An RBridge receives a command to clear a forwarding entry (operation 352). In some embodiments, the command is to clear multiple forwarding entries. The RBridge checks whether the command is an external command (operation 354). In some embodiments, an external command is given via a command line interface associated with the RBridge. If the command is an external command, then the RBridge issues a first clear command to clear the forwarding entry and encapsulates the command message in a TRILL packet (operation 362) and forwards the TRILL packet to all other RBridges in the TRILL network (operation 364). Then the RBridge clears the bit associated with the local RBridge in the ownership bitmap for the entry (operation 366) and sends a second clear command to all other RBridges to clear the bit associated with the local RBridge in the ownership bitmap for the entry (operation 368). If the command is not external (operation 354), then the command is received from a TRILL port and the RBridge checks whether the command is a first clear command (operation 356). If so, then the RBridge clears the bit associated with local RBridge (operation 366) in the ownership bitmap for the entry and sends a second clear command to clear the bit associated with the local RBridge (operation 368). If the command is not a first clear command (operation 356), then the RBridge clears the bit associated with the remote RBridge from which the command was issued in the ownership bitmap for the entry (operation 376).
After sending the second command (operation 368) or after clearing a bit associated with a remote RBridge (operation 376), the RBridge checks whether all bits in the ownership bitmap are cleared (operation 370). If not, then the RBridge waits to receive other second clear commands from remote RBridges to clear the set bits (operation 372). Upon receiving a second clear command from a remote RBridge to clear a set bit (operation 374), the RBridge clears the bit associated with the remote RBridge in the ownership bitmap (operation 376) and again checks whether all bits in the ownership bitmap are cleared (operation 370) until all bits in the ownership bitmap are cleared. When all bits are cleared, the RBridge clears the corresponding forwarding entry (operation 380). In some embodiments, the ownership bitmap can be associated with multiple forwarding entries. Under such a scenario, in operation 380, the RBridge clears all entries associated with the ownership bitmap.
Failure Handling
FIG. 4A illustrates failure scenarios in a TRILL network with distributed forwarding information, in accordance with an embodiment of the present invention. As illustrated in FIG. 4A, a TRILL network 400 includes RBridges 401, 402, 403, 404, and 405. End device 426 is coupled to RBridge 405 and end device 428 is coupled to RBridge 401. End devices 422 and 424 are both multi-homed and coupled to RBridges 401, 402, and 403. End devices 422 and 424 view RBridges 401, 402, and 403 as a common virtual RBridge 430, with a corresponding virtual RBridge identifier. Forwarding tables in all RBridges include entries for MAC addresses of end devices 422, 424, 426, and 428. Entries associated with end devices 422 and 424 are owned by RBridges 401, 402, and 403. Entries associated with end devices 426 and 428 are owned by RBridges 405 and 401, respectively.
Suppose that a failure 442 occurs during operation that disconnects RBridge 405 from network 400. When another RBridge (e.g., RBridge 402) in network 400 becomes aware of the failure, the ownership association for all entries corresponding to RBridge 405 in the forwarding table in RBridge 402 becomes terminated. Consequently, the entries corresponding to RBridge 405 are cleared from the local forwarding table in RBridge 402. In other words, failure 442 causes RBridge 402 to react in the same way as receiving a second clear message issued from RBridge 405, as described in conjunction with FIG. 3B. Similarly, when all other RBridges become aware of failure 442, they clear the entries corresponding to RBridge 405 from respective local forwarding tables.
Suppose that a failure 444 occurs during operation that disconnects RBridge 401 from network 400. Consequently, RBridge 401 cannot participate in forming virtual RBridge 430 and can no longer own forwarding entries associated with end devices 422 and 424. When another RBridge, such as RBridge 404, in network 400 becomes aware of the failure, the ownership association for all entries corresponding to RBridge 401 in the forwarding table in RBridge 404 becomes terminated. Consequently, the forwarding entry associated with end device 428 is cleared from the local forwarding table in RBridge 404. However, as forwarding entries associated with end devices 422 and 424 are owned by RBridges 402 and 403 as well, these entries are not cleared from the local forwarding table at RBridge 404. Failure 444 also causes RBridge 404 to react in the same way as receiving a second clear message issued from RBridge 401, as described in conjunction with FIG. 3B.
FIG. 4B illustrates an exemplary ownership bitmap in a failure scenario for a layer-2 forwarding table entry, wherein the forwarding table entry corresponds to an end device associated with a virtual RBridge, in accordance with an embodiment of the present invention. In this example, ownership bitmap 450 shows the ownership association for forwarding entries associated with end devices 422 and 424 after failure 444 occurs, as described in conjunction with FIG. 4A. Assume the most significant bit of bitmap 450 is associated with RBridge 401. As failure 444 in FIG. 4A terminates the ownership association of RBridge 401, the most significant bit becomes cleared in the forwarding tables in all other RBridges in network 400. As next two bits in bitmap 450 correspond to RBridges 402 and 403, these two bits remain set. Consequently, all forwarding entries associated with bitmap 450 are not removed from forwarding tables.
Aging Out in Virtual Link Agreation
In an RBridge, if there is inactivity from an end device over a certain period of time, the dynamically learned MAC address of the end device ages out and is removed from the forwarding table. However, if such an entry is associated with a virtual link aggregation, the MAC address can be learned on multiple RBridges and the entry should not age out unless it ages out at all RBridges in the link aggregation. FIG. 5A illustrates an exemplary network where a virtual RBridge identifier is assigned to three physical TRILL RBridges which are coupled to end devices via virtually aggregated links, wherein the RBridges share age-out information of end devices, in accordance with an embodiment of the present invention. As illustrated in FIG. 5A, a TRILL network 500 includes RBridges 501, 502, 503, 504, and 505. End devices 522 and 524 are both multi-homed and coupled to RBridges 501, 502, and 503. End devices 522 and 524 view RBridges 501, 502, and 503 as a common virtual RBridge 530, with a corresponding virtual RBridge identifier.
During operation, RBridges 501, 502, and 503 dynamically learn the MAC addresses of end devices 522 and 524. Afterward, end device 522 and receives sends all packets for virtual RBridge 530 via RBridge 503. As a result, the forwarding entry of end device 522 remains inactive at RBridges 501 and 502 over a period of time, and becomes a candidate for aging out. However, as RBridge 503 is still receiving packets for virtual RBridge 530, the forwarding entry of end device 522 should not age out at RBridges 501 and 502. In some embodiments, if RBridge 503 becomes unavailable to end device 522, all packets for virtual RBridge 530 are sent to another partner RBridge (e.g., RBridge 502). As RBridge 502 still contains the forwarding entry for end device 522, RBridge 502 can readily take over. When end device 522 stops sending and receiving packets for virtual RBridge 530, the forwarding entry of end device 522 becomes a candidate for aging out at all partner RBridges. Only then should the forwarding entry for end device 522 be aged out at all partner RBridges.
FIG. 5B illustrates an exemplary virtual link aggregation aging table entry, in accordance with an embodiment of the present invention. In FIG. 5B, virtual link aggregation aging table entry 550 contains three flags corresponding to partner RBridges 501, 502, and 503, respectively. Partner RBridges 501, 502, and 503 have an aging table entry 550 for a respective multi-homed end device, such as end devices 522 and 524, as described in conjunction with FIG. 5A. In aging table entry 550, flags for RBridges 501 and 502 are set (denoted using a check mark), indicating that the forwarding entry is a local candidate for aging out. However, the flag for RBridge 503 is not set (denoted using a cross mark), which indicates that the forwarding entry is not a candidate for aging out. In some embodiments, aging table entry 550 is represented by a bitmap.
Whenever an RBridge makes an update to the local aging table, the RBridge sends the updated table to all other partner RBridges. Upon receiving the table, other partner RBridges accordingly update their respective local aging tables. In some embodiments, one RBridge in the partner RBridges is elected to decide if a forwarding entry should be aged out in all partner RBridges. If all flags in the aging table are set for an entry, the elected RBridge ages out the entry in the local forwarding table, and notifies all partner RBridges. Upon receiving the notification, other partner RBridges age out the entry from their respective local forwarding tables as well.
FIG. 5C illustrates an exemplary layer-2 forwarding entry associated with an aging table, in accordance with an embodiment of the present invention. In FIG. 5C, forwarding table entry 560 contains a MAC address 562, a dynamic flag 564, a learn type 566, and a port 568. MAC address 562 corresponds to the MAC address of the end device with which forwarding table entry 560 is associated. Dynamic flag 564 indicates if the MAC address is dynamically learned. In some embodiments, a set value for dynamic flag 564 indicates a “dynamic” and a clear value indicates a “static” forwarding table entry. Learn type 566 indicates how MAC address 562 is learned. In some embodiments, the values for learn type 566 include “locally learned,” “remotely learned,” and “not learned.” Port 568 identifies the interface from which MAC address 562 is learned.
When a forwarding entry associated with a virtual link aggregation in a partner RBridge remains inactive over a period of time, the entry continues to locally age out. To prevent this continuous aging out, when the entry becomes a local candidate for aging out, dynamic flag 564 is set to static, indicating that the address is not dynamic and should not age out. Furthermore, the RBridge can still receive packets from the end device associated with the entry after the entry becomes a candidate for aging out. To avoid any conflict, learn type 566 is set as “remotely learned” or “not learned” when the entry becomes the candidate. In this way, the RBridge can locally learn the MAC address again.
Aging Out Management
FIG. 6 presents a flowchart illustrating the process of an RBridge aging out a forwarding table entry, in accordance with an embodiment of the present invention. Upon receiving an age-out message for a forwarding entry (operation 602), the RBridge checks the source of the message (operation 620). If it is a local message, then the entry has become a local candidate for aging out. In some embodiments, a local age-out message is generated by a hardware driver of the RBridge. Under such a scenario, the RBridge clears the corresponding dynamic flag (operation 604) and sets the learn type as “not learned” (operation 606). The RBridge then marks the local RBridge as a local candidate for aging out in the local aging table (operation 608) and forwards the updated aging table to all other partner RBridges (operation 610). In some embodiments, marking an RBridge involves setting a bit associated with the RBridge in a bitmap. If the age-out message is remote (operation 620), then the message is from a TRILL port from a partner RBridge. Under such a scenario, the RBridge marks the remote partner RBridge as a candidate for aging out in the local aging table (operation 622). After either forwarding the updated aging table (operation 610) or marking the remote RBridge as a candidate for aging out (operation 622), the RBridge checks whether the local RBridge is elected to decide if the entry is aged out in the link aggregation (operation 624). If so, then the RBridge checks whether all partner RBridges are candidates for aging out for the entry (operation 626). If all partner RBridges are candidates, then the RBridge ages out the forwarding entry from the local forwarding table (operation 632) and instructs all partner RBridges to age out the forwarding entry (operation 634).
While a forwarding entry in an RBridge can be a candidate foraging out, the RBridge may still receive a packet from the end device associated with the entry. Under such a scenario, the RBridge should again locally learn the MAC address of the end device, update the corresponding entry accordingly, and unmark the RBridge in the aging table. FIG. 7 presents a flowchart illustrating the process of an RBridge updating an aging table entry and an associated forwarding table entry, in accordance with an embodiment of the present invention. During operation, the RBridge learns a MAC address from a local port participating in a virtual link aggregation (operation 702).
A learn from a virtual link aggregation can indicate either a new learn or a learn for a forwarding entry which is a candidate for aging out. Hence, the RBridge then checks whether there is a forwarding entry for the MAC address in the local forwarding table (operation 704). If so, then the RBridge sets the dynamic flag on (operation 706), indicating that the forwarding entry for the MAC address can become a candidate for aging out again. The RBridge then sets the learn type as “local learn” (operation 708), unmarks the local RBridge in the local aging table (operation 710), and forwards the updated aging table to all other partner RBridges (operation 712). If there is no entry for the MAC address in the local forwarding table (operation 704), then the learned MAC address is a new learn. Under such a scenario, the RBridge creates a forwarding entry for the MAC address (operation 720) and an aging table entry for the forwarding entry with all RBridges unmarked as candidates for aging out (operation 722). The RBridge then sends the updated aging table to all partner RBridges (operation 724) and sends the learned MAC address to all other RBridges in the TRILL network (operation 728).
Exemplary Switch System
FIG. 8 illustrates an exemplary architecture of a switch with distributed forwarding table update capability, in accordance with an embodiment of the present invention. In this example, an RBridge 800 includes a number of edge ports 802 and TRILL ports 804, a TRILL management module 820, an ownership module 830, an Ethernet frame processor 810, and a storage 850. TRILL management module 820 further includes a TRILL header processing module 822 and a notification module 826.
TRILL ports 804 include inter-switch communication channels for communication with one or more RBridges. These inter-switch communication channels can be implemented via a regular communication port and based on any open or proprietary format. Furthermore, the inter-switch communication between RBridges is not required to be direct port-to-port communication.
During operation, edge ports 802 receive frames from (and transmit frames to) end devices. Ethernet frame processor 810 extracts and processes header information from the received frames. From the extracted header, RBridge 800 learns the MAC addresses of end devices. Ownership module 830 creates an ownership association between the RBridge and the learned MAC addresses. Notification module 826 creates notification messages about the ownership association. TRILL header processing module 822 encapsulates the notification messages in TRILL packets and forwards the notification to all other RBridges.
In some embodiments, RBridge 800 may participate in a virtual link aggregation and form a virtual RBridge, wherein TRILL management module 820 further includes a virtual RBridge configuration module 824, and ownership module 830 further includes an age-out control module 836. TRILL header processing module 822 generates the TRILL header and outer Ethernet header for ingress frames corresponding to the virtual RBridge. Virtual RBridge configuration module 824 manages the communication with RBridges associated with the virtual RBridge and handles various inter-switch communications, such as link and node failure notifications. Virtual RBridge configuration module 824 allows a user to configure and assign the identifier for the virtual RBridges. Furthermore, age-out control module 836 handles aging out of forwarding entries associated with dynamically learned MAC addresses from the virtual link aggregation.
In some embodiments, RBridge 800 is in an Ethernet fabric switch, and may include a virtual switch management module 840 and a logical switch 842. Virtual switch management module 840 maintains a configuration database in storage 850 that maintains the configuration state of every switch within the fabric switch. Virtual switch management module 840 also maintains the state of logical switch 842, which is used to join other fabric switches. In some embodiments, logical switch 842 can be configured to operate in conjunction with Ethernet frame processor 810 as a logical Ethernet switch.
Note that the above-mentioned modules can be implemented in hardware as well as in software. In one embodiment, these modules can be embodied in computer-executable instructions stored in a memory which is coupled to one or more processors in RBridge 800. When executed, these instructions cause the processor(s) to perform the aforementioned functions.
In summary, embodiments of the present invention provide a switch, a method and a system for distributed management of layer-2 address table entries. In one embodiment, the switch includes an ownership management mechanism and a notification mechanism. The ownership management mechanism maintains a local ownership association between the switch and a medium access control (MAC) address learned at the switch, and terminates the local ownership association for the MAC address. The notification mechanism generates a first notification specifying the local ownership association and a second notification specifying the termination of the local ownership association.
The methods and processes described herein can be embodied as code and/or data, which can be stored in a computer-readable non-transitory storage medium. When a computer system reads and executes the code and/or data stored on the computer-readable non-transitory storage medium, the computer system performs the methods and processes embodied as data structures and code and stored within the medium.
The methods and processes described herein can be executed by and/or included in hardware modules or apparatus. These modules or apparatus may include, but are not limited to, an application-specific integrated circuit (ASIC) chip, a field-programmable gate array (FPGA), a dedicated or shared processor that executes a particular software module or a piece of code at a particular time, and/or other programmable-logic devices now known or later developed. When the hardware modules or apparatus are activated, they perform the methods and processes included within them.
The foregoing descriptions of embodiments of the present invention have been presented only for purposes of illustration and description. They are not intended to be exhaustive or to limit this disclosure. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. The scope of the present invention is defined by the appended claims.

## Claims

1. A switch, comprising:
an ownership management module operable to:
maintain a local ownership association between the switch and a media access control (MAC) address learned at the switch;
terminate the local ownership association for the MAC address; and
terminate an ownership association for a MAC address learned at a remote switch, in response to identifying a corresponding notification from the remote switch; and

a notification module operable to:
generate a first notification indicating the local ownership association; and
generate a second notification indicating the termination of the local ownership association.

2. The switch of claim 1, wherein the second notification includes a first tier message indicating initiation of the termination and a second tier message indicating the termination of specific ownership association with the switch.

3. The switch of claim 1, wherein the switch is a Transparent Interconnection of Lots of Links (TRILL) routing bridge (RBridge).

4. The switch of claim 1, wherein the ownership association is indicated by a bit in a bitmap, and wherein the bit is associated with the switch.

5. The switch of claim 1, wherein the switch is part of a link aggregation;
wherein the switch further comprises an age-out control module operable to create an age-out indication for the switch and a MAC address learned at the switch, in response to inactivity from the MAC address over a period of time; and
wherein the notification module is further operable to generate a third notification associated with the age-out indication.

6. The switch of claim 1, wherein the ownership module is further operable to terminate an ownership association for a MAC address learned at a remote switch in response to detecting a failure to the remote switch.

7. A switch, comprising:
an ownership management module operable to:
maintain a local ownership association between the switch and a medium access control (MAC) address learned at the switch; and
terminate the local ownership association for the MAC address;

a notification mechanism module operable to:
generate a first notification indicating the local ownership association; and
generate a second notification indicating the termination of the local ownership association; and

an age-out control module operable to:
create an age-out indication for the switch and a MAC address learned at the switch, in response to inactivity from the MAC address over a period of time; and
suppress local age-out notifications for the MAC address in response to creating the age-out indication.

8. The switch of claim 7, wherein the second notification includes a first tier message indicating initiation of the termination and a second tier message indicating the termination of specific ownership association with the switch.

9. A method, comprising:
maintaining a local ownership association between a switch and a media access control (MAC) address learned at the switch;
generating a first notification indicating the local ownership association;
terminating the local ownership association for the MAC address;
generating a second notification indicating the termination of the local ownership association; and
terminating an ownership association for a MAC address learned at a remote switch, in response to receiving a notification from the remote switch.

10. The method of claim 9, wherein the second notification includes a first tier message indicating initiation of the termination and a second tier message indicating the termination of specific ownership association with the switch.

11. The method of claim 8, wherein the switch is a Transparent Interconnection of Lots of Links (TRILL) routing bridge (RBridge).

12. The method of claim 9, wherein the ownership association is indicated by a bit in a bitmap, and wherein the bit is associated with the switch.

13. The method of claim 9, wherein the switch is part of a link aggregation; and
further comprising:
creating an age-out indication for the switch and a MAC address learned at the switch, in response to inactivity from the MAC address over a period of time; and
generating a third notification associated with the age-out indication.

14. The method of claim 9, further comprising terminating an ownership association for a MAC address learned at a remote switch in response to detecting a failure to the remote switch.

15. A method comprising:
maintaining a local ownership association between a switch and a media access control (MAC) address learned at the switch;
generating a first notification indicating the local ownership association;
terminating the local ownership association for the MAC address;
generating a second notification indicating the termination of the local ownership association;
creating an age-out indication for the switch and a MAC address learned at the switch, in response to inactivity from the MAC address over a period of time; and
suppressing local age-out notifications for the MAC address in response to creating the age-out indication.

16. The method of claim 15, wherein the second notification includes a first tier message indicating initiation of the termination and a second tier message indicating the termination of specific ownership association with the switch.

17. A computing system, comprising:
a processor; and
a non-transitory computer-readable storage medium storing instructions which when executed by the processor causes the processor to perform a method, the method comprising:
maintaining a local ownership association between the computing system and a media access control (MAC) address learned at the computing system;
generating a first notification indicating the local ownership association;
terminating the local ownership association for the MAC address;
generating a second notification indicating the termination of the local ownership association; and
terminating an ownership association for a MAC address learned at a remote computing system, in response to identifying a corresponding notification from the remote computing system.

18. The computing system of claim 17, wherein the second notification includes a first tier message indicating initiation of the termination and a second tier message indicating the termination of specific ownership association with the computing system.

19. The computing system of claim 17, wherein the computing system and the second computing system are Transparent Interconnection of Lots of Links (TRILL) routing bridges (RBridges).

20. The computing system of claim 17, wherein the ownership association is indicated by a bit in a bitmap, and wherein the bit is associated with the computing system.

21. The system of claim 17, wherein the computing system is part of a in aggregation;
wherein the method further comprises:
creating age-out indication for the computing system and a MAC address learned at the computing system, in response to inactivity from the MAC address over a period of time; and generating a third notification associated with the age-out indication.

22. The computing system of claim 17, wherein the method further comprises terminating an ownership association for a MAC address learned at a remote computing device in response to detecting a failure to the remote computing device.

23. A computing system, comprising:
a processor; and
a non-transitory computer-readable storage medium storing instructions which when executed by the processor causes the processor to perform a method, the method comprising:
maintaining a local ownership association between the computing system and a media access control (MAC) address learned at the computing system;
generating a first notification indicating the local ownership association;
terminating the local ownership association for the MAC address;
generating a second notification indicating the termination of the local ownership association;
creating an age-out indication for the computing system and a MAC address learned at the computing system, in response to inactivity from the MAC address over a period of time; and
suppressing local age-out notifications for the MAC address in response to creating the age-out indication.

24. The computing system of claim 23, wherein the second notification includes a first tier message indicating initiation of the termination and a second tier message indicating the termination of specific ownership association with the computing system.