Claims
- 1. A scheduling apparatus for servicing a plurality of data packet flows, each of said data packet flows having specified service requirements and being associated with respective one of a plurality of queues, each of said plurality of queues containing data packets, the distribution of service to said data packet flows being organized in service frames, each service frame offering a number of service opportunities to each of said data packet flows, said number of service opportunities depending on the service requirements of said data packet flows, the scheduling apparatus comprising:
a first scheduler providing service to a first set of guaranteed-bandwidth (GB) data packet flows during a first subframe of a service frame, said GB data packet flows having service requirements expressed in terms of bandwidth requirements, the duration of the first subframe being adjusted to satisfy the bandwidth requirements of said GB data packet flows; and a second scheduler providing service to a second set of best-effort (BE) data packet flows during a second subframe of the service frame, said BE data packet flows having service requirements that are not expressed in terms of guaranteed bandwidth requirements, the duration of the second subframe being the duration of the service frame minus the duration of the first subframe in the same service frame.
- 2. The scheduling apparatus of claim 1, wherein the second scheduler equally allocates service to each data packet flow in said second set of BE data packet flows.
- 3. The scheduling apparatus of claim 1, wherein the first scheduler is a Weighted Round Robin (WRR) scheduler.
- 4. The scheduling apparatus of claim 3, wherein the second scheduler is a WRR scheduler.
- 5. The scheduling apparatus of claim 1, wherein the duration of the service frame is determined to accommodate the sum of the bandwidth requirements of the GB data packet flows in the case where said sum of the bandwidth requirements is equal to said fixed service rate.
- 6. The scheduling apparatus of claim 1, wherein the duration of the service frame is fixed.
- 7. The scheduling apparatus of claim 1, wherein the duration of the first subframe is fixed.
- 8. The scheduling apparatus of claim 1, wherein the duration of the service frame is variable.
- 9. The scheduling apparatus of claim 1, wherein the duration of the first subframe is variable.
- 10. The scheduling apparatus of claim 1, wherein the end of the second subframe is determined when either (1) a predetermined duration of the service frame expires, or (2) there is no remaining backlog in said second set of BE flows, whichever condition occurs first, a backlog being defined as the presence of one or a plurality of data packets in one or a plurality of queues associated with the set of data packet flows being considered.
- 11. The scheduling apparatus of claim 1, wherein the duration of said second subframe is derived from a BE running share φBE, which is defined as the difference between said fixed service rate and the sum of the bandwidth requirements of each of the GB flows that have a backlog in respective ones of said plurality of queues.
- 12. The scheduling apparatus of claim 11, wherein the BE running share φBE receives an increment every time a GB flow becomes idle and a decrement every time a GB flow becomes backlogged.
- 13. The scheduling apparatus of claim 12, wherein said increment and decrement are related to the bandwidth requirement of the GB data packet flow that becomes idle and backlogged, respectively.
- 14. The scheduling apparatus of claim 11, wherein a BE cumulative share ΦBE is set equal to said BE running share φBE at the end of the first subframe, and equal to zero at the end of the service frame.
- 15. The scheduling apparatus of claim 14, wherein the selection of the second scheduler has strict priority over the selection of the first scheduler if the cumulative share ΦBE is not equal to zero.
- 16. The scheduling apparatus of claim 1, wherein said first scheduler maintains a timestamp FBE for the aggregate of BE data packet flows in order to regulate the duration of said second subframe.
- 17. The scheduling apparatus of claim 1, wherein:
the data packet flows that are backlogged in said first set of GB flows are sorted for service in a Primary WRR Scheduler (PWS) First-In-First-Out (FIFO) queue; each data packet flow of said first set of GB flows has a frame flag associated therewith; and said first subframe is over when the frame flag of the GB flow at the head of said PWS FIFO queue has different value than a global frame counter GFC.
- 18. The scheduling apparatus of claim 17, wherein the value of said GFC is set equal to the value of said frame flag of said GB flow at the head of said PWS FIFO queue after a difference between the two values is detected.
- 19. The scheduling apparatus of claim 16, wherein the data packet flows that are backlogged in said second set of BE data packet flows are sorted for service in a Secondary WRR Scheduler (SWS) FIFO queue.
- 20. The scheduling apparatus of claim 17, wherein the end of said second subframe is declared every time the timestamp FBE of said aggregate of BE data packet flows exceeds a PWS reference timestamp increment TQPWS.
- 21. A method of operating a scheduler for servicing a plurality of data packet flows, each of said data packet flows having specified service requirements and being associated with one of a plurality of queues, each of said plurality of queues containing data packets, the distribution of service to said data packet flows being organized in service frames, each service frame offering a number of service opportunities to each of said data packet flows, said number of service opportunities depending on the service requirements of said data packet flows, the method comprising the steps of:
providing service to a first set of guaranteed-bandwidth (GB) data packet flows during a first subframe of a service frame, said GB data packet flows having service requirements expressed in terms of bandwidth requirements, the duration of the first subframe being adjusted to satisfy the bandwidth requirements of said GB data packet flows; and providing service to a second set of best-effort (BE) flows during a second subframe of the service frame, said BE data packet flows having service requirements that are not expressed in terms of guaranteed bandwidth requirements, the duration of the second subframe being the duration of the service frame minus the duration of the first subframe in the same service frame.
RELATED APPLICATION
[0001] This application is based on a provisional application, Serial No. 60/260808, filed on Jan. 10, 2001, and entitled “Method and Apparatus for Integrating Guaranteed-Bandwidth and Best-Effort Traffic in a Packet Network.”
Provisional Applications (1)
|
Number |
Date |
Country |
|
60260808 |
Jan 2001 |
US |