IP Library Granted Patent US 9,832,112
Granted Patent B2
US 9,832,112 · App. 14/231,705 · Granted Nov 28, 2017

Using different TCP/IP stacks for different hypervisor services

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,832,112
App. No.
14/231,705
Granted
Nov 28, 2017
Kind
B2
Abstract

Multiple TCP/IP stack processors on a host. The multiple TCP/IP stack processors are provided independently of TCP/IP stack processors implemented by virtual machines on the host. The TCP/IP stack processors provide multiple different default gateway addresses for use with multiple processes. The default gateway addresses allow a service to communicate across an L3 network. Processes outside of virtual machines that utilize the TCP/IP stack processor on a first host can benefit from using their own gateway, and communicate with their peer process on a second host, regardless of whether the second host is located within the same subnet or a different subnet. The multiple TCP/IP stack processors can use separately allocated resources. Separate TCP/IP stack processors can be provided for each of multiple tenants on the host. Separate loopback interfaces of multiple TCP/IP stack processors can be used to create separate containment for separate sets of processes on a host.

Claims (54)

1. A method of generating IP packets for a first hypervisor process running on a first electronic computing device that implements a generic TCP/IP stack processor and at least one dedicated TCP/IP stack processor, wherein the first hypervisor process operates outside of any virtual machine on the first electronic computing device, the method comprising:

retrieving configuration data for the dedicated TCP/IP stack processor, wherein the configuration data comprises a designation of a first default gateway for the dedicated TCP/IP stack processor that is different from a second default gateway for the generic TCP/IP stack processor, wherein the generic and dedicated TCP/IP stack processors are not implemented by virtual machines;

implementing the dedicated TCP/IP stack processor with the first default gateway;

processing data using the dedicated TCP/IP stack processor to generate an IP packet with an IP address not in a routing table of the dedicated TCP/IP stack processor; and

sending the IP packet to the IP address of the first default gateway, wherein sending the IP packet is part of a communication between the first hypervisor process and a second peer hypervisor process running on a second electronic computing device through the first default gateway.

2. The method of claim 1 , wherein the first and second hypervisor processes are virtual machine migrator processes.

3. The method of claim 1 further comprising:

sending IP packets from the dedicated TCP/IP stack processor out of the electronic computing device through a first physical network interface card (pNIC); and

sending IP packets from the generic TCP/IP stack processor out of the electronic computing device through a second pNIC.

4. The method of claim 3 further comprising:

processing the IP packets from the dedicated TCP/IP stack processor with a virtual switch that sends the IP packets from the dedicated TCP/IP stack processor to the first pNIC; and

processing the IP packets from the generic TCP/IP stack processor with the virtual switch that sends the IP packets from the generic TCP/IP stack processor to the second pNIC.

5. The method of claim 3 further comprising:

processing the IP packets from the dedicated TCP/IP stack processor with a first virtual switch that sends the IP packets from the dedicated TCP/IP stack processor to the first pNIC; and

processing the IP packets from the generic TCP/IP stack processor with a second virtual switch that sends the IP packets from the generic TCP/IP stack processor to the second pNIC.

6. The method of claim 1 , wherein the dedicated TCP/IP stack processor is a first dedicated TCP/IP stack processor and the IP packet is a first IP packet, the method further comprising:

retrieving configuration data for a second dedicated TCP/IP stack processor, wherein the configuration data for the second dedicated TCP/IP stack processor comprises a designation of a third default gateway for the second dedicated TCP/IP stack processor that is different from the first default gateway for the dedicated TCP/IP stack processor and the second default gateway for the generic TCP/IP stack processor;

implementing the second dedicated TCP/IP stack processor with an IP address of the second third default gateway;

processing data using the second dedicated TCP/IP stack processor to generate a second IP packet with an IP address not in a routing table of the second dedicated TCP/IP stack processor; and

sending the second IP packet to the IP address of the third default gateway.

7. The method of claim 6 , wherein the generic TCP/IP stack processor provides TCP/IP processing for a plurality of processes not assigned to any dedicated IP stack.

8. The method of claim 1 , wherein implementing the dedicated TCP/IP stack processor with the first default gateway comprises configuring, without user input, a default gateway address of the dedicated TCP/IP stack processor as an IP address of the first default gateway.

9. The method of claim 8 , wherein the default gateway address of the dedicated TCP/IP stack processor is configured dynamically.

10. The method of claim 9 , wherein the default gateway address of the dedicated TCP/IP stack processor is configured using a dynamic host configuration protocol.

11. A non-transitory machine readable medium storing a program which when executed by at least one processing unit implements a plurality of TCP/IP stack processors outside of any virtual machine, the program comprising sets of instructions for:

