Patent ID: 7802028

Claim:
A network device for dynamically allocating memory locations to a plurality of queues, the network device comprising: assigning means for assigning respective portions of a temporary memory buffer to each of a plurality of ports and assigning respective portions of a shared memory buffer to each of the plurality of ports; and allocating means for allocating respective fixed allocations of the respective portions of the temporary memory buffer assigned to each of the plurality of ports to each of the plurality of queues associated with each port and allocating respective fixed allocations of the respective portions of the shared memory buffer assigned to each of the plurality of ports to each of the plurality of queues associated with each port, wherein after each queue has accumulated a predefined amount of data for a respective class of service in the temporary memory buffer, the data for the respective class of service is transmitted from the temporary memory buffer to the shared memory buffer based on at least: an ingress backpressure mechanism tracking a number of packets from the plurality of ports; and a head of line mechanism tracking: usage of the shared memory buffer using respective first counters in accordance with one or more static thresholds; and usage of the temporary buffer using respective second counters in accordance with one or more dynamic thresholds and one more entry values; and a weighted random early detection algorithm, such that the allocating means reduces a shared memory buffer access bandwidth of the shared memory buffer by a predefined amount that is less than a processing bandwidth of a system clock.