Claims
- 1. A data communication apparatus, comprising:
a plurality of output ports; and a scheduler adapted to assign priorities to outbound data frames, the scheduler including one or more scheduling queues, each scheduling queue adapted to indicate an order in which data flows are to be serviced, at least one scheduling queue having a respective plurality of the output ports assigned to the scheduling queue.
- 2. The data communication apparatus of claim 1, wherein the one or more scheduling queues are used for weighted fair queuing.
- 3. The data communication apparatus of claim 1, wherein the data frames are of varying sizes.
- 4. The data communication apparatus of claim 1, wherein a respective two of the output ports are assigned to one scheduling queue.
- 5. The data communication apparatus of claim 4, wherein a respective four of the output ports are assigned to one scheduling queue.
- 6. The data communication apparatus of claim 5, wherein the plurality of output ports includes 256 output ports, and the scheduler has 64 scheduling queues to which the 256 output ports are assigned.
- 7. The data communication apparatus of claim 1, wherein the scheduler includes a first integrated circuit and the output ports are included in a second integrated circuit coupled to the first integrated circuit.
- 8. A method of enqueuing flows in a scheduler for a network processor, comprising:
receiving a first data frame corresponding to a first flow appointed for transmission from a first output port; enqueuing the first flow to a first scheduling queue associated with the first output port; receiving a second data frame corresponding to a second flow appointed for transmission from a second output port; and enqueuing the second flow to the first scheduling queue, the first scheduling queue also being associated with the second output port.
- 9. The method of claim 8, further comprising:
receiving a third data frame corresponding to a third flow appointed for transmission from a third output port; enqueuing the third flow to the first scheduling queue, the first scheduling queue also being associated with the third output port; receiving a fourth data frame corresponding to a fourth flow appointed for transmission from a fourth output port; and enqueuing the fourth flow to the first scheduling queue, the first scheduling queue also being associated with the fourth output port.
- 10. The method of claim 8, wherein the first scheduling queue is used for weighted fair queuing.
- 11. The method of claim 10, wherein each enqueuing step includes attaching the respective flow to the first scheduling queue according to the formula CP+((WF×FS)/SF, wherein CP is a current pointer value associated with the respective flow; WF is a weighting factor associated with the respective flow; FS is a frame size associated with the respective flow; and SF is a scaling factor.
- 12. The method of claim 11, wherein the weighting factor WF is based in part on a weight scaler WS associated with the output port from which the respective flow is appointed for transmission.
- 13. A method of transmitting data frames from a network processor, comprising:
dequeuing a first flow from a first scheduling queue; transmitting from a first output port a data frame associated with the dequeued first flow; dequeuing a second flow from the first scheduling queue; and transmitting from a second output port a data frame associated with the dequeued second flow, the second output port being different from the first output port.
- 14. The method of claim 13, further comprising:
dequeuing a third flow from the first scheduling queue; transmitting from a third output port a data frame associated with the dequeued third flow, the third output port being different from the first and second output ports; dequeuing a fourth flow from the first scheduling queue; and transmitting from a fourth output port a data frame associated with the dequeued fourth flow, the fourth output port being different from the first, second and third output ports.
- 15. The method of claim 13, wherein the first scheduling queue is used for weighted fair queuing.
- 16. A method of operating a data communication apparatus, comprising:
providing a scheduling queue in a scheduler for a network processor; and assigning a plurality of output ports to the scheduling queue.
- 17. The method of claim 16, wherein the scheduling queue is one of a plurality of scheduling queues provided in the scheduler, and each of the scheduling queues has a respective plurality of output ports assigned thereto.
- 18. The method of claim 16, wherein four output ports are assigned to the scheduling queue.
- 19. A data communication apparatus, comprising:
a plurality of output ports; and a scheduler having at least one scheduling queue, the scheduler adapted to:
receive a first data frame corresponding to a first flow appointed for transmission from a first of the output ports; enqueue the first flow to a first scheduling queue associated with the first of the output ports; receive a second data frame corresponding to a second flow appointed for transmission from a second of the output ports; and enqueue the second flow to the first scheduling queue, the first scheduling queue also being associated with the second of the output ports.
- 20. A data communication apparatus, comprising:
a plurality of output ports; and a scheduler having at least one scheduling queue, the scheduler adapted to:
dequeue a first flow from a first scheduling queue; transmit from a first of the output ports a data frame associated with the dequeued first flow; dequeue a second flow from the first scheduling queue; and transmit from a second of the output ports a data frame associated with the dequeued second flow, the second output port being different from the first output port.
- 21. A computer program product for enqueuing flows in a scheduler for a network processor, comprising:
a medium readable by a computer, the computer readable medium having computer program code adapted to:
receive a first data frame corresponding to a first flow appointed for transmission from a first output port; enqueue the first flow to a first scheduling queue associated with the first output port; receive a second data frame corresponding to a second flow appointed for transmission from a second output port; and enqueue the second flow to the first scheduling queue, the first scheduling queue also being associated with the second output port.
- 22. A computer program product for transmitting data frames from a network processor, comprising:
a medium readable by a computer, the computer readable medium having computer program code adapted to:
dequeue a first flow from a first scheduling queue; transmit from a first output port a data frame associated with the dequeued first flow; dequeue a second flow from the first scheduling queue; and transmit from a second output port a data frame associated with the dequeued second flow, the second output port being different from the first output port.
- 23. A computer program product for operating a data communication apparatus that includes a scheduler having one or more scheduling queues, the computer program product comprising:
a medium readable by a computer, the computer readable medium having computer program code adapted to assign a plurality of output ports to a first of the one or more scheduling queues.
Parent Case Info
[0001] U.S. Patent Application Serial No. ______, filed ______, titled “QoS SCHEDULER AND METHOD FOR IMPLEMENTING QUALITY OF SERVICE ANTICIPATING THE END OF A CHAIN OF FLOWS” (IBM Docket No. ROC920010206US1).