> 
> My assumption had been that all of the per-interface
> loops in network/physical:default's current start script
> would move out into the start method for the ip instances.
> 
> But that start script does do some things that assume
> that all the interfaces are plumbed: it initializes
> link properties, check /etc/defaultrouter and set
> default routes as needed, and a few other odds-and-
> ends.  This is a problem no matter how we organize the
> dependencies, I think; how do we know that "all" the
> interfaces are up?
> 
> -renee

I haven't gotten to reviewing the full spec yet, but a comment on this
one issue:

Network interfaces come and go.  And at any moment, despite the presence
of the interface (i.e. the kernel abstraction), that interface may or
may not be usable to do things (i.e. the wire or router may come and go).
Therefore, any existing piece of code which was written from the single
desktop single interface perspective of "wait until everything is done
and then do X" is by definition broken.  There cannot be any piece of  
code which must wait for "all interfaces to be up" because we ought to
be viewing the entire set of interfaces as ever-changing.

Example: a static route or default route is in effect input to a routing
service.  The routing service should be able to start even when *no*
interfaces exist or are working.  The routing service should happily
continue running as interfaces go up and down, are created or are
destroyed.  Anything which doesn't behave that way is broken and should
be fixed.

-Mike

-- 
Mike Shapiro, Solaris Kernel Development. blogs.sun.com/mws/

Reply via email to