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