__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.217.18: ~ $
<!DOCTYPE html>

<html lang="en" data-content_root="../">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

    <title>EQL Driver: Serial IP Load Balancing HOWTO &#8212; The Linux Kernel  documentation</title>
    <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
    <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=3918102e" />
    <script src="../_static/documentation_options.js?v=5929fcd5"></script>
    <script src="../_static/doctools.js?v=9bcbadda"></script>
    <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="LC-trie implementation notes" href="fib_trie.html" />
    <link rel="prev" title="Softnet Driver Issues" href="driver.html" />
   
  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
  

  
  

  </head><body>
  <div class="document">
    
      <div class="sphinxsidebar" role="navigation" aria-label="Main">
        <div class="sphinxsidebarwrapper">
            <p class="logo"><a href="../index.html">
              <img class="logo" src="../_static/logo.svg" alt="Logo of The Linux Kernel"/>
            </a></p>
<h1 class="logo"><a href="../index.html">The Linux Kernel</a></h1>



<p class="blurb">6.18.50</p>







<search id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>


<p>
<h3 class="kernel-toc-contents">Contents</h3>
<input type="checkbox" class="kernel-toc-toggle" id = "kernel-toc-toggle" checked>
<label class="kernel-toc-title" for="kernel-toc-toggle"></label>

<div class="kerneltoc" id="kerneltoc">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/development-process.html">Development process</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/submitting-patches.html">Submitting patches</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/code-of-conduct.html">Code of conduct</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintainer/index.html">Maintainer handbook</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/index.html">All development-process docs</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../core-api/index.html">Core API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../driver-api/index.html">Driver APIs</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../subsystem-apis.html">Subsystems</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#core-subsystems">Core subsystems</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#human-interfaces">Human interfaces</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../subsystem-apis.html#networking-interfaces">Networking interfaces</a><ul class="current">
<li class="toctree-l3 current"><a class="reference internal" href="index.html">Networking</a></li>
<li class="toctree-l3"><a class="reference internal" href="../netlabel/index.html">NetLabel</a></li>
<li class="toctree-l3"><a class="reference internal" href="../infiniband/index.html">InfiniBand</a></li>
<li class="toctree-l3"><a class="reference internal" href="../isdn/index.html">ISDN</a></li>
<li class="toctree-l3"><a class="reference internal" href="../mhi/index.html">MHI</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#storage-interfaces">Storage interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#other-subsystems">Other subsystems</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../locking/index.html">Locking</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/license-rules.html">Licensing rules</a></li>
<li class="toctree-l1"><a class="reference internal" href="../doc-guide/index.html">Writing documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/index.html">Development tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/testing-overview.html">Testing guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kernel-hacking/index.html">Hacking guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../trace/index.html">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fault-injection/index.html">Fault injection</a></li>
<li class="toctree-l1"><a class="reference internal" href="../livepatch/index.html">Livepatching</a></li>
<li class="toctree-l1"><a class="reference internal" href="../rust/index.html">Rust</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/index.html">Administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kbuild/index.html">Build system</a></li>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/reporting-issues.html">Reporting issues</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Userspace tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../userspace-api/index.html">Userspace API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../firmware-guide/index.html">Firmware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../devicetree/index.html">Firmware and Devicetree</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../arch/index.html">CPU architectures</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../staging/index.html">Unsorted documentation</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../translations/index.html">Translations</a></li>
</ul>

</div>

<script type="text/javascript"> <!--
  var sbar = document.getElementsByClassName("sphinxsidebar")[0];
  let currents = document.getElementsByClassName("current")
  if (currents.length) {
    sbar.scrollTop = currents[currents.length - 1].offsetTop;
  }
  --> </script>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/networking/eql.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
        </div>
      </div>
      <div class="documentwrapper">
        <div class="bodywrapper">
          

          <div class="body" role="main">
            
  



