Patent ID: 7245586

Claim:
A method of operating a buffer in a communications device, said buffer including a guaranteed buffer portion for each port of a designated service class and drop priority and a shared buffer portion having an aggregate threshold for each class and drop priority, for each queue in said buffer a first variable S being a queue length in the guaranteed buffer pool and a second variable Sshared being a queue length of said shared buffer portion, said method comprising the steps of: enqueuing arriving buffer data and incrementing S correspondingly if S is less than said guaranteed buffer portion; enqueuing the buffer data and incrementing Sshared correspondingly if Sshared is less than the shared buffer portion and Sshared is less than a maximum amount of buffers of a given drop priority that may be shared for a service class; and otherwise determining whether to discard the buffer data wherein said step of determining includes the steps of: discarding the buffer and setting an EPD state if the buffer data is the start of a packet, discard the buffer and set the PPD state if the buffer is not the end of the packet; if the buffer is the end of the packet and EPD is not set, enqueuing the buffer if total occupied shared buffer is less than the total shared allotment of buffer space for a service class; otherwise discarding the buffer.