IP Library Granted Patent US 11,876,643
Granted Patent B2
US 11,876,643 · App. 16/519,931 · Granted Jan 16, 2024

Allocation and management of tunnel endpoints in software defined networks

Inventors: Mansi Babbar (Fremont, CA); Subin Cyriac Mathew (San Jose, CA); Chidambareswaran Raman (Sunnyvale, CA); Ankit Parmar (Santa Clara, CA)
Assignee: VMware LLC
H04L12/4633G06F9/45558H04L12/4641H04L47/805H04L47/808G06F2009/45587G06F2009/45595
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 11,876,643
App. No.
16/519,931
Granted
Jan 16, 2024
Kind
B2
Abstract

Described herein are systems and methods for allocating to tunnel endpoints to virtual machines on a host. In one example, a host identifies when a new virtual machine is coupled to a virtual switch and determines a tenant associated with the new virtual machine. The host further determines whether a tunnel endpoint is allocated to the tenant and, when a tunnel endpoint has not been allocated, allocates a new tunnel endpoint to the tenant and maps the new virtual machine to the new tunnel endpoint.

Claims (76)

1. A method comprising:

identifying a connection of a virtual machine to a port of a virtual switch on a host;

identifying a tenant of a plurality of tenants associated with the virtual machine;

determining that a tunnel endpoint is not allocated to the tenant on the host; and

in response to determining that a tunnel endpoint is not allocated to the tenant:

initiating a tunnel endpoint on the host for the tenant; and

directing traffic for the virtual machine to the initiated tunnel endpoint.

2. The method of claim 1 further comprising:

identifying a second connection of a second virtual machine to a second port of the virtual switch on the host;

identifying a second tenant of the plurality of tenants associated with the second virtual machine;

determining that a second tunnel endpoint is allocated to the second tenant on the host; and

in response to determining that a second tunnel endpoint is allocated to the tenant, directing traffic for the second virtual machine to the second tunnel endpoint.

3. The method of claim 1 , wherein the tunnel endpoint is associated with a tenant identifier.

4. The method of claim 1 , wherein the tunnel endpoint is associated with a tenant identifier, and wherein the tenant identifier comprises at least a source encapsulation internet protocol (IP) address and a virtual local area network (VLAN) tag.

5. The method of claim 1 , wherein the tunnel endpoint is associated with a tenant identifier, and wherein the method further comprises:

after directing traffic for the virtual machine to the tunnel endpoint, obtaining a packet from the virtual machine;

generating a second packet that encapsulates the first packet, wherein the second packet comprises the tenant identifier.

6. The method of claim 5 further comprising:

determining a quality of service associated with the second packet; and

assigning the second packet to an egress queue based on the quality of service.

7. The method of claim 1 further comprising:

identifying a second connection of a second virtual machine to a second port of the virtual switch on the host;

identifying a second tenant of the plurality of tenants associated with the second virtual machine;

determining that a second tunnel endpoint is not allocated to the second tenant on the host; and

in response to determining that a second tunnel endpoint is not allocated to the tenant:

initiating a second tunnel endpoint on the host for the second tenant; and

directing traffic for the second virtual machine to the second initiated tunnel endpoint.

8. The method of claim 1 , wherein the second packet comprises a Virtual Extensible Local Area Network (VXLAN) packet or a Generic Network Virtualization Encapsulation (GENEVE) packet.

9. A computing apparatus comprising:

one or more non-transitory computer readable storage media;

a processing system operatively coupled to the one or more non-transitory computer readable storage media; and

program instructions stored on the one or more non-transitory computer readable storage media that, when executed by the processing system, direct the processing system to:

identify a connection of a virtual machine to a port of a virtual switch on a host;

identify a tenant of a plurality of tenants associated with the virtual machine;

determine that a tunnel endpoint is not allocated to the tenant on the host; and

in response to determining that a tunnel endpoint is not allocated to the tenant:

