162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci==========================================
462306a36Sopenharmony_ciEQL Driver: Serial IP Load Balancing HOWTO
562306a36Sopenharmony_ci==========================================
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci  Simon "Guru Aleph-Null" Janes, simon@ncm.com
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci  v1.1, February 27, 1995
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci  This is the manual for the EQL device driver. EQL is a software device
1262306a36Sopenharmony_ci  that lets you load-balance IP serial links (SLIP or uncompressed PPP)
1362306a36Sopenharmony_ci  to increase your bandwidth. It will not reduce your latency (i.e. ping
1462306a36Sopenharmony_ci  times) except in the case where you already have lots of traffic on
1562306a36Sopenharmony_ci  your link, in which it will help them out. This driver has been tested
1662306a36Sopenharmony_ci  with the 1.1.75 kernel, and is known to have patched cleanly with
1762306a36Sopenharmony_ci  1.1.86.  Some testing with 1.1.92 has been done with the v1.1 patch
1862306a36Sopenharmony_ci  which was only created to patch cleanly in the very latest kernel
1962306a36Sopenharmony_ci  source trees. (Yes, it worked fine.)
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci1. Introduction
2262306a36Sopenharmony_ci===============
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci  Which is worse? A huge fee for a 56K leased line or two phone lines?
2562306a36Sopenharmony_ci  It's probably the former.  If you find yourself craving more bandwidth,
2662306a36Sopenharmony_ci  and have a ISP that is flexible, it is now possible to bind modems
2762306a36Sopenharmony_ci  together to work as one point-to-point link to increase your
2862306a36Sopenharmony_ci  bandwidth.  All without having to have a special black box on either
2962306a36Sopenharmony_ci  side.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  The eql driver has only been tested with the Livingston PortMaster-2e
3362306a36Sopenharmony_ci  terminal server. I do not know if other terminal servers support load-
3462306a36Sopenharmony_ci  balancing, but I do know that the PortMaster does it, and does it
3562306a36Sopenharmony_ci  almost as well as the eql driver seems to do it (-- Unfortunately, in
3662306a36Sopenharmony_ci  my testing so far, the Livingston PortMaster 2e's load-balancing is a
3762306a36Sopenharmony_ci  good 1 to 2 KB/s slower than the test machine working with a 28.8 Kbps
3862306a36Sopenharmony_ci  and 14.4 Kbps connection.  However, I am not sure that it really is
3962306a36Sopenharmony_ci  the PortMaster, or if it's Linux's TCP drivers. I'm told that Linux's
4062306a36Sopenharmony_ci  TCP implementation is pretty fast though.--)
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  I suggest to ISPs out there that it would probably be fair to charge
4462306a36Sopenharmony_ci  a load-balancing client 75% of the cost of the second line and 50% of
4562306a36Sopenharmony_ci  the cost of the third line etc...
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci  Hey, we can all dream you know...
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci2. Kernel Configuration
5262306a36Sopenharmony_ci=======================
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci  Here I describe the general steps of getting a kernel up and working
5562306a36Sopenharmony_ci  with the eql driver.	From patching, building, to installing.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci2.1. Patching The Kernel
5962306a36Sopenharmony_ci------------------------
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci  If you do not have or cannot get a copy of the kernel with the eql
6262306a36Sopenharmony_ci  driver folded into it, get your copy of the driver from
6362306a36Sopenharmony_ci  ftp://slaughter.ncm.com/pub/Linux/LOAD_BALANCING/eql-1.1.tar.gz.
6462306a36Sopenharmony_ci  Unpack this archive someplace obvious like /usr/local/src/.  It will
6562306a36Sopenharmony_ci  create the following files::
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci       -rw-r--r-- guru/ncm	198 Jan 19 18:53 1995 eql-1.1/NO-WARRANTY
6862306a36Sopenharmony_ci       -rw-r--r-- guru/ncm	30620 Feb 27 21:40 1995 eql-1.1/eql-1.1.patch
6962306a36Sopenharmony_ci       -rwxr-xr-x guru/ncm	16111 Jan 12 22:29 1995 eql-1.1/eql_enslave
7062306a36Sopenharmony_ci       -rw-r--r-- guru/ncm	2195 Jan 10 21:48 1995 eql-1.1/eql_enslave.c
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci  Unpack a recent kernel (something after 1.1.92) someplace convenient
7362306a36Sopenharmony_ci  like say /usr/src/linux-1.1.92.eql. Use symbolic links to point
7462306a36Sopenharmony_ci  /usr/src/linux to this development directory.
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci  Apply the patch by running the commands::
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci       cd /usr/src
8062306a36Sopenharmony_ci       patch </usr/local/src/eql-1.1/eql-1.1.patch
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci2.2. Building The Kernel
8462306a36Sopenharmony_ci------------------------
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci  After patching the kernel, run make config and configure the kernel
8762306a36Sopenharmony_ci  for your hardware.
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci  After configuration, make and install according to your habit.
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci3. Network Configuration
9462306a36Sopenharmony_ci========================
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci  So far, I have only used the eql device with the DSLIP SLIP connection
9762306a36Sopenharmony_ci  manager by Matt Dillon (-- "The man who sold his soul to code so much
9862306a36Sopenharmony_ci  so quickly."--) .  How you configure it for other "connection"
9962306a36Sopenharmony_ci  managers is up to you.  Most other connection managers that I've seen
10062306a36Sopenharmony_ci  don't do a very good job when it comes to handling more than one
10162306a36Sopenharmony_ci  connection.
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci3.1. /etc/rc.d/rc.inet1
10562306a36Sopenharmony_ci-----------------------
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci  In rc.inet1, ifconfig the eql device to the IP address you usually use
10862306a36Sopenharmony_ci  for your machine, and the MTU you prefer for your SLIP lines.	One
10962306a36Sopenharmony_ci  could argue that MTU should be roughly half the usual size for two
11062306a36Sopenharmony_ci  modems, one-third for three, one-fourth for four, etc...  But going
11162306a36Sopenharmony_ci  too far below 296 is probably overkill. Here is an example ifconfig
11262306a36Sopenharmony_ci  command that sets up the eql device::
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ci       ifconfig eql 198.67.33.239 mtu 1006
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci  Once the eql device is up and running, add a static default route to
11762306a36Sopenharmony_ci  it in the routing table using the cool new route syntax that makes
11862306a36Sopenharmony_ci  life so much easier::
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci       route add default eql
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci3.2. Enslaving Devices By Hand
12462306a36Sopenharmony_ci------------------------------
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci  Enslaving devices by hand requires two utility programs: eql_enslave
12762306a36Sopenharmony_ci  and eql_emancipate (-- eql_emancipate hasn't been written because when
12862306a36Sopenharmony_ci  an enslaved device "dies", it is automatically taken out of the queue.
12962306a36Sopenharmony_ci  I haven't found a good reason to write it yet... other than for
13062306a36Sopenharmony_ci  completeness, but that isn't a good motivator is it?--)
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci  The syntax for enslaving a device is "eql_enslave <master-name>
13462306a36Sopenharmony_ci  <slave-name> <estimated-bps>".  Here are some example enslavings::
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ci       eql_enslave eql sl0 28800
13762306a36Sopenharmony_ci       eql_enslave eql ppp0 14400
13862306a36Sopenharmony_ci       eql_enslave eql sl1 57600
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci  When you want to free a device from its life of slavery, you can
14162306a36Sopenharmony_ci  either down the device with ifconfig (eql will automatically bury the
14262306a36Sopenharmony_ci  dead slave and remove it from its queue) or use eql_emancipate to free
14362306a36Sopenharmony_ci  it. (-- Or just ifconfig it down, and the eql driver will take it out
14462306a36Sopenharmony_ci  for you.--)::
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci       eql_emancipate eql sl0
14762306a36Sopenharmony_ci       eql_emancipate eql ppp0
14862306a36Sopenharmony_ci       eql_emancipate eql sl1
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ci3.3. DSLIP Configuration for the eql Device
15262306a36Sopenharmony_ci-------------------------------------------
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci  The general idea is to bring up and keep up as many SLIP connections
15562306a36Sopenharmony_ci  as you need, automatically.
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci3.3.1.  /etc/slip/runslip.conf
15962306a36Sopenharmony_ci^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ci  Here is an example runslip.conf::
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ci	  name		sl-line-1
16462306a36Sopenharmony_ci	  enabled
16562306a36Sopenharmony_ci	  baud		38400
16662306a36Sopenharmony_ci	  mtu		576
16762306a36Sopenharmony_ci	  ducmd		-e /etc/slip/dialout/cua2-288.xp -t 9
16862306a36Sopenharmony_ci	  command	 eql_enslave eql $interface 28800
16962306a36Sopenharmony_ci	  address	 198.67.33.239
17062306a36Sopenharmony_ci	  line		/dev/cua2
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci	  name		sl-line-2
17362306a36Sopenharmony_ci	  enabled
17462306a36Sopenharmony_ci	  baud		38400
17562306a36Sopenharmony_ci	  mtu		576
17662306a36Sopenharmony_ci	  ducmd		-e /etc/slip/dialout/cua3-288.xp -t 9
17762306a36Sopenharmony_ci	  command	 eql_enslave eql $interface 28800
17862306a36Sopenharmony_ci	  address	 198.67.33.239
17962306a36Sopenharmony_ci	  line		/dev/cua3
18062306a36Sopenharmony_ci
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ci3.4. Using PPP and the eql Device
18362306a36Sopenharmony_ci---------------------------------
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ci  I have not yet done any load-balancing testing for PPP devices, mainly
18662306a36Sopenharmony_ci  because I don't have a PPP-connection manager like SLIP has with
18762306a36Sopenharmony_ci  DSLIP. I did find a good tip from LinuxNET:Billy for PPP performance:
18862306a36Sopenharmony_ci  make sure you have asyncmap set to something so that control
18962306a36Sopenharmony_ci  characters are not escaped.
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ci  I tried to fix up a PPP script/system for redialing lost PPP
19362306a36Sopenharmony_ci  connections for use with the eql driver the weekend of Feb 25-26 '95
19462306a36Sopenharmony_ci  (Hereafter known as the 8-hour PPP Hate Festival).  Perhaps later this
19562306a36Sopenharmony_ci  year.
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ci4. About the Slave Scheduler Algorithm
19962306a36Sopenharmony_ci======================================
20062306a36Sopenharmony_ci
20162306a36Sopenharmony_ci  The slave scheduler probably could be replaced with a dozen other
20262306a36Sopenharmony_ci  things and push traffic much faster.	The formula in the current set
20362306a36Sopenharmony_ci  up of the driver was tuned to handle slaves with wildly different
20462306a36Sopenharmony_ci  bits-per-second "priorities".
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_ci  All testing I have done was with two 28.8 V.FC modems, one connecting
20862306a36Sopenharmony_ci  at 28800 bps or slower, and the other connecting at 14400 bps all the
20962306a36Sopenharmony_ci  time.
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ci  One version of the scheduler was able to push 5.3 K/s through the
21362306a36Sopenharmony_ci  28800 and 14400 connections, but when the priorities on the links were
21462306a36Sopenharmony_ci  very wide apart (57600 vs. 14400) the "faster" modem received all
21562306a36Sopenharmony_ci  traffic and the "slower" modem starved.
21662306a36Sopenharmony_ci
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ci5. Testers' Reports
21962306a36Sopenharmony_ci===================
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ci  Some people have experimented with the eql device with newer
22262306a36Sopenharmony_ci  kernels (than 1.1.75).  I have since updated the driver to patch
22362306a36Sopenharmony_ci  cleanly in newer kernels because of the removal of the old "slave-
22462306a36Sopenharmony_ci  balancing" driver config option.
22562306a36Sopenharmony_ci
22662306a36Sopenharmony_ci
22762306a36Sopenharmony_ci  -  icee from LinuxNET patched 1.1.86 without any rejects and was able
22862306a36Sopenharmony_ci     to boot the kernel and enslave a couple of ISDN PPP links.
22962306a36Sopenharmony_ci
23062306a36Sopenharmony_ci5.1. Randolph Bentson's Test Report
23162306a36Sopenharmony_ci-----------------------------------
23262306a36Sopenharmony_ci
23362306a36Sopenharmony_ci  ::
23462306a36Sopenharmony_ci
23562306a36Sopenharmony_ci    From bentson@grieg.seaslug.org Wed Feb  8 19:08:09 1995
23662306a36Sopenharmony_ci    Date: Tue, 7 Feb 95 22:57 PST
23762306a36Sopenharmony_ci    From: Randolph Bentson <bentson@grieg.seaslug.org>
23862306a36Sopenharmony_ci    To: guru@ncm.com
23962306a36Sopenharmony_ci    Subject: EQL driver tests
24062306a36Sopenharmony_ci
24162306a36Sopenharmony_ci
24262306a36Sopenharmony_ci    I have been checking out your eql driver.  (Nice work, that!)
24362306a36Sopenharmony_ci    Although you may already done this performance testing, here
24462306a36Sopenharmony_ci    are some data I've discovered.
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_ci    Randolph Bentson
24762306a36Sopenharmony_ci    bentson@grieg.seaslug.org
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_ci------------------------------------------------------------------
25062306a36Sopenharmony_ci
25162306a36Sopenharmony_ci
25262306a36Sopenharmony_ci  A pseudo-device driver, EQL, written by Simon Janes, can be used
25362306a36Sopenharmony_ci  to bundle multiple SLIP connections into what appears to be a
25462306a36Sopenharmony_ci  single connection.  This allows one to improve dial-up network
25562306a36Sopenharmony_ci  connectivity gradually, without having to buy expensive DSU/CSU
25662306a36Sopenharmony_ci  hardware and services.
25762306a36Sopenharmony_ci
25862306a36Sopenharmony_ci  I have done some testing of this software, with two goals in
25962306a36Sopenharmony_ci  mind: first, to ensure it actually works as described and
26062306a36Sopenharmony_ci  second, as a method of exercising my device driver.
26162306a36Sopenharmony_ci
26262306a36Sopenharmony_ci  The following performance measurements were derived from a set
26362306a36Sopenharmony_ci  of SLIP connections run between two Linux systems (1.1.84) using
26462306a36Sopenharmony_ci  a 486DX2/66 with a Cyclom-8Ys and a 486SLC/40 with a Cyclom-16Y.
26562306a36Sopenharmony_ci  (Ports 0,1,2,3 were used.  A later configuration will distribute
26662306a36Sopenharmony_ci  port selection across the different Cirrus chips on the boards.)
26762306a36Sopenharmony_ci  Once a link was established, I timed a binary ftp transfer of
26862306a36Sopenharmony_ci  289284 bytes of data.	If there were no overhead (packet headers,
26962306a36Sopenharmony_ci  inter-character and inter-packet delays, etc.) the transfers
27062306a36Sopenharmony_ci  would take the following times::
27162306a36Sopenharmony_ci
27262306a36Sopenharmony_ci      bits/sec	seconds
27362306a36Sopenharmony_ci      345600	8.3
27462306a36Sopenharmony_ci      234600	12.3
27562306a36Sopenharmony_ci      172800	16.7
27662306a36Sopenharmony_ci      153600	18.8
27762306a36Sopenharmony_ci      76800	37.6
27862306a36Sopenharmony_ci      57600	50.2
27962306a36Sopenharmony_ci      38400	75.3
28062306a36Sopenharmony_ci      28800	100.4
28162306a36Sopenharmony_ci      19200	150.6
28262306a36Sopenharmony_ci      9600	301.3
28362306a36Sopenharmony_ci
28462306a36Sopenharmony_ci  A single line running at the lower speeds and with large packets
28562306a36Sopenharmony_ci  comes to within 2% of this.  Performance is limited for the higher
28662306a36Sopenharmony_ci  speeds (as predicted by the Cirrus databook) to an aggregate of
28762306a36Sopenharmony_ci  about 160 kbits/sec.	The next round of testing will distribute
28862306a36Sopenharmony_ci  the load across two or more Cirrus chips.
28962306a36Sopenharmony_ci
29062306a36Sopenharmony_ci  The good news is that one gets nearly the full advantage of the
29162306a36Sopenharmony_ci  second, third, and fourth line's bandwidth.  (The bad news is
29262306a36Sopenharmony_ci  that the connection establishment seemed fragile for the higher
29362306a36Sopenharmony_ci  speeds.  Once established, the connection seemed robust enough.)
29462306a36Sopenharmony_ci
29562306a36Sopenharmony_ci  ======  ========	===  ========   ======= ======= ===
29662306a36Sopenharmony_ci  #lines  speed		mtu  seconds	theory  actual  %of
29762306a36Sopenharmony_ci	  kbit/sec	     duration	speed	speed	max
29862306a36Sopenharmony_ci  ======  ========	===  ========   ======= ======= ===
29962306a36Sopenharmony_ci  3	  115200	900	_	345600
30062306a36Sopenharmony_ci  3	  115200	400	18.1	345600  159825  46
30162306a36Sopenharmony_ci  2	  115200	900	_	230400
30262306a36Sopenharmony_ci  2	  115200	600	18.1	230400  159825  69
30362306a36Sopenharmony_ci  2	  115200	400	19.3	230400  149888  65
30462306a36Sopenharmony_ci  4	  57600		900	_	234600
30562306a36Sopenharmony_ci  4	  57600		600	_	234600
30662306a36Sopenharmony_ci  4	  57600		400	_	234600
30762306a36Sopenharmony_ci  3	  57600		600	20.9	172800  138413  80
30862306a36Sopenharmony_ci  3	  57600		900	21.2	172800  136455  78
30962306a36Sopenharmony_ci  3	  115200	600	21.7	345600  133311  38
31062306a36Sopenharmony_ci  3	  57600		400	22.5	172800  128571  74
31162306a36Sopenharmony_ci  4	  38400		900	25.2	153600  114795  74
31262306a36Sopenharmony_ci  4	  38400		600	26.4	153600  109577  71
31362306a36Sopenharmony_ci  4	  38400		400	27.3	153600  105965  68
31462306a36Sopenharmony_ci  2	  57600		900	29.1	115200  99410.3 86
31562306a36Sopenharmony_ci  1	  115200	900	30.7	115200  94229.3 81
31662306a36Sopenharmony_ci  2	  57600		600	30.2	115200  95789.4 83
31762306a36Sopenharmony_ci  3	  38400		900	30.3	115200  95473.3 82
31862306a36Sopenharmony_ci  3	  38400		600	31.2	115200  92719.2 80
31962306a36Sopenharmony_ci  1	  115200	600	31.3	115200  92423	80
32062306a36Sopenharmony_ci  2	  57600		400	32.3	115200  89561.6 77
32162306a36Sopenharmony_ci  1	  115200	400	32.8	115200  88196.3 76
32262306a36Sopenharmony_ci  3	  38400		400	33.5	115200  86353.4 74
32362306a36Sopenharmony_ci  2	  38400		900	43.7	76800	66197.7 86
32462306a36Sopenharmony_ci  2	  38400		600	44	76800	65746.4 85
32562306a36Sopenharmony_ci  2	  38400		400	47.2	76800	61289	79
32662306a36Sopenharmony_ci  4	  19200		900	50.8	76800	56945.7 74
32762306a36Sopenharmony_ci  4	  19200		400	53.2	76800	54376.7 70
32862306a36Sopenharmony_ci  4	  19200		600	53.7	76800	53870.4 70
32962306a36Sopenharmony_ci  1	  57600		900	54.6	57600	52982.4 91
33062306a36Sopenharmony_ci  1	  57600		600	56.2	57600	51474	89
33162306a36Sopenharmony_ci  3	  19200		900	60.5	57600	47815.5 83
33262306a36Sopenharmony_ci  1	  57600		400	60.2	57600	48053.8 83
33362306a36Sopenharmony_ci  3	  19200		600	62	57600	46658.7 81
33462306a36Sopenharmony_ci  3	  19200		400	64.7	57600	44711.6 77
33562306a36Sopenharmony_ci  1	  38400		900	79.4	38400	36433.8 94
33662306a36Sopenharmony_ci  1	  38400		600	82.4	38400	35107.3 91
33762306a36Sopenharmony_ci  2	  19200		900	84.4	38400	34275.4 89
33862306a36Sopenharmony_ci  1	  38400		400	86.8	38400	33327.6 86
33962306a36Sopenharmony_ci  2	  19200		600	87.6	38400	33023.3 85
34062306a36Sopenharmony_ci  2	  19200		400	91.2	38400	31719.7 82
34162306a36Sopenharmony_ci  4	  9600		900	94.7	38400	30547.4 79
34262306a36Sopenharmony_ci  4	  9600		400	106	38400	27290.9 71
34362306a36Sopenharmony_ci  4	  9600		600	110	38400	26298.5 68
34462306a36Sopenharmony_ci  3	  9600		900	118	28800	24515.6 85
34562306a36Sopenharmony_ci  3	  9600		600	120	28800	24107	83
34662306a36Sopenharmony_ci  3	  9600		400	131	28800	22082.7 76
34762306a36Sopenharmony_ci  1	  19200		900	155	19200	18663.5 97
34862306a36Sopenharmony_ci  1	  19200		600	161	19200	17968	93
34962306a36Sopenharmony_ci  1	  19200		400	170	19200	17016.7 88
35062306a36Sopenharmony_ci  2	  9600		600	176	19200	16436.6 85
35162306a36Sopenharmony_ci  2	  9600		900	180	19200	16071.3 83
35262306a36Sopenharmony_ci  2	  9600		400	181	19200	15982.5 83
35362306a36Sopenharmony_ci  1	  9600		900	305	9600	9484.72 98
35462306a36Sopenharmony_ci  1	  9600		600	314	9600	9212.87 95
35562306a36Sopenharmony_ci  1	  9600		400	332	9600	8713.37 90
35662306a36Sopenharmony_ci  ======  ========	===  ========   ======= ======= ===
35762306a36Sopenharmony_ci
35862306a36Sopenharmony_ci5.2. Anthony Healy's Report
35962306a36Sopenharmony_ci---------------------------
36062306a36Sopenharmony_ci
36162306a36Sopenharmony_ci  ::
36262306a36Sopenharmony_ci
36362306a36Sopenharmony_ci    Date: Mon, 13 Feb 1995 16:17:29 +1100 (EST)
36462306a36Sopenharmony_ci    From: Antony Healey <ahealey@st.nepean.uws.edu.au>
36562306a36Sopenharmony_ci    To: Simon Janes <guru@ncm.com>
36662306a36Sopenharmony_ci    Subject: Re: Load Balancing
36762306a36Sopenharmony_ci
36862306a36Sopenharmony_ci    Hi Simon,
36962306a36Sopenharmony_ci	  I've installed your patch and it works great. I have trialed
37062306a36Sopenharmony_ci	  it over twin SL/IP lines, just over null modems, but I was
37162306a36Sopenharmony_ci	  able to data at over 48Kb/s [ISDN link -Simon]. I managed a
37262306a36Sopenharmony_ci	  transfer of up to 7.5 Kbyte/s on one go, but averaged around
37362306a36Sopenharmony_ci	  6.4 Kbyte/s, which I think is pretty cool.  :)
374