A method comprises providing a free buffer pool in a memory including a
non-negative number of free buffers that are not allocated to a queue for
buffering data. A request is received to add one of the free buffers to
the queue. One of the free buffers is allocated to the queue in response
to the request, if the queue has fewer than a first predetermined number
of buffers associated with a session type of the queue. One of the free
buffers is allocated to the queue, if a number of buffers in the queue is
at least as large as the first predetermined number and less than a
second predetermined number associated with the session type, and the
number of free buffers is greater than zero.