Claims
- 1. A method of operating a core router, comprising:
receiving a packet into a queue; determining an average queue length for the queue; determining a rate at which a length of the queue is increasing; updating a threshold utility as a function of the average queue length and the rate at which the queue length is increasing; and processing the packet based on the threshold utility.
- 2. The method of claim 1, wherein the average queue length is the arithmetic mean size of the queue calculated over a plurality of time intervals.
- 3. The method of claim 1, wherein the average queue length is determined by exponentially averaging the queue length.
- 4. The method of claim 1, wherein the rate at which the queue length is increasing is determined by calculating the difference between queue lengths during consecutive time intervals and dividing by a length of the time interval.
- 5. The method of claim 1, wherein the queue lengths are virtual queue lengths.
- 6. The method of claim 1, wherein the step of updating the threshold utility further comprises:
increasing the threshold utility by an increment factor when the average queue length is greater than an upper queue length threshold; increasing the threshold utility by an increment factor when the rate at which the queue length is increasing is greater than an increasing rate threshold; and decreasing the threshold utility by a decrement factor when the average queue length is less than a lower queue length threshold, and the rate at which the queue length is decreasing is greater than a decreasing rate threshold.
- 7. The method of claim 6, further comprising:
calculating the average incremental utility of a plurality of packets in the queue; calculating the difference between the average incremental utility and the threshold utility; calculating an expected number of time intervals necessary for the queue length to become greater than or equal to a maximum queue length; and calculating an increment factor based on the difference, the expected number of time intervals and a scaling factor.
- 8. The method of claim 7, wherein the step of calculating the average incremental utility comprises summing a plurality of incremental utilities corresponding to each packet in the queue and dividing the sum by the number of packets in the queue.
- 9. The method of claim 7, wherein the step of calculating the expected number of time intervals comprises calculating a ratio based on a difference between the maximum queue length and a current queue length and the rate at which the queue length is increasing.
- 10. The method of claim 6, further comprising:
comparing a rate at which the queue length is decreasing to a maximum rate at which the queue length may decrease; updating the decrement factor to a first specified percentage of the threshold utility if the rate at which the queue length is decreasing is less than or equal to a specified percentage of the maximum rate at which the queue length may decrease; and setting the decrement factor to a second specified percentage of the threshold utility if the rate at which the queue length is decreasing is greater than a specified percentage of the maximum rate at which the queue length may decrease.
- 11. The method of claim 1, wherein the step of processing the packet comprises:
determining an incremental packet utility corresponding to the received packet; comparing the threshold utility with the incremental packet utility; and processing the packet based on the comparison of the threshold utility with the incremental packet utility.
- 12. The method of claim 11, wherein the step of processing the packet further comprises forwarding the packet in the queue.
- 13. The method of claim 12, wherein the step of forwarding the packet in the queue comprises:
determining a current queue length for the queue; forwarding the packet in the queue if the current queue length and the average queue length are less than a lower queue threshold; and forwarding the packet in the queue if the incremental packet utility is greater than or equal to the threshold utility and the current queue length is less than a maximum queue length.
- 14. The method of claim 11, wherein the step of processing the packet in the queue further comprises dropping the packet in the queue.
- 15. The method of claim 14, wherein the step of dropping the packet in the queue comprises:
determining a current queue length for the queue; dropping the packet in the queue if the current queue length or the average queue length is grater than or equal to the lower queue threshold, and the incremental packet utility is less than the threshold utility; and dropping the packet in the queue if the current queue length is greater than or equal to a maximum queue length.
- 16. The method of claim 11, wherein the step of processing the packet in the queue further comprises modifying the incremental packet utility based on the received packet.
- 17. The method of claim 16, wherein the step of modifying the incremental packet utility further comprises decrementing the incremental packet utility by the value of the threshold utility.
- 18. The method of claim 1, wherein the step of updating is done at a periodic time interval.
- 19. The method of claim 1, wherein the step of updating is done at a time interval based on the reception of packets into the queue.
- 20. The method of claim 1, further comprising:
broadcasting the threshold utility to one or more hosts.
- 21. A computer-usable medium storing a program for operating a core router comprising:
means for receiving a packet into a queue; means for determining an average queue length for the queue; means for determining rate at which a length of the queue is increasing; means for updating a threshold utility as a function of the average queue length and the rate at which the queue length is increasing; and means for processing the packet based on the threshold utility.
- 22. A system for operating a core router comprising:
means for receiving a packet into a queue; means for determining an average queue length for the queue; means for determining rate at which a length of the queue is increasing; means for updating a threshold utility as a function of the average queue length and the average rate at which the queue length is increasing; and means for processing the packet based on the threshold utility.
- 23. The system of claim 22, further comprising:
means for broadcasting the threshold utility to one or more hosts.
RELATED APPLICATIONS
[0001] This application is related to U.S. patent application Ser. No. ______, Attorney Docket No.: CR00252M, entitled “Method and System for Operating an Edge Router”, filed on even date herewith and assigned to the same assignee, the subject matter of which is hereby incorporated by reference.