74
5.0 Reassembly Coprocessor
5.2 Reassembly Functional Description
RS8234
Datasheet for RS8234 xBR ServiceSAR
N8234DS1B
VCI_RANGE in the VPI Index table entry, as well as BLK_EN in the VCI Index
table entry when EN_PROG_BLK_SZ is enabled.
VPI/VCI address pairs can now be preallocated in groups by mapping VCI
Index table entries to blocks in the reassembly VCC Table.
Once the reassembly process has been initiated, additional channels, Switched
Virtual Circuits (SVCs), can be dynamically allocated with simple “on-the-fly”
index updates.
5.2.2.3 Operation
Upon reception of a cell, the reassembly coprocessor uses the VPI field as an
index into the VPI Index table, the base address of which is located at
RSM_TBASE(RSM_ITB) * 0x80. The maximum allowed VPI value for UNI
header operation is 255, and the maximum allowed VPI value for NNI operation
is 4095, controlled by the RSM_CTRL0(VPI_MASK) field. If the VPI_MASK
bit is a logic high (indicating UNI header operation), the four most significant bits
of the ATM header are ANDed with “0000”. The Rsm coprocessor uses the VPI
value to read the VPI Index table entry.
The VCI_RANGE field in the VPI Index table entry is used to set the maxi-
mum allowed value of VCI[15:x] values for that VPI, and thus sets the usable size
of the VCI Index table for that VPI. If the value of VCI[15:x] of the received VCI
field in the ATM header is greater than the VCI_RANGE field in the VPI Index
table entry, or VP_EN is a logic low, the reassembly coprocessor discards the cell
and increments the CELL_DSC_CNT counter.
The VCI_IT_PNTR indicates the base address of the VPIs VCI Index table.
The RS8234 then reads the appropriate entry in the VCI Index table. The address
of the VCI Index Table entry is derived as follows:
VCI_IT_PNTR * 4 + VCI[15:x] * 4
The VCC_BLOCK_INDEX in the VCI Index table entry selects a contiguous
block of 64 reassembly VCC State Table entries (or from one to 64 VCC State
Table entries if EN_PROG_BLK_SZ is enabled), offset from the base address of
the reassembly VCC Table. The VCC_INDEX value is derived by concatenating
the VCC_BLOCK_INDEX value with the VCI[x-1:0] bits from the received cell
header. Thus, VCI[x-1:0] from the received header points to the reassembly VCC
State Table entry for that VCC.
VCC_INDEX = VCC_BLOCK_INDEX + VCI[x-1:0]
The reassembly coprocessor reads the first word of the VCC Table entry. If
VC_EN is a logic low, the cell is discarded and the CELL_DSC_CNT counter is
incremented. Optionally, the counter is not incremented if the AAL_TYPE field
has a value of “11”. VC_EN allows idle cells to be filtered if the PHY layer has
not already done so.
If the channel is active, the RS8234 increments the CELL_RCVD_CNT
counter.
5.2.2.4 AAL3/4 Lookup
AAL3/4 MID multiplexing requires an additional level of indirection in channel
lookup for received AAL3/4 traffic. This is due to the fact that one Virtual Con-
nection can have a multiple number of connectionless messages (like SMDS data-
grams) multiplexed onto that one received connection. Each of these long SDUs
is identified by its MID value. Thus, the VCC lookup also includes the MID value
in the lookup mechanism.