Processing data packets
AssigneeIntel Corporation
InventorsGilbert Wolrich, Mark B. Rosenbluth, Debra Bernstein
Life of this patent
Estimating the term…
Abstract
A method and apparatus for processing data packets including generating an enqueue command specifying a queue descriptor associated with a new buffer. The queue descriptor is part of a cache of queue descriptors each having a head pointer pointing to a first buffer in a queue of buffers, and a tail pointer pointing to a last buffer in the queue. The first buffer having a buffer pointer pointing to next buffer in the queue. The buffer pointer associated with the last buffer and the tail pointer is set to point to the new buffer.
Claims30
A method of processing data packets comprising:
- generating an enqueue command specifying a queue descriptor associated with a new buffer in response to receiving an enqueue request, with the queue descriptor stored in a cache and the queue descriptor having a head pointer pointing to a first buffer in a queue of buffers and a tail pointer pointing to a last buffer in the queue of buffers and with the first buffer having a buffer pointer pointing to a next buffer in the queue;
- setting a buffer pointer associated with the last buffer to point to the new buffer;
- and
- setting the tail pointer to point to the new buffer.
An apparatus for processing data packets comprising:
- a first memory comprising:
- a queue of buffers, having a first buffer with a buffer pointer pointing to a next buffer in the queue, and
- a cache of queue descriptors, each of which has a head pointer pointing to the first buffer in the queue, and a tail pointer pointing to a last buffer in the queue;
- a processor coupled to the first memory;
- and
- a computer-readable medium storing instructions that when applied to the processor, cause the processor to:
- generate an enqueue command specifying a queue descriptor associated with a new buffer, in response to receiving an enqueue request associated with the new buffer,
- set a buffer pointer associated with the last buffer to point to the new buffer, and
- set the tail pointer to point to the new buffer.
An article comprising a computer-readable medium that stores computer executable instructions for causing a computer system to:
- generate an enqueue command specifying a queue descriptor associated with the new buffer in response to receiving an enqueue request, the queue descriptor being stored in a cache of queue descriptors, the queue descriptors having a head pointer pointing to a first buffer in a queue and a tail pointer pointing to a last buffer in the queue, the first buffer having a buffer pointer pointing to a next buffer in the queue;
- set a buffer pointer associated with the last buffer to point to the new buffer;
- and
- set the tail pointer to point to the new buffer.
A system comprising:
- a source of data packets grouped into data buffers;
- a destination for the data buffers;
- and
- an apparatus coupled to the source of the data packets and to the destination of the data buffers, the apparatus comprising:
- a first memory comprising:
- a queue of buffers having a first buffer with a buffer pointer pointing to a next buffer in the queue, and
- a cache of queue descriptors, each of which has a head pointer pointing to the first buffer in the queue and a tail pointer pointing to a last buffer in the queue, and
- a processor coupled to the first memory, and a computer-readable medium storing instructions that when applied to the processor, cause the processor to:
- generate an enqueue command specifying a queue descriptor associated with a new buffer,
- set a buffer pointer associated with the last buffer to point to the new buffer, and
- set the tail pointer to point to the new buffer.
Dependencies are inferred from the claim text.