summaryrefslogtreecommitdiff
path: root/solaris/quagga.xml.in
diff options
context:
space:
mode:
Diffstat (limited to 'solaris/quagga.xml.in')
-rw-r--r--solaris/quagga.xml.in700
1 files changed, 484 insertions, 216 deletions
diff --git a/solaris/quagga.xml.in b/solaris/quagga.xml.in
index dfa2eb6b..45fa2148 100644
--- a/solaris/quagga.xml.in
+++ b/solaris/quagga.xml.in
@@ -8,15 +8,13 @@
-->
<service_bundle type='manifest' name='QUAGGAdaemons:quagga'>
-
<service
- name='network/routing/quagga'
+ name='network/routing/zebra'
type='service'
version='1'>
- <!--
- common service-level dependencies, inherited by each instance
- -->
+ <instance name='quagga' enabled='false'>
+
<dependency name='fs'
grouping='require_all'
restart_on='none'
@@ -24,38 +22,44 @@
<service_fmri
value='svc:/system/filesystem/usr:default' />
</dependency>
+
<dependency name='net'
grouping='require_all'
restart_on='none'
type='service'>
- <service_fmri value='svc:/network/loopback' />
+ <service_fmri value='svc:/network/initial' />
</dependency>
- <!--
- we define exec methods at the top level, and the
- instance name is substituted for the %i on calling.
- See smf_method(1M) for more switches.
- -->
+ <dependency name='config_data'
+ grouping='require_all'
+ restart_on='restart'
+ type='path'>
+ <service_fmri
+ value='file://localhost/@sysconfdir@/zebra.conf' />
+ </dependency>
+
<exec_method
type='method'
name='start'
- exec='/lib/svc/method/quagga start %f %i'
- timeout_seconds='60'/>
+ exec='/lib/svc/method/quagga zebra %{routing/daemon-args}'
+ timeout_seconds='60'>
+ <method_context>
+ <method_credential
+ user='root' group='root'
+ privileges='basic,net_icmpaccess,net_rawaccess,sys_admin,sys_net_config'/>
+ </method_context>
+ </exec_method>
<exec_method
type='method'
name='stop'
- exec='/lib/svc/method/quagga stop %f %i'
- timeout_seconds='60' />
+ exec=':kill'
+ timeout_seconds='60'>
+ </exec_method>
- <exec_method
- type='method'
- name='restart'
- exec='/lib/svc/method/quagga restart %f %i'
- timeout_seconds='60' />
- <!--
- if we define these properties at the service level, each instance
- inherits them, and it can override with desired values.
+ <!-- if we define these properties at the service level, each
+ instance inherits them, and it can override with
+ desired values.
-->
<property_group name='startd'
type='framework'>
@@ -63,231 +67,495 @@
<propval name='ignore_error'
type='astring' value='core,signal' />
</property_group>
- <property_group name='quagga' type='application'>
- <!-- Options common to Quagga daemons -->
- <propval name='vty_addr' type='astring' value='127.1' />
- <propval name='vty_port' type='integer' value='0'/>
- <propval name='user' type='astring' value='@enable_user@' />
- <propval name='group' type='astring' value='@enable_group@' />
- <propval name='retain' type='boolean' value='false'/>
+
+ <property_group name='routing' type='application'>
+ <propval name='value_authorization' type='astring'
+ value='solaris.smf.modify.routing' />
+ <propval name='daemon-args' type='astring' value='-P 0'/>
</property_group>
- <instance name='zebra' enabled='false'>
- <!--
- now define it's own dependencies/properties etc here, it'll
- inherit the rest...
- -->
- <dependency name='config_data'
- grouping='require_all'
- restart_on='restart'
- type='path'>
- <service_fmri
- value='file://localhost/@sysconfdir@/zebra.conf' />
- </dependency>
- <property_group name='quagga' type='application'>
- <propval name='keep_kernel' type='boolean'
- value='false'/>
- </property_group>
- <template>
- <common_name>
- <loctext xml:lang='C'>
- Quagga: zebra, RIB, kernel intermediary and misc daemon
- </loctext>
- </common_name>
- <documentation>
- <manpage title='zebra' section='1M'
- manpath='@mandir@' />
- </documentation>
- </template>
+ <property_group name='general' type='framework'>
+ <!-- to start stop routing services -->
+ <propval name='action_authorization' type='astring'
+ value='solaris.smf.manage.routing' />
+ </property_group>
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>
+ Quagga: zebra, RIB, kernel intermediary and misc daemon
+ </loctext>
+ </common_name>
+ <documentation>
+ <manpage title='zebra' section='1M'
+ manpath='@mandir@' />
+ <doc_link name='quagga.net'
+ uri='http://www.quagga.net/' />
+ </documentation>
+ </template>
</instance>
+ <stability value='Evolving' />
+</service>
+
+<service
+ name='network/routing/rip'
+ 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>
- <instance name='bgpd' enabled='false'>
- <!--
- now define it's own dependencies/properties etc here, it'll
- inherit the rest...
- -->
- <dependency name='zebra'
- grouping='optional_all'
- restart_on='restart'
- type='service'>
- <service_fmri value='svc:/network/routing/quagga:zebra' />
- </dependency>
- <dependency name='config_data'
+ <dependency name='net'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri value='svc:/network/routing/ipv4-routing' />
+ </dependency>
+
+ <dependency name='zebra'
grouping='require_all'
restart_on='restart'
- type='path'>
- <service_fmri
- value='file://localhost/@sysconfdir@/bgpd.conf' />
- </dependency>
- <property_group name='quagga' type='application'>
- <propval name='no_kernel' type='boolean'
- value='false'/>
- </property_group>
- <template>
- <common_name>
- <loctext xml:lang='C'>
- Quagga: bgpd, BGP routing protocol daemon.
- </loctext>
- </common_name>
- <documentation>
- <manpage title='bgpd' section='1M'
- manpath='@mandir@' />
- <doc_link name='quagga.net'
- uri='http://www.quagga.net/' />
- </documentation>
- </template>
+ type='service'>
+ <service_fmri value='svc:/network/routing/zebra:quagga' />
+ </dependency>
+
+ <dependency name='config_data'
+ grouping='require_all'
+ restart_on='restart'
+ type='path'>
+ <service_fmri
+ value='file://localhost/@sysconfdir@/ripd.conf' />
+ </dependency>
+
+ <exec_method
+ type='method'
+ name='start'
+ exec='/lib/svc/method/quagga ripd %{routing/daemon-args}'
+ timeout_seconds='60'>
+ <method_context>
+ <method_credential
+ user='root' group='root'
+ privileges='basic,net_icmpaccess,net_privaddr,net_rawaccess'/>
+ </method_context>
+ </exec_method>
+ <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>
+
+ <property_group name='routing' type='application'>
+ <propval name='value_authorization' type='astring'
+ value='solaris.smf.modify.routing' />
+ <propval name='daemon-args' type='astring' value='-P 0'/>
+ </property_group>
+
+ <property_group name='general' type='framework'>
+ <!-- to start stop routing services -->
+ <propval name='action_authorization' type='astring'
+ value='solaris.smf.manage.routing' />
+ </property_group>
+
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>
+ Quagga: ripd, RIPv1/2 IPv4 routing protocol daemon.
+ </loctext>
+ </common_name>
+ <documentation>
+ <manpage title='ripd' section='1M'
+ manpath='@mandir@' />
+ <doc_link name='quagga.net'
+ uri='http://www.quagga.net/' />
+ </documentation>
+ </template>
</instance>
+ <stability value='Evolving' />
+</service>
+
+<service
+ name='network/routing/ripng'
+ 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>
- <instance name='ospf6d' enabled='false'>
- <!--
- now define it's own dependencies/properties etc here, it'll
- inherit the rest...
- -->
- <dependency name='zebra'
+ <dependency name='net'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri value='svc:/network/routing/ipv6-routing' />
+ </dependency>
+
+ <dependency name='zebra'
grouping='require_all'
restart_on='restart'
type='service'>
- <service_fmri value='svc:/network/routing/quagga:zebra' />
- </dependency>
- <dependency name='config_data'
- grouping='require_all'
- restart_on='restart'
- type='path'>
- <service_fmri
- value='file://localhost/@sysconfdir@/ospf6d.conf' />
- </dependency>
- <template>
- <common_name>
- <loctext xml:lang='C'>
- Quagga: ospf6d, OSPFv3 IPv6 routing protocol daemon.
- </loctext>
- </common_name>
- <documentation>
- <manpage title='ospf6d' section='1M'
- manpath='@mandir@' />
- <doc_link name='quagga.net'
- uri='http://www.quagga.net/' />
- </documentation>
- </template>
+ <service_fmri value='svc:/network/routing/zebra:quagga' />
+ </dependency>
+
+ <dependency name='config_data'
+ grouping='require_all'
+ restart_on='restart'
+ type='path'>
+ <service_fmri
+ value='file://localhost/@sysconfdir@/ripngd.conf' />
+ </dependency>
+
+ <exec_method
+ type='method'
+ name='start'
+ exec='/lib/svc/method/quagga ripngd %{routing/daemon-args}'
+ timeout_seconds='60'>
+ <method_context>
+ <method_credential
+ user='root' group='root'
+ privileges='basic,net_icmpaccess,net_privaddr,net_rawaccess'/>
+ </method_context>
+ </exec_method>
+
+ <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>
+
+ <property_group name='routing' type='application'>
+ <propval name='value_authorization' type='astring'
+ value='solaris.smf.modify.routing' />
+ <propval name='daemon-args' type='astring' value='-P 0'/>
+ </property_group>
+ <property_group name='general' type='framework'>
+ <!-- to start stop routing services -->
+ <propval name='action_authorization' type='astring'
+ value='solaris.smf.manage.routing' />
+ </property_group>
+
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>
+ Quagga: ripngd, RIPng IPv6 routing protocol daemon.
+ </loctext>
+ </common_name>
+ <documentation>
+ <manpage title='ripngd' section='1M'
+ manpath='@mandir@' />
+ <doc_link name='quagga.net'
+ uri='http://www.quagga.net/' />
+ </documentation>
+ </template>
</instance>
+ <stability value='Evolving' />
+</service>
- <instance name='ospfd' enabled='false'>
- <!--
- now define it's own dependencies/properties etc here, it'll
- inherit the rest...
- -->
- <dependency name='zebra'
+<service
+ name='network/routing/ospf'
+ 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='net'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri value='svc:/network/routing/ipv4-routing' />
+ </dependency>
+
+ <dependency name='zebra'
grouping='require_all'
restart_on='restart'
type='service'>
- <service_fmri value='svc:/network/routing/quagga:zebra' />
- </dependency>
- <dependency name='config_data'
- grouping='require_all'
- restart_on='restart'
- type='path'>
- <service_fmri
- value='file://localhost/@sysconfdir@/ospfd.conf' />
- </dependency>
- <property_group name='quagga' type='application'>
- <propval name='retain_routes' type='boolean' value='false'/>
- </property_group>
- <template>
- <common_name>
- <loctext xml:lang='C'>
- Quagga: ospfd, OSPFv2 IPv4 routing protocol daemon.
- </loctext>
- </common_name>
- <documentation>
- <manpage title='ospfd' section='1M'
- manpath='@mandir@' />
- <doc_link name='quagga.net'
- uri='http://www.quagga.net/' />
- </documentation>
- </template>
+ <service_fmri value='svc:/network/routing/zebra:quagga' />
+ </dependency>
+
+ <dependency name='config_data'
+ grouping='require_all'
+ restart_on='restart'
+ type='path'>
+ <service_fmri
+ value='file://localhost/@sysconfdir@/ospfd.conf' />
+ </dependency>
+
+ <exec_method
+ type='method'
+ name='start'
+ exec='/lib/svc/method/quagga ospfd %{routing/daemon-args}'
+ timeout_seconds='60'>
+ <method_context>
+ <method_credential
+ user='root' group='root'
+ privileges='basic,net_icmpaccess,net_privaddr,net_rawaccess,sys_net_config'/>
+ </method_context>
+ </exec_method>
+
+ <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>
+
+ <property_group name='routing' type='application'>
+ <propval name='value_authorization' type='astring'
+ value='solaris.smf.modify.routing' />
+ <propval name='daemon-args' type='astring' value='-P 0'/>
+ </property_group>
+
+ <property_group name='general' type='framework'>
+ <!-- to start stop routing services -->
+ <propval name='action_authorization' type='astring'
+ value='solaris.smf.manage.routing' />
+ </property_group>
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>
+ Quagga: ospfd, OSPFv2 IPv4 routing protocol daemon.
+ </loctext>
+ </common_name>
+ <documentation>
+ <manpage title='ospfd' section='1M'
+ manpath='@mandir@' />
+ <doc_link name='quagga.net'
+ uri='http://www.quagga.net/' />
+ </documentation>
+ </template>
</instance>
+ <stability value='Evolving' />
+</service>
+
+<service
+ name='network/routing/ospf6'
+ 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='net'
+ grouping='require_all'
+ restart_on='none'
+ type='service'>
+ <service_fmri value='svc:/network/routing/ipv6-routing' />
+ </dependency>
- <instance name='ripd' enabled='false'>
- <!--
- now define it's own dependencies/properties etc here, it'll
- inherit the rest...
- -->
- <dependency name='zebra'
+ <dependency name='zebra'
grouping='require_all'
restart_on='restart'
type='service'>
- <service_fmri value='svc:/network/routing/quagga:zebra' />
- </dependency>
- <dependency name='config_data'
- grouping='require_all'
- restart_on='restart'
- type='path'>
- <service_fmri
- value='file://localhost/@sysconfdir@/ripd.conf' />
- </dependency>
- <property_group name='quagga' type='application'>
- <propval name='retain_routes' type='boolean' value='false'/>
- </property_group>
- <template>
- <common_name>
- <loctext xml:lang='C'>
- Quagga: ripd, RIPv1/2 IPv4 routing protocol daemon.
- </loctext>
- </common_name>
- <documentation>
- <manpage title='ripd' section='1M'
- manpath='@mandir@' />
- <doc_link name='quagga.net'
- uri='http://www.quagga.net/' />
- </documentation>
- </template>
+ <service_fmri value='svc:/network/routing/zebra:quagga' />
+ </dependency>
+
+ <dependency name='config_data'
+ grouping='require_all'
+ restart_on='restart'
+ type='path'>
+ <service_fmri
+ value='file://localhost/@sysconfdir@/ospf6d.conf' />
+ </dependency>
+
+ <exec_method
+ type='method'
+ name='start'
+ exec='/lib/svc/method/quagga ospf6d %{routing/daemon-args}'
+ timeout_seconds='60'>
+ <method_context>
+ <method_credential
+ user='root' group='root'
+ privileges='basic,net_icmpaccess,net_privaddr,net_rawaccess'/>
+ </method_context>
+ </exec_method>
+
+ <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>
+ <property_group name='routing' type='application'>
+ <propval name='value_authorization' type='astring'
+ value='solaris.smf.modify.routing' />
+ <propval name='daemon-args' type='astring' value='-P 0'/>
+ </property_group>
+
+ <property_group name='general' type='framework'>
+ <!-- to start stop routing services -->
+ <propval name='action_authorization' type='astring'
+ value='solaris.smf.manage.routing' />
+ </property_group>
+
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>
+ Quagga: ospf6d, OSPFv3 IPv6 routing protocol daemon.
+ </loctext>
+ </common_name>
+ <documentation>
+ <manpage title='ospf6d' section='1M'
+ manpath='@mandir@' />
+ <doc_link name='quagga.net'
+ uri='http://www.quagga.net/' />
+ </documentation>
+ </template>
</instance>
+ <stability value='Evolving' />
+</service>
- <instance name='ripngd' enabled='false'>
- <!--
- now define it's own dependencies/properties etc here, it'll
- inherit the rest...
- -->
- <dependency name='zebra'
- grouping='require_all'
+
+<service
+ name='network/routing/bgp'
+ 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='net'
+ grouping='require_any'
+ restart_on='none'
+ type='service'>
+ <service_fmri value='svc:/network/routing/ipv6-routing' />
+ <service_fmri value='svc:/network/routing/ipv4-routing' />
+ </dependency>
+
+ <dependency name='zebra'
+ grouping='optional_all'
restart_on='restart'
type='service'>
- <service_fmri value='svc:/network/routing/quagga:zebra' />
- </dependency>
- <dependency name='config_data'
- grouping='require_all'
- restart_on='restart'
- type='path'>
- <service_fmri
- value='file://localhost/@sysconfdir@/ripngd.conf' />
- </dependency>
- <property_group name='quagga' type='application'>
- <propval name='retain_routes' type='boolean'
- value='false'/>
- </property_group>
- <template>
- <common_name>
- <loctext xml:lang='C'>
- Quagga: ripngd, RIPng IPv6 routing protocol daemon.
- </loctext>
- </common_name>
- <documentation>
- <manpage title='ripngd' section='1M'
- manpath='@mandir@' />
- <doc_link name='quagga.net'
- uri='http://www.quagga.net/' />
- </documentation>
- </template>
+ <service_fmri value='svc:/network/routing/zebra:quagga' />
+ </dependency>
- </instance>
+ <dependency name='config_data'
+ grouping='require_all'
+ restart_on='restart'
+ type='path'>
+ <service_fmri
+ value='file://localhost/@sysconfdir@/bgpd.conf' />
+ </dependency>
+
+ <exec_method
+ type='method'
+ name='start'
+ exec='/lib/svc/method/quagga bgpd %{routing/daemon-args}'
+ timeout_seconds='60'>
+ <method_context>
+ <method_credential
+ user='root' group='root'
+ privileges='basic,net_icmpaccess,net_privaddr,net_rawaccess'/>
+ </method_context>
+ </exec_method>
- <stability value='Evolving' />
+ <exec_method
+ type='method'
+ name='stop'
+ exec=':kill'
+ timeout_seconds='60' >
+ </exec_method>
-</service>
+ <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>
+
+ <property_group name='routing' type='application'>
+ <propval name='value_authorization' type='astring'
+ value='solaris.smf.modify.routing' />
+ <propval name='daemon-args' type='astring' value='-P 0'/>
+ </property_group>
+
+ <property_group name='general' type='framework'>
+ <!-- to start stop routing services -->
+ <propval name='action_authorization' type='astring'
+ value='solaris.smf.manage.routing' />
+ </property_group>
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>
+ Quagga: bgpd, BGP routing protocol daemon.
+ </loctext>
+ </common_name>
+ <documentation>
+ <manpage title='bgpd' section='1M'
+ manpath='@mandir@' />
+ <doc_link name='quagga.net'
+ uri='http://www.quagga.net/' />
+ </documentation>
+ </template>
+ </instance>
+ <stability value='Evolving' />
+</service>
</service_bundle>