Product Brief NPFPP
March 2002 Fast Pattern Processor
4
FPP Performance With the RSP
The FPP is complemented by the Routing Switch Processor
(RSP). The RSP is also programmable, and works in concert
with the FPP to process the PDUs classified by the FPP. The
RSP uses the classification information received from the
FPP to determine:
■The starting offset and the length of the PDU payload.
■The classification conclusion for the PDU. This information
determines the port and the associated RSP processing
selected for the PDU.
■Additional PDU information passed in the form of flags.
The R SP provides programmable traffic management,
including policies such as:
■Random Early Discard (RED)
■Weighted Random Early Discard (WRED)
■Early Packet Discard (EPD)
■Partial Packet Discard (PPD)
The RSP also provides:
■Program mable Traffic Shaping, inclu di ng pro gramm abl e
per queue QoS and CoS.
—QoS policies include constant bit rate (CBR), unspecified
bit rate (UBR), and variable bit rate (VBR).
—CoS policies include fixed priority, round robin, weighted
round robin (WRR), weighted fair queuing (WFQ), and
guaranteed frame rate (GFR).
■Programmable Packet Modifications, including adding/
stripping headers and trailers, rewriting or modifying
contents, adding tags, updating checksums and CRCs.
You program the RSP using a scripting language with
semantics similar to the C language. Agere Systems provides
many common scripts which you can use or modify, or you
can write your own scri pts.
How the FPP Works
The FPP is a pipelined, multithreaded processor that
simultaneously analyzes and classifies up to 64 PDUs. Each
PDU has its own processing thread, called a context. A
context is a processing path that keeps track of all of the
blocks of a PDU, the number of the port on which the PDU
arrived, the data offset for the PDU, last-block information,
any program variables for the PDU, and the PDU’s
classification information.
The FPP does not use speculative execution and does not
suffer the pipeline stalls or context switching overhead that
are usually associated with sequential processing
arch itectures. The FPP processes data in two passes:
■The first pass processes PDUs as sepa rate 64-byte
blocks. The first pass typically stores the block data offsets
and links the blocks that compose the PDU.
■The replay pass processes the PDU as a whole. In the
replay pass, the FPP simultaneously performs pattern
matching and transmits the PDU to the output interface,
which performs reassembly, if necessary, by stripping data
from the blocks of the PDU using the data offsets defined
in the first pass.
The exact processing that occurs in both the first and replay
passes is specified by programs written in Agere Systems’
Functional Programming Language.
FPP Components
■Input Framer—frames the input stream into 64-byte blocks,
writes the blocks into the data buffer, and writes the blocks
and their configuration information into the block buffers
and cont ext memo ry.
■Output Inte rface —sends PDUs (stripped according to
block offsets) and their classification conclusions to the
downstream logic.
■Block Buffers and Context Memory—stores the blocks
being processed for each context, along with additional
context information.
■Pattern Processing Engine (PPE)—performs pattern
matchi ng to determi ne how PDUs are clas si fied and
processed.
■Checksum /CRC Eng ine—performs checksum and CRC
calculations.
■Queue En gine—manages FPP replay contexts, provides
addresses for block buffers, and maintains information on
blocks, PDUs, and connection queues.
■Arithmetic Logic Unit—performs computational functions.
■Management Path Interface—provides an input path from
the ASI for management PDUs.
■Configuration Bus Interface—provides access to the FPP,
RSP, and physical input interface for configuring registers
and memor y.
■Functional Bus Interface (FBI)—passes external FPL
function calls to external logic.
The figure below shows the major components of the FPP.