Claims
- 1. A method for dynamically adjusting the flow rate of a plurality of pipes that feed into a shared queue, said method comprising:
setting a minimum flow and a maximum flow for each of said plurality of pipes; determining whether or not excess queue bandwidth exists in accordance with a queue output flow rate; in response to the existence of excess queue bandwidth, linearly increasing a flow rate of a pipe; and in response to a lack of excess queue bandwidth, exponentially decreasing a flow rate of a pipe.
- 2. The method of claim 1, wherein said step of determining whether or not excess bandwidth exists comprises comparing said queue output flow rate with a pre-determined threshold queue output value.
- 3. The method of claim 2, wherein said step of determining whether or not excess bandwidth exists further comprises setting an instantaneous bandwidth signal in accordance with a single comparison of said queue output flow rate with said pre-determined threshold queue output value.
- 4. The method of claim 3, wherein said step of determining whether or not excess bandwidth exists further comprises setting an excess bandwidth signal to be an exponentially weighted average of said instantaneous excess bandwidth signal.
- 5. The method of claim 1, wherein the flow rate for a pipe among said plurality of pipes is evaluated as being equal to an offered rate multiplied by a transmit fraction.
- 6. The method of claim 5, wherein said step of linearly increasing a flow rate of a pipe further comprises setting said transmit fraction for said pipe in accordance with the relation:
- 7. The method of claim 6, wherein Ci is determined in accordance with the relation:
- 8. The method of claim 5, wherein said step of exponentially decreasing a flow rate of a pipe further comprises setting a transmit fraction for said pipe in accordance with the relation:
- 9. The method of claim 8, wherein Di is determined in accordance with the relation:
- 10. The method of claim 5, wherein said plurality of pipes forms a hierarchy of pipes and subpipes wherein if a subpipe offers traffic at or below its guaranteed minimum rate then it is fully transmitted.
- 11. The method of claim 10, wherein said plurality of pipes may be divided into a plurality of behavior aggregate flows.
- 12. The method of claim 11, wherein each of said plurality of behavior aggregate flows comprises a plurality of subpipes, and wherein said method further comprises in response to the sum of offered rates of said plurality of subpipes being at or below the sum of the guaranteed minimum rates of said plurality of subpipes, fully transmitting each of said plurality of subpipes.
- 13. A system for dynamically adjusting the flow rate of a plurality of pipes that feed into a shared queue, said system comprising:
processing means for setting a minimum flow and a maximum flow for each of said plurality of pipes; processing means for determining whether or not excess queue bandwidth exists in accordance with a queue output flow rate; processing means responsive to the existence of excess queue bandwidth for linearly increasing a flow rate of a pipe; and processing means responsive to a lack of excess queue bandwidth for exponentially decreasing a flow rate of a pipe.
- 14. The system of claim 13, further comprising processing means for comparing said queue output flow rate with a pre-determined threshold queue output value.
- 15. The system of claim 14, further comprising processing means for setting an instantaneous bandwidth signal in accordance with a single comparison of said queue output flow rate with said pre-determined threshold queue output value.
- 16. The system of claim 15, further comprising processing means for setting an excess bandwidth signal to be an exponentially weighted average of said instantaneous excess bandwidth signal.
- 17. The system of claim 15, further comprising processing means for setting an excess bandwidth signal to be an exponentially weighted average of said instantaneous excess bandwidth signal.
- 18. The system of claim 17, further comprising processing means for setting said transmit fraction for said pipe in accordance with the relation:
- 19. The system of claim 18, further comprising processing means for determining Ci in accordance with the relation:
- 20. The system of claim 17, further comprising processing means for setting a transmit fraction for said pipe in accordance with the relation:
- 21. The system of claim 20, further comprising processing means for determining Di in accordance with the relation:
- 22. The system of claim 17, wherein said plurality of pipes forms a hierarchy of pipes and subpipes, said system further comprising processing means for responsive to a subpipe offering traffic at or below its guaranteed minimum rate for fully transmitting said subpipe.
- 23. The system of claim 22, wherein said plurality of pipes may be divided into a plurality of behavior aggregate flows.
- 24. The system of claim 23, wherein each of said plurality of behavior aggregate flows comprises a plurality of subpipes, and wherein said system further comprises processing means responsive to the sum of offered rates of said plurality of subpipes being at or below the sum of the guaranteed minimum rates of said plurality of subpipes, for fully transmitting each of said plurality of subpipes.
- 25. A computer program product for dynamically adjusting the flow rate of a plurality of pipes that feed into a shared queue, said computer program product comprising:
instruction means for setting a minimum flow and a maximum flow for each of said plurality of pipes; instruction means for determining whether or not excess queue bandwidth exists in accordance with a queue output flow rate; instruction means responsive to the existence of excess queue bandwidth for linearly increasing a flow rate of a pipe; and instruction means responsive to a lack of excess queue bandwidth for exponentially decreasing a flow rate of a pipe.
- 26. The computer program product of claim 25, further comprising instruction means for comparing said queue output flow rate with a pre-determined threshold queue output value.
- 27. The computer program product of claim 26, further comprising instruction means for setting an instantaneous bandwidth signal in accordance with a single comparison of said queue output flow rate with said pre-determined threshold queue output value.
- 28. The computer program product of claim 27, further comprising instruction means for setting an excess bandwidth signal to be an exponentially weighted average of said instantaneous excess bandwidth signal.
- 29. The computer program product of claim 27, wherein the flow rate for a pipe among said plurality of pipes is evaluated as being equal to an offered rate multiplied by a transmit fraction.
- 30. The computer program product of claim 29, further comprising instruction means for setting said transmit fraction for said pipe in accordance with the relation:
- 31. The computer program product of claim 30, further comprising instruction means for determining Ci in accordance with the relation:
- 32. The computer program product of claim 29, further comprising instruction means for setting a transmit fraction for said pipe in accordance with the relation:
- 33. The computer program product of claim 32, further comprising instruction means for determining Di in accordance with the relation:
- 34. The computer program product of claim 29, wherein said plurality of pipes forms a hierarchy of pipes and subpipes, said computer program product further comprising instruction means for responsive to a subpipe offering traffic at or below its guaranteed minimum rate for fully transmitting said subpipe.
- 35. The computer program product of claim 34, wherein said plurality of pipes may be divided into a plurality of behavior aggregate flows.
- 36. The computer program product of claim 35, wherein each of said plurality of behavior aggregate flows comprises a plurality of subpipes, and wherein said computer program product further comprises instruction means responsive to the sum of offered rates of said plurality of subpipes being at or below the sum of the guaranteed minimum rates of said plurality of subpipes, for fully transmitting each of said plurality of subpipes.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present application is related to the following copending U.S. patent applications: U.S. patent application Ser. No. 09/448,380 (Docket No. RAL9-99-0098) filed on Nov. 23, 1999, titled “Method And System For Controlling Transmission of Packets In Computer Networks”; U.S. patent application Ser. No. 09/448,190 (Docket No. RAL9-99-0136) filed on Nov. 23, 1999, titled “Method And System For Providing Optimal Discard Fraction”; and U.S. patent application Ser. No. 09/448,197 (Docket No. RAL9-99-0138) filed on Nov. 23, 1999, titled “Method And System For Providing Differentiated Services In Computer Networks”. The above-mentioned patent applications are assigned to the assignee of the present invention and are incorporated herein by reference.