Patent ID: 7408946

Claim:
A communication system in which service measured in service units is granted to queues of communications data packets comprising: (a) a memory storing data packets arranged on a plurality of data packet queues, and for each queue, indicia of a number of remaining service quanta and of a number of remaining service units, wherein a service quantum is a pre-determined number of service units; and (b) a processor performing one or more scheduler periods, wherein a scheduler period comprises the steps of: (i) initializing each active queue's indicia to a pre-determined number of remaining service quanta for that queue and a pre-determined number of remaining service units for that queue, wherein a queue is active if it has one or more packets, (ii) selecting once in a pre-determined order each queue of the plurality of queues that is active and that has remaining service quanta, and granting up to one quantum of service units to the selected queue; and updating the selected queue's remaining service units by subtracting the service units actually used out of the granted quantum of service units; and updating the selected queue's remaining service quanta to be equal to the greater of the number of remaining service quanta minus one and the number of remaining service quanta in the updated remaining service units, and (iii) repeating the step of selecting until there are no active queues with remaining service quanta.