IP Library Granted Patent US 9,806,949
Granted Patent B2
US 9,806,949 · App. 14/473,941 · Granted Oct 31, 2017

Transparent interconnection of Ethernet fabric switches

Inventors: Venkata R. K. Addanki (Cupertino, CA); Mythilikanth Raman (San Jose, CA); Shunjia Yu (San Jose, CA)
Assignee: BROCADE COMMUNICATIONS SYSTEMS, INC.
H04L41/0886H04L41/16H04L49/15H04L49/70H04L45/245
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,806,949
App. No.
14/473,941
Granted
Oct 31, 2017
Kind
B2
Abstract

One embodiment of the present invention provides a switch. The switch includes a fabric switch module and a border module. The fabric switch module maintains a membership in a first fabric switch. The fabric switch includes a plurality of switches and operates as a single logical switch. The border module determines that the egress switch identifier in a first encapsulation header of a first packet is associated with a switch outside of the fabric switch. The first packet is forwardable in the first fabric switch based on the first encapsulation header. In response to the determination, the border module changes the ingress switch identifier in the first encapsulation header of the first packet to a first virtual switch identifier associated with a first virtual switch. This first virtual switch externally represents the first fabric switch.

Claims (70)

1. A switch, comprising:

control circuitry configured to:

maintain a membership in a first network of interconnected switches, wherein the first network of interconnected switches is identified by a fabric identifier; and

determine that a virtual switch representing a second network of interconnected switches is a next-hop switch reachable via a local port;

border circuitry configured to:

determine that an egress switch identifier in a first encapsulation header of a first packet is assigned to the virtual switch, wherein the first packet is forwardable in the first network of interconnected switches based on the first encapsulation header; and

update the first packet by replacing an ingress switch identifier in the first encapsulation header with a first virtual switch identifier representing the first network of interconnected switches, wherein the egress switch identifier is a second virtual switch identifier assigned to the virtual switch, and wherein the first and second virtual switch identifiers are distinct from a switch identifier identifying a physical switch in a network of interconnected switches; and

forwarding circuitry configured to determine the local port as an egress port for the updated first packet based on the egress switch identifier in the first encapsulation header.

2. The switch of claim 1 , wherein the second virtual switch identifier assigned to the virtual switch is a switch identifier in a routed network.

3. The switch of claim 2 , wherein routing information of a second switch in the first network of interconnected switches indicates that the virtual switch is reachable via the switch.

4. The switch of claim 2 , wherein the border circuitry is further configured to:

determine that an egress switch identifier in a second encapsulation header of a second packet is the first virtual switch identifier; and

in response to the determination, replace the egress switch identifier in the second encapsulation header of the second packet with a switch identifier which identifies a member switch in the first network of interconnected switches.

5. The switch of claim 4 , wherein an ingress switch identifier in the second encapsulation header of the second packet is the second virtual switch identifier.

6. The switch of claim 2 , wherein the forwarding circuitry is further configured to determine that an egress switch identifier in a third encapsulation header of a third packet is a switch identifier of the switch, wherein an ingress switch identifier in the second encapsulation header of the third packet is the second virtual switch identifier; and

wherein the switch further comprises learning circuitry configured to:

learn a media access control (MAC) address from an inner packet of the third packet; and

store the learned MAC address in association with the second virtual switch identifier in a storage device.

7. The switch of claim 1 , wherein the forwarding circuitry is further configured to determine the local port an egress port by looking up the next-hop switch for the updated first packet based on the egress switch identifier in the first encapsulation header.

8. The switch of claim 1 , wherein the first encapsulation header is one or more of:

a Transparent Interconnection of Lots of Links (TRILL) header, wherein the ingress and egress switch identifiers of the first encapsulation header are TRILL routing bridge (RBridge) identifiers; and

a Internet Protocol (IP) header, wherein the ingress and egress switch identifiers of the first encapsulation header are IP addresses.

9. A method, comprising:

maintaining a membership of a switch in a first network of interconnected switches, wherein the first network of interconnected switches is identified by a fabric identifier;

determining that a virtual switch representing a second network of interconnected switches is a next-hop switch reachable via a local port of the switch;

determining that an egress switch identifier in a first encapsulation header of a first packet is assigned to the virtual switch, wherein the first packet is forwardable in the first network of interconnected switches based on the first encapsulation header;

updating the first packet by replacing an ingress switch identifier in the first encapsulation header with a first virtual switch identifier representing the first network of interconnected switches, wherein the egress switch identifier is a second virtual switch identifier assigned to the virtual switch, and wherein the first and second virtual switch identifiers are distinct from a switch identifier identifying a physical switch in a network of interconnected switches; and

determining the local port as an egress port for the updated first packet based on the egress switch identifier in the first encapsulation header.

10. The method of claim 9 , wherein the second virtual switch identifier assigned to the virtual switch is a switch identifier in a routed network.

11. The method of claim 10 , wherein routing information of a second switch in the first network of interconnected switches indicates that the virtual switch is reachable via the switch.

12. The method of claim 10 , further comprising:

determining that an egress switch identifier in a second encapsulation header of a second packet is the first virtual switch identifier; and

in response to the determination, replacing the egress switch identifier in the second encapsulation header of the second packet with a switch identifier which identifies a member switch in the first network of interconnected switches.

