1 <?xml version='1.0' ?>
   2 <!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
   3 <!--
   4 
   5         This file and its contents are supplied under the terms of the
   6         Common Development and Distribution License ("CDDL"), version 1.0.
   7         You may only use this file in accordance with the terms of version
   8         1.0 of the CDDL.
   9 
  10         A full copy of the text of the CDDL should have accompanied this
  11         source.  A copy of the CDDL is also available via the Internet at
  12         http://www.illumos.org/license/CDDL.
  13 
  14         Copyright 2014 OmniTI Computer Consulting, Inc. All rights reserved.
  15 
  16 -->
  17 
  18 <!-- XXX KEBE SAYS we need more properties, and we may need a method
  19         script to start these running.
  20 -->
  21 
  22 <service_bundle type='manifest' name='isc-dhcp'>
  23 
  24 <service name='network/service/dhcp' type='service' version='1'>
  25         <dependency name='loopback'  grouping='require_all'
  26         restart_on='none' type='service'>
  27                 <service_fmri value='svc:/network/loopback:default' />
  28         </dependency>
  29 
  30         <dependency name='physical'  grouping='require_all'
  31         restart_on='none' type='service'>
  32                 <service_fmri value='svc:/network/physical:default' />
  33         </dependency>
  34 
  35         <dependency name='localfs'  grouping='require_all'
  36         restart_on='none' type='service'>
  37                 <service_fmri value='svc:/system/filesystem/local:default' />
  38         </dependency>
  39 
  40         <instance name='ipv4' enabled='false'>
  41         <exec_method name='start' type='method'
  42         exec='/usr/sbin/dhcpd'
  43         timeout_seconds='60' />
  44         
  45         <exec_method name='stop' type='method'
  46         exec=':kill'
  47         timeout_seconds='60' />
  48         
  49         <exec_method name='refresh' type='method'
  50         exec=':kill -HUP'
  51         timeout_seconds='60' />
  52 
  53         <property_group name='general' type='framework'>
  54                 <propval name='action_authorization' type='astring'
  55                 value='omnios.smf.manage.dhcp' />
  56         </property_group>
  57 
  58         <template>
  59                 <common_name>
  60                         <loctext xml:lang='C'>ISC DHCP server</loctext>
  61                 </common_name>
  62 
  63                 <documentation>
  64                         <manpage title='dhcpd' section='8' />
  65                         <doc_link name='isc.org' uri='http://isc.org' />
  66                 </documentation>
  67         </template>
  68         </instance>
  69 
  70         <instance name='ipv6' enabled='false'>
  71         <exec_method name='start' type='method'
  72         exec='/usr/sbin/dhcpd -6'
  73         timeout_seconds='60' />
  74         
  75         <exec_method name='stop' type='method'
  76         exec=':kill'
  77         timeout_seconds='60' />
  78         
  79         <exec_method name='refresh' type='method'
  80         exec=':kill -HUP'
  81         timeout_seconds='60' />
  82 
  83         <property_group name='general' type='framework'>
  84                 <propval name='action_authorization' type='astring'
  85                 value='omnios.smf.manage.dhcp' />
  86         </property_group>
  87 
  88         <template>
  89                 <common_name>
  90                         <loctext xml:lang='C'>ISC DHCPv6 server</loctext>
  91                 </common_name>
  92 
  93                 <documentation>
  94                         <manpage title='dhcpd' section='8' />
  95                         <doc_link name='isc.org' uri='http://isc.org' />
  96                 </documentation>
  97         </template>
  98         </instance>
  99 
 100         <stability value='Evolving' />
 101 
 102 </service>
 103 
 104 <service name='network/service/dhcrelay' type='service' version='1'>
 105         <dependency name='loopback'  grouping='require_all'
 106         restart_on='none' type='service'>
 107                 <service_fmri value='svc:/network/loopback:default' />
 108         </dependency>
 109 
 110         <dependency name='physical'  grouping='require_all'
 111         restart_on='none' type='service'>
 112                 <service_fmri value='svc:/network/physical:default' />
 113         </dependency>
 114 
 115         <dependency name='localfs'  grouping='require_all'
 116         restart_on='none' type='service'>
 117                 <service_fmri value='svc:/system/filesystem/local:default' />
 118         </dependency>
 119 
 120         <instance name='ipv4' enabled='false'>
 121         <exec_method name='start' type='method'
 122         exec='/usr/sbin/dhcrelay %{server}'
 123         timeout_seconds='60' />
 124         
 125         <exec_method name='stop' type='method'
 126         exec=':kill'
 127         timeout_seconds='60' />
 128         
 129         <exec_method name='refresh' type='method'
 130         exec=':kill -HUP'
 131         timeout_seconds='60' />
 132 
 133         <property_group name='general' type='framework'>
 134                 <propval name='action_authorization' type='astring'
 135                 value='omnios.smf.manage.dhcp' />
 136         </property_group>
 137 
 138         <property_group name='application' type='application'>
 139           <!-- A space-separated server list is acceptable here for now. -->
 140           <propval name='server' type='astring' value='' />
 141         </property_group>
 142 
 143         <template>
 144                 <common_name>
 145                         <loctext xml:lang='C'>ISC DHCP relay</loctext>
 146                 </common_name>
 147 
 148                 <documentation>
 149                         <manpage title='dhcrelay' section='8' />
 150                         <doc_link name='isc.org' uri='http://isc.org' />
 151                 </documentation>
 152         </template>
 153         </instance>
 154 
 155         <instance name='ipv6' enabled='false'>
 156         <exec_method name='start' type='method'
 157         exec='/usr/sbin/dhcrelay -6 -l %{lower} -u %{upper}'
 158         timeout_seconds='60' />
 159         
 160         <exec_method name='stop' type='method'
 161         exec=':kill'
 162         timeout_seconds='60' />
 163         
 164         <exec_method name='refresh' type='method'
 165         exec=':kill -HUP'
 166         timeout_seconds='60' />
 167 
 168         <property_group name='general' type='framework'>
 169                 <propval name='action_authorization' type='astring'
 170                 value='omnios.smf.manage.dhcp' />
 171         </property_group>
 172 
 173         <property_group name='application' type='application'>
 174           <propval name='server' type='astring' value='' />
 175           <!--       For now, just accept one upper and one lower.
 176                 We'll need to do ranges later.
 177           -->
 178           <propval name='upper' type='astring' value='' />
 179           <propval name='lower' type='astring' value='' />
 180         </property_group>
 181 
 182         <template>
 183                 <common_name>
 184                         <loctext xml:lang='C'>ISC DHCPv6 relay</loctext>
 185                 </common_name>
 186 
 187                 <documentation>
 188                         <manpage title='dhcpd' section='8' />
 189                         <doc_link name='isc.org' uri='http://isc.org' />
 190                 </documentation>
 191         </template>
 192         </instance>
 193 
 194         <stability value='Evolving' />
 195 
 196 </service>
 197 
 198 </service_bundle>