<section id="eql-driver-serial-ip-load-balancing-howto">
<h1>EQL Driver: Serial IP Load Balancing HOWTO<a class="headerlink" href="#eql-driver-serial-ip-load-balancing-howto" title="Link to this heading">¶</a></h1>
<blockquote>
<div><p>Simon “Guru Aleph-Null” Janes, <a class="reference external" href="mailto:simon&#37;&#52;&#48;ncm&#46;com">simon<span>&#64;</span>ncm<span>&#46;</span>com</a></p>
<p>v1.1, February 27, 1995</p>
<p>This is the manual for the EQL device driver. EQL is a software device
that lets you load-balance IP serial links (SLIP or uncompressed PPP)
to increase your bandwidth. It will not reduce your latency (i.e. ping
times) except in the case where you already have lots of traffic on
your link, in which it will help them out. This driver has been tested
with the 1.1.75 kernel, and is known to have patched cleanly with
1.1.86.  Some testing with 1.1.92 has been done with the v1.1 patch
which was only created to patch cleanly in the very latest kernel
source trees. (Yes, it worked fine.)</p>
</div></blockquote>
<section id="introduction">
<h2>1. Introduction<a class="headerlink" href="#introduction" title="Link to this heading">¶</a></h2>
<blockquote>
<div><p>Which is worse? A huge fee for a 56K leased line or two phone lines?
It’s probably the former.  If you find yourself craving more bandwidth,
and have a ISP that is flexible, it is now possible to bind modems
together to work as one point-to-point link to increase your
bandwidth.  All without having to have a special black box on either
side.</p>
<p>The eql driver has only been tested with the Livingston PortMaster-2e
terminal server. I do not know if other terminal servers support load-
balancing, but I do know that the PortMaster does it, and does it
almost as well as the eql driver seems to do it (-- Unfortunately, in
my testing so far, the Livingston PortMaster 2e’s load-balancing is a
good 1 to 2 KB/s slower than the test machine working with a 28.8 Kbps
and 14.4 Kbps connection.  However, I am not sure that it really is
the PortMaster, or if it’s Linux’s TCP drivers. I’m told that Linux’s
TCP implementation is pretty fast though.--)</p>
<p>I suggest to ISPs out there that it would probably be fair to charge
a load-balancing client 75% of the cost of the second line and 50% of
the cost of the third line etc...</p>
<p>Hey, we can all dream you know...</p>
</div></blockquote>
</section>
<section id="kernel-configuration">
<h2>2. Kernel Configuration<a class="headerlink" href="#kernel-configuration" title="Link to this heading">¶</a></h2>
<blockquote>
<div><p>Here I describe the general steps of getting a kernel up and working
with the eql driver.  From patching, building, to installing.</p>
</div></blockquote>
<section id="patching-the-kernel">
<h3>2.1. Patching The Kernel<a class="headerlink" href="#patching-the-kernel" title="Link to this heading">¶</a></h3>
<blockquote>
<div><p>If you do not have or cannot get a copy of the kernel with the eql
driver folded into it, get your copy of the driver from
<a class="reference external" href="ftp://slaughter.ncm.com/pub/Linux/LOAD_BALANCING/eql-1.1.tar.gz">ftp://slaughter.ncm.com/pub/Linux/LOAD_BALANCING/eql-1.1.tar.gz</a>.
Unpack this archive someplace obvious like /usr/local/src/.  It will
create the following files:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>-rw-r--r-- guru/ncm      198 Jan 19 18:53 1995 eql-1.1/NO-WARRANTY
-rw-r--r-- guru/ncm      30620 Feb 27 21:40 1995 eql-1.1/eql-1.1.patch
-rwxr-xr-x guru/ncm      16111 Jan 12 22:29 1995 eql-1.1/eql_enslave
-rw-r--r-- guru/ncm      2195 Jan 10 21:48 1995 eql-1.1/eql_enslave.c
</pre></div>
</div>
<p>Unpack a recent kernel (something after 1.1.92) someplace convenient
like say /usr/src/linux-1.1.92.eql. Use symbolic links to point
/usr/src/linux to this development directory.</p>
<p>Apply the patch by running the commands:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>cd /usr/src
patch &lt;/usr/local/src/eql-1.1/eql-1.1.patch
</pre></div>
</div>
</div></blockquote>
</section>
<section id="building-the-kernel">
<h3>2.2. Building The Kernel<a class="headerlink" href="#building-the-kernel" title="Link to this heading">¶</a></h3>
<blockquote>
<div><p>After patching the kernel, run make config and configure the kernel
for your hardware.</p>
<p>After configuration, make and install according to your habit.</p>
</div></blockquote>
</section>
</section>
<section id="network-configuration">
<h2>3. Network Configuration<a class="headerlink" href="#network-configuration" title="Link to this heading">¶</a></h2>
<blockquote>
<div><p>So far, I have only used the eql device with the DSLIP SLIP connection
manager by Matt Dillon (-- “The man who sold his soul to code so much
so quickly.”--) .  How you configure it for other “connection”
managers is up to you.  Most other connection managers that I’ve seen
don’t do a very good job when it comes to handling more than one
connection.</p>
</div></blockquote>
<section id="etc-rc-d-rc-inet1">
<h3>3.1. /etc/rc.d/rc.inet1<a class="headerlink" href="#etc-rc-d-rc-inet1" title="Link to this heading">¶</a></h3>
<blockquote>
<div><p>In rc.inet1, ifconfig the eql device to the IP address you usually use
for your machine, and the MTU you prefer for your SLIP lines. One
could argue that MTU should be roughly half the usual size for two
modems, one-third for three, one-fourth for four, etc...  But going
too far below 296 is probably overkill. Here is an example ifconfig
command that sets up the eql device:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>ifconfig eql 198.67.33.239 mtu 1006
</pre></div>
</div>
<p>Once the eql device is up and running, add a static default route to
it in the routing table using the cool new route syntax that makes
life so much easier:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>route add default eql
</pre></div>
</div>
</div></blockquote>
</section>
<section id="enslaving-devices-by-hand">
<h3>3.2. Enslaving Devices By Hand<a class="headerlink" href="#enslaving-devices-by-hand" title="Link to this heading">¶</a></h3>
<blockquote>
<div><p>Enslaving devices by hand requires two utility programs: eql_enslave
and eql_emancipate (-- eql_emancipate hasn’t been written because when
an enslaved device “dies”, it is automatically taken out of the queue.
I haven’t found a good reason to write it yet... other than for
completeness, but that isn’t a good motivator is it?--)</p>
<p>The syntax for enslaving a device is “eql_enslave &lt;master-name&gt;
&lt;slave-name&gt; &lt;estimated-bps&gt;”.  Here are some example enslavings:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>eql_enslave eql sl0 28800
eql_enslave eql ppp0 14400
eql_enslave eql sl1 57600
</pre></div>
</div>
<p>When you want to free a device from its life of slavery, you can
either down the device with ifconfig (eql will automatically bury the
dead slave and remove it from its queue) or use eql_emancipate to free
it. (-- Or just ifconfig it down, and the eql driver will take it out
for you.--):</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>eql_emancipate eql sl0
eql_emancipate eql ppp0
eql_emancipate eql sl1
</pre></div>
</div>
</div></blockquote>
</section>
<section id="dslip-configuration-for-the-eql-device">
<h3>3.3. DSLIP Configuration for the eql Device<a class="headerlink" href="#dslip-configuration-for-the-eql-device" title="Link to this heading">¶</a></h3>
<blockquote>
<div><p>The general idea is to bring up and keep up as many SLIP connections
as you need, automatically.</p>
</div></blockquote>
<section id="etc-slip-runslip-conf">
<h4>3.3.1.  /etc/slip/runslip.conf<a class="headerlink" href="#etc-slip-runslip-conf" title="Link to this heading">¶</a></h4>
<blockquote>
<div><p>Here is an example runslip.conf:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>name          sl-line-1
enabled
baud          38400
mtu           576
ducmd         -e /etc/slip/dialout/cua2-288.xp -t 9
command        eql_enslave eql $interface 28800
address        198.67.33.239
line          /dev/cua2

