Subject: Re: change ifc_destroy to return an int
To: Jonathan Stone <jonathan@dsg.stanford.edu>
From: Robert Elz <kre@munnari.OZ.AU>
List: tech-net
Date: 12/08/2004 11:50:31
    Date:        Tue, 07 Dec 2004 11:57:25 -0800
    From:        Jonathan Stone <jonathan@dsg.stanford.edu>
    Message-ID:  <E1CblSf-000155-00@smeg.dsg.stanford.edu>

  | The radios are sequenced direct-spectrum. The physics of radio Tx
  | versus Rx energy means you *really* don't want more than one of these
  | sequenced spread-spectrum radios per host.

Fine, I had half guessed this might be a case where multiple
interfaces wouldn't be a very useful thing to have.

  | Really? I have no trouble at all with, but I fire up dhclient on a
  | specific, named interface.

I don't.   My laptop preceded (just) the days of built in 802.11, so
I am stuck using pcmcia/cardbus cards - which means I am never really sure
what interface name I am going to be using, so I have to allow dhclient
to attempt every interface that exists.   In a GENERIC kernel, that
includes strip.   strip is bad, as it looks and acts like an ethernet
interface (so dhclient actively tries there, unlike ppp, sl, ...) and
worse still, it always looks as if it is working, regardless of whether or
not one has the appropriate radio connected (no, I am not complaining about
that, I think I understand the limitations).   The worst effects are when
there are no actual working interfaces (ie: no 802.11 connected, and no
cable in the 100baseTX port) but strip still looks to be out there, working...

(Of course, in practice, I don't run GENERIC kernels, so this tends to
bother me for just an hour or so after an upgrade - but it is the one
sole motivating issue that makes building a new kernel always be my
very first task after an upgrade).

  | But if strip(4) is a problem, I'd far
  | rather leave the working source as-is,

So we know it is working??    How??

We know it once worked, but if no-one out there is actively using it,
are we sure it hasn't suffered from bit rot?

There have been lots of changes to the net code over the years.   Does
anyone know what happens if one configures IPv6 over a strip interface?
How is the link-local address configured?

If the code still is being used, then the recent change (cloning) is going
to get tested fairly soon I'd guess, then we will know if it works or not.

If it isn't being used, then the best thing to do would be to drop the
strip driver in the bit bucket, and wait for someone to need it again, and
resurrect it.

You have commit ability, I don't - so go yank the stip driver from all
GENERIC and INSTALL kernels - that will be a good first step in making
it vanish forever.    If no-one complains (or even politely asks why), then
just go remove the driver completely (a much less important step, though
it is a good idea not to keep pretending that code that quite possibly doesn't
work is still available to be used).

kre

ps: if you wanted an interface about which to complain about inappropriate
addition of cloning, it would be the stf interface, for which only one
instance makes any sense at all, two is always going to be a bug.   But
there's still the 0 or 1 interface decision to make, and using the cloning
mechanism to get from "ifconfig -l does not mention stf" to "ifconfig -l
shows a stf interface exists" seems reasonable to me.