Method and apparatus to support efficient check-point and role-back operations for flow-controlled queues in network devices
First Claim
1. A method comprising:
- employing queue descriptors to manage transfer of data from corresponding queues in a memory store into a switch fabric, each queue descriptor including, an enqueue pointer identifying a tail cell of a segment of data scheduled to be transferred from the queue;
a schedule pointer identifying a head cell of the segment of data scheduled to be transferred from the queue; and
a commit pointer identifying a most recent cell in the segment of data to be successfully transmitted into the switch fabric.
1 Assignment
0 Petitions
Accused Products
Abstract
Method and apparatus to support efficient check-point and role-back operations for flow-controlled queues in network devices. The method and apparatus employ queue descriptors to manage transfer of data from corresponding queues in memory into a switch fabric. In one embodiment, each queue descriptor includes an enqueue pointer identifying a tail cell of a segment of data scheduled to be transferred from the queue, a schedule pointer identifying a head cell of the segment of data, and a commit pointer identifying a most recent cell in the segment of data to be successfully transmitted into the switch fabric. In another embodiment, the queue descriptor further includes a scheduler sequence number; and a committed sequence number that are employed in connection with transfers of data from queues containing multiple segments. The various pointers and sequence numbers are employed to facilitate efficient check-point and roll-back operations relating to unsuccessful transmissions into the switch fabric.
-
Citations
20 Claims
-
1. A method comprising:
employing queue descriptors to manage transfer of data from corresponding queues in a memory store into a switch fabric, each queue descriptor including, an enqueue pointer identifying a tail cell of a segment of data scheduled to be transferred from the queue;
a schedule pointer identifying a head cell of the segment of data scheduled to be transferred from the queue; and
a commit pointer identifying a most recent cell in the segment of data to be successfully transmitted into the switch fabric. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
12. An apparatus, comprising:
-
a queue management engine, to manage transfer of data stored in memory queues into a switch fabric using corresponding queue descriptors, each queue descriptor including, an enqueue pointer identifying a tail cell of a segment of data scheduled to be transferred from the queue;
a schedule pointer identifying a head cell of the segment of data scheduled to be transferred from the queue; and
a commit pointer identifying a most recent cell in the segment of data to be successfully transmitted into the switch fabric;
a buffer manager, to manage transmit buffers in which data to be transferred is temporarily stored prior to being transmitted into the switch fabric; and
a transmit engine, to effect transmission of data from the transmit buffers into the switch fabric. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A network line card, comprising:
-
a circuit board including a backplane interface having a plurality of signal lines, at least a portion of which may be used to transfer data and control signals to a switch fabric;
a static random access memory (SRAM) memory store, operatively-coupled to the circuit board;
a dynamic random access memory (DRAM) memory store, operatively-coupled to the circuit board;
a network processor unit, operatively-coupled to the circuit board and including, a plurality of compute engines, each to support execution of a plurality of instruction threads;
a DRAM interface, communicatively-coupled to the plurality of compute engines and the DRAM store;
as SRAM interface, communicatively-coupled to the plurality of compute engines and the SRAM store;
a media switch fabric interface, communicatively-coupled to the plurality of compute engines and the backplane interface;
a plurality of transmit buffers, communicatively coupled to the media switch fabric interface or integrated therewith; and
at least one non-volatile storage device, integrated on the NPU or operatively-coupled to the circuit board and communicatively-coupled to the NPU, to store instructions that if executed on selected compute engines facilitates operation of a plurality of operational blocks, including, a queue management engine, to manage transfer of data stored in memory queues in the DRAM store into a switch fabric using corresponding queue descriptors, each queue descriptor including, an enqueue pointer identifying a tail cell of a segment of data scheduled to be transferred from the queue;
a schedule pointer identifying a head cell of the segment of data scheduled to be transferred from the queue; and
a commit pointer identifying a most recent cell in the segment of data to be successfully transmitted into the switch fabric;
a buffer manager, to manage the plurality of transmit buffers into which data to be transferred is temporarily stored prior to being transmitted into the switch fabric; and
a transmit engine, to effect transmission of data from the transmit buffers into the switch fabric. - View Dependent Claims (19, 20)
-
Specification