IP Library Granted Patent US 11,271,841
Granted Patent B2
US 11,271,841 · App. 16/847,194 · Granted Mar 8, 2022

Specializing virtual network device processing to avoid interrupt processing for high packet rate applications

Inventors: Lenin Singaravelu (Sunnyvale, CA); Jin Heo (Mountain View, CA); Jui-Ting Weng (Sunnyvale, CA); Ayyappan Veeraiyan (Cupertino, CA); Yong Wang (Sunnyvale, CA)
Assignee: VMware, Inc.
H04L43/16G06F9/45558H04L43/0894H04L43/103G06F2009/45595H04L47/28
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 11,271,841
App. No.
16/847,194
Granted
Mar 8, 2022
Kind
B2
Abstract

A method of optimizing network processing in a system comprising a physical host and a set of physical network interface controllers (PNICs) is provided. The physical host includes a forwarding element. The method includes determining that a set of conditions is satisfied to bypass the forwarding element for exchanging packets between a particular data compute node (DCN) and a particular PNIC. The set of conditions includes the particular DCN being the only DCN connected to the forwarding element and the particular PNIC being the only PNIC connected to the forwarding element. The method exchanges packets between the particular DCN and the particular PNIC bypassing the forwarding element. The method determines that at least one condition in said set of conditions is not satisfied. The method utilizes the forwarding element to exchange packets between the particular DCN and the particular PNIC.

Claims (57)

1. A method of optimizing network processing in a system comprising a physical host and a set of physical network interface controllers (PNICs), the physical host comprising a forwarding element, the method comprising:

determining that the forwarding element can be bypassed in a path between a virtual machine and a virtual function of a particular PNIC;

based on determining that the forwarding element can be bypassed in a path between a virtual machine and a virtual function of a particular PNIC, determining that a set of conditions is satisfied to bypass the forwarding element for exchanging packets between a particular data compute node (DCN) and the particular PNIC;

exchanging packets between the particular DCN and the particular PNIC bypassing the forwarding element when the set of conditions are satisfied;

determining that at least one condition in said set of conditions is not satisfied; and

utilizing the forwarding element to exchange packets between the particular DCN and the particular PNIC when at least one condition in said set of conditions is not satisfied.

2. The method of claim 1 , wherein the particular PNIC is a Single Root IO Virtualization (SR-IOV) enabled PNIC.

3. The method of claim 2 , further comprising connecting a plurality of virtual NICs of corresponding ones of a plurality of DCNs through the forwarding element to a physical function of the SR-IOV enabled PNIC.

4. The method of claim 3 , further comprising:

determining that a number of available virtual functions (VFs) on the SR-IOV enabled PNIC is greater than a number of the plurality of DCNs;

creating forwarding elements for each of the plurality of DCNs;

connecting each of the forwarding elements to a VNIC of a corresponding DCN of the plurality of DCNs and an available VF of the SR-IOV enabled PNIC; and

when the set of conditions is satisfied for one of the forwarding elements:

bypassing the one of the forwarding elements; and

connecting the VNIC of the corresponding DCN to an associated VF.

5. The method of claim 1 , wherein the set of conditions comprises port mirroring being disabled on the forwarding element.

6. The method of claim 1 , wherein the set of conditions comprises the particular DCN being the only DCN connected to the forwarding element and the particular PNIC being the only PNIC connected to the forwarding element.

7. The method of claim 1 , wherein the physical host comprises the virtualization software.

8. A non-transitory machine-readable medium storing a program for optimizing network processing in a system comprising a physical host and a set of physical network interface controllers (PNICs), the physical host comprising a forwarding element, the program executable by at least one processing unit, the program comprising sets of instructions for:

determining that the forwarding element can be bypassed in a path between a virtual machine and a virtual function of a particular PNIC;

determining that a set of conditions is satisfied to bypass the forwarding element for exchanging packets between a particular data compute node (DCN) and the particular PNIC;

