Patent ID: 7580355

Claim:
A weighted round-robin scheduler comprising: a round robin table configured to store a plurality of cycle link lists, including one or more active cycle link lists, wherein each active cycle link list includes a head flow identification (FLID) value identifying a first flow of the active cycle link list, and a tail FLID value identifying a last flow of the active cycle link list; a flow table having a plurality of flow table entries, wherein each of the flow table entries is associated with a corresponding flow and has a corresponding FLID value, wherein each of the flow table entries includes a weighted round-robin cycle (WRR_CYC) value, which specifies an assigned weight of the corresponding flow, and wherein each of the flow table entries is assigned to one of the cycle link lists in response to the assigned weight using the following equation, C NEW =( C CURRENT +WRR — CYC )mod ( N ), wherein N represents the number of cycle link lists, C CURRENT represents a current cycle link list to which a flow is currently assigned, and C NEW represents a new cycle link list to which the flow is assigned after the current cycle link list has been processed; and a plurality of packet queues, each associated with a corresponding flow table entry, and each configured to store packets of the flow associated with the corresponding flow table entry.