Claims
- 1. A scheduler for a network processor, the scheduler including a scheduling queue in which weighted fair queuing is applied, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where:
WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; wherein the scaling factor SF is adjusted depending on a result of comparing the distance D to the range R.
- 2. The scheduler of claim 1, wherein SF is increased if D>R.
- 3. The scheduler of claim 2, wherein SF is increased if D exceeds R in regard to a predetermined number of calculations of D.
- 4. The scheduler of claim 2, wherein SF is decreased if D<R/2.
- 5. The scheduler of claim 4, wherein SF is decreased if D is less than one-half R in regard to a predetermined number of calculations of D.
- 6. The scheduler of claim 1, wherein SF=2n, n being a positive integer.
- 7. A scheduler of claim 6, wherein n is incremented to adjust SF.
- 8. The scheduler of claim 6, wherein n is decremented to adjust SF.
- 9. A method of managing a scheduling queue in a scheduler for a network processor, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where:
WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; the method comprising:
calculating the distance D with respect to a particular flow to be enqueued; comparing the distance D to the range R; and adjusting the scaling factor SF based on a result of the comparing step.
- 10. The method of claim 9, wherein the scaling factor SF is increased if the comparing step determines that D>R.
- 11. The method of claim 9, wherein the scaling factor SF is decreased if the comparing step determines that D<R/2.
- 12. The method of claim 9, wherein SF=2n, n being a positive integer, and the adjusting step includes incrementing or decrementing n.
- 13. A method of managing a scheduling queue in a scheduler for a network processor, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where:
WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; the method comprising:
calculating the distance D with respect to a particular flow to be enqueued; comparing the distance D to the range R; incrementing a counter if the comparing step determines that D>R; and increasing SF if the incremented counter exceeds a threshold.
- 14. The method of claim 13, wherein SF=2n, n being a positive integer, and the increasing step includes incrementing n.
- 15. A method of managing a scheduling queue in a scheduler for a network processor, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where:
WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; the method comprising:
calculating the distance D with respect to a particular flow to be enqueued; comparing the distance D to the range R; incrementing a counter if the comparing step determines that D<R/2; and decreasing SF if the incremented counter exceeds a threshold.
- 16. The method of claim 15, further comprising:
clearing the counter if the comparing step determines that D>R/2.
- 17. The method of claim 15, wherein SF=2n, n being a positive integer, and the decreasing step includes decrementing n.
- 18. A method of managing a scheduling queue in a scheduler for a network processor, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where:
WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; the method comprising:
calculating the distance D with respect to a particular flow to be enqueued; comparing the distance D to the range R; incrementing a first counter if the comparing step determines that D>R; increasing SF if the incremented first counter exceeds a first threshold; incrementing a second counter if the comparing step determines that D<R/2; and decreasing SF if the incremented second counter exceeds a second threshold.
- 19. The method of claim 18, further comprising:
clearing the second counter if the comparing step determines that D>R/2.
- 20. The method of claim 18, wherein SF=2n, n being a positive integer, the increasing step includes incrementing n, and the decreasing step includes decrementing n.
- 21. A method of managing a scheduling queue in a scheduler for a network processor, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where:
WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; the method comprising:
calculating the distance D with respect to a particular flow to be enqueued; comparing the distance D to the range R; and increasing SF if the distance D exceeds the range R.
- 22. A method of managing a scheduling queue in a scheduler for a network processor, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where:
WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; the method comprising:
calculating the distance D with respect to a particular flow to be enqueued; comparing the distance D to the range R; increasing SF if the distance D exceeds the range R; incrementing a counter if the comparing step determines that D<R/2; and decreasing SF if the incremented counter exceeds a threshold.
- 23. A scheduler for a network processor, the scheduler including:
a scheduling queue in which weighted fair queuing is applied, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where: WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; wherein the scheduler is adapted to:
calculate the distance D with respect to a particular flow to be enqueued; compare the distance D to the range R; increment a counter if the comparison of the distance D to the range R determines that D>R; and increase SF if the incremented counter exceeds a threshold.
- 24. A scheduler for a network processor, the scheduler including:
a scheduling queue in which weighted fair queuing is applied, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where: WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; wherein the scheduler is adapted to:
calculate the distance D with respect to a particular flow to be enqueued; compare the distance D to the range R; increment a counter if the comparison of the distance D to the range R determines that D<R/2; and decrease SF if the incremented counter exceeds a threshold.
- 25. A scheduler for a network processor, the scheduler including:
a scheduling queue in which weighted fair queuing is applied, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where: WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; wherein the scheduler is adapted to:
calculate the distance D with respect to a particular flow to be enqueued; compare the distance D to the range R; increment a first counter if the comparison of the distance D to the range R determines that D>R; increase SF if the incremented first counter exceeds a first threshold; increment a second counter if the comparison of the distance D to the range R determines that D<R/2; and decrease SF if the incremented second counter exceeds a second threshold.
- 26. A scheduler for a network processor, the scheduler including:
a scheduling queue in which weighted fair queuing is applied, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where: WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; wherein the scheduler is adapted to:
calculate the distance D with respect to a particular flow to be enqueued; compare the distance D to the range R; and increase SF if the distance D exceeds the range R.
- 27. A scheduler for a network processor, the scheduler including:
a scheduling queue in which weighted fair queuing is applied, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where: WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; wherein the scheduler is adapted to:
calculate the distance D with respect to a particular flow to be enqueued; compare the distance D to the range R; increase SF if the distance D exceeds the range R; increment a counter if the comparison of the distance D to the range R determines that D<R/2; and decrease SF if the incremented counter exceeds a threshold.
- 28. A computer program product for use with a scheduler for a network processor, the scheduler including:
a scheduling queue in which weighted fair queuing is applied, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where:
WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; the computer program product comprising:
a medium readable by a computer, the computer readable medium having computer program code adapted to:
calculate the distance D with respect to a particular flow to be enqueued; compare the distance D to the range R; increment a counter if the comparison of the distance D to the range R determines that D>R; and increase SF if the incremented counter exceeds a threshold.
- 29. A computer program product for use with a scheduler for a network processor, the scheduler including:
a scheduling queue in which weighted fair queuing is applied, the scheduling queue having a range R. flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where:
WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; the computer program product comprising:
a medium readable by a computer, the computer readable medium having computer program code adapted to:
calculate the distance D with respect to a particular flow to be enqueued; compare the distance D to the range R; increment a counter if the comparison of the distance D to the range R determines that D<R/2; and decrease SF if the incremented counter exceeds a threshold.
- 30. A computer program product for use with a scheduler for a network processor, the scheduler including:
a scheduling queue in which weighted fair queuing is applied, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where:
WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; the computer program product comprising:
a medium readable by a computer, the computer readable medium having computer program code adapted to:
calculate the distance D with respect to a particular flow to be enqueued; compare the distance D to the range R; increment a first counter if the comparison of the distance D to the range R determines that D>R; increase SF if the incremented first counter exceeds a first threshold; increment a second counter if the comparison of the distance D to the range R determines that D<R/2; and decrease SF if the incremented second counter exceeds a second threshold.
- 31. A computer program product for use with a scheduler for a network processor, the scheduler including:
a scheduling queue in which weighted fair queuing is applied, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where:
WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; the computer program product comprising:
a medium readable by a computer, the computer readable medium having computer program code adapted to:
calculate the distance D with respect to a particular flow to be enqueued; compare the distance D to the range R; and increase SF if the distance D exceeds the range R.
- 32. A computer program product for use with a scheduler for a network processor, the scheduler including:
a scheduling queue in which weighted fair queuing is applied, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where:
WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; the computer program product comprising:
a medium readable by a computer, the computer readable medium having computer program code adapted to:
calculate the distance D with respect to a particular flow to be enqueued; compare the distance D to the range R; increase SF if the distance D exceeds the range R; increment a counter if the comparison of the distance D to the range R determines that D<R/2; and decrease SF if the incremented counter exceeds a threshold.
- 33. A computer program product for use with a scheduler for a network processor, the scheduler including:
a scheduling queue in which weighted fair queuing is applied, the scheduling queue having a range R, flows being attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being calculated for each flow according to the formula D=((WF×FS)/SF), where:
WF is a weighting factor applicable to a respective flow; FS is a frame size attributable to the respective flow; and SF is a scaling factor; the computer program product comprising:
a medium readable by a computer, the computer readable medium having computer program code adapted to:
calculate the distance D with respect to a particular flow to be enqueued; compare the distance D to the range R; and adjust the scaling factor SF based on a result of the comparison of the distance D to the range R.
CROSS REFERENCE TO RELATED PATENT APPLICATIONS
[0001] The present application is related to the following U.S. patent applications Ser. No., each of which is hereby incorporated by reference herein in its entirety:
[0002] U.S. patent application Ser. No. ______, filed ______, titled “WEIGHTED FAIR QUEUE HAVING EXTENDED EFFECTIVE RANGE” (IBM Docket No. ROC920010199US1);
[0003] U.S. patent application Ser. No. ______, filed ______, titled “WEIGHTED FAIR QUEUE SERVING PLURAL OUTPUT PORTS” (IBM Docket No. ROC920010200US1);
[0004] U.S. patent application Ser. No. ______, filed ______, titled “EMPTY INDICATORS FOR WEIGHTED FAIR QUEUES” (IBM Docket No. ROC920010202US1);
[0005] U.S. patent application Ser. No. ______, filed ______, titled “QoS SCHEDULER AND METHOD FOR IMPLEMENTING PEAK SERVICE DISTANCE USING NEXT PEAK SERVICE TIME VIOLATED INDICATION” (IBM Docket No. ROC920010203US1);
[0006] U.S. patent application Ser. No. ______, filed ______, titled “QoS SCHEDULER AND METHOD FOR IMPLEMENTING QUALITY OF SERVICE WITH AGING STAMPS” (IBM Docket No. ROC920010204US1);
[0007] U.S. patent application Ser. No. ______, filed ______, titled “QoS SCHEDULER AND METHOD FOR IMPLEMENTING QUALITY OF SERVICE WITH CACHED STATUS ARRAY” (IBM Docket No. ROC920010205US1); and
[0008] U.S. patent application Ser. No. ______, filed ______, titled “QoS SCHEDULER AND METHOD FOR IMPLEMENTING QUALITY OF SERVICE ANTICIPATING THE END OF A CHAIN OF FLOWS” (IBM Docket No. ROC920010206US1).