name          sl-line-2
enabled
baud          38400
mtu           576
ducmd         -e /etc/slip/dialout/cua3-288.xp -t 9
command        eql_enslave eql $interface 28800
address        198.67.33.239
line          /dev/cua3
</pre></div>
</div>
</div></blockquote>
</section>
</section>
<section id="using-ppp-and-the-eql-device">
<h3>3.4. Using PPP and the eql Device<a class="headerlink" href="#using-ppp-and-the-eql-device" title="Link to this heading">¶</a></h3>
<blockquote>
<div><p>I have not yet done any load-balancing testing for PPP devices, mainly
because I don’t have a PPP-connection manager like SLIP has with
DSLIP. I did find a good tip from LinuxNET:Billy for PPP performance:
make sure you have asyncmap set to something so that control
characters are not escaped.</p>
<p>I tried to fix up a PPP script/system for redialing lost PPP
connections for use with the eql driver the weekend of Feb 25-26 ‘95
(Hereafter known as the 8-hour PPP Hate Festival).  Perhaps later this
year.</p>
</div></blockquote>
</section>
</section>
<section id="about-the-slave-scheduler-algorithm">
<h2>4. About the Slave Scheduler Algorithm<a class="headerlink" href="#about-the-slave-scheduler-algorithm" title="Link to this heading">¶</a></h2>
<blockquote>
<div><p>The slave scheduler probably could be replaced with a dozen other
things and push traffic much faster.  The formula in the current set
up of the driver was tuned to handle slaves with wildly different
bits-per-second “priorities”.</p>
<p>All testing I have done was with two 28.8 V.FC modems, one connecting
at 28800 bps or slower, and the other connecting at 14400 bps all the
time.</p>
<p>One version of the scheduler was able to push 5.3 K/s through the
28800 and 14400 connections, but when the priorities on the links were
very wide apart (57600 vs. 14400) the “faster” modem received all
traffic and the “slower” modem starved.</p>
</div></blockquote>
</section>
<section id="testers-reports">
<h2>5. Testers’ Reports<a class="headerlink" href="#testers-reports" title="Link to this heading">¶</a></h2>
<blockquote>
<div><p>Some people have experimented with the eql device with newer
kernels (than 1.1.75).  I have since updated the driver to patch
cleanly in newer kernels because of the removal of the old “slave-
balancing” driver config option.</p>
<ul class="simple">
<li><p>icee from LinuxNET patched 1.1.86 without any rejects and was able
to boot the kernel and enslave a couple of ISDN PPP links.</p></li>
</ul>
</div></blockquote>
<section id="randolph-bentson-s-test-report">
<h3>5.1. Randolph Bentson’s Test Report<a class="headerlink" href="#randolph-bentson-s-test-report" title="Link to this heading">¶</a></h3>
<blockquote>
<div><div class="highlight-none notranslate"><div class="highlight"><pre><span></span>From bentson@grieg.seaslug.org Wed Feb  8 19:08:09 1995
Date: Tue, 7 Feb 95 22:57 PST
From: Randolph Bentson &lt;bentson@grieg.seaslug.org&gt;
To: guru@ncm.com
Subject: EQL driver tests


