Network interface controller supporting network virtualization
First Claim
1. A network interface device, comprising:
- a host interface for connection to a host processor having a memory;
a network interface, which is configured to transmit and receive data packets over a data network, which supports multiple tenant networks overlaid on the data network; and
processing circuitry, which is configured to receive, via the host interface, a work item submitted by a virtual machine running on the host processor, and to identify, responsively to the work item, a tenant network over which the virtual machine is authorized to communicate, wherein the work item specifies a message to be sent to a tenant destination address on the tenant network,wherein the processing circuitry is configured to generate, in response to the work item, a data packet containing an encapsulation header that is associated with the tenant network, and to transmit the data packet over the data network to at least one data network address corresponding to the specified tenant destination address.
4 Assignments
0 Petitions
Accused Products
Abstract
A network interface device includes a host interface for connection to a host processor having a memory. A network interface is configured to transmit and receive data packets over a data network, which supports multiple tenant networks overlaid on the data network. Processing circuitry is configured to receive, via the host interface, a work item submitted by a virtual machine running on the host processor, and to identify, responsively to the work item, a tenant network over which the virtual machine is authorized to communicate, wherein the work item specifies a message to be sent to a tenant destination address. The processing circuitry generates, in response to the work item, a data packet containing an encapsulation header that is associated with the tenant network, and to transmit the data packet over the data network to at least one data network address corresponding to the specified tenant destination address.
78 Citations
33 Claims
-
1. A network interface device, comprising:
-
a host interface for connection to a host processor having a memory; a network interface, which is configured to transmit and receive data packets over a data network, which supports multiple tenant networks overlaid on the data network; and processing circuitry, which is configured to receive, via the host interface, a work item submitted by a virtual machine running on the host processor, and to identify, responsively to the work item, a tenant network over which the virtual machine is authorized to communicate, wherein the work item specifies a message to be sent to a tenant destination address on the tenant network, wherein the processing circuitry is configured to generate, in response to the work item, a data packet containing an encapsulation header that is associated with the tenant network, and to transmit the data packet over the data network to at least one data network address corresponding to the specified tenant destination address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer system, comprising:
-
a memory; a host processor configured to access the memory and to run one or more virtual machines; and a network interface controller (NIC), which is configured to transmit and receive data packets over a data network, which supports multiple tenant networks overlaid on the data network, and which is configured to read from the memory a work item submitted by a virtual machine running on the host processor, and to identify, responsively to the work item a tenant network over which the virtual machine is authorized to communicate, wherein the work item specifies a message to be sent to a tenant destination address on the tenant network, wherein the NIC is configured to generate, in response to the work item, a data packet containing an encapsulation header that is associated with the tenant network, and to transmit the data packet over the data network to at least one data network address corresponding to the specified tenant destination address. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for communication, comprising:
-
configuring a network interface controller (NIC), which is coupled to a host processor having a memory, to transmit and receive data packets over a data network, which supports multiple tenant networks overlaid on the data network; receiving in the NIC a work item submitted by a virtual machine running on the host processor, and identifying, responsively to the work item, a tenant network over which the virtual machine is authorized to communicate, wherein the work item specifies a message to be sent to a tenant destination address on the tenant network; generating in the NIC, in response to the work item, a data packet containing an encapsulation header that is associated with the tenant network; and transmitting the data packet over the data network to at least one data network address corresponding to the specified tenant destination address. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A computer software product, for use on a computer that includes a memory and a network interface controller (NIC), which is coupled to transmit and receive data packets over a data network, which supports multiple tenant networks overlaid on the data network,
wherein the product comprises a computer-readable medium in which program instructions are stored, which instructions, when read by the computer, causes a virtual machine on the computer to submit to the NIC a work item, causing the NIC to identify, responsively to the work item, a tenant network over which the virtual machine is authorized to communicate, wherein the work item specifies a message to be sent to a tenant destination address on the tenant network and causes the NIC to generate a data packet containing an encapsulation header that is associated with the tenant network and to transmit the data packet over the data network to at least one data network address corresponding to the specified tenant destination address.
Specification