IXP1200 Network Processor Family ATM
The
The VC table entry answers the following questions for the ATM Receive thread:
•Is the VC open? (If no, discard the cell)
•Which LLC/SNAP patterns are expected at the start of each PDU? (If no match, discard cell.)
•Which AAL is the VC open for? (ATM Receive currently processes only AAL5.)
•Where should ATM Receive put the payload in DRAM (buffer and offset)?
•For hardware CRC: what is the current syndrome for this PDU?
4.1.2VC_TABLE_HASHED Structure
VC_TABLE_HASHED supports the entire ATM VC
•At initialization, microcode loads the hash48 multiplier CSRs with the largest prime number that fits into 48 bits: 0xffffffffffc5.
•At
key = (atm_header & 0xFFFFFFF0) port#) hash_output = hash1_48[key]
Index = ((hash_output) ^ (hash_output >> 16) ^ (hash_output >> 32)) & 0xFFFF
The index is used to read an entry from a 64K entry "primary" hashed VC Table in SRAM. If the key in the entry matches the starting key, the hash table has successfully delivered the right VC table entry with just one SRAM read. If the key does not match the key in the entry read from the primary table, it follows a linked "collision" list threaded with the entry "Next" field (see figure Figure 23)
30 | Application Note |
Modified on: 3/20/02,