initiate a tunnel endpoint on the host for the tenant; and

direct traffic for the virtual machine to the initiated tunnel endpoint.

10. The computing apparatus of claim 9 , wherein the program instructions further direct the processing system to:

identify a second connection of a second virtual machine to a second port of the virtual switch on the host;

identify a second tenant of the plurality of tenants associated with the second virtual machine;

determine that a second tunnel endpoint is allocated to the second tenant on the host; and

in response to determining that a second tunnel endpoint is allocated to the tenant, direct traffic for the second virtual machine to the second tunnel endpoint.

11. The computing apparatus of claim 9 , wherein the tunnel endpoint is associated with a tenant identifier.

12. The computing apparatus of claim 9 , wherein the tunnel endpoint is associated with a tenant identifier, and wherein the tenant identifier comprises at least a source encapsulation internet protocol (IP) address and a virtual local area network (VLAN) tag.

13. The computing apparatus of claim 9 , wherein the tunnel endpoint is associated with a tenant identifier, and wherein the program instructions further direct the processing system to:

after directing traffic for the virtual machine to the tunnel endpoint, obtain a packet from the virtual machine;

generate a second packet that encapsulates the first packet, wherein the second packet comprises the tenant identifier.

14. The computing apparatus of claim 13 , wherein the program instructions further direct the processing system to:

determine a quality of service associated with the second packet; and

assign the second packet to an egress queue based on the quality of service.

15. The computing apparatus of claim 9 , wherein the program instructions further direct the processing system to:

identify a second connection of a second virtual machine to a second port of the virtual switch on the host;

identify a second tenant of the plurality of tenants associated with the second virtual machine;

determine that a second tunnel endpoint is not allocated to the second tenant on the host; and

in response to determining that a second tunnel endpoint is not allocated to the tenant:

initiate a second tunnel endpoint on the host for the second tenant; and

direct traffic for the second virtual machine to the second initiated tunnel endpoint.

16. The computing apparatus of claim 9 , wherein the second packet comprises a Virtual Extensible Local Area Network (VXLAN) packet or a Generic Network Virtualization Encapsulation (GENEVE) packet.

17. The computing apparatus of claim 9 , wherein the tunnel endpoint is associated with a tenant identifier, and wherein the program instructions further direct the processing system to notify a control system of the tenant identifier associated with the tenant.

18. An apparatus comprising:

one or more non-transitory computer readable storage media;

a processing system operatively coupled to the one or more non-transitory computer readable storage media; and

program instructions stored on the one or more non-transitory computer readable storage media that, when executed by the processing system, direct the processing system to:

identify a connection of a virtual machine to a port of a virtual switch on a host;

identify a tenant of a plurality of tenants associated with the virtual machine;

determine whether a tunnel endpoint is allocated to the tenant on the host; and

when a tunnel endpoint is not allocated to the tenant:

initiate a tunnel endpoint on the host for the tenant; and

direct traffic for the virtual machine to the initiated tunnel endpoint; and

when a tunnel endpoint is allocated to the tenant:

direct traffic for the virtual machine to the tunnel endpoint.

19. The apparatus of claim 18 , wherein the tunnel endpoint is associated with a tenant identifier, and wherein the tenant identifier comprises at least a source encapsulation internet protocol (IP) address and a virtual local area network (VLAN) tag.

20. The apparatus of claim 18 , wherein the tunnel endpoint is associated with a tenant identifier, and wherein the program instructions further direct the processing system to:

after directing traffic for the virtual machine to the tunnel endpoint, obtain a packet from the virtual machine;

generate a second packet that encapsulates the first packet, wherein the second packet comprises the tenant identifier.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2019
From: BABBAR, MANSI; MATHEW, SUBIN CYRIAC; RAMAN, CHIDAMBARESWARAN; PARMAR, ANKIT
To: VMWARE, INC.
Reel/Frame 049837/0265 →