On Wed, Nov 21, 2007 at 05:10:21PM -0800, Mike Shapiro wrote: > > > > 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.
I absolutely agree with this. > 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. Yep, I agree with this too. My concern is with the number of things that are broken in this way, and whether or not we on the nwam team have the resources (people and time) to go out and fix all of them now. Is there a compromise route we could take to get things working now ("now" being in the nwam phase 1 time frame), and then as we move toward making nwam the primary (or only) policy engine, implement real fixes for this sort of brokenness? -renee