retrieving configuration data for a dedicated TCP/IP stack processor, wherein the configuration data comprises a designation of a first default gateway for the dedicated TCP/IP stack processor that is different from a second default gateway for a generic TCP/IP stack processor, wherein the generic and dedicated TCP/IP stack processes are not implemented by virtual machines;

without user input, configuring the dedicated TCP/IP stack processor with an IP address of the first default gateway;

processing data using the dedicated TCP/IP stack processor to generate an IP packet with an IP address not in a routing table of the dedicated TCP/IP stack processor; and

sending the IP packet to the IP address of the first default gateway.

12. The non-transitory machine readable medium of claim 11 , wherein the dedicated TCP/IP stack processor is a first dedicated TCP/IP stack processor, the program comprises a set of instructions for implementing a second dedicated TCP/IP stack processor with a third default gateway.

13. The non-transitory machine readable medium of claim 12 wherein the first dedicated TCP/IP stack processor is implemented with a first virtual local area network (VLAN) and the second dedicated TCP/IP stack processor is implemented with a second VLAN.

14. The non-transitory machine readable medium of claim 13 , wherein the program further comprises a set of instructions for adding a first VLAN tag to IP packets produced by the first dedicated TCP/IP stack processor and a second VLAN tag to IP packets produced by the second dedicated TCP/IP stack processor.

15. The non-transitory machine readable medium of claim 14 , wherein IP packets with the first VLAN tag and IP packets with the second VLAN tag are sent to a single physical network interface card (pNIC).

16. The non-transitory machine readable medium of claim 11 , wherein the processing units are processing units of a host device that implements a user space and a kernel space.

17. The non-transitory machine readable medium of claim 16 , wherein the data is produced by a process operating in the kernel space.

18. The non-transitory machine readable medium of claim 16 , wherein the data is produced by a process operating in the user space.

19. A method of communicating between a first hypervisor service process on a first subnet and a second hypervisor service process on a second subnet, the method comprising:

retrieving configuration data for a dedicated TCP/IP stack processor on a host of the first subnet, wherein the configuration data comprises a designation of a first default gateway for the dedicated TCP/IP stack processor that is different from a second default gateway for a generic TCP/IP stack processor on the host of the first subnet;

implementing the dedicated TCP/IP stack processor with the first default gateway;

processing data from the first hypervisor service process using the dedicated TCP/IP stack processor to generate an IP packet with an IP address not in a routing table of the dedicated TCP/IP stack processor; and

sending the IP packet to the second hypervisor service process on the second subnet though the IP address of the first default gateway.

20. The method of claim 19 , wherein the first and second hypervisor service processes are virtual storage area network processes.

21. The method of claim 19 further comprising:

sending IP packets from the dedicated TCP/IP stack processor out of the electronic computing device through a first physical network interface card (pNIC); and

sending IP packets from the generic TCP/IP stack processor out of the electronic computing device through a second pNIC.

22. The method of claim 19 , wherein the dedicated TCP/IP stack processor is a first dedicated TCP/IP stack processor and the IP packet is a first IP packet, the method further comprising:

retrieving configuration data for a second dedicated TCP/IP stack processor, wherein the configuration data for the second dedicated TCP/IP stack processor comprises a designation of a third default gateway for the second dedicated TCP/IP stack processor that is different from the first default gateway for the dedicated TCP/IP stack processor and the second default gateway for the generic TCP/IP stack processor;

implementing the second dedicated TCP/IP stack processor with an IP address of the third default gateway;

processing data from a third hypervisor service process using the third dedicated TCP/IP stack processor to generate a second IP packet with an IP address not in a routing table of the second dedicated TCP/IP stack processor; and

sending the second IP packet to a fourth hypervisor peer service process on a third subnet through the IP address of the third default gateway.

23. The method of claim 22 , wherein the generic TCP/IP stack processor provides TCP/IP processing for a plurality of processes not assigned to any dedicated IP stack.

24. The method of claim 19 , wherein the first subnet comprises a plurality of hosts and a plurality of services on the plurality of hosts of the first subnet communicate with each other over a layer 2 (L2) network.

25. The method of claim 24 , wherein the plurality of services on the plurality of hosts of the first subnet is a first plurality of services, the plurality of hosts on the first subnet is a first plurality of hosts, wherein the first plurality of services communicate with a second plurality of services on a second plurality of hosts of the second subnet over a layer 3 (L3) network.

26. The method of claim 19 , wherein the IP packet is sent on an L3 network to reach the second service on the second subnet.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2014
From: RAJU, NITHIN B.; CHANDRASHEKHA, GANESAN; PAN, FRANK; VARBANOV, TIHOMIR; GANCHEV, TONY
To: NICIRA, INC.
Reel/Frame 033531/0172 →