I have been checking out your eql driver.  (Nice work, that!)
Although you may already done this performance testing, here
are some data I&#39;ve discovered.

Randolph Bentson
bentson@grieg.seaslug.org
</pre></div>
</div>
</div></blockquote>
<hr class="docutils" />
<blockquote>
<div><p>A pseudo-device driver, EQL, written by Simon Janes, can be used
to bundle multiple SLIP connections into what appears to be a
single connection.  This allows one to improve dial-up network
connectivity gradually, without having to buy expensive DSU/CSU
hardware and services.</p>
<p>I have done some testing of this software, with two goals in
mind: first, to ensure it actually works as described and
second, as a method of exercising my device driver.</p>
<p>The following performance measurements were derived from a set
of SLIP connections run between two Linux systems (1.1.84) using
a 486DX2/66 with a Cyclom-8Ys and a 486SLC/40 with a Cyclom-16Y.
(Ports 0,1,2,3 were used.  A later configuration will distribute
port selection across the different Cirrus chips on the boards.)
Once a link was established, I timed a binary ftp transfer of
289284 bytes of data. If there were no overhead (packet headers,
inter-character and inter-packet delays, etc.) the transfers
would take the following times:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>bits/sec  seconds
345600    8.3
234600    12.3
172800    16.7
153600    18.8
76800     37.6
57600     50.2
38400     75.3
28800     100.4
19200     150.6
9600      301.3
</pre></div>
</div>
<p>A single line running at the lower speeds and with large packets
comes to within 2% of this.  Performance is limited for the higher
speeds (as predicted by the Cirrus databook) to an aggregate of
about 160 kbits/sec.  The next round of testing will distribute
the load across two or more Cirrus chips.</p>
<p>The good news is that one gets nearly the full advantage of the
second, third, and fourth line’s bandwidth.  (The bad news is
that the connection establishment seemed fragile for the higher
speeds.  Once established, the connection seemed robust enough.)</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>#lines</p></th>
<th class="head"><p>speed
kbit/sec</p></th>
<th class="head"><p>mtu</p></th>
<th class="head"><p>seconds
duration</p></th>
<th class="head"><p>theory
speed</p></th>
<th class="head"><p>actual
speed</p></th>
<th class="head"><p>%of
max</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>3</p></td>
<td><p>115200</p></td>
<td><p>900</p></td>
<td><p>_</p></td>
<td><p>345600</p></td>
<td></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>3</p></td>
<td><p>115200</p></td>
<td><p>400</p></td>
<td><p>18.1</p></td>
<td><p>345600</p></td>
<td><p>159825</p></td>
<td><p>46</p></td>
</tr>
<tr class="row-even"><td><p>2</p></td>
<td><p>115200</p></td>
<td><p>900</p></td>
<td><p>_</p></td>
<td><p>230400</p></td>
<td></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>115200</p></td>
<td><p>600</p></td>
<td><p>18.1</p></td>
<td><p>230400</p></td>
<td><p>159825</p></td>
<td><p>69</p></td>
</tr>
<tr class="row-even"><td><p>2</p></td>
<td><p>115200</p></td>
<td><p>400</p></td>
<td><p>19.3</p></td>
<td><p>230400</p></td>
<td><p>149888</p></td>
<td><p>65</p></td>
</tr>
<tr class="row-odd"><td><p>4</p></td>
<td><p>57600</p></td>
<td><p>900</p></td>
<td><p>_</p></td>
<td><p>234600</p></td>
<td></td>
<td></td>
</tr>
<tr class="row-even"><td><p>4</p></td>
<td><p>57600</p></td>
<td><p>600</p></td>
<td><p>_</p></td>
<td><p>234600</p></td>
<td></td>
<td></td>
</tr>
<tr class="row-odd"><td><p>4</p></td>
<td><p>57600</p></td>
<td><p>400</p></td>
<td><p>_</p></td>
<td><p>234600</p></td>
<td></td>
<td></td>
</tr>
<tr class="row-even"><td><p>3</p></td>
<td><p>57600</p></td>
<td><p>600</p></td>
<td><p>20.9</p></td>
<td><p>172800</p></td>
<td><p>138413</p></td>
<td><p>80</p></td>
</tr>
<tr class="row-odd"><td><p>3</p></td>
<td><p>57600</p></td>
<td><p>900</p></td>
<td><p>21.2</p></td>
<td><p>172800</p></td>
<td><p>136455</p></td>
<td><p>78</p></td>
</tr>
<tr class="row-even"><td><p>3</p></td>
<td><p>115200</p></td>
<td><p>600</p></td>
<td><p>21.7</p></td>
<td><p>345600</p></td>
<td><p>133311</p></td>
<td><p>38</p></td>
</tr>
<tr class="row-odd"><td><p>3</p></td>
<td><p>57600</p></td>
<td><p>400</p></td>
<td><p>22.5</p></td>
<td><p>172800</p></td>
<td><p>128571</p></td>
<td><p>74</p></td>
</tr>
<tr class="row-even"><td><p>4</p></td>
<td><p>38400</p></td>
<td><p>900</p></td>
<td><p>25.2</p></td>
<td><p>153600</p></td>
<td><p>114795</p></td>
<td><p>74</p></td>
</tr>
<tr class="row-odd"><td><p>4</p></td>
<td><p>38400</p></td>
<td><p>600</p></td>
<td><p>26.4</p></td>
<td><p>153600</p></td>
<td><p>109577</p></td>
<td><p>71</p></td>
</tr>
<tr class="row-even"><td><p>4</p></td>
<td><p>38400</p></td>
<td><p>400</p></td>
<td><p>27.3</p></td>
<td><p>153600</p></td>
<td><p>105965</p></td>
<td><p>68</p></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>57600</p></td>
<td><p>900</p></td>
<td><p>29.1</p></td>
<td><p>115200</p></td>
<td><p>99410.3</p></td>
<td><p>86</p></td>
</tr>
<tr class="row-even"><td><p>1</p></td>
<td><p>115200</p></td>
<td><p>900</p></td>
<td><p>30.7</p></td>
<td><p>115200</p></td>
<td><p>94229.3</p></td>
<td><p>81</p></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>57600</p></td>
<td><p>600</p></td>
<td><p>30.2</p></td>
<td><p>115200</p></td>
<td><p>95789.4</p></td>
<td><p>83</p></td>
</tr>
<tr class="row-even"><td><p>3</p></td>
<td><p>38400</p></td>
<td><p>900</p></td>
<td><p>30.3</p></td>
<td><p>115200</p></td>
<td><p>95473.3</p></td>
<td><p>82</p></td>
</tr>
<tr class="row-odd"><td><p>3</p></td>
<td><p>38400</p></td>
<td><p>600</p></td>
<td><p>31.2</p></td>
<td><p>115200</p></td>
<td><p>92719.2</p></td>
<td><p>80</p></td>
</tr>
<tr class="row-even"><td><p>1</p></td>
<td><p>115200</p></td>
<td><p>600</p></td>
<td><p>31.3</p></td>
<td><p>115200</p></td>
<td><p>92423</p></td>
<td><p>80</p></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>57600</p></td>
<td><p>400</p></td>
<td><p>32.3</p></td>
<td><p>115200</p></td>
<td><p>89561.6</p></td>
<td><p>77</p></td>
</tr>
<tr class="row-even"><td><p>1</p></td>
<td><p>115200</p></td>
<td><p>400</p></td>
<td><p>32.8</p></td>
<td><p>115200</p></td>
<td><p>88196.3</p></td>
<td><p>76</p></td>
</tr>
<tr class="row-odd"><td><p>3</p></td>
<td><p>38400</p></td>
<td><p>400</p></td>
<td><p>33.5</p></td>
<td><p>115200</p></td>
<td><p>86353.4</p></td>
<td><p>74</p></td>
</tr>
<tr class="row-even"><td><p>2</p></td>
<td><p>38400</p></td>
<td><p>900</p></td>
<td><p>43.7</p></td>
<td><p>76800</p></td>
<td><p>66197.7</p></td>
<td><p>86</p></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>38400</p></td>
<td><p>600</p></td>
<td><p>44</p></td>
<td><p>76800</p></td>
<td><p>65746.4</p></td>
<td><p>85</p></td>
</tr>
<tr class="row-even"><td><p>2</p></td>
<td><p>38400</p></td>
<td><p>400</p></td>
<td><p>47.2</p></td>
<td><p>76800</p></td>
<td><p>61289</p></td>
<td><p>79</p></td>
</tr>
<tr class="row-odd"><td><p>4</p></td>
<td><p>19200</p></td>
<td><p>900</p></td>
<td><p>50.8</p></td>
<td><p>76800</p></td>
<td><p>56945.7</p></td>
<td><p>74</p></td>
</tr>
<tr class="row-even"><td><p>4</p></td>
<td><p>19200</p></td>
<td><p>400</p></td>
<td><p>53.2</p></td>
<td><p>76800</p></td>
<td><p>54376.7</p></td>
<td><p>70</p></td>
</tr>
<tr class="row-odd"><td><p>4</p></td>
<td><p>19200</p></td>
<td><p>600</p></td>
<td><p>53.7</p></td>
<td><p>76800</p></td>
<td><p>53870.4</p></td>
<td><p>70</p></td>
</tr>
<tr class="row-even"><td><p>1</p></td>
<td><p>57600</p></td>
<td><p>900</p></td>
<td><p>54.6</p></td>
<td><p>57600</p></td>
<td><p>52982.4</p></td>
<td><p>91</p></td>
</tr>
<tr class="row-odd"><td><p>1</p></td>
<td><p>57600</p></td>
<td><p>600</p></td>
<td><p>56.2</p></td>
<td><p>57600</p></td>
<td><p>51474</p></td>
<td><p>89</p></td>
</tr>
<tr class="row-even"><td><p>3</p></td>
<td><p>19200</p></td>
<td><p>900</p></td>
<td><p>60.5</p></td>
<td><p>57600</p></td>
<td><p>47815.5</p></td>
<td><p>83</p></td>
</tr>
<tr class="row-odd"><td><p>1</p></td>
<td><p>57600</p></td>
<td><p>400</p></td>
<td><p>60.2</p></td>
<td><p>57600</p></td>
<td><p>48053.8</p></td>
<td><p>83</p></td>
</tr>
<tr class="row-even"><td><p>3</p></td>
<td><p>19200</p></td>
<td><p>600</p></td>
<td><p>62</p></td>
<td><p>57600</p></td>
<td><p>46658.7</p></td>
<td><p>81</p></td>
</tr>
<tr class="row-odd"><td><p>3</p></td>
<td><p>19200</p></td>
<td><p>400</p></td>
<td><p>64.7</p></td>
<td><p>57600</p></td>
<td><p>44711.6</p></td>
<td><p>77</p></td>
</tr>
<tr class="row-even"><td><p>1</p></td>
<td><p>38400</p></td>
<td><p>900</p></td>
<td><p>79.4</p></td>
<td><p>38400</p></td>
<td><p>36433.8</p></td>
<td><p>94</p></td>
</tr>
<tr class="row-odd"><td><p>1</p></td>
<td><p>38400</p></td>
<td><p>600</p></td>
<td><p>82.4</p></td>
<td><p>38400</p></td>
<td><p>35107.3</p></td>
<td><p>91</p></td>
</tr>
<tr class="row-even"><td><p>2</p></td>
<td><p>19200</p></td>
<td><p>900</p></td>
<td><p>84.4</p></td>
<td><p>38400</p></td>
<td><p>34275.4</p></td>
<td><p>89</p></td>
</tr>
<tr class="row-odd"><td><p>1</p></td>
<td><p>38400</p></td>
<td><p>400</p></td>
<td><p>86.8</p></td>
<td><p>38400</p></td>
<td><p>33327.6</p></td>
<td><p>86</p></td>
</tr>
<tr class="row-even"><td><p>2</p></td>
<td><p>19200</p></td>
<td><p>600</p></td>
<td><p>87.6</p></td>
<td><p>38400</p></td>
<td><p>33023.3</p></td>
<td><p>85</p></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>19200</p></td>
<td><p>400</p></td>
<td><p>91.2</p></td>
<td><p>38400</p></td>
<td><p>31719.7</p></td>
<td><p>82</p></td>
</tr>
<tr class="row-even"><td><p>4</p></td>
<td><p>9600</p></td>
<td><p>900</p></td>
<td><p>94.7</p></td>
<td><p>38400</p></td>
<td><p>30547.4</p></td>
<td><p>79</p></td>
</tr>
<tr class="row-odd"><td><p>4</p></td>
<td><p>9600</p></td>
<td><p>400</p></td>
<td><p>106</p></td>
<td><p>38400</p></td>
<td><p>27290.9</p></td>
<td><p>71</p></td>
</tr>
<tr class="row-even"><td><p>4</p></td>
<td><p>9600</p></td>
<td><p>600</p></td>
<td><p>110</p></td>
<td><p>38400</p></td>
<td><p>26298.5</p></td>
<td><p>68</p></td>
</tr>
<tr class="row-odd"><td><p>3</p></td>
<td><p>9600</p></td>
<td><p>900</p></td>
<td><p>118</p></td>
<td><p>28800</p></td>
<td><p>24515.6</p></td>
<td><p>85</p></td>
</tr>
<tr class="row-even"><td><p>3</p></td>
<td><p>9600</p></td>
<td><p>600</p></td>
<td><p>120</p></td>
<td><p>28800</p></td>
<td><p>24107</p></td>
<td><p>83</p></td>
</tr>
<tr class="row-odd"><td><p>3</p></td>
<td><p>9600</p></td>
<td><p>400</p></td>
<td><p>131</p></td>
<td><p>28800</p></td>
<td><p>22082.7</p></td>
<td><p>76</p></td>
</tr>
<tr class="row-even"><td><p>1</p></td>
<td><p>19200</p></td>
<td><p>900</p></td>
<td><p>155</p></td>
<td><p>19200</p></td>
<td><p>18663.5</p></td>
<td><p>97</p></td>
</tr>
<tr class="row-odd"><td><p>1</p></td>
<td><p>19200</p></td>
<td><p>600</p></td>
<td><p>161</p></td>
<td><p>19200</p></td>
<td><p>17968</p></td>
<td><p>93</p></td>
</tr>
<tr class="row-even"><td><p>1</p></td>
<td><p>19200</p></td>
<td><p>400</p></td>
<td><p>170</p></td>
<td><p>19200</p></td>
<td><p>17016.7</p></td>
<td><p>88</p></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>9600</p></td>
<td><p>600</p></td>
<td><p>176</p></td>
<td><p>19200</p></td>
<td><p>16436.6</p></td>
<td><p>85</p></td>
</tr>
<tr class="row-even"><td><p>2</p></td>
<td><p>9600</p></td>
<td><p>900</p></td>
<td><p>180</p></td>
<td><p>19200</p></td>
<td><p>16071.3</p></td>
<td><p>83</p></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>9600</p></td>
<td><p>400</p></td>
<td><p>181</p></td>
<td><p>19200</p></td>
<td><p>15982.5</p></td>
<td><p>83</p></td>
</tr>
<tr class="row-even"><td><p>1</p></td>
<td><p>9600</p></td>
<td><p>900</p></td>
<td><p>305</p></td>
<td><p>9600</p></td>
<td><p>9484.72</p></td>
<td><p>98</p></td>
</tr>
<tr class="row-odd"><td><p>1</p></td>
<td><p>9600</p></td>
<td><p>600</p></td>
<td><p>314</p></td>
<td><p>9600</p></td>
<td><p>9212.87</p></td>
<td><p>95</p></td>
</tr>
<tr class="row-even"><td><p>1</p></td>
<td><p>9600</p></td>
<td><p>400</p></td>
<td><p>332</p></td>
<td><p>9600</p></td>
<td><p>8713.37</p></td>
<td><p>90</p></td>
</tr>
</tbody>
</table>
</div></blockquote>
</section>
<section id="anthony-healy-s-report">
<h3>5.2. Anthony Healy’s Report<a class="headerlink" href="#anthony-healy-s-report" title="Link to this heading">¶</a></h3>
<blockquote>
<div><div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Date: Mon, 13 Feb 1995 16:17:29 +1100 (EST)
From: Antony Healey &lt;ahealey@st.nepean.uws.edu.au&gt;
To: Simon Janes &lt;guru@ncm.com&gt;
Subject: Re: Load Balancing

