xref: /linux/Documentation/networking/eql.rst (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
1*06df6572SMauro Carvalho Chehab.. SPDX-License-Identifier: GPL-2.0
2*06df6572SMauro Carvalho Chehab
3*06df6572SMauro Carvalho Chehab==========================================
4*06df6572SMauro Carvalho ChehabEQL Driver: Serial IP Load Balancing HOWTO
5*06df6572SMauro Carvalho Chehab==========================================
6*06df6572SMauro Carvalho Chehab
7*06df6572SMauro Carvalho Chehab  Simon "Guru Aleph-Null" Janes, simon@ncm.com
8*06df6572SMauro Carvalho Chehab
9*06df6572SMauro Carvalho Chehab  v1.1, February 27, 1995
10*06df6572SMauro Carvalho Chehab
11*06df6572SMauro Carvalho Chehab  This is the manual for the EQL device driver. EQL is a software device
12*06df6572SMauro Carvalho Chehab  that lets you load-balance IP serial links (SLIP or uncompressed PPP)
13*06df6572SMauro Carvalho Chehab  to increase your bandwidth. It will not reduce your latency (i.e. ping
14*06df6572SMauro Carvalho Chehab  times) except in the case where you already have lots of traffic on
15*06df6572SMauro Carvalho Chehab  your link, in which it will help them out. This driver has been tested
16*06df6572SMauro Carvalho Chehab  with the 1.1.75 kernel, and is known to have patched cleanly with
17*06df6572SMauro Carvalho Chehab  1.1.86.  Some testing with 1.1.92 has been done with the v1.1 patch
18*06df6572SMauro Carvalho Chehab  which was only created to patch cleanly in the very latest kernel
19*06df6572SMauro Carvalho Chehab  source trees. (Yes, it worked fine.)
20*06df6572SMauro Carvalho Chehab
21*06df6572SMauro Carvalho Chehab1. Introduction
22*06df6572SMauro Carvalho Chehab===============
23*06df6572SMauro Carvalho Chehab
24*06df6572SMauro Carvalho Chehab  Which is worse? A huge fee for a 56K leased line or two phone lines?
25*06df6572SMauro Carvalho Chehab  It's probably the former.  If you find yourself craving more bandwidth,
26*06df6572SMauro Carvalho Chehab  and have a ISP that is flexible, it is now possible to bind modems
27*06df6572SMauro Carvalho Chehab  together to work as one point-to-point link to increase your
28*06df6572SMauro Carvalho Chehab  bandwidth.  All without having to have a special black box on either
29*06df6572SMauro Carvalho Chehab  side.
30*06df6572SMauro Carvalho Chehab
31*06df6572SMauro Carvalho Chehab
32*06df6572SMauro Carvalho Chehab  The eql driver has only been tested with the Livingston PortMaster-2e
33*06df6572SMauro Carvalho Chehab  terminal server. I do not know if other terminal servers support load-
34*06df6572SMauro Carvalho Chehab  balancing, but I do know that the PortMaster does it, and does it
35*06df6572SMauro Carvalho Chehab  almost as well as the eql driver seems to do it (-- Unfortunately, in
36*06df6572SMauro Carvalho Chehab  my testing so far, the Livingston PortMaster 2e's load-balancing is a
37*06df6572SMauro Carvalho Chehab  good 1 to 2 KB/s slower than the test machine working with a 28.8 Kbps
38*06df6572SMauro Carvalho Chehab  and 14.4 Kbps connection.  However, I am not sure that it really is
39*06df6572SMauro Carvalho Chehab  the PortMaster, or if it's Linux's TCP drivers. I'm told that Linux's
40*06df6572SMauro Carvalho Chehab  TCP implementation is pretty fast though.--)
41*06df6572SMauro Carvalho Chehab
42*06df6572SMauro Carvalho Chehab
43*06df6572SMauro Carvalho Chehab  I suggest to ISPs out there that it would probably be fair to charge
44*06df6572SMauro Carvalho Chehab  a load-balancing client 75% of the cost of the second line and 50% of
45*06df6572SMauro Carvalho Chehab  the cost of the third line etc...
46*06df6572SMauro Carvalho Chehab
47*06df6572SMauro Carvalho Chehab
48*06df6572SMauro Carvalho Chehab  Hey, we can all dream you know...
49*06df6572SMauro Carvalho Chehab
50*06df6572SMauro Carvalho Chehab
51*06df6572SMauro Carvalho Chehab2. Kernel Configuration
52*06df6572SMauro Carvalho Chehab=======================
53*06df6572SMauro Carvalho Chehab
54*06df6572SMauro Carvalho Chehab  Here I describe the general steps of getting a kernel up and working
55*06df6572SMauro Carvalho Chehab  with the eql driver.	From patching, building, to installing.
56*06df6572SMauro Carvalho Chehab
57*06df6572SMauro Carvalho Chehab
58*06df6572SMauro Carvalho Chehab2.1. Patching The Kernel
59*06df6572SMauro Carvalho Chehab------------------------
60*06df6572SMauro Carvalho Chehab
61*06df6572SMauro Carvalho Chehab  If you do not have or cannot get a copy of the kernel with the eql
62*06df6572SMauro Carvalho Chehab  driver folded into it, get your copy of the driver from
63*06df6572SMauro Carvalho Chehab  ftp://slaughter.ncm.com/pub/Linux/LOAD_BALANCING/eql-1.1.tar.gz.
64*06df6572SMauro Carvalho Chehab  Unpack this archive someplace obvious like /usr/local/src/.  It will
65*06df6572SMauro Carvalho Chehab  create the following files::
66*06df6572SMauro Carvalho Chehab
67*06df6572SMauro Carvalho Chehab       -rw-r--r-- guru/ncm	198 Jan 19 18:53 1995 eql-1.1/NO-WARRANTY
68*06df6572SMauro Carvalho Chehab       -rw-r--r-- guru/ncm	30620 Feb 27 21:40 1995 eql-1.1/eql-1.1.patch
69*06df6572SMauro Carvalho Chehab       -rwxr-xr-x guru/ncm	16111 Jan 12 22:29 1995 eql-1.1/eql_enslave
70*06df6572SMauro Carvalho Chehab       -rw-r--r-- guru/ncm	2195 Jan 10 21:48 1995 eql-1.1/eql_enslave.c
71*06df6572SMauro Carvalho Chehab
72*06df6572SMauro Carvalho Chehab  Unpack a recent kernel (something after 1.1.92) someplace convenient
73*06df6572SMauro Carvalho Chehab  like say /usr/src/linux-1.1.92.eql. Use symbolic links to point
74*06df6572SMauro Carvalho Chehab  /usr/src/linux to this development directory.
75*06df6572SMauro Carvalho Chehab
76*06df6572SMauro Carvalho Chehab
77*06df6572SMauro Carvalho Chehab  Apply the patch by running the commands::
78*06df6572SMauro Carvalho Chehab
79*06df6572SMauro Carvalho Chehab       cd /usr/src
80*06df6572SMauro Carvalho Chehab       patch </usr/local/src/eql-1.1/eql-1.1.patch
81*06df6572SMauro Carvalho Chehab
82*06df6572SMauro Carvalho Chehab
83*06df6572SMauro Carvalho Chehab2.2. Building The Kernel
84*06df6572SMauro Carvalho Chehab------------------------
85*06df6572SMauro Carvalho Chehab
86*06df6572SMauro Carvalho Chehab  After patching the kernel, run make config and configure the kernel
87*06df6572SMauro Carvalho Chehab  for your hardware.
88*06df6572SMauro Carvalho Chehab
89*06df6572SMauro Carvalho Chehab
90*06df6572SMauro Carvalho Chehab  After configuration, make and install according to your habit.
91*06df6572SMauro Carvalho Chehab
92*06df6572SMauro Carvalho Chehab
93*06df6572SMauro Carvalho Chehab3. Network Configuration
94*06df6572SMauro Carvalho Chehab========================
95*06df6572SMauro Carvalho Chehab
96*06df6572SMauro Carvalho Chehab  So far, I have only used the eql device with the DSLIP SLIP connection
97*06df6572SMauro Carvalho Chehab  manager by Matt Dillon (-- "The man who sold his soul to code so much
98*06df6572SMauro Carvalho Chehab  so quickly."--) .  How you configure it for other "connection"
99*06df6572SMauro Carvalho Chehab  managers is up to you.  Most other connection managers that I've seen
100*06df6572SMauro Carvalho Chehab  don't do a very good job when it comes to handling more than one
101*06df6572SMauro Carvalho Chehab  connection.
102*06df6572SMauro Carvalho Chehab
103*06df6572SMauro Carvalho Chehab
104*06df6572SMauro Carvalho Chehab3.1. /etc/rc.d/rc.inet1
105*06df6572SMauro Carvalho Chehab-----------------------
106*06df6572SMauro Carvalho Chehab
107*06df6572SMauro Carvalho Chehab  In rc.inet1, ifconfig the eql device to the IP address you usually use
108*06df6572SMauro Carvalho Chehab  for your machine, and the MTU you prefer for your SLIP lines.	One
109*06df6572SMauro Carvalho Chehab  could argue that MTU should be roughly half the usual size for two
110*06df6572SMauro Carvalho Chehab  modems, one-third for three, one-fourth for four, etc...  But going
111*06df6572SMauro Carvalho Chehab  too far below 296 is probably overkill. Here is an example ifconfig
112*06df6572SMauro Carvalho Chehab  command that sets up the eql device::
113*06df6572SMauro Carvalho Chehab
114*06df6572SMauro Carvalho Chehab       ifconfig eql 198.67.33.239 mtu 1006
115*06df6572SMauro Carvalho Chehab
116*06df6572SMauro Carvalho Chehab  Once the eql device is up and running, add a static default route to
117*06df6572SMauro Carvalho Chehab  it in the routing table using the cool new route syntax that makes
118*06df6572SMauro Carvalho Chehab  life so much easier::
119*06df6572SMauro Carvalho Chehab
120*06df6572SMauro Carvalho Chehab       route add default eql
121*06df6572SMauro Carvalho Chehab
122*06df6572SMauro Carvalho Chehab
123*06df6572SMauro Carvalho Chehab3.2. Enslaving Devices By Hand
124*06df6572SMauro Carvalho Chehab------------------------------
125*06df6572SMauro Carvalho Chehab
126*06df6572SMauro Carvalho Chehab  Enslaving devices by hand requires two utility programs: eql_enslave
127*06df6572SMauro Carvalho Chehab  and eql_emancipate (-- eql_emancipate hasn't been written because when
128*06df6572SMauro Carvalho Chehab  an enslaved device "dies", it is automatically taken out of the queue.
129*06df6572SMauro Carvalho Chehab  I haven't found a good reason to write it yet... other than for
130*06df6572SMauro Carvalho Chehab  completeness, but that isn't a good motivator is it?--)
131*06df6572SMauro Carvalho Chehab
132*06df6572SMauro Carvalho Chehab
133*06df6572SMauro Carvalho Chehab  The syntax for enslaving a device is "eql_enslave <master-name>
134*06df6572SMauro Carvalho Chehab  <slave-name> <estimated-bps>".  Here are some example enslavings::
135*06df6572SMauro Carvalho Chehab
136*06df6572SMauro Carvalho Chehab       eql_enslave eql sl0 28800
137*06df6572SMauro Carvalho Chehab       eql_enslave eql ppp0 14400
138*06df6572SMauro Carvalho Chehab       eql_enslave eql sl1 57600
139*06df6572SMauro Carvalho Chehab
140*06df6572SMauro Carvalho Chehab  When you want to free a device from its life of slavery, you can
141*06df6572SMauro Carvalho Chehab  either down the device with ifconfig (eql will automatically bury the
142*06df6572SMauro Carvalho Chehab  dead slave and remove it from its queue) or use eql_emancipate to free
143*06df6572SMauro Carvalho Chehab  it. (-- Or just ifconfig it down, and the eql driver will take it out
144*06df6572SMauro Carvalho Chehab  for you.--)::
145*06df6572SMauro Carvalho Chehab
146*06df6572SMauro Carvalho Chehab       eql_emancipate eql sl0
147*06df6572SMauro Carvalho Chehab       eql_emancipate eql ppp0
148*06df6572SMauro Carvalho Chehab       eql_emancipate eql sl1
149*06df6572SMauro Carvalho Chehab
150*06df6572SMauro Carvalho Chehab
151*06df6572SMauro Carvalho Chehab3.3. DSLIP Configuration for the eql Device
152*06df6572SMauro Carvalho Chehab-------------------------------------------
153*06df6572SMauro Carvalho Chehab
154*06df6572SMauro Carvalho Chehab  The general idea is to bring up and keep up as many SLIP connections
155*06df6572SMauro Carvalho Chehab  as you need, automatically.
156*06df6572SMauro Carvalho Chehab
157*06df6572SMauro Carvalho Chehab
158*06df6572SMauro Carvalho Chehab3.3.1.  /etc/slip/runslip.conf
159*06df6572SMauro Carvalho Chehab^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
160*06df6572SMauro Carvalho Chehab
161*06df6572SMauro Carvalho Chehab  Here is an example runslip.conf::
162*06df6572SMauro Carvalho Chehab
163*06df6572SMauro Carvalho Chehab	  name		sl-line-1
164*06df6572SMauro Carvalho Chehab	  enabled
165*06df6572SMauro Carvalho Chehab	  baud		38400
166*06df6572SMauro Carvalho Chehab	  mtu		576
167*06df6572SMauro Carvalho Chehab	  ducmd		-e /etc/slip/dialout/cua2-288.xp -t 9
168*06df6572SMauro Carvalho Chehab	  command	 eql_enslave eql $interface 28800
169*06df6572SMauro Carvalho Chehab	  address	 198.67.33.239
170*06df6572SMauro Carvalho Chehab	  line		/dev/cua2
171*06df6572SMauro Carvalho Chehab
172*06df6572SMauro Carvalho Chehab	  name		sl-line-2
173*06df6572SMauro Carvalho Chehab	  enabled
174*06df6572SMauro Carvalho Chehab	  baud		38400
175*06df6572SMauro Carvalho Chehab	  mtu		576
176*06df6572SMauro Carvalho Chehab	  ducmd		-e /etc/slip/dialout/cua3-288.xp -t 9
177*06df6572SMauro Carvalho Chehab	  command	 eql_enslave eql $interface 28800
178*06df6572SMauro Carvalho Chehab	  address	 198.67.33.239
179*06df6572SMauro Carvalho Chehab	  line		/dev/cua3
180*06df6572SMauro Carvalho Chehab
181*06df6572SMauro Carvalho Chehab
182*06df6572SMauro Carvalho Chehab3.4. Using PPP and the eql Device
183*06df6572SMauro Carvalho Chehab---------------------------------
184*06df6572SMauro Carvalho Chehab
185*06df6572SMauro Carvalho Chehab  I have not yet done any load-balancing testing for PPP devices, mainly
186*06df6572SMauro Carvalho Chehab  because I don't have a PPP-connection manager like SLIP has with
187*06df6572SMauro Carvalho Chehab  DSLIP. I did find a good tip from LinuxNET:Billy for PPP performance:
188*06df6572SMauro Carvalho Chehab  make sure you have asyncmap set to something so that control
189*06df6572SMauro Carvalho Chehab  characters are not escaped.
190*06df6572SMauro Carvalho Chehab
191*06df6572SMauro Carvalho Chehab
192*06df6572SMauro Carvalho Chehab  I tried to fix up a PPP script/system for redialing lost PPP
193*06df6572SMauro Carvalho Chehab  connections for use with the eql driver the weekend of Feb 25-26 '95
194*06df6572SMauro Carvalho Chehab  (Hereafter known as the 8-hour PPP Hate Festival).  Perhaps later this
195*06df6572SMauro Carvalho Chehab  year.
196*06df6572SMauro Carvalho Chehab
197*06df6572SMauro Carvalho Chehab
198*06df6572SMauro Carvalho Chehab4. About the Slave Scheduler Algorithm
199*06df6572SMauro Carvalho Chehab======================================
200*06df6572SMauro Carvalho Chehab
201*06df6572SMauro Carvalho Chehab  The slave scheduler probably could be replaced with a dozen other
202*06df6572SMauro Carvalho Chehab  things and push traffic much faster.	The formula in the current set
203*06df6572SMauro Carvalho Chehab  up of the driver was tuned to handle slaves with wildly different
204*06df6572SMauro Carvalho Chehab  bits-per-second "priorities".
205*06df6572SMauro Carvalho Chehab
206*06df6572SMauro Carvalho Chehab
207*06df6572SMauro Carvalho Chehab  All testing I have done was with two 28.8 V.FC modems, one connecting
208*06df6572SMauro Carvalho Chehab  at 28800 bps or slower, and the other connecting at 14400 bps all the
209*06df6572SMauro Carvalho Chehab  time.
210*06df6572SMauro Carvalho Chehab
211*06df6572SMauro Carvalho Chehab
212*06df6572SMauro Carvalho Chehab  One version of the scheduler was able to push 5.3 K/s through the
213*06df6572SMauro Carvalho Chehab  28800 and 14400 connections, but when the priorities on the links were
214*06df6572SMauro Carvalho Chehab  very wide apart (57600 vs. 14400) the "faster" modem received all
215*06df6572SMauro Carvalho Chehab  traffic and the "slower" modem starved.
216*06df6572SMauro Carvalho Chehab
217*06df6572SMauro Carvalho Chehab
218*06df6572SMauro Carvalho Chehab5. Testers' Reports
219*06df6572SMauro Carvalho Chehab===================
220*06df6572SMauro Carvalho Chehab
221*06df6572SMauro Carvalho Chehab  Some people have experimented with the eql device with newer
222*06df6572SMauro Carvalho Chehab  kernels (than 1.1.75).  I have since updated the driver to patch
223*06df6572SMauro Carvalho Chehab  cleanly in newer kernels because of the removal of the old "slave-
224*06df6572SMauro Carvalho Chehab  balancing" driver config option.
225*06df6572SMauro Carvalho Chehab
226*06df6572SMauro Carvalho Chehab
227*06df6572SMauro Carvalho Chehab  -  icee from LinuxNET patched 1.1.86 without any rejects and was able
228*06df6572SMauro Carvalho Chehab     to boot the kernel and enslave a couple of ISDN PPP links.
229*06df6572SMauro Carvalho Chehab
230*06df6572SMauro Carvalho Chehab5.1. Randolph Bentson's Test Report
231*06df6572SMauro Carvalho Chehab-----------------------------------
232*06df6572SMauro Carvalho Chehab
233*06df6572SMauro Carvalho Chehab  ::
234*06df6572SMauro Carvalho Chehab
235*06df6572SMauro Carvalho Chehab    From bentson@grieg.seaslug.org Wed Feb  8 19:08:09 1995
236*06df6572SMauro Carvalho Chehab    Date: Tue, 7 Feb 95 22:57 PST
237*06df6572SMauro Carvalho Chehab    From: Randolph Bentson <bentson@grieg.seaslug.org>
238*06df6572SMauro Carvalho Chehab    To: guru@ncm.com
239*06df6572SMauro Carvalho Chehab    Subject: EQL driver tests
240*06df6572SMauro Carvalho Chehab
241*06df6572SMauro Carvalho Chehab
242*06df6572SMauro Carvalho Chehab    I have been checking out your eql driver.  (Nice work, that!)
243*06df6572SMauro Carvalho Chehab    Although you may already done this performance testing, here
244*06df6572SMauro Carvalho Chehab    are some data I've discovered.
245*06df6572SMauro Carvalho Chehab
246*06df6572SMauro Carvalho Chehab    Randolph Bentson
247*06df6572SMauro Carvalho Chehab    bentson@grieg.seaslug.org
248*06df6572SMauro Carvalho Chehab
249*06df6572SMauro Carvalho Chehab------------------------------------------------------------------
250*06df6572SMauro Carvalho Chehab
251*06df6572SMauro Carvalho Chehab
252*06df6572SMauro Carvalho Chehab  A pseudo-device driver, EQL, written by Simon Janes, can be used
253*06df6572SMauro Carvalho Chehab  to bundle multiple SLIP connections into what appears to be a
254*06df6572SMauro Carvalho Chehab  single connection.  This allows one to improve dial-up network
255*06df6572SMauro Carvalho Chehab  connectivity gradually, without having to buy expensive DSU/CSU
256*06df6572SMauro Carvalho Chehab  hardware and services.
257*06df6572SMauro Carvalho Chehab
258*06df6572SMauro Carvalho Chehab  I have done some testing of this software, with two goals in
259*06df6572SMauro Carvalho Chehab  mind: first, to ensure it actually works as described and
260*06df6572SMauro Carvalho Chehab  second, as a method of exercising my device driver.
261*06df6572SMauro Carvalho Chehab
262*06df6572SMauro Carvalho Chehab  The following performance measurements were derived from a set
263*06df6572SMauro Carvalho Chehab  of SLIP connections run between two Linux systems (1.1.84) using
264*06df6572SMauro Carvalho Chehab  a 486DX2/66 with a Cyclom-8Ys and a 486SLC/40 with a Cyclom-16Y.
265*06df6572SMauro Carvalho Chehab  (Ports 0,1,2,3 were used.  A later configuration will distribute
266*06df6572SMauro Carvalho Chehab  port selection across the different Cirrus chips on the boards.)
267*06df6572SMauro Carvalho Chehab  Once a link was established, I timed a binary ftp transfer of
268*06df6572SMauro Carvalho Chehab  289284 bytes of data.	If there were no overhead (packet headers,
269*06df6572SMauro Carvalho Chehab  inter-character and inter-packet delays, etc.) the transfers
270*06df6572SMauro Carvalho Chehab  would take the following times::
271*06df6572SMauro Carvalho Chehab
272*06df6572SMauro Carvalho Chehab      bits/sec	seconds
273*06df6572SMauro Carvalho Chehab      345600	8.3
274*06df6572SMauro Carvalho Chehab      234600	12.3
275*06df6572SMauro Carvalho Chehab      172800	16.7
276*06df6572SMauro Carvalho Chehab      153600	18.8
277*06df6572SMauro Carvalho Chehab      76800	37.6
278*06df6572SMauro Carvalho Chehab      57600	50.2
279*06df6572SMauro Carvalho Chehab      38400	75.3
280*06df6572SMauro Carvalho Chehab      28800	100.4
281*06df6572SMauro Carvalho Chehab      19200	150.6
282*06df6572SMauro Carvalho Chehab      9600	301.3
283*06df6572SMauro Carvalho Chehab
284*06df6572SMauro Carvalho Chehab  A single line running at the lower speeds and with large packets
285*06df6572SMauro Carvalho Chehab  comes to within 2% of this.  Performance is limited for the higher
286*06df6572SMauro Carvalho Chehab  speeds (as predicted by the Cirrus databook) to an aggregate of
287*06df6572SMauro Carvalho Chehab  about 160 kbits/sec.	The next round of testing will distribute
288*06df6572SMauro Carvalho Chehab  the load across two or more Cirrus chips.
289*06df6572SMauro Carvalho Chehab
290*06df6572SMauro Carvalho Chehab  The good news is that one gets nearly the full advantage of the
291*06df6572SMauro Carvalho Chehab  second, third, and fourth line's bandwidth.  (The bad news is
292*06df6572SMauro Carvalho Chehab  that the connection establishment seemed fragile for the higher
293*06df6572SMauro Carvalho Chehab  speeds.  Once established, the connection seemed robust enough.)
294*06df6572SMauro Carvalho Chehab
295*06df6572SMauro Carvalho Chehab  ======  ========	===  ========   ======= ======= ===
296*06df6572SMauro Carvalho Chehab  #lines  speed		mtu  seconds	theory  actual  %of
297*06df6572SMauro Carvalho Chehab	  kbit/sec	     duration	speed	speed	max
298*06df6572SMauro Carvalho Chehab  ======  ========	===  ========   ======= ======= ===
299*06df6572SMauro Carvalho Chehab  3	  115200	900	_	345600
300*06df6572SMauro Carvalho Chehab  3	  115200	400	18.1	345600  159825  46
301*06df6572SMauro Carvalho Chehab  2	  115200	900	_	230400
302*06df6572SMauro Carvalho Chehab  2	  115200	600	18.1	230400  159825  69
303*06df6572SMauro Carvalho Chehab  2	  115200	400	19.3	230400  149888  65
304*06df6572SMauro Carvalho Chehab  4	  57600		900	_	234600
305*06df6572SMauro Carvalho Chehab  4	  57600		600	_	234600
306*06df6572SMauro Carvalho Chehab  4	  57600		400	_	234600
307*06df6572SMauro Carvalho Chehab  3	  57600		600	20.9	172800  138413  80
308*06df6572SMauro Carvalho Chehab  3	  57600		900	21.2	172800  136455  78
309*06df6572SMauro Carvalho Chehab  3	  115200	600	21.7	345600  133311  38
310*06df6572SMauro Carvalho Chehab  3	  57600		400	22.5	172800  128571  74
311*06df6572SMauro Carvalho Chehab  4	  38400		900	25.2	153600  114795  74
312*06df6572SMauro Carvalho Chehab  4	  38400		600	26.4	153600  109577  71
313*06df6572SMauro Carvalho Chehab  4	  38400		400	27.3	153600  105965  68
314*06df6572SMauro Carvalho Chehab  2	  57600		900	29.1	115200  99410.3 86
315*06df6572SMauro Carvalho Chehab  1	  115200	900	30.7	115200  94229.3 81
316*06df6572SMauro Carvalho Chehab  2	  57600		600	30.2	115200  95789.4 83
317*06df6572SMauro Carvalho Chehab  3	  38400		900	30.3	115200  95473.3 82
318*06df6572SMauro Carvalho Chehab  3	  38400		600	31.2	115200  92719.2 80
319*06df6572SMauro Carvalho Chehab  1	  115200	600	31.3	115200  92423	80
320*06df6572SMauro Carvalho Chehab  2	  57600		400	32.3	115200  89561.6 77
321*06df6572SMauro Carvalho Chehab  1	  115200	400	32.8	115200  88196.3 76
322*06df6572SMauro Carvalho Chehab  3	  38400		400	33.5	115200  86353.4 74
323*06df6572SMauro Carvalho Chehab  2	  38400		900	43.7	76800	66197.7 86
324*06df6572SMauro Carvalho Chehab  2	  38400		600	44	76800	65746.4 85
325*06df6572SMauro Carvalho Chehab  2	  38400		400	47.2	76800	61289	79
326*06df6572SMauro Carvalho Chehab  4	  19200		900	50.8	76800	56945.7 74
327*06df6572SMauro Carvalho Chehab  4	  19200		400	53.2	76800	54376.7 70
328*06df6572SMauro Carvalho Chehab  4	  19200		600	53.7	76800	53870.4 70
329*06df6572SMauro Carvalho Chehab  1	  57600		900	54.6	57600	52982.4 91
330*06df6572SMauro Carvalho Chehab  1	  57600		600	56.2	57600	51474	89
331*06df6572SMauro Carvalho Chehab  3	  19200		900	60.5	57600	47815.5 83
332*06df6572SMauro Carvalho Chehab  1	  57600		400	60.2	57600	48053.8 83
333*06df6572SMauro Carvalho Chehab  3	  19200		600	62	57600	46658.7 81
334*06df6572SMauro Carvalho Chehab  3	  19200		400	64.7	57600	44711.6 77
335*06df6572SMauro Carvalho Chehab  1	  38400		900	79.4	38400	36433.8 94
336*06df6572SMauro Carvalho Chehab  1	  38400		600	82.4	38400	35107.3 91
337*06df6572SMauro Carvalho Chehab  2	  19200		900	84.4	38400	34275.4 89
338*06df6572SMauro Carvalho Chehab  1	  38400		400	86.8	38400	33327.6 86
339*06df6572SMauro Carvalho Chehab  2	  19200		600	87.6	38400	33023.3 85
340*06df6572SMauro Carvalho Chehab  2	  19200		400	91.2	38400	31719.7 82
341*06df6572SMauro Carvalho Chehab  4	  9600		900	94.7	38400	30547.4 79
342*06df6572SMauro Carvalho Chehab  4	  9600		400	106	38400	27290.9 71
343*06df6572SMauro Carvalho Chehab  4	  9600		600	110	38400	26298.5 68
344*06df6572SMauro Carvalho Chehab  3	  9600		900	118	28800	24515.6 85
345*06df6572SMauro Carvalho Chehab  3	  9600		600	120	28800	24107	83
346*06df6572SMauro Carvalho Chehab  3	  9600		400	131	28800	22082.7 76
347*06df6572SMauro Carvalho Chehab  1	  19200		900	155	19200	18663.5 97
348*06df6572SMauro Carvalho Chehab  1	  19200		600	161	19200	17968	93
349*06df6572SMauro Carvalho Chehab  1	  19200		400	170	19200	17016.7 88
350*06df6572SMauro Carvalho Chehab  2	  9600		600	176	19200	16436.6 85
351*06df6572SMauro Carvalho Chehab  2	  9600		900	180	19200	16071.3 83
352*06df6572SMauro Carvalho Chehab  2	  9600		400	181	19200	15982.5 83
353*06df6572SMauro Carvalho Chehab  1	  9600		900	305	9600	9484.72 98
354*06df6572SMauro Carvalho Chehab  1	  9600		600	314	9600	9212.87 95
355*06df6572SMauro Carvalho Chehab  1	  9600		400	332	9600	8713.37 90
356*06df6572SMauro Carvalho Chehab  ======  ========	===  ========   ======= ======= ===
357*06df6572SMauro Carvalho Chehab
358*06df6572SMauro Carvalho Chehab5.2. Anthony Healy's Report
359*06df6572SMauro Carvalho Chehab---------------------------
360*06df6572SMauro Carvalho Chehab
361*06df6572SMauro Carvalho Chehab  ::
362*06df6572SMauro Carvalho Chehab
363*06df6572SMauro Carvalho Chehab    Date: Mon, 13 Feb 1995 16:17:29 +1100 (EST)
364*06df6572SMauro Carvalho Chehab    From: Antony Healey <ahealey@st.nepean.uws.edu.au>
365*06df6572SMauro Carvalho Chehab    To: Simon Janes <guru@ncm.com>
366*06df6572SMauro Carvalho Chehab    Subject: Re: Load Balancing
367*06df6572SMauro Carvalho Chehab
368*06df6572SMauro Carvalho Chehab    Hi Simon,
369*06df6572SMauro Carvalho Chehab	  I've installed your patch and it works great. I have trialed
370*06df6572SMauro Carvalho Chehab	  it over twin SL/IP lines, just over null modems, but I was
371*06df6572SMauro Carvalho Chehab	  able to data at over 48Kb/s [ISDN link -Simon]. I managed a
372*06df6572SMauro Carvalho Chehab	  transfer of up to 7.5 Kbyte/s on one go, but averaged around
373*06df6572SMauro Carvalho Chehab	  6.4 Kbyte/s, which I think is pretty cool.  :)
374