
CN8236
5.0 Reassembly Coprocessor
ATM ServiceSAR Plus with xBR Traffic Management
5.4 Buffer Management
28236-DSH-001-A
Mindspeed Technologies
5-29
5.4.11 Firewall Functions
Implementation of multiple free buffer queues and EPD performs a firewalling
functionality on a group basis.
The user can also set up per-VCC firewalling on a channel-by-channel basis.
The firewall mechanism allows the user to allocate buffer credits on a per-channel
basis.
NOTE:
When firewalling is enabled in the RSM coprocessor and an FBQ empty
(underflow) condition is encountered, the RX_COUNTER field in the
VCC table(s) still decrements each time the VCC receives a BOM cell.
The RX_COUNTER should not be decremented when the FBQ is empty.
There is no workaround for this problem. The user “must” avoid FBQ
empty conditions when firewalling is enabled.
5.4.11.1 Setup
Set RSM_FQCTRL(FBQ0_RTN) to a logic high. This sets free buffer queue
block 0 to contain queues with 4-word entries. This is used to support per-VCC
firewall credit update.
Set the global firewall control bit to a logic high in register RSM_CTRL0,
field (FWALL_EN), to globally enable firewall processing on a per-channel
basis.
Set the following fields of the VCC table entry for the channel being set up for
firewall processing:
The FW_EN bit set to a logic high enables firewall processing on that
channel.
Set RX_COUNTER[15:0] to assign the initial buffer credit for the
channel.
Initialize the FORWARD fields in the free buffer queue base tables to point to
the entry where credit is initially returned. Typically, this is the first entry after the
initial buffers placed on the queue. Write the FWD_VLD bit in all free buffer
queue entries to a logic low.
5.4.11.2 Operation
Whenever a buffer is taken off free buffer queues 0 through 15 during reassembly
on a channel enabled for firewall processing, the RSM coprocessor decrements
the RX_COUNTER[15:0] in the RSM VCC table entry for that channel. This
allows COM buffers to be placed on queues 16 through 31 without being
firewalled.
If the RX_COUNTER[15:0] for a channel is 0 when a buffer is required, the
RSM coprocessor declares a firewall condition. If the firewall condition occurs
on a BOM or SSM, the CN8236 writes a status queue entry with the FW bit set
and a NULL in the BD_PNTR field.
If the firewall condition occurs on a COM or EOM, the RSM coprocessor
initiates EPD and writes a status queue entry with the FW and EPD bits set. It
then discards cells on that channel until the channel has recovered from the
firewall condition.
All AAL5 PDU’s discarded under the firewall condition cause the
AAL5_DSC_CNT counter to be incremented. Recovery occurs only on a BOM
or SSM cell when the credit is rechecked.
5.4.11.3 Credit Return
The user returns credit, at the same time the buffer is recovered to the free buffer
queue, by writing the third word of the free buffer queue. The VCC_INDEX is
written to the channel to which credit is returned. The FWD_VLD bit is set to a
logic high, and the QFC bit is set to a logic low. The RSM coprocessor increments