Hi Simon,
      I&#39;ve installed your patch and it works great. I have trialed
      it over twin SL/IP lines, just over null modems, but I was
      able to data at over 48Kb/s [ISDN link -Simon]. I managed a
      transfer of up to 7.5 Kbyte/s on one go, but averaged around
      6.4 Kbyte/s, which I think is pretty cool.  :)
</pre></div>
</div>
</div></blockquote>
</section>
</section>
</section>


          </div>
          
        </div>
      </div>
    <div class="clearer"></div>
  </div>
    <div class="footer">
      &#169;The kernel development community.
      
      |
      Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
      &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
      
      |
      <a href="../_sources/networking/eql.rst.txt"
          rel="nofollow">Page source</a>
    </div>

    

    
  </body>
</html>

Filemanager

Name Type Size Permission Actions
caif Folder 0755
device_drivers Folder 0755
devlink Folder 0755
diagnostic Folder 0755
dsa Folder 0755
mac80211_hwsim Folder 0755
net_cachelines Folder 0755
pse-pd Folder 0755
6lowpan.html File 9.97 KB 0644
6pack.html File 18.06 KB 0644
af_xdp.html File 71.08 KB 0644
alias.html File 9.71 KB 0644
arcnet-hardware.html File 153.3 KB 0644
arcnet.html File 37.48 KB 0644
atm.html File 8.24 KB 0644
ax25.html File 8.75 KB 0644
bareudp.html File 10.56 KB 0644
batman-adv.html File 16.81 KB 0644
bonding.html File 140.89 KB 0644
bridge.html File 53.36 KB 0644
can.html File 120.11 KB 0644
can_ucan_protocol.html File 25.27 KB 0644
cdc_mbim.html File 25.28 KB 0644
checksum-offloads.html File 16.15 KB 0644
dctcp.html File 10.32 KB 0644
devmem.html File 24.33 KB 0644
dns_resolver.html File 15.11 KB 0644
driver.html File 20.41 KB 0644
eql.html File 31.48 KB 0644
ethtool-netlink.html File 274 KB 0644
failover.html File 8.43 KB 0644
fib_trie.html File 16.04 KB 0644
filter.html File 42.43 KB 0644
gen_stats.html File 14.2 KB 0644
generic-hdlc.html File 14.67 KB 0644
generic_netlink.html File 8.11 KB 0644
gtp.html File 20.55 KB 0644
ieee802154.html File 25.03 KB 0644
ila.html File 21.79 KB 0644
index.html File 108.18 KB 0644
ioam6-sysctl.html File 8.48 KB 0644
iou-zcrx.html File 16.63 KB 0644
ip-sysctl.html File 154.81 KB 0644
ip_dynaddr.html File 9.97 KB 0644
ipsec.html File 9.71 KB 0644
ipv6.html File 9.87 KB 0644
ipvlan.html File 16.87 KB 0644
ipvs-sysctl.html File 20.73 KB 0644
iso15765-2.html File 39.91 KB 0644
j1939.html File 99.33 KB 0644
kapi.html File 1.78 MB 0644
kcm.html File 21.67 KB 0644
l2tp.html File 47.74 KB 0644
lapb-module.html File 22.56 KB 0644
mac80211-injection.html File 12.37 KB 0644
mctp.html File 35.16 KB 0644
mpls-sysctl.html File 9.64 KB 0644
mptcp-sysctl.html File 13.33 KB 0644
mptcp.html File 19.74 KB 0644
msg_zerocopy.html File 19.72 KB 0644
multi-pf-netdev.html File 17.48 KB 0644
multiqueue.html File 13.21 KB 0644
napi.html File 43.36 KB 0644
net_dim.html File 76.45 KB 0644
net_failover.html File 16.3 KB 0644
netconsole.html File 31.44 KB 0644
netdev-features.html File 17.75 KB 0644
netdevices.html File 43.33 KB 0644
netfilter-sysctl.html File 8.43 KB 0644
netif-msg.html File 12.93 KB 0644
netmem.html File 14.84 KB 0644
nexthop-group-resilient.html File 24.56 KB 0644
nf_conntrack-sysctl.html File 15.77 KB 0644
nf_flowtable.html File 21.24 KB 0644
nfc.html File 13.73 KB 0644
oa-tc6-framework.html File 39.07 KB 0644
openvswitch.html File 21.15 KB 0644
operstates.html File 18.28 KB 0644
packet_mmap.html File 55.34 KB 0644
page_pool.html File 59.25 KB 0644
phonet.html File 16.92 KB 0644
phy-link-topology.html File 15.77 KB 0644
phy.html File 40.5 KB 0644
pktgen.html File 24.97 KB 0644
plip.html File 18.56 KB 0644
ppp_generic.html File 37.23 KB 0644
proc_net_tcp.html File 11.13 KB 0644
psp.html File 18.66 KB 0644
radiotap-headers.html File 14.73 KB 0644
rds.html File 29.39 KB 0644
regulatory.html File 18.44 KB 0644
representors.html File 25.79 KB 0644
rxrpc.html File 130.88 KB 0644
scaling.html File 40.25 KB 0644
sctp.html File 9.73 KB 0644
secid.html File 8.42 KB 0644
seg6-sysctl.html File 9.53 KB 0644
segmentation-offloads.html File 17.81 KB 0644
sfp-phylink.html File 41.09 KB 0644
skbuff.html File 29.22 KB 0644
smc-sysctl.html File 10.42 KB 0644
snmp_counter.html File 91.51 KB 0644
sriov.html File 9.46 KB 0644
statistics.html File 31.78 KB 0644
strparser.html File 19.15 KB 0644
switchdev.html File 39.55 KB 0644
sysfs-tagging.html File 10.95 KB 0644
tc-actions-env-rules.html File 8.87 KB 0644
tc-queue-filters.html File 9.33 KB 0644
tcp-thin.html File 10.33 KB 0644
tcp_ao.html File 35.85 KB 0644
team.html File 7.93 KB 0644
timestamping.html File 59.83 KB 0644
tipc.html File 384.61 KB 0644
tls-handshake.html File 21.18 KB 0644
tls-offload.html File 42.72 KB 0644
tls.html File 39.38 KB 0644
tproxy.html File 13.18 KB 0644
tuntap.html File 19 KB 0644
udplite.html File 23.04 KB 0644
vrf.html File 28.46 KB 0644
vxlan.html File 11.95 KB 0644
x25-iface.html File 10.9 KB 0644
x25.html File 10.07 KB 0644
xdp-rx-metadata.html File 27.46 KB 0644
xfrm_device.html File 19.14 KB 0644
xfrm_proc.html File 11.37 KB 0644
xfrm_sync.html File 15.85 KB 0644
xfrm_sysctl.html File 8.07 KB 0644
xsk-tx-metadata.html File 18.64 KB 0644
Filemanager