diff -ur quagga-0.99.8/solaris/quagga.init.in quagga-unified-checksum/solaris/quagga.init.in
--- solaris/quagga.init.in
+++ solaris/quagga.init.in
@@ -134,7 +134,7 @@
case "${DAEMON}" in
bgpd)
;;
- zebra | ospfd | ospf6d | ripd | ripngd )
+ zebra | ospfd | ospf6d | ripd | ripngd | isisd)
quagga_is_globalzone || exit $SMF_EXIT_OK
;;
*)
diff -ur quagga-0.99.8/solaris/quagga.xml.in quagga-unified-checksum/solaris/quagga.xml.in
--- solaris/quagga.xml.in
+++ solaris/quagga.xml.in
@@ -187,7 +187,7 @@
<service_fmri value='svc:/network/routing-setup' />
</dependency>
- <!-- ensure that restart of zebra is propogated to daemon -->
+ <!-- ensure that restart of zebra is propagated to daemon -->
<dependency
name='zebra'
grouping='optional_all'
@@ -812,6 +812,148 @@
<manpage title='bgpd' section='1M'
manpath='@mandir@' />
<doc_link name='quagga.net'
+ uri='http://www.quagga.net/' />
+ </documentation>
+ </template>
+ </instance>
+ <stability value='Unstable' />
+</service>
+
+<service
+ name='network/routing/isis'
+ type='service'
+ version='1'>
+
+ <instance name='quagga' enabled='false'>
+
+ <dependency name='fs'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri
+ value='svc:/system/filesystem/usr:default' />
+ </dependency>
+
+ <dependency
+ name='ipv6-forwarding'
+ grouping='optional_all'
+ restart_on='refresh'
+ type='service'>
+ <service_fmri value='svc:/network/ipv6-forwarding' />
+ </dependency>
+
+ <dependency
+ name='ipv4-forwarding'
+ grouping='optional_all'
+ restart_on='refresh'
+ type='service'>
+ <service_fmri value='svc:/network/ipv4-forwarding' />
+ </dependency>
+
+ <!-- do not not run unless routing-setup has run -->
+ <dependency
+ name='network_routing_setup'
+ grouping='require_all'
+ restart_on='refresh'
+ type='service'>
+ <service_fmri value='svc:/network/routing-setup' />
+ </dependency>
+
+ <!-- ensure that restart of zebra is propagated to daemon -->
+ <dependency
+ name='zebra'
+ grouping='optional_all'
+ restart_on='restart'
+ type='service'>
+ <service_fmri value='svc:/network/routing/zebra:quagga' />
+ </dependency>
+
+ <exec_method
+ type='method'
+ name='start'
+ exec='/lib/svc/method/quagga isisd'
+ timeout_seconds='60'>
+ <method_context>
+ <method_credential
+ user='root' group='root' />
+ </method_context>
+ </exec_method>
+
+ <!-- isisd can take a long time to shutdown, due to graceful
+ shutdown
+ -->
+ <exec_method
+ type='method'
+ name='stop'
+ exec=':kill'
+ timeout_seconds='60'>
+ </exec_method>
+
+ <property_group name='startd'
+ type='framework'>
+ <!-- sub-process core dumps shouldn't restart session -->
+ <propval name='ignore_error'
+ type='astring' value='core,signal' />
+ </property_group>
+
+ <!-- Properties in this group are used by routeadm (1M) -->
+ <property_group name='routeadm' type='application'>
+ <stability value='Unstable' />
+ <!-- Identifies service as a routing service -->
+ <propval name='daemon' type='astring'
+ value='@sbindir@/isisd' />
+ <propval name='value_authorization' type='astring'
+ value='solaris.smf.value.routing' />
+ <property name='protocol' type='astring'>
+ <astring_list>
+ <value_node value='ipv4' />
+ <value_node value='ipv6' />
+ </astring_list>
+ </property>
+ </property_group>
+
+ <!-- Properties in this group are modifiable via routeadm (1M) -->
+ <property_group name='routing' type='application'>
+ <propval name='value_authorization' type='astring'
+ value='solaris.smf.value.routing' />
+
+ <!-- Options common to Quagga daemons -->
+ <!-- The config file to use, if not the default -->
+ <propval name='config_file' type='astring' value='' />
+ <!-- The vty_port to listen on if not the default.
+ 0 to disable -->
+ <propval name='vty_port' type='integer' value='0' />
+ <!-- The address to bind the VTY interface to, if not any. -->
+ <propval name='vty_address' type='astring' value='' />
+ <!-- The user to switch to after startup, if not the default -->
+ <propval name='user' type='astring' value='' />
+ <!-- The group to switch to, if not the default.
+ If user is specified, this defaults to a group with
+ same name as user -->
+ <propval name='group' type='astring' value='' />
+ <!-- The pidfile to use, if not the default of
+ @quagga_statedir@ -->
+ <propval name='pid_file' type='astring' value='' />
+ </property_group>
+
+ <property_group name='general' type='framework'>
+ <!-- to start stop routing services -->
+ <propval name='action_authorization' type='astring'
+ value='solaris.smf.manage.routing' />
+ <propval name='value_authorization' type='astring'
+ value='solaris.smf.manage.routing' />
+ </property_group>
+
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>
+ Quagga: isisd, IS-IS routing protocol daemon.
+ </loctext>
+ </common_name>
+ <documentation>
+ <manpage title='isisd' section='1M'
+ manpath='@mandir@' />
+ <doc_link name='quagga.net'
uri='http://www.quagga.net/' />
</documentation>
</template>