LARGE RECEIVE OFFLOAD FOR VIRTUAL MACHINES
First Claim
Patent Images
1. A computing device serving as host machine for a plurality of virtual machines, the computing device comprising:
- a physical network interface controller (PNIC) for receiving data packets from a network and for aggregating the received data packets at a plurality of queues, each queue of the plurality of queues aggregating data packets according to a corresponding rule in a set of rules that are specified by an application programming interface (API) for the PNIC; and
a virtualization machine monitor (VMM) for forwarding the aggregated packets to the plurality of virtual machines, wherein the VMM uses the API for the PNIC to specify the set of rules.
2 Assignments
0 Petitions
Accused Products
Abstract
A network interface controller (NIC) that includes a set of receive NIC queues capable of performing large receive offload (LRO) operations by aggregating incoming receive packets is provided. Each NIC queue turns on or off its LRO operation based a set of LRO enabling rules or parameters, whereby only packets that meet the set of rules or parameters will be aggregated in the NIC queue. Each NIC queue is controlled by its own set of LRO enabling rules such that the LRO operations of the different NIC queues can be individually controlled.
-
Citations
28 Claims
-
1. A computing device serving as host machine for a plurality of virtual machines, the computing device comprising:
-
a physical network interface controller (PNIC) for receiving data packets from a network and for aggregating the received data packets at a plurality of queues, each queue of the plurality of queues aggregating data packets according to a corresponding rule in a set of rules that are specified by an application programming interface (API) for the PNIC; and a virtualization machine monitor (VMM) for forwarding the aggregated packets to the plurality of virtual machines, wherein the VMM uses the API for the PNIC to specify the set of rules. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computing device serving as host machine for a plurality of virtual machines, the computing device executing a computer program comprising sets of instructions for:
-
providing a set of packet aggregation rules to a physical network interface card (PNIC), the PNIC comprising a plurality of queues for providing data received from a network to the plurality of virtual machines, each rule in the set of rules controlling a packet aggregation operation in a corresponding queue of the plurality of queues for aggregating data packets from the network; and forwarding a first aggregated data packet from a first queue in the PNIC to a first virtual machine and a second non-aggregated data packet from a second queue in the PNIC to a second virtual machine. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A non-transitory computer readable storage medium storing a program for execution on one or more processors, the program comprising sets of instructions for:
-
operating a plurality of virtual machines; setting a plurality of packet aggregation rules for a plurality of queues in a physical network interface controller (PNIC) by using an application programming interface (API) of the PNIC, each packet aggregation rule controlling an packet aggregation operation in a corresponding queue of the plurality of queues; and retrieving an aggregated packet from the PNIC. - View Dependent Claims (22, 23, 24, 25, 26)
-
-
27. A method for operating a host machine in a virtualized network environment, the host machine hosting a plurality of virtual machines, the method comprising:
-
identifying a first queue in a physical network interface controller (PNIC) that is buffering data packets for a first virtual machine that consumes data packets; identifying a second queue in the PNIC that is buffering data packets for a second virtual machine that forwards data packets; and enabling packet aggregation in the first queue and disabling packet aggregation in the second queue. - View Dependent Claims (28)
-
Specification