Patent ID: 8862797

Claim:
A method of operating a buffer for buffering network communication data, the buffer having a plurality of memory entries; the method comprising: setting at least one of a read pointer and a write pointer to establish a depth of the buffer to be a first value, wherein the write pointer points to a memory entry in which data is written to the buffer and the read pointer points to a memory entry from which data is read from the buffer, and wherein the depth is defined as the number of memory entries in the buffer between the memory entry pointed to by the read pointer and the memory entry pointed to by the write pointer; monitoring variation of the depth of the buffer for a predetermined period of time during which a plurality of read and write operations occur as network communication data flows through the buffer, wherein said monitoring the variation of the depth of the buffer for the predetermined period of time comprises determining a minimum depth of the buffer during the predetermined period of time; when the minimum depth of the buffer is greater than zero then: reducing the depth of the buffer based upon the monitoring of the variation of the depth of the buffer during the predetermined period of time, wherein said reducing the depth of the buffer comprises moving at least one of the read pointer and the write pointer to reduce the depth of the buffer by an amount no greater than the minimum depth of the buffer determined during the predetermined period of time; wherein said amount by which the depth of the buffer is reduced is equal to the minimum depth of the buffer minus a margin.