Patent ID: 7088729

Claim:
Method for scheduling data packets from a plurality of input ports to at least one output port comprising the steps of: storing data packets in a plurality of virtual output queues, a virtual output queue being arranged to store data packets from one of the plurality of input ports destined for a specific one of the at least one output port; and scheduling the plurality of virtual output queues, wherein the step of scheduling the plurality of virtual output queues comprises the steps of: scheduling the virtual output queues associated with one of the at least one output port in parallel, by scheduling the virtual output queues associated with one of the at least one output port by means of a scheduling tree, the scheduling tree comprising at least one comparison layer for executing the steps of: pair-wise comparing requests received from the associated virtual output queues in parallel; and sending the request with a higher priority to a higher level comparison layer until a single request remains, the single request indicating the virtual output queue scheduled to send its data packet to the associated output port; in which the comparison layer executes the further step of storing the request with a higher priority, and after receiving a permit from a higher order level, the permit comprising the single request, sending the permit to a lower level comparison layer in accordance with the stored request associated with the higher priority.