CX82100 Home Network Processor Data Sheet
Imperfect Address Filtering
The HNP system can store 512 bits serving as hash bucket heads to support
"multicasting". The purpose of multicasting is to allow a group of nodes in a network to
receive the same message. Each node can maintain a list of multicast addresses that it will
respond to.
The multicast address filtering in the HNP system is a hardware-assisted hashing
mechanism. It can reduce the amount of CPU time required to determine whether or not
the incoming frame, with a multicast destination address, will be accepted.
For a given list of multicast addresses that the HNP system will respond to, the HNP
software first maps each multicast address into one of the 512 hash bits using the same
cyclic redundancy check (CRC) algorithm specified in the 802.3 standard. The CRC is
the 32-bit remainder of dividing a message polynomial (specified in the 802.3 standard)
by the generating polynomial G(x) =
X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1. Figure 7-8 shows a
division circuit for G(X) using a 32-bit linear feedback shift register. The message bits
are shifted in from the left one bit at a time according to the ascending order of X in the
polynomial representation of message bits. After all bits are shifted in, the remainder is
generated and stored in the register.
Figure 7-8. A Circuit for Dividing by G(x)
X0
X1
X2 X3
X4
X5 X6
X7
X8 X9
X10
X11
X12 ... X15
X16
...
X21
X22
X23 .. X25
X26
...
X31
X0
X1
X2
X4
X5
X7
X8
X10
X11
X12
X16
X22
X23
X26
X32
G(X) = X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1
101545_035
The same CRC algorithm will be used to map each multicast address into one of the 512
hash bits organized as a 32x16 hash table. The table is seen by the software as the lower
16 bits of the first 32 entries of the setup frame. Each 6-byte multicast address that the
node will respond to is fed into the CRC algorithm to generate a 32-bit CRC value. The
most significant 9 bits of the result is used as an index into a 32x16-bit hash table. The
upper 5 bits are used to identify the row of the table and the lower 4 bits are used to point
to the bit position of the selected row. The selected bit position will be turned on (set to
binary 1) by the software.
7-18
Conexant Proprietary and Confidential Information
101306C