hi Liane

thanks a million for this, i _really_ appreciate the specific suggestions!

> However, you've had to resort to lots of tricks/hacks in order to get it to
> work at all.  As you've surely noticed, currently SMF doesn't provide you
> with any real support for managing collections of related services, and 
> I think that the routing/forwarding collection is one of the most 
> sophisicated collections so far.

yeah, i guess the problem stems from the fact that routeadm has
many of the properties of a delegated restarter (kicking off
daemons etc), without itself comprising functionality that those daemons
rely on (bar the properties that specify if routing daemons should run) - 
contrast this with inetd where inetd services need inetd
to run to work properly.

> I think most of the unease I'm feeling about the current solution
> (as I've constructed it based on the mail trails) is due to these tricks
> you've needed to pursue.  I'm worried that these tricks lead to
> inconsistent administrative cases at the boundaries.  You're stuck storing
> configuration like whether ipv4 routing is enabled in two places:  on the
> general/enabled property of the collection of routing daemon services, plus
> as an administrative-intent knob on the routing:default service.

agreed - most of these tricks are to make the global routing service
a kind of "lightweight restarter".

> So, at a high level, what we'd propose is
>  - no global routing service

ok.

>  - define services on fault boundaries.  e.g.
>       - service instance per routing daemon
>         options stored as separate properties on these instances

sure. on this topic, i've asked a question about breaking out opaque
daemon argument strings into meaningful daemon properties, see:

http://www.opensolaris.org/jive/thread.jspa?threadID=11505&tstart=0

i've suggested an approach that i think will work for routing daemons.
any thoughts people have would be greatly appreciated!

>       - new routing/legacy:ipv4 and routing/legacy:ipv6 service instances
>         to collect routeadm configuration for legacy daemons
>
>         default configuration as disabled, with methods set to :true,
>         'contract' duration.  routeadm can set start/exec, options/
>         args, and stop/exec properties based on user input, then
>         enable the service

this is a _really_ great idea!

>       - transient static routing service

sure.

>       - transient forwarding service

makes sense.

>  - use routeadm as the actor for administrative intent
>      routeadm -e/-d looks up the protocol->service/legacy service
>       mapping, and takes care of explicitly enabling the appropriate
>       services.  -e/-d doesn't need to do fmris directly, since
>        -s ipv4-routing-daemon=fmri would work.

one little complication here - the smf routing daemon services
would have to remove themselves from routeadm's list in their
stop methods, otherwise the following sequence would lead to
unexpected behaviour.

# routeadm -s ipv4-routing-daemon="route:default"
# routeadm -e ipv4-routing -u
# svcadm disable route:default
# reboot

(in this case, if route:default's stop method didn't remove itself
from the list of v4 routing daemons, on reboot it would be
reenabled when "routeadm -u" is run).

this is just an implementation issue for the daemon methods
though.

>      routeadm's status view is based on that lookup plus the status of
>        the services
>      if routeadm needs better high-level knobs, it grows them like
>        you've proposed

yeah, i think if we just add dynamic_routing, static_routing and
routing properties we should be covered.

# routeadm -d routing 

would disable ipv4-routing/ipv6-routing/static-routing

while

# routeadm -d dynamic routing 

would just disable ipv4-routing/ipv6-routing

>      appropriate ndd knobs should be twiddled through the appropriate
>        services based on administrative intent

yep.

> That is, we propose you keep routeadm as the primary administrative 
> interface until SMF can offer you an appropriate set of abstractions.
> It isn't too far from your current design, so I hope it's reasonably 
> acceptable.

seems fine to me. i'll respin the design document, and point people at
it when i'm done for comments. thanks so much!

alan
 
 
This message posted from opensolaris.org

Reply via email to