RTL8316
2001/11/09 Rev.1.72
14
6.14 Flow Control
The RTL8316 supports IEEE 802.3x full duplex flow control and half duplex back pressure congestion control.
The ability of full duplex flow control is enabled by the ENFDFCTRL pin setting during H/W reset. The IEEE 802.3x flow
control's ability is auto-negotiated between the remote device and the RTL8316 by writing the flow control ability via MDIO
to external connected PHY.
If ENFDFCTRL is set and the 802.3x pause ability from the auto-negotiation result is enabled, the full duplex 802.3x flow
control function is enabled. Otherwise, the full duplex 802.3x flow control function is disabled. When 802.3x flow control is
enabled, the RTL8316 will only recognize the 802.3x flow control PAUSE ON/OFF frames with DA="0180C2000001",
type="8808", OP-code="01",PAUSE Time = maximum or zero, and with good CRC.
If a PAUSE frame is received from any PAUSE flow control enabled port with DA=0180C2000001, the corresponding port of
the RTL8316 will stop its packet transmission until a PAUSE timer timeout or another PAUSE frame with zero PAUSE time is
received. No 802.3x PAUSE frames received from any port will be forwarded by the RTL8316.
The RTL8316 adopts a special half duplex back pressure design, forwarding one packet successfully after 48 force collisions
to prevent the connected repeater from being partitioned due to excessive collisions. The half duplex back pressure flow
control is controlled by EnBKPRS pin strap upon hardware reset.
6.15 Broadcast Storm Filtering Control
The RTL8316 can enable broadcast storm filtering control by hardware setting of pin ENBRDCTRL. Each port will drop
broadcast packets (Destination MAC ID is ff ff ff ff ff ff) after receiving continuous 64 broadcast packets. The counter will be
reset to 0 every 800ms or when receiving any non-broadcast packets (Destination MAC ID is not ff ff ff ff ff ff).
6.16 Head-Of-Line Blocking Prevention
The RTL8316 incorporates a simple mechanism to prevent Head-Of-Line blocking problems when flow control is disabled.
When the flow control function is disabled, the RTL8316 will first check the destination address of the incoming packet. If the
destined port is congested, then the RTL8316 will discard this packet to avoid blocking the next packet which is going to a
non-congested port.
6.17 Port Trunking and Load Balance
Port Trunking is the ability to aggregate several 10/100 Mbps ports into a single logical link. There are 4 trunk groups
supported by the RTL8316. Each trunk group comprises 4 fixed physical ports. They are simply identified as: Trunk0 =
port{0,1,2,3}, Trunk1 = port{4,5,6,7}, Trunk2 = port{8,9,10,11}, Trunk3 = port{12,13,14,15} and are individually enabled by
pins ENTRUNK[3:0] during hardware reset. Each trunk supports a trunking port status LED. The LED will be active low
when the trunking function is enabled. If any physical port of a trunk group has a link down, then all of the physical ports of the
trunk group will be treated as having a link down and the Trunk LED will blink for 250ms ON and 250ms OFF to indicate that
a fault condition has happened on this trunk group.
The RTL8316 trunking port always sends packets over the same link path in the trunk with a given source and destination
MAC address to prevent frames from becoming out of order, but the reverse path may follow a different link. The scheme of
load balance between links in a trunk group is simply determined by an Index[1:0] value that is calculated by the DA and SA
hash algorithm defined as follows.
The DA[0:47] SA[0:47] (order based on serial stream) hashed value Index[1:0] is calculate as below:
Index bit0 = XOR ((bits 47, 45, 43, 41, 39, 37, 35, 33 of DA),
(bits 46, 44, 42, 40, 38, 36, 34, 32 of SA))
Index bit1 = XOR ((bits 47, 45, 43, 41, 39, 37, 35, 33 of SA),
(bits 46, 44, 42, 40, 38, 36, 34, 32 of DA))