Patent ID: 7756037

Claim:
A method for scheduling sending of data packets in a network element, the data packets originating in at least two packet sources, the method comprising: selecting at least one preferred packet source from among the at least two packet sources; allocating respective target bandwidths and specifying respective quantum values representing relative traffic ratios among the at least two packet sources for at least two deficit round robin (DRR) scheduling processes including a guaranteed bandwidth DRR scheduling process and an excess bandwidth DRR scheduling process; receiving data packets from the at least two packet sources; performing, by a scheduling processor, repetitive scheduling rounds of the at least two DRR scheduling processes to determine a schedule for processing data packets from the at least two packet sources; wherein data packets are scheduled according to the following classes of service: high-priority data packets; data packets from the at least one preferred packet source; guaranteed bandwidth data packets from the at least one preferred packet source; and excess bandwidth data packets; and wherein each scheduling round comprises: determining a remaining available bandwidth; scheduling the high-priority data packets with a highest scheduling priority to bypass the DRR scheduling processes; scheduling the data packets from the at least one preferred packet source which are within the respective target bandwidths for the sources thereof in the guaranteed bandwidth DRR scheduling process with a second priority; scheduling the guaranteed bandwidth data packets not from the at least one preferred packet source, with a third priority within the guaranteed bandwidth DRR scheduling process, according to the respective quantum values for the sources thereof and the remaining available bandwidth; and scheduling the excess bandwidth data packets with a fourth priority within the excess bandwidth DRR scheduling process, according to the respective quantum values for the sources thereof and the remaining available bandwidth; and processing, by the scheduling processor, the data packets responsively to the schedule.