Systems and methods for disseminating addresses in distributed switching environments
First Claim
1. A switch stack for forwarding network traffic, comprising:
- a first switch having first logic and a processor, the first logic having a plurality of ports and configured to forward data packets based on a first forwarding table of the first switch, wherein the first logic is configured to learn a source address of a data packet received from a network via one of the ports on ingress to the stack, wherein the first logic is configured to learn the source address by storing the source address in the first forwarding table and correlating, in the first forwarding table, the source address with a port identifier that identifies the one port, wherein the processor is configured to form and transmit a synchronization message having the source address in response to the data packet received from the network; and
a second switch having second logic implemented in hardware, the second logic having a plurality of ports and configured to forward data packets based on a second forwarding table of the second switch,wherein the processor is configured to insert the port identifier into at least one field of the synchronization message such that the second logic is spoofed into determining that the synchronization message has been received by the one port of the first switch thereby causing the second logic to perform a hardware learn of the source address in response to the synchronization message, and wherein the second logic is configured to perform the hardware learn by storing the source address in the second forwarding table and correlating the source address with the port identifier in the second forwarding table.
2 Assignments
0 Petitions
Accused Products
Abstract
In a distributed switching environment, a plurality of switches are clustered together to form a stack, and it is generally desirable for forwarding tables, such as MAC tables, to be synchronized so that their mappings are consistent. When a switch receives a packet having a source address (e.g., MAC address) that is unknown, the switch is configured to disseminate the source address to the other switches of the stack. Rather than using software protocols to disseminate the source address, the switch instead transmits a multicast packet that (1) includes the unknown source address and (2) spoofs the other switches into believing that the packet was received on the same port from which the unknown source address was received on ingress to the stack. Thus, the other switches learn the unknown source address in hardware without having to rely on software for updating their forwarding tables.
-
Citations
21 Claims
-
1. A switch stack for forwarding network traffic, comprising:
-
a first switch having first logic and a processor, the first logic having a plurality of ports and configured to forward data packets based on a first forwarding table of the first switch, wherein the first logic is configured to learn a source address of a data packet received from a network via one of the ports on ingress to the stack, wherein the first logic is configured to learn the source address by storing the source address in the first forwarding table and correlating, in the first forwarding table, the source address with a port identifier that identifies the one port, wherein the processor is configured to form and transmit a synchronization message having the source address in response to the data packet received from the network; and a second switch having second logic implemented in hardware, the second logic having a plurality of ports and configured to forward data packets based on a second forwarding table of the second switch, wherein the processor is configured to insert the port identifier into at least one field of the synchronization message such that the second logic is spoofed into determining that the synchronization message has been received by the one port of the first switch thereby causing the second logic to perform a hardware learn of the source address in response to the synchronization message, and wherein the second logic is configured to perform the hardware learn by storing the source address in the second forwarding table and correlating the source address with the port identifier in the second forwarding table. - View Dependent Claims (2, 3, 4, 21)
-
-
5. A switch stack for forwarding network traffic, comprising:
-
a first switch having first logic and a processor, the first logic having a plurality of ports and configured to forward data packets based on a first forwarding table of the first switch, wherein the first logic is configured to learn a source address of a data packet received from a network via one of the ports on ingress to the stack, wherein the first logic is configured to learn the source address by storing the source address in the first forwarding table and correlating the source address with a port identifier that identifies the one port, wherein the processor is configured to form and transmit a synchronization message having the source address in response to the data packet received from the network; and a second switch having second logic implemented in hardware, the second logic having a plurality of ports and configured to forward data packets based on a second forwarding table of the second switch, wherein the processor is configured to insert the port identifier into at least one field of the synchronization message such that the second logic is spoofed into determining that the synchronization message has been received by the one port of the first switch thereby causing the second logic to learn the source address in response to the synchronization message, wherein the second logic is configured to learn the source address by storing the source address in the second forwarding table and correlating the source address with the port identifier, wherein the processor is configured to form a purge message having the source address in response to purging of the source address from the first forwarding table, wherein the processor is configured to transmit the purge message to the second switch, wherein the processor is configured to control the purge message in order to spoof the second logic into determining that the purge message is related to a station move thereby causing the second logic to notify a processor of the second switch regarding the purge message, and wherein the processor of the second switch is configured to initiate a purge of the source address from the second forwarding table in response to the purge message.
-
-
6. A communication system, comprising:
-
a network; and a switch stack coupled to the network, the stack having a first switch and a second switch, wherein the first switch is configured to receive a data packet via a port of the first switch, the data packet having a source address, wherein the first switch is configured to learn the source address by adding the source address to a forwarding table of the first switch and correlating, in the forwarding table of the first switch, the source address with a port identifier identifying the port of the first switch, wherein the first switch is responsive to the data packet for transmitting a synchronization message for synchronizing forwarding tables of the stack based on the source address, wherein the first switch is configured to insert the source address into the synchronization message and to control metadata of the synchronization message in order to spoof the second switch into determining that the synchronization message has been received via the port of the first switch, and wherein the second switch is configured to perform a hardware learn in response to the synchronization message by adding the source address to a forwarding table of the second switch and correlating the source address with the port identifier in the forwarding table of the second switch. - View Dependent Claims (7, 8, 9, 10, 12, 13)
-
-
11. A communication system, comprising:
-
a network; and a switch stack coupled to the network, the stack having a first switch and a second switch, wherein the first switch is configured to receive a data packet via a port of the first switch, the data packet having a source address, wherein the first switch is configured to learn the source address by adding the source address to a forwarding table of the first switch, wherein the first switch is responsive to the data packet for transmitting a synchronization message for synchronizing forwarding tables of the stack based on the source address, wherein the first switch is configured to insert the source address into the synchronization message and to control metadata of the synchronization message in order to spoof the second switch into determining that the synchronization message has been received via the port of the first switch, and wherein the second switch is configured to perform a learn of the source address in hardware in response to the synchronization message by adding the source address to a forwarding table of the second switch, wherein the first switch is responsive to purging of the source address from the forwarding table of the first switch for transmitting a purge message, wherein the first switch is configured to insert the source address into the purge message and to control metadata of the purge message in order to spoof the second switch into determining that the purge message is related to a station move, and wherein the second switch is configured to purge the source address from the forwarding table of the second switch in response to the purge message.
-
-
14. A communication method, comprising:
-
receiving a data packet from a network via a port of a first switch within a switch stack, wherein the data packet has a source address; determining, in response to the data packet, whether a forwarding table of the first switch has a mapping corresponding to the source address; learning the source address in the first switch based on the determining, the learning comprising adding the source address to the forwarding table of the first switch and correlating, in the forwarding table of the first switch, the source address with a port identifier identifying the port of the first switch; transmitting a synchronization message from the first switch based on the determining, wherein the synchronization message has the source address; receiving the synchronization message at a second switch of the stack; controlling metadata of the synchronization message at the first switch to indicate to the second switch that the synchronization message has been received by the port; and performing a hardware learn of the source address at the second switch in response to the synchronization message and based on the metadata, wherein the performing the hardware learn comprises adding the source address to a forwarding table of the second switch and correlating the source address with the port identifier in the forwarding table of the second switch. - View Dependent Claims (15, 16, 17, 19, 20)
-
-
18. A communication method, comprising:
-
receiving a data packet from a network via a port of a first switch within a switch stack, wherein the data packet has a source address; determining, in response to the data packet, whether a forwarding table of the first switch has a mapping corresponding to the source address; learning the source address in the first switch based on the determining, the learning comprising adding the source address to the forwarding table of the first switch; transmitting a synchronization message from the first switch based on the determining, wherein the synchronization message has the source address; receiving the synchronization message at a second switch of the stack; controlling metadata of the synchronization message at the first switch to indicate to the second switch that the synchronization message has been received by the port; performing a learn of the source address in hardware at the second switch in response to the synchronization message and based on the metadata, wherein the performing the learn comprises adding the source address to a forwarding table of the second switch purging the source address from the forwarding table of the first switch; transmitting a purge message from the first switch in response to the purging; receiving the purge message at the second switch; controlling metadata of the purge message at the first switch to indicate to the second switch that the purge message is related to a station move; and purging the source address from the forwarding table of the second switch in response to the purge message.
-
Specification