Ref: 03250412
Title: IB/3 Load Balancing and Line Recovery
Date: 1/8/88

Copyright 3Com Corporation, 1991.  All rights reserved.

Here is some information about the IB/3's load balancing and line
recovery for parallel lines.  The load balancing and recovery
algorithms are very similar to those of the GS/3's.  For phone
line gateway functionalities, please refer to PWB#00177-001-S-I
and PWB#00243-001-S-I. Section 4.3 of IB/3 spec (PWB#000342-001-S-
I) discusses the enhancements of these functions in the IB/3.

A brief summary is described here:

1. Load Balancing

The software keeps track of the number of bytes queued in the
SIO's xmit queue.  When a packet needs to be xmitted to parallel
lines, the software checks which line has the fewest bytes queued
OFFSET by its speed factor (i.e. high speed lines are preferred.)
If the result is the same, the high speed line wins.  If speed of
parallel lines are the same, there is a rotation scheme to
balance bytes xmitted to different lines.

The main idea is to make an educated guess to deliver a packet as fast
as possible. If there is a tie, then try to be fair.

2. Line Recovery

If there is no xmit or receive activity over a certain time
(which depends on speed of line--the higher the speed, the
shorter the time), a probe packet is sent which demands an ack
reply.  If a few of ack packets are missed in a row, the line is
declared 'down'.  No data traffic is exchanged, but probe/ack
activities continues. Therefore, when ack packets are received
later, the line can go back 'up'.  The time to detect a line
going up or down depends on the line quality and speed of line.
If a line is physically disconnected, the software should detect this
within seconds (<10 sec).
