RTL8308B
2002/01/23
Rev. 2.0
16
6.14 Data Reception
Each port contains a Receive Data FIFO and a Receive Free Page Pointer FIFO. Initially the Free Page Pointer
FIFO is filled with free page pointers received from the Buffer Manager. On reception of a packet, the received
data flows into the Receive Data FIFO first and then is moved into the Packet Buffer by the Receive DMA Engine,
using the free page pointers in the Receive Free Page Pointer FIFO via the
Get Free Page
command. The
RTL8308B always attempts to fill the Receive Free Page Pointer FIFO with free page pointers.
6.15 Data Forwarding
Each port also contains a Transmit Data FIFO, a Transmit Free Page Pointer FIFO and a Transmit Start Address Queue.
After a packet is received, its source address (SA) and destination address (DA) are retrieved. The SA is used to
update the port’s address table and the DA is used to determine the packet’s destination port. Once a forwarding
condition is met (for store-and-forward mode, a packet is completely received) the receiving port will pass the
beginning page pointer using the Send TX Descriptor command to the transmit port and start the Transmit DMA.
The transmission port stores the beginning page pointer in the Transmit Start address Queue. The Transmit DMA
moves data from the Packet Buffer through the Transmit Data FIFO and to the RMII interface using the free page
pointer in the Transmit Free Page Pointer FIFO. Once the packet has been forwarded successfully, the RTL8308B
uses the Put Free Page command to put related free page pointers back to buffer manager's Free Page Pointer FIFO.
The Address Lookup Engine will attempt to match the destination address with the addresses stored in the address
table. If there is a match found, a link between the source port and the destination port is then established.
If the first bit of the destination address is 0, the frame is regarded as an unicast frame. The destination address is
passed to the Address Lookup Engine; which returns a matched destination port number to identify which port
should the frame be forwarded to. If the destination port is within the same VLAN of the receiving port, the frame
will be forwarded.
If the destination port does not belong to the VLANs specified at the receiving ports, the frame will be discarded.
The event will be recorded as a VLAN boundary violation.
There are two ways that RTL8308B handles packet with unknown destination. The forwarding decision is
controlled by the Flood Control option (System Configuration register 00). If Flood Control is disabled, the packet
will be forwarded to all ports (except the receiving port) within the same VLANs of the receiving port. If the
FloodControl option is enabled, the RTL8308B will forward the packet only to the uplink port specified at the
receiving port.
RTL8308B defines a port as either a single port or a trunk.
If the port monitoring function is enabled, the packet forwarding decision is also subject to the port monitoring
configurations.
If the first bit of the destination address is a 1, the frame will be handled as a multicast or broadcast frame. The
RTL8308B does not differentiate multicast packet from broadcast packet except the reserved bridge management
group address, as specified in table 3.5 of IEEE 802.1d standard. The destination ports of the broadcast frame is all
ports within the same VLAN except the source port itself.
If Multicast/Broadcast packet trapping (MCtrap) is enabled, the multicast/broadcast packets will be forwarded to
the CPU only.