1*0Sstevel@tonic-gate<?xml version="1.0" encoding="utf-8" ?>
2*0Sstevel@tonic-gate
3*0Sstevel@tonic-gate<!--
4*0Sstevel@tonic-gate    CDDL HEADER START
5*0Sstevel@tonic-gate
6*0Sstevel@tonic-gate    The contents of this file are subject to the terms of the
7*0Sstevel@tonic-gate    Common Development and Distribution License, Version 1.0 only
8*0Sstevel@tonic-gate    (the "License").  You may not use this file except in compliance
9*0Sstevel@tonic-gate    with the License.
10*0Sstevel@tonic-gate
11*0Sstevel@tonic-gate    You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12*0Sstevel@tonic-gate    or http://www.opensolaris.org/os/licensing.
13*0Sstevel@tonic-gate    See the License for the specific language governing permissions
14*0Sstevel@tonic-gate    and limitations under the License.
15*0Sstevel@tonic-gate
16*0Sstevel@tonic-gate    When distributing Covered Code, include this CDDL HEADER in each
17*0Sstevel@tonic-gate    file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18*0Sstevel@tonic-gate    If applicable, add the following below this CDDL HEADER, with the
19*0Sstevel@tonic-gate    fields enclosed by brackets "[]" replaced with your own identifying
20*0Sstevel@tonic-gate    information: Portions Copyright [yyyy] [name of copyright owner]
21*0Sstevel@tonic-gate
22*0Sstevel@tonic-gate    CDDL HEADER END
23*0Sstevel@tonic-gate
24*0Sstevel@tonic-gate   * Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
25*0Sstevel@tonic-gate   * Use is subject to license terms.
26*0Sstevel@tonic-gate   *
27*0Sstevel@tonic-gate   * ident	"%Z%%M%	%I%	%E% SMI"
28*0Sstevel@tonic-gate   *
29*0Sstevel@tonic-gate   * Describes the request for a new volume configuration used by
30*0Sstevel@tonic-gate   * metassist(1M).
31*0Sstevel@tonic-gate   *
32*0Sstevel@tonic-gate   * See volume-request(4) for a detailed description of the syntax.
33*0Sstevel@tonic-gate   -->
34*0Sstevel@tonic-gate<!ELEMENT volume-request (diskset,(available|unavailable)*,hsp?,(concat|stripe|mirror|volume)*)>
35*0Sstevel@tonic-gate
36*0Sstevel@tonic-gate<!--
37*0Sstevel@tonic-gate   *****************************************************************
38*0Sstevel@tonic-gate   *
39*0Sstevel@tonic-gate   * Disk set definition
40*0Sstevel@tonic-gate   *
41*0Sstevel@tonic-gate   *****************************************************************
42*0Sstevel@tonic-gate   -->
43*0Sstevel@tonic-gate
44*0Sstevel@tonic-gate<!--
45*0Sstevel@tonic-gate   * The new or existing disk set to use.  If the disk set does not
46*0Sstevel@tonic-gate   * exist, it will be created.
47*0Sstevel@tonic-gate   -->
48*0Sstevel@tonic-gate<!ELEMENT diskset EMPTY>
49*0Sstevel@tonic-gate<!ATTLIST diskset name CDATA #REQUIRED>
50*0Sstevel@tonic-gate
51*0Sstevel@tonic-gate
52*0Sstevel@tonic-gate<!--
53*0Sstevel@tonic-gate   *****************************************************************
54*0Sstevel@tonic-gate   *
55*0Sstevel@tonic-gate   * Available devices definition
56*0Sstevel@tonic-gate   *
57*0Sstevel@tonic-gate   *****************************************************************
58*0Sstevel@tonic-gate   -->
59*0Sstevel@tonic-gate
60*0Sstevel@tonic-gate<!--
61*0Sstevel@tonic-gate   * Specify a controller, target, disk, or slice that may be used in
62*0Sstevel@tonic-gate   * the construction of new SVM configuration.
63*0Sstevel@tonic-gate   *
64*0Sstevel@tonic-gate   * Disks specified herein should be:
65*0Sstevel@tonic-gate   *
66*0Sstevel@tonic-gate   *     1. part of the disk set named above
67*0Sstevel@tonic-gate   *
68*0Sstevel@tonic-gate   * or
69*0Sstevel@tonic-gate   *
70*0Sstevel@tonic-gate   *     2. unused and not belong to any disk set
71*0Sstevel@tonic-gate   *
72*0Sstevel@tonic-gate   * If a controller is specified, all slices on all disks on the
73*0Sstevel@tonic-gate   * controller which match the above criteria are considered
74*0Sstevel@tonic-gate   * available.
75*0Sstevel@tonic-gate   *
76*0Sstevel@tonic-gate   * If a target is specified, all slices on all disks on the target
77*0Sstevel@tonic-gate   * which match the above criteria are considered available.
78*0Sstevel@tonic-gate   *
79*0Sstevel@tonic-gate   * If no available devices are specified, all disks on the system
80*0Sstevel@tonic-gate   * which match the above criteria are considered available.
81*0Sstevel@tonic-gate   -->
82*0Sstevel@tonic-gate<!ELEMENT available EMPTY>
83*0Sstevel@tonic-gate<!ATTLIST available name CDATA #REQUIRED>
84*0Sstevel@tonic-gate
85*0Sstevel@tonic-gate<!--
86*0Sstevel@tonic-gate   * Specify a controller, target, disk, or slice to exclude from the
87*0Sstevel@tonic-gate   * available pool.
88*0Sstevel@tonic-gate   -->
89*0Sstevel@tonic-gate<!ELEMENT unavailable EMPTY>
90*0Sstevel@tonic-gate<!ATTLIST unavailable name CDATA #REQUIRED>
91*0Sstevel@tonic-gate
92*0Sstevel@tonic-gate
93*0Sstevel@tonic-gate<!--
94*0Sstevel@tonic-gate   *****************************************************************
95*0Sstevel@tonic-gate   *
96*0Sstevel@tonic-gate   * Hot spare pool definition
97*0Sstevel@tonic-gate   *
98*0Sstevel@tonic-gate   *****************************************************************
99*0Sstevel@tonic-gate   -->
100*0Sstevel@tonic-gate
101*0Sstevel@tonic-gate<!--
102*0Sstevel@tonic-gate   * Specify a new or existing hot spare pool for submirrors defined
103*0Sstevel@tonic-gate   * in this request.  If a HSP is required by this request, and no
104*0Sstevel@tonic-gate   * HSP is specified here, the first existing HSP in the above disk
105*0Sstevel@tonic-gate   * set will be used instead.  If no HSPs exist, a new HSP will be
106*0Sstevel@tonic-gate   * created.
107*0Sstevel@tonic-gate   *
108*0Sstevel@tonic-gate   * Optionally specify disks that can be used/excluded if new hot
109*0Sstevel@tonic-gate   * spares must be created.
110*0Sstevel@tonic-gate   -->
111*0Sstevel@tonic-gate<!ELEMENT hsp ((available|unavailable)*)>
112*0Sstevel@tonic-gate
113*0Sstevel@tonic-gate<!--
114*0Sstevel@tonic-gate   * The name to assign to this hot spare pool.  If no name is
115*0Sstevel@tonic-gate   * specified, a name will be chosen automatically.  No guarantees
116*0Sstevel@tonic-gate   * are made about the algorithm used, except that the resulting name
117*0Sstevel@tonic-gate   * will be one that is not currently in use.
118*0Sstevel@tonic-gate   -->
119*0Sstevel@tonic-gate<!ATTLIST hsp name CDATA #IMPLIED>
120*0Sstevel@tonic-gate
121*0Sstevel@tonic-gate<!--
122*0Sstevel@tonic-gate   *****************************************************************
123*0Sstevel@tonic-gate   *
124*0Sstevel@tonic-gate   * Slice definition
125*0Sstevel@tonic-gate   *
126*0Sstevel@tonic-gate   *****************************************************************
127*0Sstevel@tonic-gate   -->
128*0Sstevel@tonic-gate
129*0Sstevel@tonic-gate<!ELEMENT slice EMPTY>
130*0Sstevel@tonic-gate<!ATTLIST slice name CDATA #REQUIRED>
131*0Sstevel@tonic-gate
132*0Sstevel@tonic-gate
133*0Sstevel@tonic-gate<!--
134*0Sstevel@tonic-gate   *****************************************************************
135*0Sstevel@tonic-gate   *
136*0Sstevel@tonic-gate   * Stripe definition
137*0Sstevel@tonic-gate   *
138*0Sstevel@tonic-gate   *****************************************************************
139*0Sstevel@tonic-gate   -->
140*0Sstevel@tonic-gate
141*0Sstevel@tonic-gate<!--
142*0Sstevel@tonic-gate   * the following line should work, but fails xmllint for some reason
143*0Sstevel@tonic-gate   *
144*0Sstevel@tonic-gate   * <!ELEMENT stripe (slice*|(available|unavailable)*)>
145*0Sstevel@tonic-gate   -->
146*0Sstevel@tonic-gate
147*0Sstevel@tonic-gate<!--
148*0Sstevel@tonic-gate   * Create a new top-level stripe either by specifying the underlying
149*0Sstevel@tonic-gate   * components (slices and soft partitions) or by specifying the
150*0Sstevel@tonic-gate   * required size and optional available/unavailable resources.
151*0Sstevel@tonic-gate   -->
152*0Sstevel@tonic-gate<!ELEMENT stripe ((available|unavailable)*,slice*)>
153*0Sstevel@tonic-gate
154*0Sstevel@tonic-gate<!--
155*0Sstevel@tonic-gate   * The volume name to assign to this stripe.  If no name is
156*0Sstevel@tonic-gate   * specified, a name will be chosen automatically.  No guarantees
157*0Sstevel@tonic-gate   * are made about the algorithm used, except that the resulting name
158*0Sstevel@tonic-gate   * will be one that is not currently in use.
159*0Sstevel@tonic-gate   -->
160*0Sstevel@tonic-gate<!ATTLIST stripe name CDATA #IMPLIED>
161*0Sstevel@tonic-gate
162*0Sstevel@tonic-gate<!--
163*0Sstevel@tonic-gate   * The size of this stripe, in the format <value><units>, where
164*0Sstevel@tonic-gate   * <units> is "KB", "MB", "GB", or "TB", and <value> is the
165*0Sstevel@tonic-gate   * multiplier of the units.
166*0Sstevel@tonic-gate   *
167*0Sstevel@tonic-gate   * This attribute is ignored if the underlying components are
168*0Sstevel@tonic-gate   * explicitly specified.
169*0Sstevel@tonic-gate   -->
170*0Sstevel@tonic-gate<!ATTLIST stripe size CDATA #IMPLIED>
171*0Sstevel@tonic-gate
172*0Sstevel@tonic-gate<!--
173*0Sstevel@tonic-gate   * Specify the minimum and maximum number of components (slices and
174*0Sstevel@tonic-gate   * soft partitions) to use when constructing this stripe.
175*0Sstevel@tonic-gate   *
176*0Sstevel@tonic-gate   * The default value for mincomp is 4.
177*0Sstevel@tonic-gate   *
178*0Sstevel@tonic-gate   * The default value for maxcomp is 10.
179*0Sstevel@tonic-gate   *
180*0Sstevel@tonic-gate   * These attributes should not be specified if the underlying
181*0Sstevel@tonic-gate   * components are explicitly specified.
182*0Sstevel@tonic-gate   -->
183*0Sstevel@tonic-gate<!ATTLIST stripe mincomp CDATA #IMPLIED>
184*0Sstevel@tonic-gate<!ATTLIST stripe maxcomp CDATA #IMPLIED>
185*0Sstevel@tonic-gate
186*0Sstevel@tonic-gate<!--
187*0Sstevel@tonic-gate   * The interlace of this stripe, in the format <value><units>, where
188*0Sstevel@tonic-gate   * <units> is "BLOCKS", "KB", or "MB", and <value> is the multiplier
189*0Sstevel@tonic-gate   * of the units.
190*0Sstevel@tonic-gate   *
191*0Sstevel@tonic-gate   * The default value is 64KB.
192*0Sstevel@tonic-gate   -->
193*0Sstevel@tonic-gate<!ATTLIST stripe interlace CDATA #IMPLIED>
194*0Sstevel@tonic-gate
195*0Sstevel@tonic-gate<!--
196*0Sstevel@tonic-gate   * Boolean (TRUE or FALSE) indicating whether to use a HSP.
197*0Sstevel@tonic-gate   *
198*0Sstevel@tonic-gate   * This is only relevant if this stripe is a submirror, i.e. it is
199*0Sstevel@tonic-gate   * defined within a <mirror> element.  If not, this attribute is
200*0Sstevel@tonic-gate   * ignored.
201*0Sstevel@tonic-gate   *
202*0Sstevel@tonic-gate   * The default value is FALSE.
203*0Sstevel@tonic-gate   -->
204*0Sstevel@tonic-gate<!ATTLIST stripe usehsp (TRUE|FALSE) #IMPLIED>
205*0Sstevel@tonic-gate
206*0Sstevel@tonic-gate
207*0Sstevel@tonic-gate<!--
208*0Sstevel@tonic-gate   *****************************************************************
209*0Sstevel@tonic-gate   *
210*0Sstevel@tonic-gate   * Concat definition
211*0Sstevel@tonic-gate   *
212*0Sstevel@tonic-gate   *****************************************************************
213*0Sstevel@tonic-gate   -->
214*0Sstevel@tonic-gate
215*0Sstevel@tonic-gate<!--
216*0Sstevel@tonic-gate   * the following line should work, but fails xmllint for some reason
217*0Sstevel@tonic-gate   *
218*0Sstevel@tonic-gate   * <!ELEMENT concat (slice+|(available|unavailable)*)>
219*0Sstevel@tonic-gate   -->
220*0Sstevel@tonic-gate
221*0Sstevel@tonic-gate<!--
222*0Sstevel@tonic-gate   * Create a new concat either by specifying the underlying slices
223*0Sstevel@tonic-gate   * and soft partitions or by specifying the required size and
224*0Sstevel@tonic-gate   * optional available/unavailable resources.
225*0Sstevel@tonic-gate   -->
226*0Sstevel@tonic-gate<!ELEMENT concat ((available|unavailable)*,slice*)>
227*0Sstevel@tonic-gate
228*0Sstevel@tonic-gate<!--
229*0Sstevel@tonic-gate   * The volume name to assign to this concat.  If no name is
230*0Sstevel@tonic-gate   * specified, a name will be chosen automatically.  No guarantees
231*0Sstevel@tonic-gate   * are made about the algorithm used, except that the resulting name
232*0Sstevel@tonic-gate   * will be one that is not currently in use.
233*0Sstevel@tonic-gate   -->
234*0Sstevel@tonic-gate<!ATTLIST concat name CDATA #IMPLIED>
235*0Sstevel@tonic-gate
236*0Sstevel@tonic-gate<!--
237*0Sstevel@tonic-gate   * The size of this concat, in the format <value><units>, where
238*0Sstevel@tonic-gate   * <units> is "KB", "MB", "GB", or "TB", and <value> is the
239*0Sstevel@tonic-gate   * multiplier of the units.
240*0Sstevel@tonic-gate   *
241*0Sstevel@tonic-gate   * This attribute is ignored if the underlying slices/soft
242*0Sstevel@tonic-gate   * partitions are explicitly specified.
243*0Sstevel@tonic-gate   -->
244*0Sstevel@tonic-gate<!ATTLIST concat size CDATA #IMPLIED>
245*0Sstevel@tonic-gate
246*0Sstevel@tonic-gate<!--
247*0Sstevel@tonic-gate   * Boolean (TRUE or FALSE) indicating whether to use a HSP.
248*0Sstevel@tonic-gate   *
249*0Sstevel@tonic-gate   * This is only relevant if this concat is a submirror, i.e. it is
250*0Sstevel@tonic-gate   * defined within a <mirror> element.  If not, this attribute is
251*0Sstevel@tonic-gate   * ignored.
252*0Sstevel@tonic-gate   *
253*0Sstevel@tonic-gate   * The default value is FALSE.
254*0Sstevel@tonic-gate   -->
255*0Sstevel@tonic-gate<!ATTLIST concat usehsp (TRUE|FALSE) #IMPLIED>
256*0Sstevel@tonic-gate
257*0Sstevel@tonic-gate
258*0Sstevel@tonic-gate<!--
259*0Sstevel@tonic-gate   *****************************************************************
260*0Sstevel@tonic-gate   *
261*0Sstevel@tonic-gate   * Mirror definition
262*0Sstevel@tonic-gate   *
263*0Sstevel@tonic-gate   *****************************************************************
264*0Sstevel@tonic-gate   -->
265*0Sstevel@tonic-gate
266*0Sstevel@tonic-gate<!--
267*0Sstevel@tonic-gate   * Create a new mirror either by specifying the underlying
268*0Sstevel@tonic-gate   * submirrors or by specifying the required size and optional
269*0Sstevel@tonic-gate   * available/unavailable resources.
270*0Sstevel@tonic-gate   -->
271*0Sstevel@tonic-gate<!ELEMENT mirror ((available|unavailable)*,(stripe|concat)*)>
272*0Sstevel@tonic-gate
273*0Sstevel@tonic-gate<!--
274*0Sstevel@tonic-gate   * The volume name to assign to this mirror.  If no name is
275*0Sstevel@tonic-gate   * specified, a name will be chosen automatically.  No guarantees
276*0Sstevel@tonic-gate   * are made about the algorithm used, except that the resulting name
277*0Sstevel@tonic-gate   * will be one that is not currently in use.
278*0Sstevel@tonic-gate   -->
279*0Sstevel@tonic-gate<!ATTLIST mirror name CDATA #IMPLIED>
280*0Sstevel@tonic-gate
281*0Sstevel@tonic-gate<!--
282*0Sstevel@tonic-gate   * The number of submirrors under this mirror.  If this number
283*0Sstevel@tonic-gate   * exceeds the number of explicitly specified submirrors, the
284*0Sstevel@tonic-gate   * remaining submirrors will be created from the available
285*0Sstevel@tonic-gate   * resources.
286*0Sstevel@tonic-gate   *
287*0Sstevel@tonic-gate   * The default value is 2.
288*0Sstevel@tonic-gate   -->
289*0Sstevel@tonic-gate<!ATTLIST mirror nsubmirrors CDATA #IMPLIED>
290*0Sstevel@tonic-gate
291*0Sstevel@tonic-gate<!--
292*0Sstevel@tonic-gate   * The size of this mirror, in the format <value><units>, where
293*0Sstevel@tonic-gate   * <units> is "KB", "MB", "GB", or "TB", and <value> is the
294*0Sstevel@tonic-gate   * multiplier of the units.
295*0Sstevel@tonic-gate   *
296*0Sstevel@tonic-gate   * This attribute is required if no submirrors are defined.
297*0Sstevel@tonic-gate   -->
298*0Sstevel@tonic-gate<!ATTLIST mirror size CDATA #IMPLIED>
299*0Sstevel@tonic-gate
300*0Sstevel@tonic-gate<!--
301*0Sstevel@tonic-gate   * Specify values for common mirror options.
302*0Sstevel@tonic-gate   *
303*0Sstevel@tonic-gate   * The default values are described in the metainint(1M) man page.
304*0Sstevel@tonic-gate   -->
305*0Sstevel@tonic-gate<!ATTLIST mirror read (ROUNDROBIN|GEOMETRIC|FIRST) #IMPLIED>
306*0Sstevel@tonic-gate<!ATTLIST mirror write (PARALLEL|SERIAL) #IMPLIED>
307*0Sstevel@tonic-gate<!ATTLIST mirror passnum CDATA #IMPLIED>
308*0Sstevel@tonic-gate
309*0Sstevel@tonic-gate<!--
310*0Sstevel@tonic-gate   * Boolean (TRUE or FALSE) indicating whether to use a HSP for each
311*0Sstevel@tonic-gate   * submirror.  This can be overridden using the submirror's usehsp
312*0Sstevel@tonic-gate   * attribute.
313*0Sstevel@tonic-gate   *
314*0Sstevel@tonic-gate   * The default value is FALSE.
315*0Sstevel@tonic-gate   -->
316*0Sstevel@tonic-gate<!ATTLIST mirror usehsp (TRUE|FALSE) #IMPLIED>
317*0Sstevel@tonic-gate
318*0Sstevel@tonic-gate
319*0Sstevel@tonic-gate
320*0Sstevel@tonic-gate<!--
321*0Sstevel@tonic-gate   *****************************************************************
322*0Sstevel@tonic-gate   *
323*0Sstevel@tonic-gate   * QoS volume definition
324*0Sstevel@tonic-gate   *
325*0Sstevel@tonic-gate   *****************************************************************
326*0Sstevel@tonic-gate   -->
327*0Sstevel@tonic-gate
328*0Sstevel@tonic-gate<!--
329*0Sstevel@tonic-gate   * Create a volume defined by Quality of Service attributes.  The
330*0Sstevel@tonic-gate   * default is to create a non-redundant volume.  In any case, high
331*0Sstevel@tonic-gate   * performance is attempted.
332*0Sstevel@tonic-gate   *
333*0Sstevel@tonic-gate   * Translates to a stripe (non-redundant) or mirror of stripes
334*0Sstevel@tonic-gate   * (redundant) for SVM.
335*0Sstevel@tonic-gate   -->
336*0Sstevel@tonic-gate<!ELEMENT volume ((available|unavailable)*)>
337*0Sstevel@tonic-gate
338*0Sstevel@tonic-gate<!--
339*0Sstevel@tonic-gate   * The name to assign to this volume.  If no name is specified, a
340*0Sstevel@tonic-gate   * name will be chosen automatically.  No guarantees are made about
341*0Sstevel@tonic-gate   * the algorithm used, except that the resulting name will be one
342*0Sstevel@tonic-gate   * that is not currently in use.
343*0Sstevel@tonic-gate   -->
344*0Sstevel@tonic-gate<!ATTLIST volume name CDATA #IMPLIED>
345*0Sstevel@tonic-gate
346*0Sstevel@tonic-gate<!--
347*0Sstevel@tonic-gate   * The size of this mirror, in the format <value><units>, where
348*0Sstevel@tonic-gate   * <units> is "KB", "MB", "GB", or "TB", and <value> is the
349*0Sstevel@tonic-gate   * multiplier of the units.
350*0Sstevel@tonic-gate   *
351*0Sstevel@tonic-gate   * This attribute is required if no submirrors are defined.
352*0Sstevel@tonic-gate   -->
353*0Sstevel@tonic-gate<!ATTLIST volume size CDATA #REQUIRED>
354*0Sstevel@tonic-gate
355*0Sstevel@tonic-gate<!--
356*0Sstevel@tonic-gate   * Specify the redundancy level (0-4) of the data.
357*0Sstevel@tonic-gate   *
358*0Sstevel@tonic-gate   * If redundancy is 0, a stripe will be created.
359*0Sstevel@tonic-gate   *
360*0Sstevel@tonic-gate   * If redundancy is > 0, a mirror with this number of submirrors
361*0Sstevel@tonic-gate   * will be created.  In this case, the volume can suffer a disk
362*0Sstevel@tonic-gate   * failure on <n-1> copies without  data loss.  With the use of HSPs
363*0Sstevel@tonic-gate   * (see the "faultrecovery" attribute), a volume can suffer a disk
364*0Sstevel@tonic-gate   * failure on <n+hsps-1> volumes without data loss, assuming non-
365*0Sstevel@tonic-gate   * concurrent failures.
366*0Sstevel@tonic-gate   *
367*0Sstevel@tonic-gate   * The default value is 0.
368*0Sstevel@tonic-gate   -->
369*0Sstevel@tonic-gate<!ATTLIST volume redundancy CDATA #IMPLIED>
370*0Sstevel@tonic-gate
371*0Sstevel@tonic-gate<!--
372*0Sstevel@tonic-gate   * Boolean (TRUE or FALSE) indicating whether to include fault
373*0Sstevel@tonic-gate   * recovery.
374*0Sstevel@tonic-gate   *
375*0Sstevel@tonic-gate   * If this attribute is TRUE, a mirror will be created and its
376*0Sstevel@tonic-gate   * submirror(s) will be associated with a HSP.
377*0Sstevel@tonic-gate   *
378*0Sstevel@tonic-gate   * The default value is FALSE.
379*0Sstevel@tonic-gate   -->
380*0Sstevel@tonic-gate<!ATTLIST volume faultrecovery (TRUE|FALSE) #IMPLIED>
381*0Sstevel@tonic-gate
382*0Sstevel@tonic-gate<!--
383*0Sstevel@tonic-gate   * Number of data paths through which to ensure the volume is
384*0Sstevel@tonic-gate   * reachable.
385*0Sstevel@tonic-gate   *
386*0Sstevel@tonic-gate   * The default value is 1.
387*0Sstevel@tonic-gate   -->
388*0Sstevel@tonic-gate<!ATTLIST volume datapaths CDATA #IMPLIED>
389