Cell Relay Archive[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index][Thread Index][Author Index][Subject Index] Re: AAL5 CRC computation, where/how done?
Ken Christensen wrote: > > Can anyone tell me where and how the AAL5 packet (EPDU) CRC32 is > computed in an ATM adapter? Every AAL5 packet has a CRC32 appended to > it before segmentation into cells. On the receive side, after > reassembly of the packet the CRC32 is checked before passing the packet > "up". I can see several ways to compute AAL5 packet CRCs... > > 1) Have a separate AAL5 packet CRC circuit per each VC. Yuck, lots of > redundant hardware. > > 2) Have a single CRC circuit and "context swap" the CRC circuit shift > register value for each cell of a diffent VC. Rather complex? > > 3) Assemble the packet on the adapter and then compute the CRC when > transfering to host memory. OK, but this means lots of VC buffers on > the ATM adapter are needed. > > 4) Compute the CRC32 in software on the host. Yuck. This burns lots of > host CPU cycles. > > So, which one of the above is implemented in "typical" ATM adapters? > Or, if none of the above... what is it? It's commonly done via method 2. It's not really all that complex, since the 32-bit CRC partial sum is stored in the table with all the other per-VC information (where the current buffer pointer is, stat counts, etc). With each cell received, the partial sum is pulled into the SAR chip, updated with the 48 bytes of data from the cell, and put back in the table (typically SRAM) while the cell payload is being written into either temporary on-board buffers, or across the system bus into main memory (probably DRAM). The CRC is not really done serially (yes, I know it's taught that way in all the data comm courses), because the data is already sitting in parallel registers when the SAR get ahold of it. For just one example, check out IDT's SAR chip spec at http://www.idt.com/docs/3502.pdf The cell-processing description starts about page 14. By the way, there are some ATM adapters that have on-board re-assembly buffers, and yes, there can be a lot of them - some companies even offer choices - 128K or 512KB for example. Method 4 was tried by Fore in the early days - they had a white paper claiming that software could implement AAL5, but seemed to have given up on the idea :-) George Marshall -- george@marshalls.org |
|