1 a.dunfey 1.1 // ===================================================================
2 // Title: Device Elements
3 // $State: Preliminary $
4 // $Date: 2005/01/05 00:54:00 $
5 // $Source: /home/dmtf2/dotorg/var/cvs/repositories/dev/Schema/MOF/Device_DeviceElements.mof,v $
6 // $Revision: 1.4 $
7 // ===================================================================
8 //#pragma inLine ("Includes/copyright.inc")
9 // Copyright 1998-2005 Distributed Management Task Force, Inc. (DMTF).
10 // All rights reserved.
11 // DMTF is a not-for-profit association of industry members dedicated
12 // to promoting enterprise and systems management and interoperability.
13 // DMTF specifications and documents may be reproduced for uses
14 // consistent with this purpose by members and non-members,
15 // provided that correct attribution is given.
16 // As DMTF specifications may be revised from time to time,
17 // the particular version and release date should always be noted.
18 //
19 // Implementation of certain elements of this standard or proposed
20 // standard may be subject to third party patent rights, including
21 // provisional patent rights (herein "patent rights"). DMTF makes
22 a.dunfey 1.1 // no representations to users of the standard as to the existence
23 // of such rights, and is not responsible to recognize, disclose, or
24 // identify any or all such third party patent right, owners or
25 // claimants, nor for any incomplete or inaccurate identification or
26 // disclosure of such rights, owners or claimants. DMTF shall have no
27 // liability to any party, in any manner or circumstance, under any
28 // legal theory whatsoever, for failure to recognize, disclose, or
29 // identify any such third party patent rights, or for such party's
30 // reliance on the standard or incorporation thereof in its product,
31 // protocols or testing procedures. DMTF shall have no liability to
32 // any party implementing such standard, whether such implementation
33 // is foreseeable or not, nor to any patent owner or claimant, and shall
34 // have no liability or responsibility for costs or losses incurred if
35 // a standard is withdrawn or modified after publication, and shall be
36 // indemnified and held harmless by any party implementing the
37 // standard from any and all claims of infringement by a patent owner
38 // for such implementations.
39 //
40 // For information about patents held by third-parties which have
41 // notified the DMTF that, in their opinion, such patent may relate to
42 // or impact implementations of DMTF standards, visit
43 a.dunfey 1.1 // http://www.dmtf.org/about/policies/disclosures.php.
44 //#pragma inLine
45 // ===================================================================
46 // Description: The Device Model extends the management concepts that
47 // are related to LogicalDevices. This file defines the
48 // basic concepts that generally apply to all devices,
49 // such as error statistics and connections between
50 // devices.
51 //
52 // The object classes below are listed in an order that
53 // avoids forward references. Required objects, defined
54 // by other working groups, are omitted.
55 // ==================================================================
56 // Change Log for v2.9 Preliminary
57 // CR1269 - SCSI device types used for management need a CIM analog
58 //
59 // Change Log for v2.8 Final
60 // CR1202 - Remove Experimental Qualifiers
61 // CR1223 - SysDev Omnibus CR - Minor MOF corrections.
62 //
63 // Change Log for v2.8 Preliminary
64 a.dunfey 1.1 // CR943 - Move error code data from LogicalDevice to
65 // DeviceErrorCountData
66 // CR1049 - Add DeviceSoftwareIdentity
67 // CR1092 - Move DeviceSoftwareIdentity to Core28_Device.mof
68 //
69 // Change Log for v2.7 Final
70 // CR942 - Rename DeviceErrorCountData to DeviceErrorData.
71 // CR970 - Removal of the Experimental qualifier.
72 //
73 // Change Log for v2.7
74 // CR621 - Add PackageDependency
75 // CR622 - Fix the DMI mapping string to include the attribute number
76 // DeviceErrorCounts.CriticalErrorCount, .MajorErrorCount, &
77 // .WarningCount
78 // CR721 - Add DeviceErrorCountData that is part of the new statistics
79 // hierarchy
80 // ==================================================================
81
82 #pragma locale ("en_US")
83
84
85 a.dunfey 1.1 // ===================================================================
86 // DeviceConnection
87 // ===================================================================
88 [Association, Version ( "2.6.0" ), Description (
89 "The DeviceConnection relationship indicates that two or more "
90 "Device are connected together.")]
91 class CIM_DeviceConnection : CIM_Dependency {
92
93 [Override ( "Antecedent" ), Description (
94 "A LogicalDevice.")]
95 CIM_LogicalDevice REF Antecedent;
96
97 [Override ( "Dependent" ), Description (
98 "A second LogicalDevice connected to the Antecedent Device.")]
99 CIM_LogicalDevice REF Dependent;
100
101 [Description (
102 "When several bus and/or connection speeds are possible, the "
103 "NegotiatedSpeed property defines the one in use between the "
104 "Devices. Speed is specified in bits per second. If "
105 "connection or bus speeds are not negotiated, or if this "
106 a.dunfey 1.1 "information is not available/important to Device "
107 "management, the property should be set to 0."),
108 Units ( "Bits per Second" ),
109 MappingStrings { "MIF.DMTF|Bus Port Association|001.2" }]
110 uint64 NegotiatedSpeed;
111
112 [Description (
113 "When several bus and/or connection data widths are "
114 "possible, the NegotiatedDataWidth property defines the one "
115 "in use between the Devices. Data width is specified in "
116 "bits. If data width is not negotiated, or if this "
117 "information is not available/important to Device "
118 "management, the property should be set to 0."),
119 Units ( "Bits" ),
120 MappingStrings { "MIF.DMTF|Bus Port Association|001.3" }]
121 uint32 NegotiatedDataWidth;
122 };
123
124
125 // ===================================================================
126 // DeviceIdentity
127 a.dunfey 1.1 // ===================================================================
128 [Association, Version ( "2.6.0" ), Description (
129 "CIM_DeviceIdentity indicates that two LogicalDevices represent "
130 "different aspects of the same underlying entity. This "
131 "association refines the CIM_LogicalIdentity superclass by "
132 "restricting it to the Device level and defining its use in "
133 "well understood scenarios. One of these scenarios is to "
134 "represent that a Device is both a 'bus' entity and a "
135 "'functional' entity. For example, a Device could be both a PCI "
136 "Device (or a USB Device), as well as a CIM_Keyboard. The other "
137 "scenario is where a Device plays multiple functional roles "
138 "that can not be distinguished by their hardware realization "
139 "alone. For example, a Fibre Channel adapter might have aspects "
140 "of both a NetworkAdapter and a SCSIController.")]
141 class CIM_DeviceIdentity : CIM_LogicalIdentity {
142
143 [Override ( "SystemElement" ), Description (
144 "SystemElement represents one aspect of the Device.")]
145 CIM_LogicalDevice ref SystemElement;
146
147 [Override ( "SameElement" ), Description (
148 a.dunfey 1.1 "SameElement represents an alternate aspect of the System "
149 "entity.")]
150 CIM_LogicalDevice ref SameElement;
151 };
152
153
154 // ==================================================================
155 // PackageDependency
156 // ==================================================================
157 [Association, Version ( "2.6.0" ), Description (
158 "A LogicalDevice is installed in a Package such as a Chassis or "
159 "a Rack, not for a specific Device, but to function with the "
160 "Package in general. This relationship is described by the "
161 "PackageDependency association.")]
162 class CIM_PackageDependency : CIM_Dependency {
163
164 [Override ( "Antecedent" ), Description (
165 "The Logical Device for the Package.")]
166 CIM_LogicalDevice REF Antecedent;
167
168 [Override ( "Dependent" ), Description (
169 a.dunfey 1.1 "The PhysicalPackage whose environment is affected.")]
170 CIM_PhysicalPackage REF Dependent;
171 };
172
173
174 // ===================================================================
175 // DeviceSoftware
176 // ===================================================================
177 [Association, Version ( "2.6.0" ), Description (
178 "The DeviceSoftware relationship identifies any software that "
179 "is associated with a Device - such as drivers, configuration "
180 "or application software, or firmware.")]
181 class CIM_DeviceSoftware : CIM_Dependency {
182
183 [Override ( "Antecedent" ), Description (
184 "The SoftwareElement.")]
185 CIM_SoftwareElement REF Antecedent;
186
187 [Override ( "Dependent" ), Description (
188 "The LogicalDevice that requires or uses the software.")]
189 CIM_LogicalDevice REF Dependent;
190 a.dunfey 1.1
191 [Description (
192 "An enumerated integer to indicate the role this software "
193 "plays in regards to its associated Device. For example, "
194 "this software could be instrumentation (value=5) or "
195 "firmware (6)."),
196 ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8" },
197 Values { "Unknown", "Other", "Driver", "Configuration Software",
198 "Application Software", "Instrumentation", "Firmware",
199 "BIOS", "Boot ROM" },
200 MappingStrings { "MIF.DMTF|SubComponent Software|001.2" },
201 ModelCorrespondence { "CIM_DeviceSoftware.PurposeDescription" }]
202 uint16 Purpose;
203
204 [Description (
205 "A free-form string to provide more information for the "
206 "Purpose property, e.g. \"Application Software\"."),
207 ModelCorrespondence { "CIM_DeviceSoftware.Purpose" }]
208 string PurposeDescription;
209
210 [Description (
211 a.dunfey 1.1 "Boolean indicating that the software is 'burned into' or "
212 "otherwise located on the hardware of the LogicalDevice.")]
213 boolean LoadedOnDevice;
214
215 [Description (
216 "Boolean indicating whether the software is upgradeable, "
217 "when it is LoadedOnDevice. Software that is loaded as part "
218 "of the OperatingSystem is typically changeable and "
219 "upgradeable. However, when DeviceSoftware is burned into "
220 "EEPROM or a chip that Realizes the LogicalDevice, then it "
221 "may not be upgradeable. This property indicates the ability "
222 "to update and upgrade DeviceSoftware.")]
223 boolean UpgradeableOnDevice;
224 };
225
226
227 // ==================================================================
228 // DeviceErrorCounts
229 // ==================================================================
230 [Version ( "2.7.0" ), Description (
231 "DeviceErrorCounts is a statistical class containing error- "
232 a.dunfey 1.1 "related counters for a LogicalDevice. The types of errors are "
233 "as defined by CCITT (Rec X.733) and ISO (IEC 10164-4). Note "
234 "that the CIM_DeviceErrorCountData class uses a simplified "
235 "naming/identity algorithm as compared to this class. "
236 "DeviceErrorCounts is not deprecated since its naming algorithm "
237 "is still in use in various implementations.")]
238 class CIM_DeviceErrorCounts : CIM_StatisticalInformation {
239
240 [Key, Propagated ( "CIM_LogicalDevice.SystemCreationClassName" ),
241 Description (
242 "The scoping System's CreationClassName."),
243 MaxLen ( 256 )]
244 string SystemCreationClassName;
245
246 [Key, Propagated ( "CIM_LogicalDevice.SystemName" ),
247 Description (
248 "The scoping System's Name."),
249 MaxLen ( 256 )]
250 string SystemName;
251
252 [Key, Propagated ( "CIM_LogicalDevice.CreationClassName" ),
253 a.dunfey 1.1 Description (
254 "The scoping Device's CreationClassName."),
255 MaxLen ( 256 )]
256 string DeviceCreationClassName;
257
258 [Key, Propagated ( "CIM_LogicalDevice.DeviceID" ), Description (
259 "The scoping Device's ID."),
260 MaxLen ( 64 )]
261 string DeviceID;
262
263 [Key, Override ( "Name" ), Description (
264 "The inherited Name serves as part of the key for the "
265 "DeviceErrorCounts instance. The object is scoped by the "
266 "LogicalDevice to which the statistics apply."),
267 MaxLen ( 256 )]
268 string Name;
269
270 [Description (
271 "Count of the indeterminate errors."),
272 Counter]
273 uint64 IndeterminateErrorCount;
274 a.dunfey 1.1
275 [Description (
276 "Count of the critical errors."),
277 Counter,
278 MappingStrings { "MIF.DMTF|Operational State|006.7" }]
279 uint64 CriticalErrorCount;
280
281 [Description (
282 "Count of the major errors."),
283 Counter,
284 MappingStrings { "MIF.DMTF|Operational State|006.8" }]
285 uint64 MajorErrorCount;
286
287 [Description (
288 "Count of the minor errors."),
289 Counter]
290 uint64 MinorErrorCount;
291
292 [Description (
293 "Count of the warnings."),
294 Counter,
295 a.dunfey 1.1 MappingStrings { "MIF.DMTF|Operational State|006.9" }]
296 uint64 WarningCount;
297
298 [Description (
299 "Method to reset the error and warning counters. The method "
300 "takes one parameter as input - an integer indicating which "
301 "counter to reset. For this input parameter, 0 indicates "
302 "all, 1 indicates a reset of the indeterminate error "
303 "counter, 2 the critical error counter, 3 the major error "
304 "counter, 4 the minor error counter and 5 the warning "
305 "counter. The method returns 0 if successful, 1 if not "
306 "supported, and any other value if an error occurred. A "
307 "method is specified so that the LogicalDevice's "
308 "instrumentation, which tabulates the errors and warnings, "
309 "can also reset its internal processing and counters. \n"
310 "In a subclass, the set of possible return codes could be "
311 "specified, using a ValueMap qualifier on the method. The "
312 "strings to which the ValueMap contents are 'translated' may "
313 "also be specified in the subclass as a Values array "
314 "qualifier.")]
315 uint32 ResetCounter (
316 a.dunfey 1.1 [IN, Description (
317 "The counter to reset."),
318 ValueMap { "0", "1", "2", "3", "4", "5" },
319 Values { "All", "Indeterminate Error Counter",
320 "Critical Error Counter", "Major Error Counter",
321 "Minor Error Counter", "Warning Counter" }]
322 uint16 SelectedCounter);
323 };
324
325
326 // ==================================================================
327 // ErrorCountersForDevice
328 // ==================================================================
329 [Association, Version ( "2.6.0" ), Description (
330 "ErrorCountersForDevice relates the DeviceErrorCounts class to "
331 "the LogicalDevice to which it applies.")]
332 class CIM_ErrorCountersForDevice : CIM_Statistics {
333
334 [Override ( "Stats" ), Weak, Description (
335 "The statistical object - in this case, the error counter "
336 "class.")]
337 a.dunfey 1.1 CIM_DeviceErrorCounts REF Stats;
338
339 [Override ( "Element" ), Min ( 1 ), Max ( 1 ), Description (
340 "The Device to which the error counters apply.")]
341 CIM_LogicalDevice REF Element;
342 };
343
344
345 // ==================================================================
346 // DeviceErrorData
347 // ==================================================================
348 [Version ( "2.8.0" ), Description (
349 "DeviceErrorData is a statistical class containing error- "
350 "related counters for a LogicalDevice. The types of errors are "
351 "as defined by CCITT (Rec X.733) and ISO (IEC 10164-4). The "
352 "element whose statistics are described is associated using the "
353 "relationship, ElementStatisticalData. Note that this class "
354 "uses a simplified identity/naming algorithm over "
355 "CIM_DeviceErrorCounts.")]
356 class CIM_DeviceErrorData : CIM_StatisticalData {
357
358 a.dunfey 1.1 [Description (
359 "Count of the indeterminate errors."),
360 Counter]
361 uint64 IndeterminateErrorCount;
362
363 [Description (
364 "Count of the critical errors."),
365 Counter,
366 MappingStrings { "MIF.DMTF|Operational State|006.7" }]
367 uint64 CriticalErrorCount;
368
369 [Description (
370 "Count of the major errors."),
371 Counter,
372 MappingStrings { "MIF.DMTF|Operational State|006.8" }]
373 uint64 MajorErrorCount;
374
375 [Description (
376 "Count of the minor errors."),
377 Counter]
378 uint64 MinorErrorCount;
379 a.dunfey 1.1
380 [Description (
381 "Count of the warnings."),
382 Counter,
383 MappingStrings { "MIF.DMTF|Operational State|006.9" }]
384 uint64 WarningCount;
385
386 [Description (
387 "LastErrorCode captures the last error code reported by the "
388 "LogicalDevice. While the device is in this error condition, "
389 "then the LogicalDevice's OperationalStatus should not "
390 "reflect an 'Okay' status. Once this error condition is "
391 "cleared, then the LogicalDevice's OperationalStatus should "
392 "report an 'Okay' status.")]
393 string LastErrorCode;
394
395 [Description (
396 "ErrorDescription is a free-form string supplying more "
397 "information about the error recorded in LastErrorCode, and "
398 "information on any corrective actions that may be taken.")]
399 string ErrorDescription;
400 a.dunfey 1.1
401 };
402
403 // ===================================================================
404 // SCSIArbitraryLogicalUnit
405 // ===================================================================
406 [Experimental, Version ( "2.8.1000" ), Description (
407 "SCSIArbitraryLogicalUnit represents an element that is "
408 "addressed as a device, but is not accurately modeled by some "
409 "other LogicalDevice subclass (like TapeDrive or "
410 "StorageVolume). One common use is 'control devices' that "
411 "provide management rather than I/O functionality. For example, "
412 "SCSI defines this behavior for Enclosure Services and SCSI "
413 "Controller devices.")]
414 class CIM_SCSIArbitraryLogicalUnit : CIM_LogicalDevice {
415
416 [Required, Description (
417 "The type of the device. For SCSI devices, this is related "
418 "to the peripheral device type returned in bits 0 to 4 of "
419 "byte zero of the inquiry response. Note that 'Direct "
420 "Access' is included to model the common behavior of using a "
421 a.dunfey 1.1 "zero-length volume for in-band management of RAID arrays."),
422 ValueMap { "0", "1", "2", "3", "4", "5", "6" },
423 Values { "Unknown", "Other", "Direct Access", "SCSI SCC Device",
424 "SCSI SES", "SCSI ADI", "SCSI Well Known Logical Unit" },
425 MappingStrings { "ANSI|T10|SCSI SPC|Peripheral Device Type" },
426 ModelCorrespondence {
427 "CIM_SCSIArbitraryLogicalUnit.OtherDeviceType" }]
428 uint16 DeviceType;
429
430 [Description (
431 "A string describing the device type if DeviceType is set to "
432 "1 (\"Other\")."),
433 ModelCorrespondence { "CIM_SCSIArbitraryLogicalUnit.DeviceType"
434 }]
435 string OtherDeviceType;
436 };
437
438 // ===================================================================
439 // end of file
440 // ===================================================================
|