IXP1200 Network Processor Family ATM OC-3/12/Ethernet IP Router Example Design
26 Application Note
Modified on: 3/20/02,
Quadwords 1-5 are transferred by an sdram_crc[r_fifo_rd, 5] instruction. Quadword 6 contains
"Data 11" -- the eleventh 32-bit longword of the cell. Data 11 is stored in the VC table entry to be
consumed when the next cell in this PDU arrives. When the first cell is also the last cell (for
example, for a single-cell-PDU), Data11 contains the CRC-32 of the AAL5 trailer, and it is
compared to the ones complement of the computed CRC syndrome.
This design can actually skip the first RFIFO->DRAM transfer because LLC0 is constant on the
first cell and it is explicitly compared with the LLC0 value in the microengine. After a successful
compare, it is stripped from the packet. With the following optimization enabling definition,, the
CRC computation begins with LLC1 using the syndrome that would result from CRC over LLC0
(with the initial configuration, it is enabled by default):
#define CRC32_RX_LLC0
The algorithm for transferring the nth cell of a PDU is slightly different than that for moving the
first cell - as illustrated in Figure 17.
Looking at the quadword on the row labeled 6:
The four bytes labeled 11 make up the longword data11 from the first cell. The four bytes
labeled 0 make up the longword data0 from the second cell.
Figure 16. First Cell of a PDU in RFIFO and in DRAM
01234567Bytes -> (Big Endian Diagram)
0 ATM Header LLC0
1 LLC1 IP
2IP
3IP
4 77778888
5 9 9 9 9 10101010
6 11111111 - - - -
Figure 17. Two-Cell PDU in DRAM
01234567Bytes -> (Big Endian Diagram)
0 ATM Header LLC
1 LLC IP
2IP
3IP
477778888
5999910101010
6 111111110 0 0 0
711112222
833334444
955556666
1077778888
119999AAL5*
12 CRC32* - - - -