Patent ID: 9628398
Date: 2017-04-18
CPC Classifications: H04L,H04W

Claim:
1. A method for queuing data units in a network device, the method comprising: defining, in a memory of the network device, a plurality of physical queues corresponding to a port of the network device; logically coupling respective subsets of the plurality of physical queues to define a plurality of logical queues that are respectively formed of logically coupled multiple physical queues, the logical queues corresponding to respective data flows of the port; receiving a data unit to be stored in the memory, the data unit belonging to a data flow; selecting, from the plurality of logical queues, a logical queue for storing the data unit based at least in part on the data flow of the data unit; selecting, from the subset of multiple physical queues that corresponds to the logical queue, a physical queue for storing the data unit; storing the data unit in the physical queue; retrieving data units from the subset of multiple physical queues corresponding to the logical queue, including retrieving at least some of the data units concurrently from different physical queues of the subset of multiple physical queues; releasing buffers that were used to store the data units retrieved from the subset of multiple physical queues so that the released buffers can be reallocated among the plurality of physical queues; allocating, to the logical queue, free buffers that have memory space available for storing data units in the logical queue; and distributing, according to a predetermined arbitration scheme that determines an order in which free buffers are provided to physical queues of the subset of multiple physical queues, the free buffers that have memory space available for storing data units in the logical queue among the subset of multiple physical queues that corresponds to the logical queue.