
IBM2520L8767
IBM Processor for ATM Resources
atmrm.chapt03.01
08/27/99
Packet Header
Page 65 of 553
AAL5 FIFO Mode LCD
An AAL5 FIFO Mode LCD allows AAL5 packets to be concatenated in a single receive buffer. The receive
buffer is the FIFO. This is useful with applications such as MPEG where small fixed-size packets are
received, but the overhead of receiving a large number of packets per second is too high. This mode allows
the packets to be gathered together into the FIFO (or super packet) and then be processed with a single
receive interrupt.
The receive packet sizes do not need to be fixed-size, but the user needs to be able to parse the receive
packets if they are not. The fifoThresh is used to specify the largest packet that will be received. When the
free space in the FIFO falls to this threshold, the end of the current packet will terminate the FIFO packet.
Subsequent cells are gathered into another packet.
The encoded fifoSize field specifies how large the FIFO buffer can grow. This value should be less than or
equal to the size of the receive buffers as configured in VIMEM.
The fifoPtr should be initialized to zero and used by the IBM2520L8767 to keep track of the current location in
the FIFO buffer between packets.
When a FIFO packet completes, there are two modes of operation. First, the default mode operates just like
cut-through Mode 6. When the packet completes, a cut-through DMA descriptor is used to move the data to
system storage. This can be disabled in the RAALL control register. When disabled, the packet is surfaced to
software via a super-packet event (0xe) just like a normal AAL5 packet.
AAL5 FIFO Mode LCD Layout
class Aal5Ct6Lcd {
bit2
aalType;
// 01 - Aal 5
bit4
mode;
// 1000 - same as cut thru mode 6 (see fifo mode bit below)
bit2
state;
// 00 - down
// 01 - idle
// 10 - reasm
// 11 - error
bit1
rtoTest;
bit1
rtoEnable;
bit1
tmpCLP;
bit1
tmpCongestion;
bit1
fifoMode;
// must be set to 1 to use this mode
bit3
ctRxqNum;
bit1
dmaQsel;
bit3
rxqNum;
bit4
rxPoolId;
bit8
rxOffset;
bit3
bit13 fifoThresh;
bit16 fifoPtr;
bit32 rxBuffAddr;
bit32 rxCrc;
bit32 tucCLP0;
bit32 tuc;
bit32 hostData;
bit16 oamTUC;
bit16 oamBIP;
};
fifoSize;