13. The method of claim 12 , wherein an ingress switch identifier in the second encapsulation header of the second packet is the second virtual switch identifier.

14. The method of claim 10 , further comprising:

determining that an egress switch identifier in a third encapsulation header of a third packet is a switch identifier of the switch, wherein an ingress switch identifier in the second encapsulation header of the third packet is the second virtual switch identifier;

learning a media access control (MAC) address from an inner packet of the third packet; and

storing the learned MAC address in association with the second virtual switch identifier in a storage device.

15. The method of claim 9 , wherein determining the local port an egress port includes looking up the next-hop switch for the updated first packet based on the egress switch identifier in the first encapsulation header.

16. The method of claim 9 , wherein the first encapsulation header is one or more of:

a Transparent Interconnection of Lots of Links (TRILL) header, wherein the ingress and egress switch identifiers of the first encapsulation header are TRILL routing bridge (RBridge) identifiers; and

a Internet Protocol (IP) header, wherein the ingress and egress switch identifiers of the first encapsulation header are IP addresses.

17. A computer system; comprising:

a processor;

a storage device coupled to the processor and storing instructions that when executed by the processor cause the processor to perform a method, the method comprising:

maintaining a membership of a switch in a first network of interconnected switches, wherein the first network of interconnected switches is identified by a fabric identifier;

determining that a virtual switch representing a second network of interconnected switches is a next-hop switch reachable via a local port of the switch;

determining that an egress switch identifier in a first encapsulation header of a first packet is assigned to the virtual switch, wherein the first packet is forwardable in the first network of interconnected switches based on the first encapsulation header; and

updating the first packet by replacing an ingress switch identifier in the first encapsulation header with a first virtual switch identifier representing the first network of interconnected switches, wherein the egress switch identifier is a second virtual switch identifier assigned to the virtual switch, and wherein the first and second virtual switch identifiers are distinct from a switch identifier identifying a physical switch in a network of interconnected switches; and

determining the local port as an egress port for the updated first packet based on the egress switch identifier in the first encapsulation header.

18. The computer system of claim 17 , wherein the second virtual switch identifier assigned to the virtual switch is a switch identifier in a routed network.

19. The computer system of claim 18 , wherein routing information of a second switch in the first network of interconnected switches indicates that the virtual switch is reachable via the switch.

20. The computer system of claim 18 , wherein the method further comprises:

determining that an egress switch identifier in a second encapsulation header of a second packet is the first virtual switch identifier; and

in response to the determination, replacing the egress switch identifier in the second encapsulation header of the second packet with a switch identifier which identifies a member switch in the first network of interconnected switches.

21. The computer system of claim 20 , wherein an ingress switch identifier in the second encapsulation header of the second packet is the second virtual switch identifier.

22. The computer system of claim 18 , wherein the method further comprises:

determining that an egress switch identifier in a third encapsulation header of a third packet is a switch identifier of the switch, wherein an ingress switch identifier in the second encapsulation header of the third packet is the second virtual switch identifier;

learning a media access control (MAC) address from an inner packet of the third packet; and

storing the learned MAC address in association with the second virtual switch identifier in a storage device.

23. The computer system of claim 17 , wherein the method further comprises determining the local port an egress port includes looking up the next-hop switch for the updated first packet based on the egress switch identifier in the first encapsulation header.

24. The computer system of claim 17 , wherein the first encapsulation header is one or more of:

a Transparent Interconnection of Lots of Links (TRILL) header, wherein the ingress and egress switch identifiers of the first encapsulation header are TRILL routing bridge (RBridge) identifiers; and

a Internet Protocol (IP) header, wherein the ingress and egress switch identifiers of the first encapsulation header are IP addresses.

25. A non-transitory computer-readable storage medium storing instructions which when executed by a computer cause the computer to perform a method, the method comprising:

maintaining a membership of a switch in a first network of interconnected switches, wherein the first network of interconnected switches is identified by a fabric identifier;

determining that a virtual switch representing a second network of interconnected switches is a next-hop switch reachable via a local port of the switch;

determining that an egress switch identifier in a first encapsulation header of a first packet is assigned to the virtual switch, wherein the first packet is forwardable in the first network of interconnected switches based on the first encapsulation header;

updating the first packet by replacing an ingress switch identifier in the first encapsulation header with a first virtual switch identifier representing the first network of interconnected switches, wherein the egress switch identifier is a second virtual switch identifier assigned to the virtual switch, and wherein the first and second virtual switch identifiers are distinct from a switch identifier identifying a physical switch in a network of interconnected switches; and

determining the local port as an egress port for the updated first packet based on the egress switch identifier in the first encapsulation header.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2018
From: BROCADE COMMUNICATIONS SYSTEMS LLC
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047270/0247 →
CHANGE OF NAME Recorded Dec 13, 2017
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: BROCADE COMMUNICATIONS SYSTEMS LLC
Reel/Frame 044891/0536 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2014
From: ADDANKI, VENKATA R. K.; RAMAN, MYTHILIKANTH; YU, SHUNJIA
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 034163/0498 →
Continuity (2)
Provisional Application 61874919 · Sep 6, 2013
Related Publication 20150071122A1 · Mar 12, 2015