Pipelined packet processor
First Claim
Patent Images
1. A pipelined packet processing system comprising:
- a pipelined processor configured to
1) provide at least one pipeline having one or more slots,
2) assign packets to each of one or more available ones of the slots,
3) process one or more of the assigned packets during one or more processing cycles, and
4) derive a packet classification or forwarding decision for each of the one or more assigned packets, upon or after the one or more assigned packets have undergone one or more cycles of processing;
wherein the pipelined processor is further configured to process a packet, assigned to a slot, during a processing cycle by
1) accessing one or more resources responsive to packet processing state data relating to the packet,
2) retrieving data from the one or more resources, and
3) selectively updating the packet processing state data relating to the packet responsive to the data retrieved from the one or more resources; and
the packet processing state data relating to the packet is stored in or assigned to the same slot of the pipeline as the packet, updated packet processing state data is formed from the packet processing state data after a predetermined number of processing cycles of the packet on the pipeline, where the predetermined number of processing cycles is programmable, and the processor derives the classification or forwarding decision for the packet from the updated packet processing state data for the packet after the predetermined number of processing cycles of the packet is completed.
8 Assignments
0 Petitions
Accused Products
Abstract
A pipelined packet processor is described having at least one pipeline, the at least one pipeline having one or more processing slots. Packets are assigned to available ones of the slots, and each of one or more of the assigned packets are processed during one or more cycles of processing. Upon or after a packet has undergone one or more cycles of processing, a packet classification or filtering decision is derived for the packet.
-
Citations
42 Claims
-
1. A pipelined packet processing system comprising:
-
a pipelined processor configured to
1) provide at least one pipeline having one or more slots,
2) assign packets to each of one or more available ones of the slots,
3) process one or more of the assigned packets during one or more processing cycles, and
4) derive a packet classification or forwarding decision for each of the one or more assigned packets, upon or after the one or more assigned packets have undergone one or more cycles of processing;wherein the pipelined processor is further configured to process a packet, assigned to a slot, during a processing cycle by
1) accessing one or more resources responsive to packet processing state data relating to the packet,
2) retrieving data from the one or more resources, and
3) selectively updating the packet processing state data relating to the packet responsive to the data retrieved from the one or more resources; andthe packet processing state data relating to the packet is stored in or assigned to the same slot of the pipeline as the packet, updated packet processing state data is formed from the packet processing state data after a predetermined number of processing cycles of the packet on the pipeline, where the predetermined number of processing cycles is programmable, and the processor derives the classification or forwarding decision for the packet from the updated packet processing state data for the packet after the predetermined number of processing cycles of the packet is completed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 42)
-
-
21. A method, performed in, by or for a pipelined packet processor, of performing pipelined processing of one or more packets comprising the steps of:
-
providing at least one pipeline having one or more slots; assigning one or more packets to one or more available ones of the slots; processing each of the one or more assigned packets during one or more processing cycle; processing a packet, assigned to a slot, during a processing cycle by
1) accessing one or more resources responsive to packet processing state data relating to the packet,
2) retrieving data from the one or more resources, and
3) selectively updating the packet processing state data relating to the packet responsive to the data retrieved from the one or more resources;storing or assigning the packet processing state data relating to the packet in or to the same slot of the pipeline as the packet; deriving updated packet processing state data from the packet processing state data during a predetermined number of processing cycles of the packet on the pipeline, where the predetermined number of processing cycles is programmable; deriving a classification or forwarding decision for the packet after the packet has undergone the predetermined number of processing cycles. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40)
-
-
41. A system for performing pipelined processing of one or more packets comprising:
-
first means for providing at least one pipeline having one or more slots; second means for assigning packets to one or more available ones of the slots, processing each of one or more of the assigned packets during one or more cycles of processing; and third means for processing a packet, assigned to a slot, during a processing cycle by
1) accessing one or more resources responsive to packet processing state data relating to the packet,
2) retrieving data from the one or more resources, and
3) selectively updating the packet processing state data relating to the packet responsive to the data retrieved from the one or more resources;wherein the packet processing state data relating to the packet is stored in or assigned to the same slot of the pipeline as the packet, and updated packet processing state data is formed from the packet processing state data after a predetermined number of processing cycles of the packet on the pipeline, where the predetermined number of processing cycles is programmable; and fourth means for deriving a classification or forwarding decision for the packet upon or after the same has undergone the predetermined number of processing cycles.
-
Specification