Patent ID: 8718077

Claim:
A method for transferring a first frame of data received at a first port of a network switch to a second port of the network switch, the method comprising: maintaining a first list of pointers, wherein first pointers in the first list of pointers point respectively to a plurality of buffers, wherein the plurality of buffers are implemented in a memory, wherein the first pointers are available to be reserved, and wherein the network switch comprises the memory; maintaining a second list of pointers, wherein second pointers in the second list of pointers are reserved; selectively allocating one of the plurality of buffers to the first port of the network switch; in response to i) receiving the first frame of data at the first port and ii) the one of the plurality of buffers being allocated to the first port, storing the first frame of data in the memory, and transferring one of the first pointers for the one of the plurality of buffers from the first list of pointers to the second list of pointers; transferring, to an output queue associated with the second port, the one of the first pointers for the one of the plurality of buffers; determining whether a number of the second pointers is greater than a product of i) a scale factor, and ii) a number of the first pointers; based on the determination, transmitting the first frame of data from the second port; and in response to the first frame of data being sent from the second port, transferring the one of the first pointers for the one of the plurality of buffers from the second list of pointers back to the first list of pointers.