System and method for efficient shared buffer management
AssigneeJuniper Networks, Inc.
InventorsJohn Delmar Johnson, Abhijit Ghosh, Manju Agrawal
Life of this patent
Estimating the term…
Abstract
A method for managing a shared buffer between a data processing system and a network. The method provides a communication interface unit for managing bandwidth of data between the data processing system and an external communicating interface connecting to the network. The method performs, by the communication interface unit, a combined de-queue and head drop operation on at least one data packet queue within a predefined number of clock cycles. The method also performs, by the communication interface unit, an en-queue operation on the at least one data packet queue in parallel with the combined de-queue operation and head drop operation within the predefined number of clock cycles.
Claims20
A method comprising:
- storing, by a processor of a device, a first data unit in a data queue;
- receiving, by the processor, a second data unit to be stored in the data queue after storing the first data unit;
- determining, by the processor, that the data queue does not include sufficient available space to store both the first data unit and the second data unit;
- allocating, by the processor, space in the data queue to store the second data unit,
- the allocating of the space including:
- determining whether an output port, associated with the first data unit, is available,
- performing, when the output port is available, a de-queue operation, the de-queue operation including removing the first data unit from the data queue, and
- performing, when the output port is unavailable, a head drop operation that includes removing the first data unit from the data queue;
- and
- performing, by the processor, an en-queue operation that includes writing the second data unit to the allocated space in the data queue,
- the en-queue operation being performed in parallel with the de-queue operation or the head drop operation.
A data processing system comprising:
- a communication interface unit for managing bandwidth of data packets received from a network, the communication interface unit comprising:
- a memory comprising a data queue;
- and
- a buffer manager to:
- store a first data unit in the data queue,
- receive a second data unit to be stored in the data queue after storing the first data unit, the data queue including insufficient available space to store both the first data unit and the second data unit,
- determine whether an output port, associated with the first data unit, is available,
- perform, when the output port is available, a de-queue operation, the de-queue operation including removing the first data unit from the data queue, and
- perform, when the output port is not available, a head drop operation that includes removing the first data unit from the data queue, and
- perform an en-queue operation, the en-queue operation including writing the second data unit to the data queue,
- the buffer manager performing the en-queue operation in parallel with at least one of the de-queue operation or the head drop operation.
A non-transitory computer readable medium to store instructions, the instructions comprising:
- one or more instructions which, when executed by a network device, cause the network device to:
- store a first data unit in at least one data packet queue;
- receive, after storing the first data unit, a second data unit to be stored in the at least one data packet queue, the at least one data packet queue including insufficient available space to store both the first data unit and the second data unit;
- determine whether an output port, associated with the network device, is available;
- perform, when the output port is available, a de-queue operation, the de-queue operation including removing the first data unit from the data queue;
- and
- perform, the output port is unavailable, a head drop operation that includes removing the first data unit from the data queue,
- the en-queue operation being performed in parallel with at least one of the de-queue operation or the head drop operation.
Dependencies are inferred from the claim text.