Patent ID: 7898953

Claim:
A link scheduler apparatus to determine an order to schedule links comprising: a processor configured by computer instructions encoded onto a non-transitory tangible mass storage device to: group together links that have similar weights, and maintain a list of groups of links having similar weights based on a guaranteed or actual rate; select a group to transmit packets based on the ratio of bandwidth needed by each group to the bandwidth needed by every other group whereby each group transmits an amount of data in turn, and within each group, select an individual link to transmit packets based on the ratio of its traffic volume to that of the other links in the selected group; another scheduler to manage all of its children wherein the schedulers are run independently of each other but ensure precise service intervals for all items within the overall scheduler wherein each scheduler is a process of the processor; and an other processor for rate limitation to represent the physical capacity of a link wherein the processor is configured by computer instructions encoded onto the non-transitory tangible mass storage device to: calculate an average time spent per byte for each link and link group object when it is running at its limit, track the next time to send, and an “average idle time” variable, track the variance with the actual next time data is sent, send if the next time is past (or not set) because the link or link group is not rate limited, and skip if the link or link group has exceeded its rate.