cvs commit: src/sys/net if_vlan.c

Robert Watson rwatson at FreeBSD.org
Tue Jul 4 16:36:45 UTC 2006


On Tue, 4 Jul 2006, M. Warner Losh wrote:

> In message: <20060703202803.GA22556 at odin.ac.hmc.edu>
>            Brooks Davis <brooks at one-eyed-alien.net> writes:
> : and act as though the interface is not there.  We could then consider
> : either holding the interface for a configurable or computed length
> : of time or adding some sort of refcounting (probably impractical).
>
> Refcounting would be good for the 'macro' things (coming and going) that are 
> infrequent, but we might have mulitple people doing.  You are right it 
> likely is too inefficient to do with mbugs.  One other option might be to 
> have a configurable time after the last time that it was accessed via the 
> 'safe' routines that were setup.  This way we'd tie the removal of the 
> interface to a period of time after it was last used, rather than after it 
> was removed.  I don't know if such a difference would matter much in 
> practice.
>
> The only other 'issue' that I see with this approach is if I remove a card, 
> and then insert it again before the timeout happens.  Does that card get a 
> new interface name?  And would people care or not...

I think that the name should cease to be "reserved" as soon as the device 
driver has destroyed the ifnet, because it is up to the device driver to 
select the index, not the ifnet framework.  This means keeping the structure 
semi-valid but in a state that limits further bad behavior (i.e., repointing 
its function points at stubs, etc), but removing references to it in global 
data structures, etc.  We're not just quiescing, we're actually taking it 99% 
of the way to turn down.

Robert N M Watson
Computer Laboratory
University of Cambridge


More information about the freebsd-net mailing list