Large receive offload for virtual machines
First Claim
Patent Images
1. A method for operating a host machine in a virtualized network environment, the host machine hosting a plurality of virtual machines, the method comprising:
- specifying a set of rules for determining whether or not to aggregate packets at a plurality of incoming packet buffers, each rule in the set of rules controlling a packet aggregation operation in a corresponding incoming packet buffer of the plurality of incoming packet buffers, wherein a first rule specifies not aggregating packets for a first set of packets at a first incoming packet buffer and a second rule specifies aggregating packets for a second set of packets at a second incoming packet buffer, wherein packet header contents distinguish the first set of packets from the second set of packets;
forwarding a non-aggregated packet from the first incoming packet buffer to a first virtual machine of the plurality of virtual machines, wherein the first virtual machine forwards the non-aggregated packet; and
forwarding an aggregated packet from the second incoming packet buffer to a second virtual machine of the plurality of virtual machines, wherein the second virtual machine terminates the aggregated packet.
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
19 Claims
-
1. A method for operating a host machine in a virtualized network environment, the host machine hosting a plurality of virtual machines, the method comprising:
-
specifying a set of rules for determining whether or not to aggregate packets at a plurality of incoming packet buffers, each rule in the set of rules controlling a packet aggregation operation in a corresponding incoming packet buffer of the plurality of incoming packet buffers, wherein a first rule specifies not aggregating packets for a first set of packets at a first incoming packet buffer and a second rule specifies aggregating packets for a second set of packets at a second incoming packet buffer, wherein packet header contents distinguish the first set of packets from the second set of packets; forwarding a non-aggregated packet from the first incoming packet buffer to a first virtual machine of the plurality of virtual machines, wherein the first virtual machine forwards the non-aggregated packet; and forwarding an aggregated packet from the second incoming packet buffer to a second virtual machine of the plurality of virtual machines, wherein the second virtual machine terminates the aggregated packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computing device serving as a host machine in a virtualized network environment, the computing device comprising a set of processing units executing a computer program comprising sets of instructions for:
-
executing a plurality of virtual machines; specifying a set of rules for determining whether or not to aggregate packets at a plurality of queues, each rule in the set of rules controlling a packet aggregation operation in a corresponding queue of the plurality of queues, wherein a first rule specifies not aggregating packets for a first set of packets at a first queue and a second rule specifies aggregating packets for a second set of packets at a second queue, wherein packet header contents distinguish the first set of packets from the second set of packets; forwarding a non-aggregated packet from the first queue to a first virtual machine of the plurality of virtual machines, wherein the first virtual machine forwards the non-aggregated packet; and forwarding an aggregated packet from the second queue to a second virtual machine of the plurality of virtual machines, wherein the second virtual machine terminates the aggregated packet. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A method for controlling large receive offload (LRO) operations at a network interface controller (NIC), the method comprising:
-
receiving, at a plurality of NIC queues, a plurality of incoming packets from a network, wherein each of the incoming packets contain transport connection information; specifying a set of filters, wherein each of the filters comprises a five-tuple specifying particular transport connection information and a rule determining whether or not to aggregate an incoming packet containing the particular transport connection information at a NIC queue; for each of the received incoming packets; matching the transport connection information of the received incoming packet with the corresponding transport connection information specified by the five-tuple in a filter of the plurality of filters; aggregating, at the NIC queue, the incoming packet according to the rule of the filter; and retrieving the packets from the NIC queues. - View Dependent Claims (17, 18, 19)
-
Specification