Visible to Intel only — GUID: bhc1410931563925
Ixiasoft
Visible to Intel only — GUID: bhc1410931563925
Ixiasoft
5.1.4.3.2. Multicast Address Resolution
The MAC function uses a 64-entry hash table in the register space, multicast hash table, to implement the hardware multicast address resolution engine as shown in figure below. The host processor must build the hash table according to the specified algorithm. A 6-bit code is generated from each multicast address by XORing the address bits as shown in table below. This code represents the address of an entry in the hash table. Write one to the most significant bit in the table entry. All multicast addresses that hash to the address of this entry are valid and accepted.
You can choose to generate the 6-bit code from all 48 bits of the destination address by setting the MHASH_SEL bit in the command_config register to 0, or from the lower 24 bits by setting the MHASH_SEL bit to 1. The latter option is provided if you want to omit the manufacturer's code, which typically resides in the upper 24 bits of the destination address, when generating the 6-bit code.
Hash Code Bit | Value |
---|---|
0 | xor multicast MAC address bits 7:0 |
1 | xor multicast MAC address bits 15:8 |
2 | xor multicast MAC address bits 23:16 |
3 | xor multicast MAC address bits 31:24 |
4 | xor multicast MAC address bits 39:32 |
5 | xor multicast MAC address bits 47:40 |
Hash Code Bit | Value |
---|---|
0 | xor multicast MAC address bits 3:0 |
1 | xor multicast MAC address bits 7:4 |
2 | xor multicast MAC address bits 11:8 |
3 | xor multicast MAC address bits 15:12 |
4 | xor multicast MAC address bits 19:16 |
5 | xor multicast MAC address bits 23:20 |
The MAC function checks each multicast address received against the hash table, which serves as a fast matching engine, and a match is returned within one clock cycle. If there is no match, the MAC function discards the frame.
- All entries in the hash table must be filled.
- RX_ENA needs to be set to '0' prior to filling the hash table.