Claims
- 1. A method for controlling packet traffic using a hardware-based rate control engine comprising:
establishing a refresh rate that represents a number of credits that are allocated to a credit bucket in a time-slice; establishing a maximum credit limit that represents the maximum number of credits that can be accumulated in said credit bucket; establishing a maximum drain rate that represents the maximum number of credits that can be drained from said credit bucket in a single time-slice; setting said refresh rate, said maximum credit limit, and said maximum drain rate in registers of a hardware-based rate control engine; allowing credits to accumulate in said credit bucket over multiple time-slices up to a maximum of said maximum credit limit; allocating credits from the credit bucket to packet traffic that is associated with said credit bucket; and restricting the allocation of credits from said credit bucket in any single time-slice to the maximum drain rate.
- 2. The method of claim 1 further comprising characterizing the flow of said packet traffic that is associated with said credit bucket.
- 3. The method of claim 2 wherein the flow of said packet traffic is characterized as either bursty or smooth.
- 4. The method of claim 3 further including changing at least one of said refresh rate, said maximum credit limit, and said maximum drain limit depending on whether said packet traffic is characterized as bursty or smooth.
- 5. The method of claim 2 wherein characterizing said packet traffic further includes obtaining multiple samples of said packet traffic.
- 6. The method of claim 5 wherein characterizing said packet traffic includes:
determining an actual rate of said packet traffic from said multiple samples; and identifying said packet traffic as bursty if said actual rate exceeds said refresh rate by an established threshold.
- 7. The method of claim 5 wherein characterizing said packet traffic includes:
determining actual rates of said packet traffic from each of said multiple samples; determining a deviation between said actual rates of said packet traffic; and identifying said traffic flow as bursty if said deviation between said actual rates exceeds a deviation threshold.
- 8. The method of claim 2 further including automatically changing at least one of said refresh rate, said maximum credit limit, and said maximum drain rate in response to said characterization.
- 9. The method of claim 2 further including automatically changing said refresh rate, said maximum credit limit, and said maximum drain rate as an entire set in response to said characterization.
- 10. The method of claim 9 further including selecting a set of a refresh rate, a maximum credit limit, and a maximum drain rate from a memory and writing said set into respective registers of said hardware-based rate control engine.
- 11. The method of claim 1 further including:
classifying each packet of said packet traffic; and applying class-specific rate control to said packet traffic.
- 12. The method of claim 11 further including setting class-specific refresh rates, maximum credit limits, and maximum drain rates in registers of said hardware-based rate control engine.
- 13. The method of claim 12 further including characterizing the flow of said packet traffic on a class-specific basis and changing said class-specific refresh rates, maximum credit limits, and maximum drain rates in response to said class-specific characterizations.
- 14. A system for controlling packet traffic comprising:
a rate control engine; a settings controller connected to said rate control engine; and a settings memory connected to provide rate control settings to said rate control engine; wherein;
said settings controller is configured to provide said rate control engine with a refresh rate, a maximum credit limit, and a maximum drain rate from said settings memory; said rate control engine being configured to:
allow credits to accumulate in a credit bucket at said refresh rate over multiple time-slices up to a maximum of said maximum credit limit; allocate credits from the credit bucket to packet traffic that is associated with said credit bucket; and restrict the allocation of credits from said credit bucket in any single time-slice to the maximum drain rate.
- 15. The system of claim 14 further comprising a characterization engine configured to characterize the flow of packet traffic that is associated with said credit bucket and to communicate said characterization to said settings controller.
- 16. The system of claim 15 wherein said flow characterization engine characterizes the flow of said packet traffic as either bursty or smooth.
- 17. The system of claim 16 wherein said settings controller includes logic for causing the change of at least one of said refresh rate, said maximum credit limit, and said maximum drain limit depending on whether said packet traffic is bursty or smooth.
- 18. The system of claim 15 wherein said flow characterization engine is configured to obtain multiple samples of said packet traffic.
- 19. The system of claim 18 wherein said flow characterization engine is configured to:
determine an actual rate of said packet traffic from said multiple samples; and identify said packet traffic as bursty if said actual rate exceeds said refresh rate by an established threshold.
- 20. The system of claim 18 wherein said flow characterization engine is configured to:
determine actual rates of said packet traffic from each of said multiple samples; determine a deviation between said actual rates of said packet traffic; and identify said traffic flow as bursty if said deviation between said actual rates exceeds a deviation threshold.
- 21. The system of claim 15 wherein said settings controller is configured to change at least one of said refresh rate, said maximum credit limit, and said maximum drain rate in response to said characterization of said traffic flow from said traffic characterization engine.
- 22. The system of claim 15 wherein said settings controller is configured to change said refresh rate, said maximum credit limit, and said maximum drain rate as an entire set in response to said characterization of said traffic flow from said traffic characterization engine.
- 23. The system of claim 22 wherein said settings controller is configured to select a set of a refresh rate, a maximum credit limit, and a maximum drain rate from said settings memory.
- 24. The system of claim 14 further including a classification engine configured to classify each packet of said packet traffic, and wherein said rate control engine and said settings controller are configured to apply class-specific rate control to said packet traffic.
- 25. The system of claim 24 wherein said settings controller is configured to set class-specific refresh rates, maximum credit limits, and maximum drain rates in registers of said rate control engine.
- 26. The system of claim 25 further including a traffic characterization engine configured to characterize the flow of packet traffic that is associated with said credit bucket and to communicate said characterization to said settings controller and wherein said settings controller is configured to change said class-specific refresh rates, maximum credit limits, and maximum drain rates in response to said class-specific characterization.
- 27. The system of claim 26 wherein said settings controller is configured to change at least one of said class-specific refresh rates, maximum credit limits, and maximum drain rates depending on whether traffic is bursty or smooth.
- 28. A rate-limiting system comprising:
a rate control engine configured to;
allow credits to accumulate in a credit bucket at a refresh rate over multiple time-slices up to a maximum credit limit;
allocate credits from said credit bucket to packet traffic that is associated with said credit bucket; and restrict the allocation of credits from said credit bucket in any single time-slice to a maximum drain rate; and a rate control adaption engine configured to characterize traffic and to adapt at least one of said refresh rate, said maximum credit limit, and said maximum drain rate in response to said traffic characterization.
- 29. The system of claim 28 wherein said rate control adaption engine characterizes the flow of said packet traffic as either bursty or smooth.
- 30. The system of claim 29 wherein said rate control adaption engine includes logic for causing the change of at least one of said refresh rate, said maximum credit limit, and said maximum drain limit depending on whether said packet traffic is characterized as bursty or smooth.
- 31. The system of claim 29 wherein said rate control adaption engine is configured to obtain multiple samples of said packet traffic.
- 32. The system of claim 31 wherein said rate control adaption engine is configured to:
determine an actual rate of said packet traffic from said multiple samples; and identify said packet traffic as bursty if said actual rate exceeds said refresh rate by an established threshold.
- 33. The system of claim 32 wherein said rate control adaption engine is configured to:
determine actual rates of said packet traffic from each of said multiple samples; determine a deviation between said actual rates of said packet traffic; and identify said traffic flow as bursty if said deviation between said actual rates exceeds a deviation threshold.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application is entitled to the benefit of provisional U.S. Patent Application Serial No. 60/385,978, filed Jun. 4, 2002.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60385978 |
Jun 2002 |
US |