Scheduler for a packet routing and switching system
First Claim
1. A method of selecting one of a plurality of queues for service, at least one of the plurality of queues associated with a first traffic class, the method comprising the steps of:
- (a) identifying each first traffic class (FTC) queue having at least one enqueued cell as an occupied FTC queue wherein at least one FTC queue is provisioned for burst scheduling of multiple cells when serviced;
(b) identifying an occupied FTC queue provisioned for burst scheduling as a super-occupied FTC queue when the number of cells enqueued is greater than a specified number;
(c) setting as eligible for service each occupied FTC queue based on a FTC scheduling algorithm, wherein, for step (c), the FTC scheduling algorithm is a shaped virtual clock algorithm; and
(d) selecting for service an eligible FTC queue based on a corresponding sub-priority of each eligible FTC queue, wherein;
each FTC queue is assigned a sub-priority based on a service level of a connection associated with enqueued cells;
when the super-occupied queue is serviced, the number of cells dequeued is based on a burst size; and
for step (c), each FTC queue has a corresponding down counter and service period value, wherein step (c) further comprises the steps of, during a scheduling interval, counting down from the service period value to a predefined value, and setting the corresponding FTC queue as eligible when the down counter reaches the predefined value.
6 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, queues associated with a first traffic class (FTC) are selected for service. Each FTC queue having at least one enqueued cell is identified as an occupied FTC queue, Where at least one FTC queue is provisioned for burst scheduling of multiple cells when serviced. An occupied FTC queue provisioned for burst scheduling is identified as a super-occupied FTC queue when the number of cells enqueued is greater than a specified number. Each occupied FTC queue is set as eligible for service based on a FTC scheduling algorithm. An eligible FTC queue is selected for service based on a corresponding sub-priority of each eligible FTC queue. Each FTC queue is assigned a sub-priority based on a service level of a connection associated with enqueued cells. When the super-occupied queue is serviced, the number of cells dequeued is based on a burst size.
73 Citations
40 Claims
-
1. A method of selecting one of a plurality of queues for service, at least one of the plurality of queues associated with a first traffic class, the method comprising the steps of:
-
(a) identifying each first traffic class (FTC) queue having at least one enqueued cell as an occupied FTC queue wherein at least one FTC queue is provisioned for burst scheduling of multiple cells when serviced; (b) identifying an occupied FTC queue provisioned for burst scheduling as a super-occupied FTC queue when the number of cells enqueued is greater than a specified number; (c) setting as eligible for service each occupied FTC queue based on a FTC scheduling algorithm, wherein, for step (c), the FTC scheduling algorithm is a shaped virtual clock algorithm; and (d) selecting for service an eligible FTC queue based on a corresponding sub-priority of each eligible FTC queue, wherein; each FTC queue is assigned a sub-priority based on a service level of a connection associated with enqueued cells; when the super-occupied queue is serviced, the number of cells dequeued is based on a burst size; and for step (c), each FTC queue has a corresponding down counter and service period value, wherein step (c) further comprises the steps of, during a scheduling interval, counting down from the service period value to a predefined value, and setting the corresponding FTC queue as eligible when the down counter reaches the predefined value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A scheduler for selecting one of a plurality of queues for service, at least one of the plurality of queues associated with a first traffic class (FTC), the scheduler comprising:
-
an occupancy processor configured to identify each FTC queue having at least one enqueued cell as an occupied FTC queue, wherein; 1) at least one FTC queue may be provisioned for burst scheduling of multiple cells when serviced, and 2) an occupied FTC queue provisioned for burst scheduling is also identified as a super-occupied FTC queue when a number of cells enqueued is greater than a provisioned number; a FTC eligibility processor configured to set as eligible for service each occupied FTC queue based on a FTC scheduling algorithm, wherein the FTC scheduling algorithm is a shaped virtual clock algorithm; and a FTC queue selector configured to select for service an eligible FTC queue, wherein each FTC queue is assigned a sub-priority based on a service level of a connection associated with enqueued cells, the FTC queue selector selects an eligible FTC queue based on the corresponding sub-priority of each eligible FTC queue, and when the super-occupied FTC queue is serviced, the number of cells dequeued is based on a burst size; and wherein the FTC eligibility processor comprises a plurality of down counters, each FTC queue having a corresponding down counter and service period value, wherein during a scheduling interval each down counter counts from the service period value to a predefined value, and the corresponding FTC queue is set as eligible when the down counter reaches the predefined value. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A computer-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions which, when executed by a processor, cause the processor to implement a method of selecting one of a plurality of queues for service, at least one of the plurality of queues associated with a first traffic class, the method comprising the steps of:
-
(a) identifying each first traffic class (FTC) queue having at least one enqueued cell as an occupied FTC queue wherein at least one FTC queue is provisioned for burst scheduling of multiple cells when serviced; (b) identifying an occupied FTC queue provisioned for burst scheduling as a super-occupied FTC queue when the number of cells enqueued is greater than a specified number; (c) setting as eligible for service each occupied FTC queue based on a FTC scheduling algorithm, wherein, for step (c), the FTC scheduling algorithm is a shaped virtual clock algorithm; and (d) selecting for service an eligible FTC queue based on a corresponding sub-priority of each eligible FTC queue, wherein; each FTC queue is assigned a sub-priority based on a service level of a connection associated with enqueued cells; when the super-occupied queue is serviced, the number of cells dequeued is based on a burst size; and for step (c), each FTC queue has a corresponding down counter and service period value, wherein step (c) further comprises the steps of, during a scheduling interval, counting down from the service period value to a predefined value, and setting the corresponding FTC queue as eligible when the down counter reaches the predefined value.
-
-
32. A method of selecting one of a plurality of queues for service, at least one of the plurality of queues associated with a first traffic class, the method comprising the steps of:
-
(a) identifying each first traffic class (FTC) queue having at least one enqueued cell as an occupied FTC queue wherein at least one FTC queue is provisioned for burst scheduling of multiple cells when serviced; (b) identifying an occupied FTC queue provisioned for burst scheduling as a super-occupied FTC queue when the number of cells enqueued is greater than a specified number; (c) setting as eligible for service each occupied FTC queue based on a FTC scheduling algorithm; and (d) selecting for service an eligible FTC queue based on a corresponding sub-priority of each eligible FTC queue, wherein; each FTC queue is assigned a sub-priority based on a service level of a connection associated with enqueued cells; when the super-occupied queue is serviced, the number of cells dequeued is based on a burst size; and step (d) comprises the step of, for each sub-priority, addressing with a pointer the FTC queue having the highest priority value within those eligible FTC queues assigned to the sub-priority, the sub-priority of an eligible FTC queue based on the order in which the eligible FTC queue is set as eligible. - View Dependent Claims (33, 34)
-
-
35. A scheduler for selecting one of a plurality of queues for service, at least one of the plurality of queues associated with a first traffic class (FTC), the scheduler comprising:
-
an occupancy processor configured to identify each FTC queue having at least one enqueued cell as an occupied FTC queue, wherein; 1) at least one FTC queue may be provisioned for burst scheduling of multiple cells when serviced, and 2) an occupied FTC queue provisioned for burst scheduling is also identified as a super-occupied FTC queue when a number of cells enqueued is greater than a provisioned number; a FTC eligibility processor configured to set as eligible for service each occupied FTC queue based on a FTC scheduling algorithm; and a FTC queue selector configured to select for service an eligible FTC queue, wherein; each FTC queue is assigned a sub-priority based on a service level of a connection associated with enqueued cells; the FTC queue selector selects an eligible FTC queue based on the corresponding sub-priority of each eligible FTC queue; when the super-occupied FTC queue is serviced, the number of cells dequeued is based on a burst size; and for each sub-priority, the FTC queue selector comprises a pointer addressing the FTC queue having the highest priority value within those eligible FTC queues assigned to the sub-priority, the priority of an eligible FTC queue based on the order in which the eligible FTC queue is set as eligible by the FTC eligibility processor. - View Dependent Claims (36, 37)
-
-
38. A computer-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions which, when executed by a processor, cause the processor to implement a method of selecting one of a plurality of queues for service, at least one of the plurality of queues associated with a first traffic class, the method comprising the steps of:
-
(a) identifying each first traffic class (FTC) queue having at least one enqueued cell as an occupied FTC queue wherein at least one FTC queue is provisioned for burst scheduling of multiple cells when serviced; (b) identifying an occupied FTC queue provisioned for burst scheduling as a super-occupied FTC queue when the number of cells enqueued is greater than a specified number; (c) setting as eligible for service each occupied FTC queue based on a FTC scheduling algorithm; and (d) selecting for service an eligible FTC queue based on a corresponding sub-priority of each eligible FTC queue, wherein; each FTC queue is assigned a sub-priority based on a service level of a connection associated with enqueued cells; when the super-occupied queue is serviced, the number of cells dequeued is based on a burst size; and step (d) comprises the step of, for each sub-priority, addressing with a pointer the FTC queue having the highest priority value within those eligible FTC queues assigned to the sub-priority, the sub-priority of an eligible FTC queue based on the order in which the eligible FTC queue is set as eligible. - View Dependent Claims (39, 40)
-
Specification