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