Method for reducing processing latency in a multi-thread packet processor with at least one re-order queue
First Claim
1. A method of reducing processing latency in a multi-thread packet processor with at least one first-in-first-out re-order queue, the method comprising the steps of:
- implementing stage 1 packet processing;
marking a packet as ready to be transmitted from the first-in-first-out re-order queue in a scoreboard table;
reading an identifier at the head of the re-order queue,using the identifier to locate a flag in the scoreboard table,reading the flag in the scoreboard table associated with the identifier, andtransmitting the packet if the flag in the scoreboard table indicates that stage 1 processing has been completed for the packet; and
implementing stage 2 packet processing after the step of marking the packet for transmission from the re-order queue.
13 Assignments
0 Petitions
Accused Products
Abstract
Packet processing is broken into two or more stages. In particular, the network processing unit 26 performs a first stage of packet processing related to packet forwarding and packet modification, and then performs a second stage of packet processing unrelated to packet forwarding and packet modification. Example processes unrelated to packet forwarding and packet modification may include state updates on the network element, such as statistics counter updates, stateful flow tracking, IPFix processing, MAC learning, and other processes important to operation of the network element, but which do not affect the appearance of the packet (e.g. packet format) and which do not affect the forwarding decision of the packet. Once the first stage of packet processing related to packet forwarding and packet modification has been completed, the flag associated with the packet is cleared in the scoreboard, to allow the packet to be transmitted from the reorder queue.
-
Citations
17 Claims
-
1. A method of reducing processing latency in a multi-thread packet processor with at least one first-in-first-out re-order queue, the method comprising the steps of:
-
implementing stage 1 packet processing; marking a packet as ready to be transmitted from the first-in-first-out re-order queue in a scoreboard table; reading an identifier at the head of the re-order queue, using the identifier to locate a flag in the scoreboard table, reading the flag in the scoreboard table associated with the identifier, and transmitting the packet if the flag in the scoreboard table indicates that stage 1 processing has been completed for the packet; and implementing stage 2 packet processing after the step of marking the packet for transmission from the re-order queue. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A network element, comprising:
-
a multi-threaded packet processor, each thread of the multi-threaded packet processor being assigned to a separate packet, the processor being configured to implemented a pipelined packet processing scheme in which one stage of packet processing occurs at each stage of the pipelined packet processing scheme; a scoreboard table containing flags associated with packets assigned to threads in the multi-threaded packet processor; and a re-order queue maintaining packet order; wherein the network element is configured to identify a packet at a head of the re-order queue, check one of the flags in the scoreboard table associated with the packet at the head of the re-order queue to determine if the packet is ready to be forwarded, and forward the packet only when the one of the flags in the scoreboard table associated with the packet at the head of the re-order queue indicates that the packet is ready to be forwarded; and wherein the multi-threaded packet processor will cause the one of the flags in the scoreboard table associated with the packet at the head of the re-order queue to indicate that the packet is ready to be forwarded prior to completion of all stages of packet processing of the pipelined packet processing scheme. - View Dependent Claims (15, 16, 17)
-
Specification