Claims
- 1. A method for automatically allocating bandwidth among many pipes in a network comprising the acts of:
a) providing a first device in which information received is associated with one of the many pipes; b) predefined characteristics of the information are determined and transmit/discard decisions are made; and c) providing a second device in which transmit probability Ti for each of the many pipes is calculated and returned to the first device which uses said Ti to make the transmit/discard decision.
- 2. The method of claim 1 wherein the predefined characteristics of packets are forwarded to the second device and is used to generate Ti.
- 3. The method of claims 1 or 2 wherein the first device includes a specialized computer.
- 4. The method of claim 3 wherein the specialized computer includes a network processor.
- 5. The method of claims 1 or 2 wherein the second device includes a general purpose computer.
- 6. The method of claim 1 wherein the information includes packets.
- 7. The method of claim 1 wherein the information includes instructions.
- 8. The method of claim 1 further including the acts of storing predefined information in said first device; and
periodically sending stored information to the second device.
- 9. The method of claim 8 wherein the stored information relates to each pipe and includes
a) the current transmit probability Ti; b) measured values such as the current transmitted rate of pipe I c) occupancy of the processing queue and the rate of change of the occupancy of the processing queue d) various per-pipe configuration values including each pipe minimum bandwidth guarantee mini, each pipe maximum bandwidth limit maxi, and each pipe precedence (an integer=0, 1, 2, 3, . . . ).
- 10. A method for managing flows in a network comprising the acts of:
a) characterizing received information as high speed flows and low speed flows; b) generating a transmit probability Ti for the high speed flows; c) generating a transmit probability Tj for the low speed flow; d) updating Ti every X time interval wherein X is a predefined value; and e) updating Tj every MX time interval wherein M is a predefined value greater than 1.
- 11. The method of claim 10 further including the acts of:
using a random number generator to generate random numbers; if high speed flow information is received during the X time interval, determining the disposition of said high speed flow information based upon relation between Ti and selected random number.
- 12. The method of claim 11 further including the act of if low speed information is received during the MX time interval, determining the disposition of the low speed flow information based upon relationship between Tj and the selected random number.
- 13. The method of claim 12 wherein the information includes packets from a network.
- 14. The method of claim 12 wherein the information includes computer instructions.
- 15. A communication system including:
a plurality of flows in which packets are placed; a random number generator for generating random numbers; a special purpose computer including a Patricia tree data structure in which flow characteristics information including transmission probability (Ti) for selected ones of the flows, are stored and a flow control device that associates a packet with a flow and using the Ti for the flow and a random number to generate a decision for said packet.
- 16. The communication system of claim 15 wherein the decision is to forward the packet.
- 17. The communication system of claim 15 wherein the decision is to drop the packet.
- 18. The communication system of claim 16 wherein the decision is to postpone action on said packet.
- 19. The communication system of claim 18 wherein the packet includes computer instructions.
- 20. The communication system of claim 19 wherein the special purpose computer includes a network processor.
- 21. The communication system of claim 15 further including a general purpose computer executing a first predefined algorithm containing variables representing characteristic information for selected ones of the flows and generating transmission probability Tj; and
means for forwarding Tj to be stored in said Patricia tree data structure.
- 22. The communication system of claim 15 wherein the special purpose computer executes a second predefined algorithm containing flow characteristics associated with selected ones of the flow to generate Ti.
- 23. The communications systems of claim 21 or 22 wherein the first predefined algorithm and second predefined algorithm are identical.
CROSS REFERENCE TO RELATED APPLICATIONS AND PATENTS
[0001] The present invention relates to the following documents, all of which have been assigned to the assignee of the present invention and are fully incorporated by reference herein.
[0002] Patent application Ser. No. 10/405,673 filed Apr. 1, 2003, by Ganesh Balakrishnan, et al., entitled “Method and System for Managing Traffic within a Data Communication Network”.
[0003] U.S. Pat. No. 6,404,752 filed Aug. 27, 1999, issued Jun. 11, 2002, entitled “Network Switch Using Network Processor and Methods”.
[0004] Patent application Ser. No. 09/543531, filed Apr. 6, 2000, by Brian M. Bass, et al., entitled “Full Match (FM) Search Algorithm Implementation for a Network Processor”.