On Tue, 4 Jul 2006, M. Warner Losh wrote:
In message: <[EMAIL PROTECTED]>
Brooks Davis <[EMAIL PROTECTED]> 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
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"