IP Library Granted Patent US 10,063,473
Granted Patent B2
US 10,063,473 · App. 14/680,915 · Granted Aug 28, 2018

Method and system for facilitating switch virtualization in a network of interconnected switches

Inventor: Glenn C. Wenig (Pleasanton, CA)
Assignee: BROCADE COMMUNICATIONS SYSTEMS LLC
H04L45/745H04L49/3009H04L49/70H04L69/22
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 10,063,473
App. No.
14/680,915
Granted
Aug 28, 2018
Kind
B2
Abstract

One embodiment of the present invention provides a computing system. The computing system includes a processor and a memory storing instructions that are executed by the processor. The computing system stores in a first table a first mapping between a first switch identifier and a next-hop switch identifier for the first switch identifier, and stores in a second table a second mapping between the first switch identifier and a first media access control (MAC) address of a remote device. The computing system encapsulates a first packet, which has first MAC address as a destination address, in a first encapsulation header with the first switch identifier as an egress switch identifier of the first encapsulation header. This encapsulated packet is forwarded in a network of interconnected switches based on the first encapsulation header.

Claims (44)

1. A method, comprising:

storing in a first data structure a first mapping between a first switch identifier and a second switch identifier, wherein the first switch identifier is allocated to a virtual switch in a hypervisor running a virtual machine, and wherein the second switch identifier indicates a next-hop switch with respect to the virtual switch;

storing in a second data structure a second mapping between the first switch identifier and a first media access control (MAC) address of the virtual machine running on the hypervisor;

identifying the first MAC address as a destination address of a first packet;

encapsulating the first packet with a first encapsulation header, which includes the first switch identifier as an egress switch identifier based on the second mapping; and

determining, based on the first mapping, an egress port corresponding to the second switch identifier for the encapsulated packet.

2. The method of claim 1 , wherein the second data structure is stored in a storage device of a switch of in a network of interconnected switches, wherein the virtual switch is reachable via an edge port of the switch, and wherein the network of interconnected switches is identified by a fabric identifier associated with a respective member of the network of interconnected switches.

3. The method of claim 1 , further comprising storing in the second data structure a third mapping between a third switch identifier of a physical switch and a MAC address learned at the physical switch.

4. The method of claim 3 , further comprising:

identifying the third switch identifier as an egress identifier in an encapsulation header encapsulating a second packet; and

determining, for the second packet, an egress port associated with the MAC address based on the third mapping.

5. The method of claim 1 , further comprising adding the second mapping to the second data structure in response to identifying the second mapping in a payload of a notification message from the virtual switch.

6. The method of claim 1 , further comprising determining whether a switch is capable of processing the first encapsulation header.

7. The method of claim 1 , wherein the virtual switch is associated with a fabric identifier identifying a network of interconnected switches, wherein the fabric identifier being associated with the virtual switch indicates that the virtual switch is a member switch of the network of interconnected switches.

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

storing in a first data structure a first mapping between a first switch identifier and a second switch identifier, wherein the first switch identifier is allocated to a virtual switch in a hypervisor running a virtual machine, and wherein the second switch identifier indicates a next-hop switch with respect to the virtual switch;

storing in a second data structure a second mapping between the first switch identifier and a first media access control (MAC) address of the virtual machine running on the hypervisor;

identifying the first MAC address as a destination address of a first packet;

encapsulating the first packet with a first encapsulation header, which includes the first switch identifier as an egress switch identifier based on the second mapping; and

determining, based on the first mapping, an egress port corresponding to the second switch identifier for the encapsulated packet.

9. The non-transitory computer-readable storage medium of claim 8 , wherein the second data structure is stored in a storage device of a switch in a network of interconnected switches, wherein the virtual switch is reachable via an edge port of the switch, and wherein the network of interconnected switches is identified by a fabric identifier associated with a respective member of the network of interconnected switches.

10. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises storing in the second data structure a third mapping between a third switch identifier of a physical switch and a MAC address learned at the physical switch.

11. The non-transitory computer-readable storage medium of claim 10 , wherein the method further comprises

identifying the third switch identifier as an egress identifier in an encapsulation header encapsulating a second packet; and

determining, for the second packet, an egress port associated with the MAC address based on the third mapping.

12. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises adding the second mapping to the second data structure in response to identifying the second mapping in a payload of a notification message from the virtual switch.

13. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises determining whether a switch is capable of processing the first encapsulation header.

14. The non-transitory computer-readable storage medium of claim 8 , wherein the virtual switch is associated with a fabric identifier identifying a network of interconnected switches, wherein the fabric identifier being associated with the virtual switch indicates that the virtual switch is a member switch of a network of interconnected switches.

15. 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:

storing in a first data structure a first mapping between a first switch identifier and a second switch identifier, wherein the first switch identifier is allocated to a virtual switch in a hypervisor running a virtual machine, and wherein the second switch identifier indicates a next-hop switch with respect to the virtual switch;

storing in a second data structure a second mapping between the first switch identifier and a first media access control (MAC) address of the virtual machine running on the hypervisor; and

identifying the first MAC address as a destination address of a first packet;

encapsulating the first packet with a first encapsulation header, which includes the first switch identifier as an egress switch identifier based on the second mapping; and

determining, based on the first mapping, an egress port corresponding to the second switch identifier for the encapsulated packet.

16. The computing system of claim 15 , wherein the second data structure is stored in a storage device of a switch in a network of interconnected switches, wherein the virtual switch is reachable via an edge port of the switch, and wherein the network of interconnected switches is identified by a fabric identifier associated with a respective member of the network of interconnected switches.

17. The computing system of claim 15 , wherein the method further comprises storing in the second data structure a third mapping between a third switch identifier of a physical switch and a MAC address learned at the physical switch.

18. The computing system of claim 17 , wherein the method further comprises

identifying the third switch identifier as an egress identifier in an encapsulation header encapsulating a second packet; and

determining, for the second packet, an egress port associated with the MAC address based on the third mapping.

19. The computing system of claim 15 , wherein the method further comprises adding the second mapping into the second data structure in response to identifying the second mapping in a payload of a notification message from the virtual switch.

20. The computing system of claim 15 , wherein the method further comprises determining whether a switch is capable of processing the first encapsulation header.

21. The computing system of claim 15 , wherein the virtual switch is associated with a fabric identifier identifying a the network of interconnected switches, wherein the fabric identifier being associated with the virtual switch indicates that the virtual switch is a member switch of a network of interconnected switches.

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 Apr 14, 2015
From: WENIG, GLENN C.
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 035407/0471 →
Continuity (2)
Provisional Application 61986798 · Apr 30, 2014
Related Publication 20150319088A1 · Nov 5, 2015
Cited By (3)
US 12,210,890 US 12,244,477 US 12,372,576