
GT-96100A Advanced Communication Controller
272
Revision 1.0
Calculate tblEntryAdd according to mode of operation (Hash Mode 1 or Hash Mode 0).
Check that tblEntry is empty (Valid Bit is "0").
If the tblEntry is empty, Write the hashEntry (Valid, Skip and RD bits and Ethernet Address).
If the tblEntry is occupied (i.e. Valid bit is 1 and Skip bit is 0), move to tblEntry+1.
If less than hopNumber tries, Repeat to Step c.
If after hopNumber failed tries, the CPU has been unable to located a free table entry. The CPU can then:
Defragment the table.
Create a new Hash table using the alternate Hash Mode, which may redistribute the addresses more
evenly in the table.
In cases where more than one address is mapped to the same table entry, an address chain is created. In this case,
when the CPU needs to erase an address that is part of an address chain, it cannot clear its Valid bit since this
would cut the chain. Instead, the CPU should set the Skip bit to ‘1’. This is shown in
Table 45 .Figure 45: Address Chain
12.3.4.8 Address Recognition Process
The following terms are used when referring to the address recognition process.
Match - Address is found in the table
Miss - Address is not found in the table
Hit - Address is in the table and RD bit is 1 (receive), or address is not in table and HDM (Hash Default
Mode) is 1 (receive).
Occupied Entry - A valid Hash table entry that is occupied by another address, or an entry that has its
Skip bit set,
Promiscuous Mode - When enabled, all packets are passed to the CPU. The GT-96100A still executes
the Hash process reporting to the CPU, regardless whether the address is in the Hash table or not.
The GT-96100A address recognition process is described below, and is illustrated by
Figure 46 on page 274.
The process starts with the GT-96100A fetching the address from the calculated table entry.
Add1
Add2
Add3
Add6
Add4
Add5
Add1
Add2
Add3
Add6
Add4
Add5
AB
In case A where Add1-6 has the same Hash function,
and thus start with the same tblEntry, the CPU allo-
cates them in the table by increasing tblEntry by one
entry each time. Add1 is the first address to be writ-
ten into the table and Add6 is the last.
When the CPU is required to remove Add2 from the
table, it cannot clear its valid bit since that would
break the chain from Add1 to Add3. Instead, it sets
Add2’s Skip bit to ‘1’ (denoted as
). It is also rec-
ommended that the CPU defragments the table from
time to time.