Generic communication channel for information exchange between a hypervisor and a virtual machine
First Claim
1. A method for exchanging information between a hypervisor and a virtual machine run by the hypervisor that resides on a host machine, comprising:
- receiving, at a first daemon running on the hypervisor, information from a network control plane, wherein the information is destined for a second daemon running inside the virtual machine;
generating, at the first daemon, a packet having a payload including at least a portion of the information and a header including a source internet protocol (IP) address of the first daemon, a source media access control (MAC) address of the first daemon, a first destination IP address associated with the second daemon, and a destination MAC address of the second daemon;
storing a first identifier in metadata associated with the packet;
receiving, at a first port of a first virtual switch implemented by the hypervisor, the packet from the first daemon, the first daemon being coupled to the first port;
determining, at the first virtual switch, to forward the packet to a second port of the first virtual switch based on the first identifier, the destination MAC address, and the first destination IP address, wherein the second port is configured to pass packets associated with the first identifier;
tagging, at the first virtual switch, the packet with a second identifier based on a mapping of the first identifier to the second identifier;
transmitting the packet, at the second port of the first virtual switch, to a virtual network interface card (VNIC) of the virtual machine, wherein the VNIC is coupled to the second port;
passing, at the VNIC, the packet to a second virtual switch implemented by the virtual machine;
determining, at the second virtual switch, to forward the packet to a port on the second virtual switch based on the second identifier, the destination MAC address, and a second destination IP address, wherein the port is configured to pass packets associated with the second identifier, wherein the second daemon is coupled to the port; and
receiving the packet at the second daemon over the port.
1 Assignment
0 Petitions
Accused Products
Abstract
Certain embodiments described herein are generally directed to configuring a generic channel for exchanging information between a hypervisor and a virtual machine run by the hypervisor that resides on a host machine. In some embodiments, the generic channel represents a network or communication path enabled by a logical switch that connects a HyperBus running on the hypervisor and a node agent running on the virtual machine. In some embodiments, network traffic handled by the generic channel is isolated from incoming and outgoing network traffic between the virtual machine and one or more other virtual machines or hosts.
-
Citations
21 Claims
-
1. A method for exchanging information between a hypervisor and a virtual machine run by the hypervisor that resides on a host machine, comprising:
-
receiving, at a first daemon running on the hypervisor, information from a network control plane, wherein the information is destined for a second daemon running inside the virtual machine; generating, at the first daemon, a packet having a payload including at least a portion of the information and a header including a source internet protocol (IP) address of the first daemon, a source media access control (MAC) address of the first daemon, a first destination IP address associated with the second daemon, and a destination MAC address of the second daemon; storing a first identifier in metadata associated with the packet; receiving, at a first port of a first virtual switch implemented by the hypervisor, the packet from the first daemon, the first daemon being coupled to the first port; determining, at the first virtual switch, to forward the packet to a second port of the first virtual switch based on the first identifier, the destination MAC address, and the first destination IP address, wherein the second port is configured to pass packets associated with the first identifier; tagging, at the first virtual switch, the packet with a second identifier based on a mapping of the first identifier to the second identifier; transmitting the packet, at the second port of the first virtual switch, to a virtual network interface card (VNIC) of the virtual machine, wherein the VNIC is coupled to the second port; passing, at the VNIC, the packet to a second virtual switch implemented by the virtual machine; determining, at the second virtual switch, to forward the packet to a port on the second virtual switch based on the second identifier, the destination MAC address, and a second destination IP address, wherein the port is configured to pass packets associated with the second identifier, wherein the second daemon is coupled to the port; and receiving the packet at the second daemon over the port. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A non-transitory computer readable medium comprising instructions to be executed in a computer system, wherein the instructions when executed in the computer system perform a method for exchanging information between a hypervisor and a virtual machine run by the hypervisor that resides on the computer system, the method comprising:
-
receiving, at a first daemon running on the hypervisor, information from a network control plane, wherein the information is destined for a second daemon running inside the virtual machine; generating, at the first daemon, a packet having a payload including at least a portion of the information and a header including a source internet protocol (IP) address of the first daemon, a source media access control (MAC) address of the first daemon, a first destination IP address associated with the second daemon, and a destination MAC address of the second daemon; storing a first identifier in metadata associated with the packet; receiving, at a first port of a first virtual switch implemented by the hypervisor, the packet from the first daemon, the first daemon being coupled to the first port; determining, at the first virtual switch, to forward the packet to a second port of the first virtual switch based on the first identifier, the destination MAC address, and the first destination IP address, wherein the second port is configured to pass packets associated with the first identifier; tagging, at the first virtual switch, the packet with a second identifier based on a mapping of the first identifier to the second identifier; transmitting the packet, at the second port of the first virtual switch, to a virtual network interface card (VNIC) of the virtual machine, wherein the VNIC is coupled to the second port; passing, at the VNIC, the packet to a second virtual switch implemented by the virtual machine; determining, at the second virtual switch, to forward the packet to a port on the second virtual switch based on the second identifier, the destination MAC address, and a second destination IP address, wherein the port is configured to pass packets associated with the second identifier, wherein the second daemon is coupled to the port; and receiving the packet at the second daemon over the port. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A computer system, wherein system software for the computer system is programmed to execute a method for exchanging information between a hypervisor and a virtual machine run by the hypervisor that resides on the computer system, the method comprising:
-
receiving, at a first daemon running on the hypervisor, information from a network control plane, wherein the information is destined for a second daemon running inside the virtual machine; generating, at the first daemon, a packet having a payload including at least a portion of the information and a header including a source internet protocol (IP) address of the first daemon, a source media access control (MAC) address of the first daemon, a first destination IP address associated with the second daemon, and a destination MAC address of the second daemon; storing a first identifier in metadata associated with the packet; receiving, at a first port of a first virtual switch implemented by the hypervisor, the packet from the first daemon, the first daemon being coupled to the first port; determining, at the first virtual switch, to forward the packet to a second port of the first virtual switch based on the first identifier, the destination MAC address, and the first destination IP address, wherein the second port is configured to pass packets associated with the first identifier; tagging, at the first virtual switch, the packet with a second identifier based on a mapping of the first identifier to the second identifier; transmitting the packet, at the second port of the first virtual switch, to a virtual network interface card (VNIC) of the virtual machine, wherein the VNIC is coupled to the second port; passing, at the VNIC, the packet to a second virtual switch implemented by the virtual machine; determining, at the second virtual switch, to forward the packet to a port on the second virtual switch based on the second identifier, the destination MAC address, and a second destination IP address, wherein the port is configured to pass packets associated with the second identifier, wherein the second daemon is coupled to the port; and receiving the packet at the second daemon over the port. - View Dependent Claims (18, 19, 20, 21)
-
Specification