
GT-48001A Switched Ethernet Controller
16
Revision 1.6
4.
MAC Address Learning Process
The GT-48001A has a self-learning mechanism for learning the MAC addresses of attached Ethernet devices in real
time. The GT-48001A searches for the Source Address (SA) of an incoming packet in the Address Table and acts as
follows:
If the SA was not found in the Address Table (a new address), the GT-48001A waits until the end of the packet (Non
errored packet) and updates the Address Table. It also notifies the other GT-48001A devices and the CPU by sending
a separate NEW_ADDRESS message to each GalNet device on the PCI bus. If a CPU is enabled in the system (bit 10
of the Global Control Register, 0x140028), the NEW_ADDRESS message can optionally be forwarded to the CPU (bit
7 in the Global Control Register, 0x140028). This message contains the new MAC address, the Device Number and
the Port Number.
The NEW_ADDRESS message format sent from one GalNet device to another is described in
Section 10.2.1. The
NEW_ADDRESS message that is sent to the CPU is of a different format and is described in
Section 10.3.1. In addi-
tion, the GT-48001A asserts Int* to notify the CPU that the Address Table was modified.
1.
If the SA was found, the GT-48001A compares all fields of the NEW_ADDRESS message to the entry in the
Address Table. If any fields differ (and the ‘Static’ bit in the Address Table is ‘0’1), the GT-48001A updates the entry
with the new information in the NEW_ADDRESS message and notifies the other GT-48001A devices and the CPU.
If the device and port numbers are equal, the packet is not switched (i.e. this packet was destined for a device on
the same network segment and does not require forwarding.)
2.
If the SA was found in the Address Table, the Aging bit is set. This is done to indicate to the aging software that this
address was accessed recently.
4.1
Address Recognition
The GT-48001A forwards the incoming packets to the appropriate port(s) according to Destination Address (DA) as fol-
lows:
1.
If the DA is a Unicast address and the address was found in the Address Table, the GT-48001A acts as follows:
If the Port Number and the Device Number are equal to the Port/Device on which the packet was received, the
packet is discarded.
If the Port Number is different, but the Device Number is equal, the packet is forwarded to the appropriate local
port.
If the Device Number is different, the packet is forwarded to the appropriate GT-48001A device via the PCI
bus.
2.
If the DA is a Unicast address and the address was not found (Unknown), the GT-48001A acts as if it the unknown
packet is a Multicast packet and forwards it to ports and the devices that have been programmed to receive
unknown packets (bit 4 in the Command register).
3.
If the DA is a Multicast address, the packet is forwarded to all the local ports (except for the port in which the packet
was received). It is also forwarded to all the other devices via the PCI bus. This procedure is outlined in
Section4.2
Recovery Process
The purpose of the Recovery Process is to guarantee that Address Tables entries in all the devices correlate. When the
packet is Unknown, the source GT-48001A sends a NEW_ADDRESS message to all the devices. Each device
searches its own Address Table for the new address. More than one device can find the address, but only one device
“owns” this address (the Device Number written in the Address Table is equal to its own Device Number). This particu-
lar device updates the source GT-48001A’s Address Table with the new address (by in turn sending it a
NEW_ADDRESS message).
1. Static Address Table entries cannot be modified, as described in
Section 4.4.