Patent ID: 8615013

Claim:
A method of rate setting for nodes of a scheduling hierarchy of a network processor having a plurality of processing modules and at least one shared memory with packet data, the method comprising: generating, by a traffic manager of the network processor, a scheduling hierarchy comprising a tree structure of a root scheduler and N scheduler levels, wherein a scheduler is a branch node and a queue is a leaf node of the scheduling hierarchy, wherein N is a positive integer; generating, by the network processor, one or more tasks corresponding to each of a plurality of received packets associated with one or more data flows of the network processor; receiving, by the traffic manager, a task provided by one of the plurality of processing modules of the network processor; queuing, by the traffic manager, the received task in an associated queue of the scheduling hierarchy, wherein the queue is associated with a data flow corresponding to the received task, the queue having a corresponding parent scheduler at each of one or more next levels of the scheduling hierarchy up to a root scheduler of the scheduling hierarchy, wherein the queue and one or more corresponding parent schedulers at each level of the scheduling hierarchy form a branch of the scheduling hierarchy; selecting, by a given scheduler based on a number of arbitration credits in an arbitration credit bucket of each corresponding child node, a given child node for transmission of one or more tasks by the traffic manager; and determining, by a given scheduler of the scheduling hierarchy, an arbitration credit value for each corresponding child node, wherein the step of determining the arbitration credit value comprises: maintaining a time stamp value corresponding to a time value of a previous selection of the corresponding child node; determining an elapsed time value based on the time stamp value and a current time value of the network processor; determining an arbitration credit value based on the determined elapsed time value and a minimum rate scaling factor; determining whether the child node employs a supplemental scaling factor corresponding to the child node, and, if so: adjusting the determined arbitration credit value based on the supplemental scaling factor; and adding the determined arbitration credit value to the arbitration credit bucket of the corresponding child node.