> >I must be missing something here (again :-) ... why is
> >it not possible to write a special net device which just
> >distributes packets equally to two real net devices?
>
> This is what eql (for serial devices) and ipeql (more generically) try to
> do.
Not quite the way I envision it (and methinks this is what the original
poster was thinking): the balancing device is a medium-specific beast,
which would use the same hard header for all devices.
> >Sounds like it would just be a very thin layer. As long
>
> It's not thin because the route cache holds the (dummy) header for the
> software device. The real header for the slave device has to be
> reconstructed on each packet, increasing the effective network stack depth
> by 50% or so.
I guess it depends heavily on the topology of the network in question, but
I don't see load balancing being too useful on anything other than
point-to-point links. Take, say, wiring two ethercards in each machine
with crossover cables to another - drop the ethercards into promiscuous
mode and an etheql device becomes trivial. I seem to remember it being
mentioned that this would be the 'right' way to do bridging too (although
a device-specific netif_rx would be needed).
-ben