Claims
- 1. A method for managing asynchronous transfer mode (ATM) traffic in a computer system, the computer system used in sending, receiving, or sending and receiving a plurality of ATM flows, each of the plurality of ATM flows having a plurality of ATM cells, the method comprising the steps of:
(a) determining whether excess bandwidth exists for the plurality of ATM flows, each of the plurality of ATM flows having a minimum ATM bandwidth guarantee and a maximum ATM bandwidth; and (b) gracefully increasing a portion of the plurality of ATM cells transmitted for each ATM flow of a portion the plurality of ATM flows having excess bandwidth existing, the portion of the plurality of ATM cells transmitted being not more than the maximum ATM bandwidth limit and, if the plurality of ATM cells present a sufficient offered load, not less than a minimum ATM bandwidth guarantee.
- 2. The method of claim 1 wherein the portion of the plurality of ATM cells is transmitted based upon a transmission fraction between zero and one and wherein the gracefully increasing step (b) further includes the steps of:
(b1) linearly increasing the transmission fraction up to a limit of one.
- 3. The method of claim 2 wherein the excess bandwidth is determined over a refresh period, the excess bandwidth being represented by an excess bandwidth signal and wherein the linearly increasing step (b1) further includes the step of:
(b1i) adding a product of an exponentially weighted moving average of the excess bandwidth signal and a constant for the plurality of ATM cells to the transmission fraction for a previous refresh period.
- 4. The method of claim 1 further comprising the steps of:
(c) gracefully decreasing the portion of the plurality of ATM cells transmitted if the excess bandwidth does not exist.
- 5. The method of claim 4 wherein the portion of the plurality of ATM cells is transmitted based upon a transmission fraction between zero and one and wherein the gracefully decreasing step (b) further includes the steps of:
(b1) exponentially decreasing the transmission fraction toward zero by subtracting a term from a previous transmission fraction of a previous refresh period to obtain a current is transmission fraction for a current refresh period.
- 6. The method of claim 5 wherein the excess bandwidth is determined over a refresh period, the excess bandwidth being represented by an excess bandwidth signal and wherein the exponentially decreasing step (c1) further includes the step of:
(c1i) multiplying a constant and a ratio of an observed transmitted rate for the previous refresh period divided by a constant physical limit that any of the plurality of ATM flows could attain.
- 7. The method of claim 1 wherein computer system includes at least one queue and wherein the excess bandwidth determining step (a) further includes the steps of:
(a1) utilizing a queue occupancy and a rate of change of queue occupancy to determine whether excess bandwidth exists.
- 8. The method of claim 1 wherein the computer system includes a queue and wherein determining step (a) further includes the steps of:
(a1) determining excess bandwidth exists if the queue is less than a particular occupancy level.
- 9. The method of claim 1 further comprising the steps of:
(c) increasing the portion of the plurality of ATM cells transmitted if the portion of the plurality of ATM cells transmitted is less than the minimum ATM bandwidth guarantee and the plurality of ATM cells present the sufficient offered load.
- 10. The method of claim 1 further comprising the steps of:
(c) decreasing the portion of the plurality of ATM cells transmitted if the portion of the plurality of ATM cells transmitted is greater than the maximum ATM bandwidth guarantee.
- 11. The method of claim 1 wherein the plurality of ATM flows correspond to realtime traffic or non-realtime traffic, and wherein the portion of the ATM cells are transmitted to a first queue for the realtime traffic or a second queue for the non-realtime traffic, the method further comprising the step of:
(c) outputting the portion of the plurality of ATM cells for each of the plurality of ATM flows using a scheduler.
- 12. The method of claim 11 wherein the outputting step (c) further includes the step of:
(c1) selecting an ATM cell from the second queue only if the first queue is empty.
- 13. The method of claim 11 wherein a first sum of the maximum ATM bandwidth limit for each of the plurality of ATM flows corresponding to the realtime traffic plus a second sum of the minimum ATM bandwidth guarantee for each of the plurality of ATM flows corresponding to the non-realtime traffic is less than or equal to a maximum capacity of the computer system.
- 14. The method of claim 1 wherein each of the plurality of ATM flows have a corresponding priority and wherein the outputting step (c) further includes the steps of:
(c1) outputting the portion of the plurality of ATM cells based upon the corresponding priority.
- 15. A computer-readable medium including a program for managing asynchronous transfer mode (ATM) traffic in a computer system, the computer system used in sending, receiving, or sending and receiving a plurality of ATM flows, each of the plurality of ATM flows having a plurality of ATM cells, the program including instructions for:
(a) determining whether excess bandwidth exists for the plurality of ATM flows, each of the plurality of ATM flows having a minimum ATM bandwidth guarantee and a maximum ATM bandwidth limit; and (b) gracefully increasing a portion of the plurality of ATM cells transmitted for each ATM flow of a portion the plurality of ATM flows having excess bandwidth existing, the portion of the plurality of ATM cells transmitted being not more than the maximum ATM bandwidth limit and, if the plurality of ATM cells present a sufficient offered load, not less than a minimum ATM bandwidth guarantee.
- 16. The computer-readable medium of claim 15 wherein the portion of the plurality of ATM cells is transmitted based upon a transmission fraction between zero and one and wherein the gracefully increasing instructions (b) further includes instructions for:
(b1) linearly increasing the transmission fraction toward one.
- 17. The computer-readable medium of claim 16 wherein the excess bandwidth is determined over a refresh period, the excess bandwidth being represented by an excess bandwidth signal and wherein the linearly increasing instructions (b I) further includes instructions for:
(b1i) adding a product of an exponentially weighted average of the excess bandwidth signal and a constant for the plurality of ATM cells to the transmission fraction for a previous refresh period.
- 18. The computer-readable medium of claim 15 wherein the program further includes instructions for:
(c) gracefully decreasing the portion of the plurality of ATM cells transmitted if the excess bandwidth does not exist.
- 19. The computer-readable medium of claim 18 wherein the portion of the plurality of ATM cells is transmitted based upon a transmission fraction between zero and one and wherein the gracefully increasing instructions (b) further includes instructions for:
(b1) exponentially decreasing the transmission fraction toward zero by subtracting a term from a previous transmission fraction of a previous refresh period to obtain a current transmission fraction for a current refresh period.
- 20. The computer-readable medium of claim 19 wherein the excess bandwidth is determined over a refresh period, the excess bandwidth being represented by an excess bandwidth signal and wherein the exponentially decreasing instructions (c I) further includes instructions for:
(c1i) multiplying a constant and a ratio of an observed transmitted rate for the previous refresh period divided by a constant physical limit that any of the plurality of ATM flows could attain.
- 21. The computer-readable medium of claim 15 wherein computer system includes at least one queue and wherein the excess bandwidth determining instructions (a) further includes instructions for:
(a1) utilizing a queue occupancy and a rate of change of queue occupancy to determine whether excess bandwidth exists.
- 22. The computer-readable medium of claim 15 wherein the computer system 5 includes a queue and wherein determining instructions (a) further includes instructions for:
(a1) determining excess bandwidth exists if the queue is less than a particular occupancy level.
- 23. The computer-readable medium of claim 15 wherein the program further includes instructions for:
(c) increasing the portion of the plurality of ATM cells transmitted if the portion of the plurality of ATM cells transmitted is less than the minimum ATM bandwidth guarantee and the plurality of ATM cells present the sufficient offered load.
- 24. The computer-readable medium of claim 15 wherein the program further includes instructions for:
(c) decreasing the portion of the plurality of ATM cells transmitted if the portion of the plurality of ATM cells transmitted is greater than the maximum ATM bandwidth guarantee.
- 25. The computer-readable medium of claim 15 wherein the plurality of ATM flows correspond to realtime traffic or non-realtime traffic, and wherein the portion of the ATM cells are transmitted to a first queue for the realtime traffic or a second queue for the non-realtime traffic, the program further including instructions for:
(c) outputting the portion of the plurality of ATM cells for each of the plurality of ATM flows using a scheduler.
- 26. The computer-readable medium of claim 25 wherein the outputting instructions (c) further includes instructions for:
(c1) selecting an ATM cell from the second queue only if the first queue is empty.
- 27. The method of claim 25 wherein a first sum of the maximum ATM bandwidth limit for each of the plurality of ATM flows corresponding to the realtime traffic plus a second sum of the minimum ATM bandwidth guarantee for each of the plurality of ATM flows corresponding to the non-realtime traffic is less than or equal to a maximum capacity of the computer system.
- 28. The computer-readable medium of claim 15 wherein each of the plurality of ATM flows have a corresponding priority and wherein the outputting instructions (c) further includes instructions for:
(c1) outputting the portion of the plurality of ATM cells based upon the corresponding priority.
- 29. A system for managing asynchronous transfer mode (ATM) traffic in a computer system, the computer system used in sending, receiving, or sending and receiving a plurality of ATM flows, each of the plurality of ATM flows having a plurality of ATM cells, the system comprising:
at least one queue for use in transmitting traffic through the network; and an enqueueing mechanism for determining whether excess bandwidth exists for the plurality of ATM flows, each of the plurality of ATM flows having a minimum ATM bandwidth guarantee and a maximum ATM bandwidth limit, the enqueueing mechanism also for gracefully increasing a portion of the plurality of ATM cells transmitted for each ATM flow of a portion the plurality of ATM flows having excess bandwidth existing, the portion of the plurality of ATM cells transmitted being not more than the maximum ATM bandwidth limit and, if the plurality of ATM cells present a sufficient offered load, not less than a minimum ATM bandwidth guarantee.
- 30. The system of claim 29 wherein the portion of the plurality of ATM cells is transmitted based upon a transmission fraction between zero and one and wherein the enqueueing mechanism gracefully increases the portion of the plurality of ATM cells by is linearly increases the transmission fraction toward one.
- 31. The system of claim 30 wherein the excess bandwidth is determined over a refresh period, the excess bandwidth being represented by an excess bandwidth signal and wherein the enqueueing mechanism linearly increases the transmission fraction by adding a product of an exponentially weighted average of the excess bandwidth signal and a constant for the plurality of ATM cells to the transmission fraction for a previous refresh period.
- 32. The system of claim 29 wherein the enqueueing mechanism further gracefully decreases the portion of the plurality of ATM cells transmitted if the excess bandwidth does not exist.
- 33. The system of claim 32 wherein the portion of the plurality of ATM cells is transmitted based upon a transmission fraction between zero and one and wherein enqueueing mechanism gracefully decreases the portion of the plurality of ATM cells transmitted by exponentially decreasing the transmission fraction toward zero.
- 34. The system of claim 33 wherein the excess bandwidth is determined over a refresh period, the excess bandwidth being represented by an excess bandwidth signal and wherein the enqueueing mechanism exponentially decreases the transmission fraction by subtracting from the transmission fraction for a previous refresh period a constant multiplied by the ratio of the observed transmitted rate divided by a maximum possible physical flow rate.
- 35. The system of claim 29 wherein enqueueing mechanism determines whether excess bandwidth exists by utilizing a queue occupancy and a rate of change of queue occupancy to determine whether excess bandwidth exists.
- 36. The system of claim 29 wherein enqueueing mechanism determines that excess bandwidth exists if the queue is less than a particular occupancy level.
- 37. The system of claim 29 wherein the enqueueing mechanism further increases the portion of the plurality of ATM cells transmitted if the portion of the plurality of ATM cells transmitted is less than the minimum ATM bandwidth guarantee and the plurality of ATM cells present the sufficient offered load.
- 38. The system of claim 29 wherein the enqueueing mechanism further decreases the portion of the plurality of ATM cells transmitted if the portion of the plurality of ATM cells transmitted is greater than the maximum ATM bandwidth guarantee.
- 39. The system of claim 29 wherein the plurality of ATM flows correspond to realtime traffic or non-realtime traffic, wherein the portion of the ATM cells are transmitted to a first queue for the realtime traffic or a second queue for the non-realtime traffic, the system further comprising:
a scheduler, coupled with the first queue and the second queue, for outputting the portion of the plurality of ATM cells.
- 40. The system of claim 39 wherein the scheduler selecting a packet from the second queue only if the first queue is empty.
- 41. The system of claim 39 wherein a first sum of the maximum ATM bandwidth limit for each of the plurality of ATM flows corresponding to the realtime traffic plus a second sum of the minimum ATM bandwidth guarantee for each of the plurality of ATM flows corresponding to the non-realtime traffic is less than or equal to a maximum capacity of the computer system.
- 42. The system of claim 29 wherein each of the plurality of ATM flows have a corresponding priority and wherein the outputting instructions (c) further includes instructions for:
(c1) outputting the portion of the plurality of ATM cells based upon the corresponding priority.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present invention is related to co-pending U.S. patent application Ser. No. 10/117,814 and entitled “METHOD AND SYSTEM FOR PRIORITY ENFORCEMENT WITH FLOW CONTROL” and assigned to the assignee of the present invention. The present invention is also related to co-pending U.S. patent application Ser. No. 10/118,493, entitled “PRIORITY-BASED BANDWIDTH ALLOCATION WITHIN REALTIME AND NON-REALTIME SERVICES” and assigned to the assignee of the present invention.