Claims
- 1. A method of operating a network processor, comprising:
dispatching a last frame from a flow queue maintained in the network processor, thereby emptying the flow queue; and storing data indicative of a size of the dispatched last frame.
- 2. The method of claim 1, further comprising:
receiving a new frame corresponding to the emptied flow queue; and attaching to a scheduling queue a flow corresponding to the emptied flow queue; wherein the flow is attached to the scheduling queue a distance D from a current pointer for the scheduling queue, the distance D being determined based at least in part on the stored data indicative of the size of the dispatched last frame.
- 3. The method of claim 2, wherein the distance D is determined based in part on a Quality of Service to which the flow is entitled.
- 4. The method of claim 1, wherein the data indicative of the size of the dispatched last frame is stored in a flow queue control block which corresponds to the emptied flow queue.
- 5. The method of claim 4, wherein the flow queue control block is stored in a random access memory associated with a scheduler.
- 6. A network processor, comprising:
a scheduler which includes a scheduling queue having flows attached thereto and defining a sequence in which the attached flows are to be serviced; and storage means, associated with the scheduler, for maintaining a flow queue corresponding to each flow attached to the scheduling queue; wherein the storage means stores, for each flow queue that has been emptied, data indicative of a last frame dispatched from the respective flow queue.
- 7. The network processor of claim 6, wherein:
when a new frame is received that corresponds to a flow queue that has been emptied, a flow corresponding to the new frame is attached to the scheduling queue at a distance D from a current pointer for the scheduling queue, the distance D being determined based at least in part on the stored data indicative of the size of the last frame dispatched from the flow queue that has been emptied.
- 8. The network processor of claim 7, wherein the distance D is determined based in part on a Quality of Service to which the flow is entitled.
- 9. The network processor of claim 6, wherein the data indicative of the size of the last frame dispatched from the respective flow queue is stored in a flow queue control block which corresponds to the respective flow queue.
- 10. The network processor of claim 6, wherein the storage means includes a random access memory.
- 11. A computer program product for use with a network processor, the computer program product comprising:
a medium readable by a computer, the computer readable medium having program code adapted to:
dispatch a last frame from a flow queue maintained in the network processor, thereby emptying the flow queue; and store data indicative of a size of the dispatched last frame.
- 12. A method of operating a network processor, comprising:
dispatching a last frame from a flow queue maintained in the network processor, thereby emptying the flow queue; storing in a flow queue control block which corresponds to the emptied flow queue data indicative of a size of the dispatched last frame; receiving a new frame corresponding to the emptied flow queue; and attaching to a scheduling queue a flow corresponding to the emptied flow queue; wherein the flow is attached to the scheduling queue a distance D from a current pointer for the scheduling queue, the distance D being determined based at least in part on the stored data indicative of the size of the dispatched last frame.
- 13. A network processor, comprising:
a scheduler which includes a scheduling queue having flows attached thereto and defining a sequence in which the attached flows are to be serviced; storage means, associated with the scheduler, for maintaining a flow queue corresponding to each flow attached to the scheduling queue; means for dispatching a last frame from a flow queue maintained in the storage means, thereby emptying the flow queue; means for storing, in a flow queue control block which corresponds to the emptied flow queue, data indicative of a size of the dispatched last frame; means for receiving a new frame corresponding to the emptied flow queue; and means for attaching to the scheduling queue a flow corresponding to the emptied flow queue; wherein the flow is attached to the scheduling queue a distance D from a current pointer for the scheduling queue, the distance D being determined based at least in part on the stored data indicative of the size of the dispatched last frame.
- 14. A computer program product for use with a network processor, the computer program product comprising:
a medium readable by a computer, the computer readable medium having program code adapted to:
dispatch a last frame from a flow queue maintained in a network processor, thereby emptying the flow queue; store in a flow queue control block which corresponds to the emptied flow queue data indicative of a size of the dispatched last frame; receive a new frame corresponding to the emptied flow queue; and attach to a scheduling queue a flow corresponding to the emptied flow queue; wherein the flow is attached to the scheduling queue a distance D from a current pointer for the scheduling queue, the distance D being determined based at least in part on the stored data indicative of the size of the dispatched last frame.
CROSS REFERENCE TO RELATED PATENT APPLICATIONS
[0001] The present application is related to the following U.S. Patent Applications, each of which is hereby incorporated by reference herein in its entirety:
[0002] U.S. patent application Ser. No. 10/016,518, filed Nov. 1, 2001, titled “WEIGHTED FAIR QUEUE HAVING EXTENDED EFFECTIVE RANGE” (IBM Docket No. ROC920010199US1);
[0003] U.S. patent application Ser. No. 10/015,994, filed Nov. 1, 2001, titled “WEIGHTED FAIR QUEUE SERVING PLURAL OUTPUT PORTS” (IBM Docket No. ROC920010200US1);
[0004] U.S. patent application Ser. No. 10/015,760, filed Nov. 1, 2001, titled “WEIGHTED FAIR QUEUE HAVING ADJUSTABLE SCALING FACTOR” (IBM Docket No. ROC920010201US1);
[0005] U.S. patent application Ser. No. 10/002,085, filed Nov. 1, 2001, titled “EMPTY INDICATORS FOR WEIGHTED FAIR QUEUES” (IBM Docket No. ROC920010202US1);
[0006] U.S. patent application Ser. No. 10/004,373, filed Nov. 1, 2001, titled “QoS SCHEDULER AND METHOD FOR IMPLEMENTING PEAK SERVICE DISTANCE USING NEXT PEAK SERVICE TIME VIOLATED INDICATION” (IBM Docket No. ROC920010203US1);
[0007] U.S. patent application Ser. No. 10/002,416, filed IBM DOCKET NO. ROC920010363US1 Nov. 1, 2001, titled “QoS SCHEDULER AND METHOD FOR IMPLEMENTING QUALITY OF SERVICE WITH AGING STAMPS” (IBM Docket No. ROC920010204US1);
[0008] U.S. patent application Ser. No. 10/004,440, filed Nov. 1, 2001, titled “QoS SCHEDULER AND METHOD FOR IMPLEMENTING QUALITY OF SERVICE WITH CACHED STATUS ARRAY” (IBM Docket No. ROC920010205US1); and
[0009] U.S. patent application Ser. No. 10/004,217, filed Nov. 1, 2001, titled “QoS SCHEDULER AND METHOD FOR IMPLEMENTING QUALITY OF SERVICE ANTICIPATING THE END OF A CHAIN OF FLOWS” (IBM Docket No. ROC920010206US1).