IP Library Granted Patent US 10,686,716
Granted Patent B2
US 10,686,716 · App. 16/043,127 · Granted Jun 16, 2020

Dynamic processing of packets using multiple receive queue features

Inventors: Aditya G. Holla (Palo Alto, CA); Rishi Mehta (San Jose, CA); Boon Ang (Saratoga, CA); Rajeev Nair (Newark, CA); Wenyi Jiang (Fremont, CA)
Assignee: VMWARE, INC.
H04L47/6295G06F9/45558H04L47/125G06F2009/45591G06F2009/45595
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 10,686,716
App. No.
16/043,127
Granted
Jun 16, 2020
Kind
B2
Abstract

Some embodiments provide a method for managing multiple queues of a network interface card (NIC) of a host computer that executes a data compute node (DCN). The method defines first, second, and third subsets of the queues. The first subset of queues is associated with a first feature for processing data messages received by the NIC, the second subset of queues is associated with a second feature, and the third subset is associated with both features. The method receives a request from the DCN to process data messages addressed to the DCN using both the first and second features. The method configures the NIC to direct data messages received for the DCN to a queue that is selected from the third subset of queues.

Claims (40)

1. A method for managing a plurality of queues of a network interface card (NIC) of a host computer, the method comprising:

defining first, second, and third subsets of the queues, wherein the first subset of queues is associated with a first feature for aggregating multiple related data messages received by the NIC into a single data message, the second subset of queues is associated with a second feature for load balancing data messages received by the NIC across multiple queues of the associated subset of queues, and the third subset of queues is associated with both the first and second features;

receiving a request from a data compute node (DCN) executing on the host computer for data messages addressed to the DCN to be processed with both the first feature for aggregating multiple related data messages into a single data message and second feature for load balancing data messages across multiple queues; and

configuring the NIC to direct data messages received for the DCN to a particular queue selected from the third subset of queues.

2. The method of claim 1 further comprising, upon receiving the request from the DCN, initially configuring the NIC to direct data messages received for the DCN to a default queue that is not in any of the first, second, and third subsets of queues.

3. The method of claim 2 , wherein configuring the MC to direct data messages received for the DCN to the particular queue comprises:

monitoring a load on the default queue; and

when the load on the default queue exceeds a first threshold, configuring the NIC to direct subsequent data messages received for the DCN to the particular queue.

4. The method of claim 2 , wherein the particular queue is a first queue, wherein configuring the NIC to direct data messages received for the DCN to the first queue comprises:

monitoring loads on the default queue and the queues of the first, second, and third subsets;

when the load on the default queue exceeds a first threshold, configuring the NIC to direct subsequent data messages received for the DCN to a second queue in the first subset of queues; and

when the load on the second queue exceeds a second threshold, configuring the NIC to direct subsequent data messages received for the DCN to the first queue.

5. The method of claim 1 , wherein configuring the NIC to direct the data messages to the particular queue comprises defining a filter for the DCN and configuring the NIC to apply the filter to the particular queue.

6. The method of claim 5 , wherein data messages received by the NIC match the filter based on at least one of an outer destination address, an inner destination address, and a network identifier.

7. The method of claim 1 , wherein the NIC implements the first feature for aggregating multiple related data messages received by the NIC into a single data message and the second feature for load balancing data messages received by the NIC across multiple queues of the associated subset of queues.

8. The method of claim 1 , wherein virtualization software of the host computer implements the first feature for aggregating multiple related data messages received by the NIC into a single data message and the NIC implements the second feature for load balancing data messages received by the NIC across multiple queues of the associated subset of queues.

9. The method of claim 1 , wherein:

the second subset of queues are logical queues;

each logical queue in the second subset of queues is associated with a plurality of hardware queues; and

the second feature balances data message traffic for a single DCN across multiple hardware queues.

10. The method of claim 1 , wherein if there are no queues for a requested feature available, a new subset of queues is defined for the requested feature.

11. The method of claim 10 , wherein queues in the new subset are reallocated from at least one existing subset of queues.

12. A non-transitory machine readable medium storing a program which when executed on set of processing units of a host computer manages a plurality of queues of a network interface card (NIC) of the host computer, the program comprising sets of instructions for: defining first, second, and third subsets of the queues, wherein the first subset of queues is associated with a first feature for aggregating multiple related data messages received by the NIC into a single data message, the second subset of queues is associated with a second feature for load balancing data messages received by the NIC across multiple queues of the associated subset of queues, and the third subset of queues is associated with both the first and second features;

receiving a request from a data compute node (DCN) executing on the host computer for data messages addressed to the DCN to be processed with both the first feature for aggregating multiple related data messages into a single data message and second feature for load balancing data messages across multiple queues; and

configuring the NIC to direct data messages received for the DCN to a particular queue selected from the third subset of queues.

13. The non-transitory machine readable medium of claim 12 , wherein the program further comprises a set of instructions for initially configuring the NIC, upon receiving the request from the DCN, to direct data messages received for the DCN to a default queue that is not in any of the first, second, and third subsets of queues.

14. The non-transitory machine readable medium of claim 13 , wherein the set of instructions for configuring the NIC to direct data messages received for the DCN to the particular queue comprises a set of instructions for:

monitoring a load on the default queue; and

when the load on the default queue exceeds a first threshold, configuring the NIC to direct subsequent data messages received for the DCN to the particular queue.

15. The non-transitory machine readable medium of claim 13 , wherein the particular queue is a first queue, wherein the set of instructions for configuring the NIC to direct data messages received for the DCN to the first queue comprises sets of instructions for:

monitoring loads on the default queue and the queues of the first, second, and third subsets;

when the load on the default queue exceeds a first threshold, configuring the NIC to direct subsequent data messages received for the DCN to a second queue in the first subset of queues; and

when the load on the second queue exceeds a second threshold, configuring the NIC to direct subsequent data messages received for the DCN to the first queue.

16. The non-transitory machine readable medium of claim 12 , wherein the set of instructions for configuring the NIC to direct the data messages to the particular queue comprises a set of instructions for defining a filter for the DCN and configuring the NIC to apply the filter to the particular queue, wherein data messages received by the NIC match the filter based on at least one of an outer destination address, an inner destination address, and a network identifier.

17. The non-transitory machine readable medium of claim 12 , wherein:

the second subset of queues are logical queues;

each logical queue in the second subset of queues is associated with a plurality of hardware queues; and

the second feature balances data message traffic for a single DCN across multiple hardware queues.

18. The non-transitory machine readable medium of claim 12 , wherein the program further comprises a set of instructions for defining a new subset of queues for a requested feature if there are no queues available for the requested feature, wherein queues in the new subset are reallocated from at least one existing subset of queues.

19. The non-transitory machine readable medium of claim 12 , wherein the NIC implements the first feature for aggregating multiple related data messages received by the NIC into a single data message and the second feature for load balancing data messages received by the NIC across multiple queues of the associated subset of queues.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2019
From: HOLLA, ADITYA G.; MEHTA, RISHI; ANG, BOON; NAIR, RAJEEV; JIANG, WENYI
To: VMWARE, INC.
Reel/Frame 049937/0428 →
Continuity (1)
Related Publication 20200028792A1 · Jan 23, 2020
Cited By (1)
US 12,381,831