Detecting an elephant flow based on the size of a packet
First Claim
1. A non-transitory machine readable medium on which a program is stored, which when executed by at least one processing unit detects elephant flows, the program comprising sets of instructions for:
- receiving a packet associated with a data flow;
when the size of the packet is below a threshold size, using a first flow entry to process the packet in a kernel space of the forwarding element; and
when the size of the packet is over the threshold size;
using the first flow entry to send the packet to a daemon;
replacing the first flow entry with a second flow entry based on a response from the daemon, wherein the second flow entry processes subsequent packets of the data flow in the kernel space as packets of an elephant flow; and
processing the packet based on the response from the daemon.
1 Assignment
0 Petitions
Accused Products
Abstract
Some embodiments provide a forwarding element that inspects the size of each of several packets in a data flow to determine whether the data flow is an elephant flow. The forwarding element inspects the size because, in order for the packet to be of a certain size, the data flow had to already have gone through a slow start in which smaller packets are transferred and by definition be an elephant flow. When the forwarding element receives a packet in a data flow, the forwarding element identifies the size of the packet. The forwarding element then determines if the size of the packet is greater than a threshold size. If the size is greater, the forwarding element specifies that the packet'"'"'s data flow is an elephant flow.
-
Citations
20 Claims
-
1. A non-transitory machine readable medium on which a program is stored, which when executed by at least one processing unit detects elephant flows, the program comprising sets of instructions for:
-
receiving a packet associated with a data flow; when the size of the packet is below a threshold size, using a first flow entry to process the packet in a kernel space of the forwarding element; and when the size of the packet is over the threshold size; using the first flow entry to send the packet to a daemon; replacing the first flow entry with a second flow entry based on a response from the daemon, wherein the second flow entry processes subsequent packets of the data flow in the kernel space as packets of an elephant flow; and processing the packet based on the response from the daemon. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. For a forwarding element, a method of detecting elephant flows, the method comprising:
-
receiving a packet associated with a data flow; when the size of the packet is below a threshold size, using a first flow entry to process the packet in a kernel space of the forwarding element; and when the size of the packet is over the threshold size; using the first flow entry to send the packet to a daemon; replacing the first flow entry with a second flow entry based on a response from the daemon, wherein the second flow entry processes subsequent packets of the data flow in the kernel space as packets of an elephant flow; and processing the packet based on the response from the daemon. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A network system comprising:
-
a plurality of edge physical forwarding elements that are each directly coupled to at least one network host and configured to (i) examine packet sizes of packets from the coupled network hosts to detect elephant flows based on a threshold size for the packets, (ii) use a first flow entry to process a particular packet in a kernel space of the edge physical forwarding element when the size of the particular packet is below a threshold size, and (iii) when the particular packet is over the threshold size, use the first flow entry to send the packet to a daemon, replace the first flow entry with a second flow entry based on a response from the daemon, and process the packet based on the response from the daemon, wherein the second flow entry processes subsequent packets of the data flow in the kernel space as packets of an elephant flow; and a plurality of non-edge physical forwarding elements that are not directly coupled to any network hosts, wherein each non-edge physical forwarding element is configured to forward packets for the network hosts between edge physical forwarding elements. - View Dependent Claims (20)
-
Specification