xref: /onnv-gate/usr/src/lib/fm/topo/maps/common/topology.dtd.1 (revision 10234:c4cea2ed5803)
13062Scindi<?xml version="1.0" encoding="UTF-8"?>
23062Scindi<!--
38526SRobert.Johnston@Sun.COM Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
43062Scindi Use is subject to license terms.
53062Scindi
63062Scindi CDDL HEADER START
73062Scindi
83062Scindi The contents of this file are subject to the terms of the
93062Scindi Common Development and Distribution License (the "License").
103062Scindi You may not use this file except in compliance with the License.
113062Scindi
123062Scindi You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
133062Scindi or http://www.opensolaris.org/os/licensing.
143062Scindi See the License for the specific language governing permissions
153062Scindi and limitations under the License.
163062Scindi
173062Scindi When distributing Covered Code, include this CDDL HEADER in each
183062Scindi file and include the License file at usr/src/OPENSOLARIS.LICENSE.
193062Scindi If applicable, add the following below this CDDL HEADER, with the
203062Scindi fields enclosed by brackets "[]" replaced with your own identifying
213062Scindi information: Portions Copyright [yyyy] [name of copyright owner]
223062Scindi
233062Scindi CDDL HEADER END
243062Scindi
253062Scindi-->
263062Scindi
273062Scindi<!--
283062Scindi  Topology description DTD
293062Scindi
303062Scindi    Most attributes are string values (or an individual string from a
313062Scindi    restricted set), but attributes with a specific type requirement are
323062Scindi    noted in the comment describing the element.
333062Scindi-->
343062Scindi
353062Scindi<!--
363062Scindi  XInclude support
373062Scindi
383062Scindi    Topologies may be composed via the xi:include tag.
39*10234SRobert.Johnston@Sun.COM    libtopo interfaces enforce that all composed topologies be of the
403062Scindi    same scheme.
413062Scindi-->
423062Scindi
433062Scindi<!ELEMENT xi:include
443062Scindi	(xi:fallback) >
453062Scindi
463062Scindi<!ATTLIST xi:include
473062Scindi  href CDATA #REQUIRED
483062Scindi  parse (xml|text) "xml"
493062Scindi  encoding CDATA #IMPLIED
503062Scindi  xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
513062Scindi  >
523062Scindi
533062Scindi<!ELEMENT xi:fallback
543062Scindi  ANY
553062Scindi  >
563062Scindi<!ATTLIST xi:fallback
573062Scindi  xmlns:xi CDATA #FIXED "http://www.w3.org/2001/XInclude"
583062Scindi  >
593062Scindi
603062Scindi<!-- Properties and property groups -->
613062Scindi
623062Scindi<!--
635068Srobj  propval
643062Scindi
655068Srobj 	This element is for a singly valued property within a property group.
663062Scindi
675068Srobj	Its attributes are
683062Scindi
695068Srobj		name	The name of this property.
703062Scindi
715068Srobj		type	The data type for this property.
72*10234SRobert.Johnston@Sun.COM
735068Srobj		value	The value for this property.  Must match type
745068Srobj			restriction of type attribute.
75*10234SRobert.Johnston@Sun.COM
76*10234SRobert.Johnston@Sun.COM			This is optional for array types
77*10234SRobert.Johnston@Sun.COM
783062Scindi-->
793062Scindi
80*10234SRobert.Johnston@Sun.COM<!ELEMENT propval (propitem*) >
813062Scindi
823062Scindi<!ATTLIST propval
833062Scindi	name		CDATA #REQUIRED
843062Scindi	type		( int32 | uint32 | int64 | uint64 |
85*10234SRobert.Johnston@Sun.COM			  string | fmri | int32_array | uint32_array |
86*10234SRobert.Johnston@Sun.COM			  int64_array | uint64_array | string_array |
87*10234SRobert.Johnston@Sun.COM			  fmri_array ) #REQUIRED
88*10234SRobert.Johnston@Sun.COM	value		CDATA "" >
89*10234SRobert.Johnston@Sun.COM<!--
90*10234SRobert.Johnston@Sun.COM  propitem
91*10234SRobert.Johnston@Sun.COM
92*10234SRobert.Johnston@Sun.COM 	This element is an optional child element of propval and is used to
93*10234SRobert.Johnston@Sun.COM	specify the values for array elements
94*10234SRobert.Johnston@Sun.COM
95*10234SRobert.Johnston@Sun.COM	Its attributes are
96*10234SRobert.Johnston@Sun.COM
97*10234SRobert.Johnston@Sun.COM		value	The value for this property.  Must match type
98*10234SRobert.Johnston@Sun.COM			restriction of type attribute.
99*10234SRobert.Johnston@Sun.COM
100*10234SRobert.Johnston@Sun.COM-->
101*10234SRobert.Johnston@Sun.COM
102*10234SRobert.Johnston@Sun.COM<!ELEMENT propitem EMPTY >
103*10234SRobert.Johnston@Sun.COM
104*10234SRobert.Johnston@Sun.COM<!ATTLIST propitem
1056869Seschrock	value		CDATA #REQUIRED >
1063062Scindi
107*10234SRobert.Johnston@Sun.COM
1083062Scindi<!--
1093062Scindi  propgroup
1103062Scindi
1115068Srobj	This element is for a set of related properties on a topo node
1125068Srobj	It contains an optional stability element, as well as
1135068Srobj	zero or more property-containing elements.
1145068Srobj
1155068Srobj	Its attributes are
1163062Scindi
1175068Srobj		name		The name of this property group.
1185068Srobj		name-stability	Stability level of the property group name
1195068Srobj		data-stability	Stability level of the property names and
1205068Srobj				content
1215068Srobj		version		Version of the propery group definition
1223062Scindi
1233062Scindi-->
1243062Scindi
1253062Scindi<!ELEMENT propgroup
1265068Srobj	( propval*, propmethod* ) >
1273062Scindi
1283062Scindi<!ATTLIST propgroup
1293062Scindi	name		CDATA #REQUIRED
1303062Scindi	version		CDATA #REQUIRED
1313062Scindi	name-stability	( Private | Standard | Stable | Evolving | Unstable |
1323062Scindi                        External | Obsolete ) #REQUIRED
1333062Scindi	data-stability	( Private | Standard | Stable | Evolving | Unstable |
1343062Scindi                        External | Obsolete ) #REQUIRED >
1353062Scindi
1365068Srobj<!--
1376070Srobj  set
1386070Srobj	This element is for associating ranges, nodes or property groups
1396070Srobj	according to a set type.
1405068Srobj
1415068Srobj	Its attributes are
1425068Srobj
1435068Srobj		type	The type of this property group set.  'product' is the
1445068Srobj			only set type currently supported.
1456070Srobj		setlist	The list of set types.
1465068Srobj
1475068Srobj-->
1485068Srobj
1496070Srobj<!ELEMENT set
1507269Seschrock	 ( range*, fac-enum?, propgroup*, facility*, set* ) >
1515068Srobj
1526070Srobj<!ATTLIST set
1535068Srobj	type	( product ) #REQUIRED
1546070Srobj	setlist	CDATA #REQUIRED >
1555068Srobj
1565068Srobj<!--
1575068Srobj  propmap
1585068Srobj	This element is for specifying an additional topo map file for
1595068Srobj	properties assigned to a given range.
1605068Srobj
1615068Srobj	Its attributes are
1625068Srobj
1635068Srobj		name		Name of map file
1645068Srobj-->
1655068Srobj
1665068Srobj<!ELEMENT propmap EMPTY >
1675068Srobj
1685068Srobj<!ATTLIST propmap
1695068Srobj	name		CDATA #REQUIRED >
1705068Srobj
1713062Scindi<!-- Methods -->
1723062Scindi
1733062Scindi<!--
1745068Srobj  argval
1755068Srobj
1765068Srobj	A propmethod argument. It has two attributes:
1775068Srobj
1785068Srobj		name    The name of the argument.
1795068Srobj		type    The data type of the argument.
180*10234SRobert.Johnston@Sun.COM		value	The value for this argument.  Must match type
181*10234SRobert.Johnston@Sun.COM			restriction of type attribute.
182*10234SRobert.Johnston@Sun.COM
183*10234SRobert.Johnston@Sun.COM			This attribute is optional for array types
1845068Srobj-->
1855068Srobj
186*10234SRobert.Johnston@Sun.COM<!ELEMENT argval (argitem*) >
1875068Srobj
1885068Srobj<!ATTLIST argval
1895068Srobj        name            CDATA #REQUIRED
190*10234SRobert.Johnston@Sun.COM	type		( int32 | uint32 | int64 | uint64 |
191*10234SRobert.Johnston@Sun.COM			  string | fmri | int32_array | uint32_array |
192*10234SRobert.Johnston@Sun.COM			  int64_array | uint64_array | string_array |
193*10234SRobert.Johnston@Sun.COM			  fmri_array ) #REQUIRED
194*10234SRobert.Johnston@Sun.COM        value           CDATA "">
195*10234SRobert.Johnston@Sun.COM
196*10234SRobert.Johnston@Sun.COM<!--
197*10234SRobert.Johnston@Sun.COM  argitem
198*10234SRobert.Johnston@Sun.COM
199*10234SRobert.Johnston@Sun.COM 	This element is an optional child element of argval and is used to
200*10234SRobert.Johnston@Sun.COM	specify the values for array elements
201*10234SRobert.Johnston@Sun.COM
202*10234SRobert.Johnston@Sun.COM	Its attributes are
203*10234SRobert.Johnston@Sun.COM
204*10234SRobert.Johnston@Sun.COM		value	The value for this property.  Must match type
205*10234SRobert.Johnston@Sun.COM			restriction of type attribute.
206*10234SRobert.Johnston@Sun.COM
207*10234SRobert.Johnston@Sun.COM-->
208*10234SRobert.Johnston@Sun.COM
209*10234SRobert.Johnston@Sun.COM<!ELEMENT argitem EMPTY >
210*10234SRobert.Johnston@Sun.COM
211*10234SRobert.Johnston@Sun.COM<!ATTLIST argitem
212*10234SRobert.Johnston@Sun.COM	value		CDATA #REQUIRED >
213*10234SRobert.Johnston@Sun.COM
2145068Srobj
2155068Srobj<!--
2165068Srobj   propmethod
2175068Srobj
2185068Srobj	This element is for properties that can only be determined dynamically
2195068Srobj	from a plugin.
2205068Srobj
2215068Srobj	Its attributes are
2225068Srobj
2235068Srobj      		name		Name of the method
2245068Srobj      		version		Version of the method API
2255068Srobj      		propname	Name of the property to create
2265068Srobj		proptype	Type of the property to create
2277243Srobj		mutable         optional: default is false (0)
2288526SRobert.Johnston@Sun.COM		nonvolatile     optional: default is false (0)
2296869Seschrock-->
2305068Srobj
2315068Srobj<!ELEMENT propmethod
2325068Srobj	( argval* ) >
2335068Srobj
2345068Srobj<!ATTLIST propmethod
2355068Srobj	name		CDATA #REQUIRED
2365068Srobj	version		CDATA #REQUIRED
2375068Srobj	propname	CDATA #REQUIRED
2387243Srobj	proptype	CDATA #REQUIRED
2398526SRobert.Johnston@Sun.COM	mutable		(0|1) "0"
2408526SRobert.Johnston@Sun.COM	nonvolatile	(0|1) "0" >
2416869Seschrock
2425068Srobj<!--
2433062Scindi  enum-method
2443062Scindi
2455068Srobj	This element describes the enumeration method used to
2465068Srobj	populate a composition of topo nodes for a given range of topology
2475068Srobj	nodes.
2483062Scindi
2495068Srobj	Its attributes are
2503062Scindi
2515068Srobj		name	Name of the module exporting an enumeration method.
2523062Scindi
2535068Srobj		version Version of the libtopo API
2543062Scindi
2553062Scindi-->
2563062Scindi
2573062Scindi<!ELEMENT enum-method EMPTY >
2583062Scindi
2593062Scindi<!ATTLIST enum-method
2603062Scindi	name		CDATA #REQUIRED
2613062Scindi	version		CDATA #REQUIRED >
2623062Scindi
2633062Scindi<!--
2643062Scindi  node
2653062Scindi
2665068Srobj	This element identifies a topology node instance.
2673062Scindi
2685068Srobj	Its attributes are
2693062Scindi
2705068Srobj		instance The instance number of the node
2713062Scindi
2723062Scindi-->
2733062Scindi
2743062Scindi<!ELEMENT node
2757243Srobj	( fac-enum?, facility*, propgroup*, set*, enum-method*, dependents? ) >
2763062Scindi
2773062Scindi<!ATTLIST node
2785068Srobj	instance	CDATA #REQUIRED >
2793062Scindi
2803062Scindi<!--
2813062Scindi  dependents
2823062Scindi
2833062Scindi	Ranges may have a number of "dependent" ranges, linked to
2845068Srobj	the original range hierarchically as children or as a list, siblings.
2853062Scindi
2863062Scindi	Its attribute is:
2875068Srobj		grouping	children | siblings
2883062Scindi-->
2893062Scindi
2903062Scindi<!ELEMENT dependents
2916869Seschrock	(( range | xi:include )*, set*) >
2923062Scindi
2933062Scindi<!ATTLIST dependents
2946869Seschrock	grouping ( children | siblings ) #REQUIRED >
2953062Scindi
2963062Scindi<!--
2973062Scindi  range
2983062Scindi
2993062Scindi    This element identifies a range of possible topology nodes.
3003062Scindi
3013062Scindi    Its attributes are
3023062Scindi
3033062Scindi	name	The common name of all the possible topo nodes
3043062Scindi
3053062Scindi	min	The smallest allowed instance number for an
3063062Scindi		actual topo node.
3073062Scindi
3083062Scindi	max	The largest allowed instance number for an
3093062Scindi		actual topo node.
3103062Scindi-->
3113062Scindi
3123062Scindi<!ELEMENT range
3137243Srobj	( enum-method?, propmap?, fac-enum?, facility*, node*, propgroup*, set*,
3147243Srobj	    dependents* ) >
3153062Scindi
3163062Scindi<!ATTLIST range
3173062Scindi	name		CDATA #REQUIRED
3183062Scindi	min		CDATA #REQUIRED
3193062Scindi	max		CDATA #REQUIRED >
3203062Scindi
3213062Scindi<!--
3227243Srobj  facility
3237243Srobj
3247243Srobj    This element identifies a single facility node instance
3257243Srobj
3267243Srobj    Its attributes are
3277243Srobj
3287243Srobj	name	The name of the facility node
3297243Srobj
3307243Srobj	type	The type of facility node: either "sensor" or "indicator"
3317243Srobj
3327243Srobj	provider	The name of the facility provider module that
3337243Srobj	                implements the methods for this node or range
3347243Srobj-->
3357243Srobj
3367243Srobj<!ELEMENT facility
3377243Srobj	( propgroup* ) >
3387243Srobj
3397243Srobj<!ATTLIST facility
3407243Srobj	name		CDATA #REQUIRED
3417243Srobj	type		(sensor | indicator) #REQUIRED
3427243Srobj	provider	CDATA #REQUIRED >
3437243Srobj
3447243Srobj<!--
3457243Srobj  fac-enum
3467243Srobj
3477243Srobj    This element identifies a facility provider module that
3487243Srobj    implements a facility enumeration method for the enclosing
3497243Srobj    node or range.
3507243Srobj
3517243Srobj    Its attributes are
3527243Srobj
3537243Srobj	provider	The name of the facility provider module that
3547243Srobj	                implements the facility enumerator method for
3557243Srobj			the parent node or range
3567243Srobj-->
3577243Srobj
3587243Srobj<!ELEMENT fac-enum EMPTY >
3597243Srobj
3607243Srobj<!ATTLIST fac-enum provider CDATA #REQUIRED >
3617243Srobj
3627243Srobj<!--
3633062Scindi  topology
3643062Scindi
3653062Scindi	This is the root-level for the scheme-specific topology
3663062Scindi
3673062Scindi	Its attributes are:
3683062Scindi		name	topology name
3695068Srobj		scheme 	( hc | dev  )
3703062Scindi-->
3713062Scindi
3723062Scindi<!ELEMENT topology
3736869Seschrock	((range* | xi:include*), set*)>
3743062Scindi
3753062Scindi<!ATTLIST topology
3763062Scindi	name	CDATA #REQUIRED
3773062Scindi	scheme (hc | dev) #REQUIRED >
378