exchanging packets between the particular DCN and the particular PNIC bypassing the forwarding element when the set of conditions are satisfied;

determining that at least one condition in said set of conditions is not satisfied; and

utilizing the forwarding element to exchange packets between the particular DCN and the particular PNIC when at least one condition in said set of conditions is not satisfied.

9. The non-transitory machine-readable medium of claim 8 , wherein the particular PNIC is a Single Root IO Virtualization (SR-IOV) enabled PNIC.

10. The non-transitory machine-readable medium of claim 9 , wherein the program further comprises sets of instructions for:

connecting a plurality of virtual NICs of corresponding ones of a plurality of DCNs through the forwarding element to a physical function of the SR-IOV enabled PNIC.

11. The non-transitory machine-readable medium of claim 10 , wherein the program further comprises sets of instructions for:

determining that a number of available virtual functions (VFs) on the SR-IOV enabled PNIC is greater than a number of the plurality of DCNs;

creating forwarding elements for each of the plurality of DCNs;

connecting each of the forwarding elements to a VNIC of a corresponding DCN of the plurality of DCNs and an available VF of the SR-IOV enabled PNIC; and

when the set of conditions is satisfied for one of the forwarding elements:

bypassing the one of the forwarding elements; and

connecting the VNIC of the corresponding DCN to an associated VF.

12. The non-transitory machine-readable medium of claim 8 , wherein the set of conditions comprises port mirroring being disabled on the forwarding element.

13. The non-transitory machine-readable medium of claim 8 , wherein the set of conditions comprises the particular DCN being the only DCN connected to the forwarding element and the particular PNIC being the only PNIC connected to the forwarding element.

14. The non-transitory machine-readable medium of claim 8 , wherein the physical host comprises the virtualization software.

15. A physical computing device comprising:

a set of processing units; and

a non-transitory machine-readable medium storing a program for execution by the set of processing units for optimizing network processing in a system comprising a physical host and a set of physical network interface controllers (PNICs), the physical host comprising a forwarding element, the sets of instructions for:

determining that the forwarding element can be bypassed in a path between a virtual machine and a virtual function of a particular PNIC;

determining that a set of conditions is satisfied to bypass the forwarding element for exchanging packets between a particular data compute node (DCN) and the particular PNIC;

exchanging packets between the particular DCN and the particular PNIC bypassing the forwarding element when the set of conditions are satisfied;

determining that at least one condition in said set of conditions is not satisfied; and

utilizing the forwarding element to exchange packets between the particular DCN and the particular PNIC when at least one condition in said set of conditions is not satisfied.

16. The physical computing device of claim 15 , wherein the particular PNIC is a Single Root IO Virtualization (SR-IOV) enabled PNIC.

17. The physical computing device of claim 16 , wherein the program further comprises sets of instructions for:

connecting a plurality of virtual NICs of corresponding ones of a plurality of DCNs through the forwarding element to a physical function of the SR-IOV enabled PNIC.

18. The physical computing device of claim 17 , wherein the program further comprises sets of instructions for:

determining that a number of available virtual functions (VFs) on the SR-IOV enabled PNIC is greater than a number of the plurality of DCNs;

creating forwarding elements for each of the plurality of DCNs;

connecting each of the forwarding elements to a VNIC of a corresponding DCN of the plurality of DCNs and an available VF of the SR-IOV enabled PNIC; and

when the set of conditions is satisfied for one of the forwarding elements:

bypassing the one of the forwarding elements; and

connecting the VNIC of the corresponding DCN to an associated VF.

19. The physical computing device of claim 15 , wherein the set of conditions comprises port mirroring being disabled on the forwarding element.

20. The physical computing device of claim 15 , wherein the set of conditions comprises the particular DCN being the only DCN connected to the forwarding element and the particular PNIC being the only PNIC connected to the forwarding element.

Assignments (1)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
Continuity (3)
Continuation 15640281 · Jun 30, 2017
Continuation 14574354 · Dec 17, 2014
Related Publication 20200389384A1 · Dec 10, 2020