Flow-based queuing of network traffic
First Claim
Patent Images
1. A method for queuing packets, comprising:
- receiving a packet;
identifying a flow associated with the packet;
determining whether a flow queue has been assigned to the identified flow;
dynamically assigning the identified flow to an available flow queue when it is determined that the flow queue has not been assigned to the identified flow; and
enqueuing the packet into the available flow queue,where the available flow queue is selected from a pool of available flow queues, andwhere the pool of available flow queues is equal to a maximum number of packets capable of simultaneous processing.
1 Assignment
0 Petitions
Accused Products
Abstract
A method is provided for queuing packets. A packet may be received and its flow identified. It may then be determined whether a flow queue has been assigned to the identified flow. The identified flow may be dynamically assigning to an available flow queue when it is determined that a flow queue has not been assigned to the identified flow. The packet may be enqueued into the available flow queue.
41 Citations
22 Claims
-
1. A method for queuing packets, comprising:
-
receiving a packet; identifying a flow associated with the packet; determining whether a flow queue has been assigned to the identified flow; dynamically assigning the identified flow to an available flow queue when it is determined that the flow queue has not been assigned to the identified flow; and enqueuing the packet into the available flow queue, where the available flow queue is selected from a pool of available flow queues, and where the pool of available flow queues is equal to a maximum number of packets capable of simultaneous processing. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A network device comprising:
-
an input interface configured to receive a data unit; an interface configured to forward the data unit to another network device; a plurality of flow queues, associated with the interface, configured to store data units or pointers to the data units, each of the plurality of flow queues being dynamically assigned to flows associated with the data unit; and a scheduler component configured to; identify a flow associated with the data unit; determine whether the flow associated with the data unit has been assigned to a flow queue in the plurality of flow queues; dynamically assign the flow associated with the data unit to an available flow queue when it is determined that the flow associated with the data unit has not been assigned to the flow queue in the plurality of flow queues; store the data unit in the available flow queue; determine whether a flow identifier associated with the flow queue matches a flow identifier associated with the flow when it is determined that the flow associated with the data unit has been assigned to the flow queue in the plurality of flow queues; and store the data unit in the flow queue when it is determined that a flow identifier, associated with the flow queue, matches the flow identifier associated with the flow. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A network device comprising:
logic, implemented in hardware, configured to; maintain a flow table including flow information for each of a plurality of flow, where the flow information for each flow includes a flow identifier, and a flow queue identifier; receive a packet; identify the flow identifier associated with the packet; determine whether the flow information associated with the flow identifier includes the flow queue identifier; identify an available flow queue from a pool of flow queues when it is determined that the flow information associated with the flow identifier does not include the flow queue identifier, where the pool of flow queues includes a number of flow queues equal to a maximum number of simultaneously processed packets; add the flow queue identifier associated with the available flow queue to the flow information associated with the flow identifier; assign the flow identifier to the available flow queue; and enqueue the packet in the available flow queue. - View Dependent Claims (17, 18, 19)
-
20. A method for queuing packets, comprising:
-
receiving a packet; identifying a flow associated with the packet; determining whether a flow queue has been assigned to the identified flow; dynamically assigning the identified flow to an available flow queue when it is determined that the flow queue has not been assigned to the identified flow; and enqueuing the packet into the available flow queue, where the available flow queue is selected from a pool of available flow queues, and where the pool of available flow queues is equal to a maximum number of queue slots. - View Dependent Claims (21, 22)
-
Specification