Dynamic queue threshold extensions to random early detection
First Claim
Patent Images
1. A system for providing congestion control, comprising:
- a buffer memory configured to temporarily store data in a plurality of queues; and
a processor configured to;
measure a total amount of memory occupied by the plurality of queues in the buffer memory,modify lengths of the plurality of queues based on the total amount of memory occupied, where modifying the lengths of the plurality of queues includes decreasing the lengths of the plurality of queues when the total amount of memory occupied increases; and
modify drop profiles associated with the plurality of queues based on the total amount of memory occupied.
1 Assignment
0 Petitions
Accused Products
Abstract
A buffer memory may be configured to temporarily store data in a number of queues. A processor may be configured to measure a fullness of the buffer memory. The processor may also be configured to assign sizes to the number of queues based on the fullness of the buffer memory. The processor may also adjust thresholds of drop profiles associated with the number of queues based on the sizes assigned to the number of queues.
-
Citations
22 Claims
-
1. A system for providing congestion control, comprising:
-
a buffer memory configured to temporarily store data in a plurality of queues; and a processor configured to; measure a total amount of memory occupied by the plurality of queues in the buffer memory, modify lengths of the plurality of queues based on the total amount of memory occupied, where modifying the lengths of the plurality of queues includes decreasing the lengths of the plurality of queues when the total amount of memory occupied increases; and modify drop profiles associated with the plurality of queues based on the total amount of memory occupied. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for providing congestion control, comprising:
-
a buffer memory configured to temporarily store data in a plurality of queues; and a processor configured to; measure a total amount of memory occupied by the plurality of queues in the buffer memory, modify lengths of the plurality of queues based on the total amount of memory occupied, and modify drop profiles associated with the plurality of queues based on the total amount of memory occupied, where modifying the drop profiles includes changing minimum queue thresholds and maximum queue thresholds associated with the drop profiles based on the lengths of the plurality of queues and where the minimum queue thresholds and the maximum queue thresholds are respectively percentages of the lengths of the plurality of queues.
-
-
8. A system for providing congestion control, comprising:
-
a buffer memory configured to temporarily store data in a plurality of queues; and a processor configured to; measure a total amount of memory occupied by the plurality of queues in the buffer memory, modify lengths of the plurality of queues based on the total amount of memory occupied, modify drop profiles associated with the plurality of queues based on the total amount of memory occupied, and selectively drop data from the plurality of queues based on the drop profiles, where when selectively dropping data from the plurality of queues, the processor is configured to; randomly drop data from at least one queue when a queue fullness is between a minimum queue threshold and a maximum queue threshold associated with a drop profile of the at least one queue, and not drop data from the at least one queue when the queue fullness is less than the minimum queue threshold associated with the drop profile of the at least one queue.
-
-
9. A device, comprising:
-
a buffer memory configured to temporarily store data in a plurality of queues; and a processor configured to; measure a fullness of the buffer memory, assign sizes to the plurality of queues based on the fullness of the buffer memory and based on a memory usage region into which the fullness of the buffer memory falls, and adjust thresholds of drop profiles associated with the plurality of queues based on the sizes assigned to the plurality of queues. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A device, comprising:
-
a buffer memory configured to temporarily store data in a plurality of queues; and a processor configured to; measure a fullness of the buffer memory, assign sizes to the plurality of queues based on the fullness of the buffer memory, and adjust thresholds of drop profiles associated with the plurality of queues based on the sizes assigned to the plurality of queues, where when adjusting thresholds of the drop profiles, the processor is configured to; change minimum queue thresholds and maximum queue thresholds of the drop profiles by determining respective percentages of the sizes of the plurality of queues.
-
-
16. A method for providing congestion control for data stored in queues, comprising:
-
periodically measuring a fullness of a memory that contains the queues; decreasing sizes of the queues when the fullness of the memory increases; increasing sizes of the queues when the fullness of the memory decreases; and adjusting queue fullness thresholds based on the sizes of the queues, the queue fullness thresholds for a particular queue defining a queue fullness region inside which the data in the particular queue is randomly dropped. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A method for providing congestion control for data stored in queues, comprising:
-
dynamically changing oversubscription of the queues based on total usage of a memory that contains the queues to set new lengths for the queues; and performing random early detection on the queues based on the new lengths, where the performing includes; determining minimum and maximum queue fullness thresholds from percentages of the new lengths, and randomly dropping data from one of the queues when a fullness of the one queue falls between the minimum and maximum queue fullness thresholds.
-
-
22. A system for providing congestion control for data stored in queues, comprising:
-
means for measuring memory usage; means for updating a length of a queue based on the measured memory usage; means for updating minimum and maximum thresholds of a drop profile associated with the queue based on the updated length of the queue, where the minimum and maximum thresholds are respectively percentages of the length of the queue; and means for selectively dropping data from the queue based on the updated minimum and maximum thresholds of the drop profile associated with the queue.
-
Specification