IP Library Granted Patent US 12,170,622
Granted Patent B2
US 12,170,622 · App. 18/358,864 · Granted Dec 17, 2024

Network resource selection for flows using flow classification

Inventors: Santosh Pallagatti Kotrabasappa (Bangalore, IN); Sairam Veeraswamy (Bangalore, IN); Abhishek Goliya (Pune, IN); Abbas Mohamed (Bangalore, IN)
Assignee: VMware LLC
H04L47/2441G06F16/245G06N20/00
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 12,170,622
App. No.
18/358,864
Granted
Dec 17, 2024
Kind
B2
Abstract

In some embodiments, a method receives a set of packets for a flow and determines a set of features for the flow from the set of packets. A classification of an elephant flow or a mice flow is selected based on the set of features. The classification is selected before assigning the flow to a network resource in a plurality of network resources. The method assigns the flow to a network resource in the plurality of network resources based on the classification for the flow and a set of classifications for flows currently assigned to the plurality of network resources. Then, the method sends the set of packets for the flow using the assigned network resource.

Claims (77)

1. A method comprising:

receiving, by a flow selector of a virtualized network resource, a set of packets for a flow, the virtualized network resource running in a workload supported by virtualization software on a host computer;

determining, by a flow identifier engine of the virtualized network resource, a set of features for the flow from the set of packets;

selecting, by the flow selector, a classification of an elephant flow or a mice flow based on the set of features, wherein the classification is selected before assigning the flow to a network resource in a plurality of network resources;

assigning, by the flow, selector, the flow to a network resource in the plurality of network resources based on the classification for the flow and a set of classifications for flows currently assigned to the plurality of network resources; and

sending the set of packets for the flow using the assigned network resource.

2. The method of claim 1 , wherein selecting the classification comprises:

receiving the classification from a machine learning process, wherein the machine learning process generates the classification based on the set of features of the flow.

3. The method of claim 1 , wherein assigning the flow to the network resource comprises:

determining a weight for each of the plurality of network resources, wherein the weight for a network resource is based on the classifications of elephant flows and mice flows for the flows currently assigned to a respective network resource; and

selecting a network resource from the plurality of network resources based on the classification for the flow of the elephant flow or the mice flow and the weight for each of the plurality of network resources.

4. The method of claim 3 , wherein the plurality of network resources comprises one or more of the following:

a plurality of links;

a plurality of uplinks;

a plurality of physical network interface cards; or

a plurality of service network resources.

5. The method of claim 1 , wherein the workload comprises:

a virtual machine (VM) supported by a hypervisor, the virtualization software comprising the hypervisor; or

a container, the virtualization software implementing operating system level virtualization.

6. The method of claim 1 , wherein the virtualized network resource comprises:

an edge services gateway;

a managed forwarding element; or

a logical forwarding element.

7. The method of claim 1 , wherein selecting the classification comprises:

searching a database for a specific entry that includes destination information for a destination of the flow and source information for a source of the flow;

when the database does not include a specific entry, searching the database for an aggregated entry that includes the destination information for a destination of the flow.

8. A non-transitory computer-readable storage medium storing instructions executable by one or more processors to cause a computing system to perform operations comprising:

receiving, by a flow selector of a virtualized network resource, a set of packets for a flow, the virtualized network resource running in a workload supported by virtualization software on a host computer;

determining, by a flow identifier engine of the virtualized network resource, a set of features for the flow from the set of packets;

selecting, by the flow selector, a classification of an elephant flow or a mice flow based on the set of features, wherein the classification is selected before assigning the flow to a network resource in a plurality of network resources;

assigning, by the flow, selector, the flow to a network resource in the plurality of network resources based on the classification for the flow and a set of classifications for flows currently assigned to the plurality of network resources; and

sending the set of packets for the flow using the assigned network resource.

9. The non-transitory computer-readable storage medium of claim 8 , wherein selecting the classification comprises:

receiving the classification from a machine learning process, wherein the machine learning process generates the classification based on the set of features of the flow.

10. The non-transitory computer-readable storage medium of claim 8 , wherein assigning the flow to the network resource comprises:

determining a weight for each of the plurality of network resources, wherein the weight for a network resource is based on the classifications of elephant flows and mice flows for the flows currently assigned to a respective network resource; and

selecting a network resource from the plurality of network resources based on the classification for the flow of the elephant flow or the mice flow and the weight for each of the plurality of network resources.

11. The non-transitory computer-readable storage medium of claim 10 , wherein the plurality of network resources comprises one or more of the following:

a plurality of links;

a plurality of uplinks;

a plurality of physical network interface cards; or

a plurality of service network resources.

12. The non-transitory computer-readable storage medium of claim 8 , wherein the workload comprises:

a virtual machine (VM) supported by a hypervisor, the virtualization software comprising the hypervisor; or

a container, the virtualization software implementing operating system level virtualization.

13. The non-transitory computer-readable storage medium of claim 8 , wherein the virtualized network resource comprises:

an edge services gateway;

a managed forwarding element; or

a logical forwarding element.

14. The non-transitory computer-readable storage medium of claim 8 , wherein selecting the classification comprises:

searching a database for a specific entry that includes destination information for a destination of the flow and source information for a source of the flow;

when the database does not include a specific entry, searching the database for an aggregated entry that includes the destination information for a destination of the flow.

15. A computing system, comprising:

one or more computer processors; and

a non-transitory computer-readable storage medium storing instructions executable by one or more processors to cause the computing system to perform operations comprising:

receiving, by a flow selector of a virtualized network resource, a set of packets for a flow, the virtualized network resource running in a workload supported by virtualization software on a host computer;

determining, by a flow identifier engine of the virtualized network resource, a set of features for the flow from the set of packets;

selecting, by the flow selector, a classification of an elephant flow or a mice flow based on the set of features, wherein the classification is selected before assigning the flow to a network resource in a plurality of network resources;

assigning, by the flow, selector, the flow to a network resource in the plurality of network resources based on the classification for the flow and a set of classifications for flows currently assigned to the plurality of network resources; and

sending the set of packets for the flow using the assigned network resource.

16. The computing system of claim 15 , wherein selecting the classification comprises:

receiving the classification from a machine learning process, wherein the machine learning process generates the classification based on the set of features of the flow.

17. The computing system of claim 15 , wherein assigning the flow to the network resource comprises:

determining a weight for each of the plurality of network resources, wherein the weight for a network resource is based on the classifications of elephant flows and mice flows for the flows currently assigned to a respective network resource; and

selecting a network resource from the plurality of network resources based on the classification for the flow of the elephant flow or the mice flow and the weight for each of the plurality of network resources.

18. The computing system of claim 17 , wherein the plurality of network resources comprises one or more of the following:

a plurality of links;

a plurality of uplinks;

a plurality of physical network interface cards; or

a plurality of service network resources.

19. The computing system of claim 15 , wherein the workload comprises:

a virtual machine (VM) supported by a hypervisor, the virtualization software comprising the hypervisor; or

a container, the virtualization software implementing operating system level virtualization.

20. The computing system of claim 15 , wherein the virtualized network resource comprises:

an edge services gateway;

a managed forwarding element; or

a logical forwarding element.

Assignments (1)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0242 →
Priority Claims (1)
IN 202041028376 · Jul 3, 2020 · national
Continuity (2)
Continuation 17019083 · Sep 11, 2020
Related Publication 20230370386A1 · Nov 16, 2023
Cited By (1)
US 12,341,671