Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Jan 1997 14:31:31 +1100 (EDT)
From:      Darren Reed <avalon@coombs.anu.edu.au>
To:        julian@whistle.com (Julian Elischer)
Cc:        hackers@freebsd.org
Subject:   Re: Network interfaces: removal of.
Message-ID:  <199701280332.TAA13531@freefall.freebsd.org>
In-Reply-To: <32ED4558.446B9B3D@whistle.com> from "Julian Elischer" at Jan 27, 97 04:16:24 pm

next in thread | previous in thread | raw e-mail | index | archive | help
In some mail from Julian Elischer, sie said:
> 
> I have a system with frame relay interfaces, and virtual circuits
> are reflected by virtual 'interfaces' e.g vc0, vc2
> etc.
> 
> the trouble is that there is no support in the kernel for REMOVING
> an interface!
> 
> does anyone have any ideas on this?

Hmmm, I once modified the "if_vsr" LKM to be unloadable as an exercise
on SunOS4...but even then...

> removal of an interface requires that the interface addresses
> be freed. this in turn requires that any routes that access that
> ifa (e.g in a TCP pcb) discover that it is invalid the next time they
> try use it, and try get a new rtentry/ifa.

Yup.  I did all that myself.  Worst part is that it needs to be splimp().

> None of this happens at the moment. 
> 
> Add to that the fact that the linked list of interfaces has no support
> for removing entries, and that the interface array has no support for
> re-using entries.

Unless it is all done manually.

> The reference counting on rtentries and IFAs is next to useless
> as so many places don't use them rigorously, which requires
> hacks to keep them allingned with anything even close to reality..

Don't bother.

> Is there anyone in the group who feels as though they understand the
> situation well enough to work with me in trying to clean this up a bit?

There's a few tips, but I worked under a much narrower operational conditions
(i.e. I could make sure all the programs using the vif were dead, etc, before
 I unloaded).  There may be a version of that or a more hacked version of it
that works better somewhere on the 'net.

Darren



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701280332.TAA13531>