Document Number: XMP1013

Date: 2011-08-31

Version: 1.0.2m

Example Fan Profile

IMPORTANT: This specification is not a standard. It does not necessarily reflect the views of the DMTF or all of its members. Because this document is a Work in Progress, this specification may still change, perhaps profoundly. This document is available for public review and comment until the stated expiration date. This document expires on: 2012-02-28. Target version for DMTF Standard: 1.0.2. Provide any comments through the DMTF Feedback Portal: http://www.dmtf.org/standards/feedback

Document Type: Specification

Document Status: Work in Progress

Document Language: en-US

## Copyright notice

Copyright © 2006-2011 Distributed Management Task Force, Inc. (DMTF). All rights reserved.

DMTF is a not-for-profit association of industry members dedicated to promoting enterprise and systems management and interoperability. Members and non-members may reproduce DMTF specifications and documents for uses consistent with this purpose, provided that correct attribution is given. As DMTF specifications may be revised from time to time, the particular version and release date should always be noted.

Implementation of certain elements of this standard or proposed standard may be subject to third party patent rights, including provisional patent rights (herein "patent rights"). DMTF makes no representations to users of the standard as to the existence of such rights, and is not responsible to recognize, disclose, or identify any or all such third party patent right, owners or claimants, nor for any incomplete or inaccurate identification or disclosure of such rights, owners or claimants. DMTF shall have no liability to any party, in any manner or circumstance, under any legal theory whatsoever, for failure to recognize, disclose, or identify any such third party patent rights, or for such party's reliance on the standard or incorporation thereof in its product, protocols or testing procedures. DMTF shall have no liability to any party implementing such standard, whether such implementation is foreseeable or not, nor to any patent owner or claimant, and shall have no liability or responsibility for costs or losses incurred if a standard is withdrawn or modified after publication, and shall be indemnified and held harmless by any party implementing the standard from any and all claims of infringement by a patent owner for such implementations.

For information about patents held by third-parties which have notified the DMTF that, in their opinion, such patent may relate to or impact implementations of DMTF standards, visit http://www.dmtf.org/about/policies/disclosures.php.

# CONTENTS

## Figures

[Insert table of figures here ...]

## Tables

[Insert table of tables here ...]

# Foreword

This document was prepared by the Physical Platform Profiles Working Group and Server Management Working Group.

DMTF is a not-for-profit association of industry members dedicated to promoting enterprise and systems management and interoperability.

Design Note: This document contains design notes (like this one), that provide information about the way the document is written, or to demonstrate certain things. Such design notes would not appear in a released version of this document.

Design Note: This document represents DSP1013 (Fan Profile) version 1.0.1 plus some additions as a machine readable profile in MRP 1.1 format. Since machine readable profiles need to be compliant to DSP1001 1.1, this document utilizes the newly introduced concepts, such as adaptations, features and collaboration diagrams. Relative to DSP1013 1.0, this machine readable profile adds the following, in order to demonstrate its use:

1. The use of standard messages defined in DSP8016 and DSP8007 as error messages, in the RequestStateChange() method of the Fan adaptation.
2. The use of standard metrics defined in an assumed metric registry DSPsamr, in two variants: (1) The definition of a metric 'Metric1' directly on the Fan adaptation, demonstrating the most simple approach to defining metrics; (2) The definition of a metric 'Metric2' on a metric definition represented by the FanMetricDefinition adaptation, demonstrating the more flexible approach of defining a metric using a metric definition. In both variants, the metrics are represented using the base metric model defined in DSP1053 (Base Metrics Profile).
3. The use of alert indications, demonstrating the most simple approach to defining alert indications as defined in DSP1001 1.1 and DSP1054 1.2.

## Acknowledgements

DMTF acknowledges the following individuals for their contributions to this document:

- Jon Hass, Dell (editor)
- Khachatur Papanyan, Dell (editor)
- Jeff Hilland, HP (editor)
- Jim Davis, WBEM Solutions (editor)
- Enoch Suen, Dell
- Christina Shaw, HP
- Aaron Merkin, IBM
- Perry Vincent, Intel
- John Leung, Intel
- John Ackerley, Sun Microsystems

## Document conventions

Any text in this document is in normal text font, with the following exceptions:

- References to clause names use normal text font; if they consist of more than one word, the clause name is quoted using double quotes, such as in "CIM elements".
- Important terms that are used for the first time are marked in italics .
- The usage of terms link to the term definition defined in the "Terms and definitions" clause, enabling easy navigation to the term definition.
- ABNF rules are in `monospaced font` .

Format definitions in this document are specified using ABNF (see RFC5234 ), with the following deviations:

- Literal strings are to be interpreted as case-sensitive Unicode characters, as opposed to the definition in RFC5234 that interprets literal strings as case-insensitve US-ASCII characters.

# Example Fan Profile

# Scope

The Fan Profile extends the management capabilities of referencing profiles by adding the capability to represent fans for manageability and describe redundant fans . The fan as a logical device is modeled as referencing the fan physical package for physical asset information, a sensor for sensor reading information, and the profile registration for the schema implementation version information.

# Normative references

The following referenced documents are indispensable for the application of this document. For dated or versioned references, only the edition cited (including any corrigenda or DMTF update versions) applies. For undated and unversioned references, the latest published edition of the referenced document (including any corrigenda or DMTF update versions) applies.

DMTF DSP0004, CIM Infrastructure Specification 2.5,
http://www.dmtf.org/standards/published_documents/DSP0004_2.5.pdf

DMTF DSP0223, Generic Operations 1.0,
http://www.dmtf.org/standards/published_documents/DSP0223_1.0.pdf

DMTF DSP1001, Management Profile Specification Usage Guide 1.1,
http://www.dmtf.org/standards/published_documents/DSP1001_1.1.pdf

DMTF XMP1009, Example Sensors Profile (sample profile in DSP2023) 1.0,
http://www.dmtf.org/standards/published_documents/DSP2023_1.0.zip

DMTF XMP1011, Example Physical Asset Profile (sample profile in DSP2023) 1.0,
http://www.dmtf.org/standards/published_documents/DSP2023_1.0.zip

DMTF XMP1033, Example Profile Registration Profile (sample profile in DSP2023) 1.0,
http://www.dmtf.org/standards/published_documents/DSP2023_1.0.zip

DMTF DSP1053, Base Metric Profile 1.1,
http://www.dmtf.org/standards/published_documents/DSP1053_1.1.pdf

DMTF DSP1054, Indications Profile 1.2,
http://www.dmtf.org/standards/published_documents/DSP1054_1.2.pdf

DMTF DSP8016, WBEM Operations Message Registry 1.0,
http://schemas.dmtf.org/wbem/messageregistry/1/dsp8016_1.0.xml

DMTF DSP8007, Platform Message Registry 1.0,
http://schemas.dmtf.org/wbem/messageregistry/1/dsp8007_1.0.xml

DMTF DSPsamr, Sample Metric Registry 1.0,
dspsamr_1.0.xml

IETF RFC5234, Augmented BNF for Syntax Specifications: ABNF, 2008-01,
http://tools.ietf.org/html/rfc5234

ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards,
http://isotc.iso.org/livelink/livelink?func=ll&objId=4230456&objAction=browse&sort=subtype

# Terms and definitions

In this document, some terms have a specific meaning beyond the normal English meaning. Those terms are defined in this clause.

## General

The terms "shall" ("required"), "shall not", "should" ("recommended"), "should not" ("not recommended"), "may", "need not" ("not required"), "can" and "cannot" in this document are to be interpreted as described in ISO/IEC Directives, Part2 , Annex H. The terms in parenthesis are alternatives for the preceding term, for use in exceptional cases when the preceding term cannot be used for linguistic reasons. Note that ISO/IEC Directives, Part2 , Annex H specifies additional alternatives. Occurrences of such additional alternatives shall be interpreted in their normal English meaning in this document.

The terms "clause", "subclause", "paragraph", "annex" in this document are to be interpreted as described in ISO/IEC Directives, Part2 , Clause 5.

The terms "normative" and "informative" in this document are to be interpreted as described in ISO/IEC Directives, Part2 , Clause 3. In this document, clauses, subclauses or annexes indicated with "(informative)" as well as notes and examples do not contain normative content.

The terms defined in DSP0004, DSP0223, and DSP1001 apply to this document.

The following additional terms are defined in this document.

##

fan

A device that provides thermal cooling by air flow to system elements.

##

redundant fan

A fan that is participating in a redundant set of fans.

##

spare fan

A fan that is not currently used, but is available for use in situations where currently used fans are no longer used for some reason.

# Symbols and abbreviated terms

This clause defines the symbols and abbreviations used in this document.

The abbreviations defined in DSP0004, DSP0223, and DSP1001 apply to this document.

This document does not define any additional abbreviations.

# Synopsis

Profile name: Example Fan

Version: 1.0.2

Organization: DMTF

Abstract: No

Profile type: Component

Schema: DMTF CIM 2.19

Central class adaptation: Fan

Scoping class adaptation: ComputerSystem

Scoping path: SystemDevice

The Example Fan profile extends the management capabilities of referencing profiles by adding the capability to represent fans as logical devices, to monitor and control the state and speed of fans , to represent the relationship to elements cooled by fans , and to represent redundant fans as a redundancy group. Optionally, the Sensors profile can be implemented for fan speed sensors ( SpeedSensors profile reference). Optionally, the Physical Asset profile can be implemented for fans ( PhysicalAsset profile reference).

identifies the profile references defined in this profile.

Profile references
Profile reference name | Profile name | Organi-​zation | Version | Relation-​ship | Description
--- | --- | --- | --- | --- | ---
PhysicalAsset | Example Physical Asset | DMTF | 1.0 | Optional | Used to represent the physical packaging of fans.
SpeedSensors | Example Sensors | DMTF | 1.0 | Conditional | Used to represent fan speed sensors . Condition: The FanSpeedSensor feature is implemented.
PRP | Profile Registration | DMTF | 1.0 | Mandatory | Used to represent the implementation of this profile.
Indications | Indications | DMTF | 1.2 | Mandatory | Used for the indications defined by this profile.
BaseMetric | Base Metric | DMTF | 1.1 | Mandatory | Used for the metrics defined by this profile.

identifies the message registry references defined in this profile.

Message registry references
Registry reference name | Registry ID | Organization | Version | Description
--- | --- | --- | --- | ---
WBEMOperations | DSP8016 | DMTF | 1.0 |
Platform | DSP8007 | DMTF | 1.0 |

identifies the metric registry references defined in this profile.

Metric registry references
Registry reference name | Registry ID | Organization | Version | Description
--- | --- | --- | --- | ---
Sample | DSPsamr | DMTF | 1.0 |

identifies the features defined in this profile.

Features
Feature | Requirement | Description
--- | --- | ---
FanRedundancyByBalancing | Optional | See subclause "Feature: FanRedundancyByBalancing".
FanRedundancyBySparing | Optional | See subclause "Feature: FanRedundancyBySparing".
FanSpeedSensor | Conditional | See subclause "Feature: FanSpeedSensor".
PhysicalAssetDescription | Optional | See subclause "Feature: PhysicalAssetDescription".
PartialCooling | Conditional | See subclause "Feature: PartialCooling".
FanCapabilities | Optional | See subclause "Feature: FanCapabilities".
FanElementNameModification | Optional | See subclause "Feature: FanElementNameModification".
FanStateManagement | Optional | See subclause "Feature: FanStateManagement".
SettingFanSpeed | Optional | See subclause "Feature: SettingFanSpeed".
FanIndications | Optional | See subclause "Feature: FanIndications".

identifies the class adaptations defined in this profile.

Adaptations
Adaptation | Elements | Requirement | Description
--- | --- | --- | ---
Instantiated, embedded and abstract adaptations
ComputerSystem | CIM_ComputerSystem | Mandatory | See subclause "Adaptation: ComputerSystem".
SystemDevice | CIM_SystemDevice | Mandatory | See subclause "Adaptation: SystemDevice".
FanMetricDefinition | CIM_BaseMetricDefinition | Optional | See subclause "Adaptation: FanMetricDefinition".
Fan | CIM_Fan | Mandatory | See subclause "Adaptation: Fan".
FanCapabilities | CIM_EnabledLogicalElementCapabilities | Conditional | See subclause "Adaptation: FanCapabilities".
ElementCapabilities | CIM_ElementCapabilities | Conditional | See subclause "Adaptation: ElementCapabilities".
CooledElement | CIM_ManagedSystemElement | Conditional | See subclause "Adaptation: CooledElement".
AssociatedCooling | CIM_AssociatedCooling | Conditional | See subclause "Adaptation: AssociatedCooling".
FanRedundancySet | CIM_RedundancySet | Conditional | See subclause "Adaptation: FanRedundancySet".
OwningCollectionElement | CIM_OwningCollectionElement | Conditional | See subclause "Adaptation: OwningCollectionElement".
HostedRedundancySet | CIM_HostedCollection | Conditional | See subclause "Adaptation: HostedRedundancySet".
MemberOfRedundancySet | CIM_MemberOfCollection | Conditional | See subclause "Adaptation: MemberOfRedundancySet".
IsSpare | CIM_IsSpare | Conditional | See subclause "Adaptation: IsSpare".
NumericFanSpeedSensor | CIM_NumericSensor | Conditional | See subclause "Adaptation: NumericFanSpeedSensor".
DiscreteFanSpeedSensor | CIM_Sensor | Conditional | See subclause "Adaptation: DiscreteFanSpeedSensor".
FanSpeedAlertIndicationFilter | CIM_IndicationFilter | Conditional | See subclause "Adaptation: FanSpeedAlertIndicationFilter".
FanAddedLifecycleIndicationFilter | CIM_IndicationFilter | Conditional | See subclause "Adaptation: FanAddedLifecycleIndicationFilter".
Indications and exceptions
FanAddedIndication | CIM_InstCreation | Conditional | See subclause "Adaptation: FanAddedIndication".
FanRemovedIndication | CIM_InstDeletion | Conditional | See subclause "Adaptation: FanRemovedIndication".
FanHealthIndication | CIM_AlertIndication | Conditional | See subclause "Adaptation: FanHealthIndication".
FanRedundancyIndication | CIM_AlertIndication | Conditional | See subclause "Adaptation: FanRedundancyIndication".

identifies the use cases and state descriptions defined in this profile.

Use cases and state descriptions
Name | Description
--- | ---
State description: ObjectDiagram | See subclause "State description: ObjectDiagram".
Use case: SetFanSpeed | See subclause "Use case: SetFanSpeed".
Use case: ResetFan | See subclause "Use case: ResetFan".
Use case: GetFanRedundancyStatus | See subclause "Use case: GetFanRedundancyStatus".
Use case: FindSpareFan | See subclause "Use case: FindSpareFan".
Use case: ShowFanSensorInfo | See subclause "Use case: ShowFanSensorInfo".
Use case: FindCooledElements | See subclause "Use case: FindCooledElements".
Use case: DetermineElementNameModifiability | See subclause "Use case: DetermineElementNameModifiability".

# Description

DMTF collaboration structure diagram

The logical aspect of fans in the managed environment is represented by instances of the Fan adaptation. The system hosting the fans is represented by an associated ComputerSystem instance.

The capability to support the representation of fan redundancy can be added by implementing the FanRedundancyBySparing or FanRedundancyByBalancing features, which are mutually exclusive for a given fan. If one of these features is implemented for a fan, each redundancy group this fan is a member of is represented by an associated FanRedundancySet instance.

The capability to support the sensoring of the fan speed can be added by implementing the FanSpeedSensor feature for a fan, using the SpeedSensors profile.

The capability to expose physical asset information for a fan can be added by implementing the PhysicalAssetDescription feature for the fan, using the PhysicalAsset profile.

The capability to provide cooling only to specific elements of the system instead of the whole system can be added by implementing the PartialCooling feature. If it is implemented for a fan, the system element to which the fan provides cooling is represented by an associated CooledElement instance. If it is not implemented for a fan, the fan provides cooling to the entire system that hosts the fan.

The capability to expose the capabilities of a fan can be added by implementing the FanCapabilities feature. If it is implemented for a fan, its capabilities are represented by an associated FanCapabilities instance. Note that FanCapabilities instances can be shared between multiple Fan instances.

Conformance of an implementation to this profile is represented through the PRP profile.

# Implementation

## Features

### Feature: FanRedundancyByBalancing

Requirement level: Optional

The implementation of this feature for a fan provides the ability to represent that a fan is redundant within a redundancy group of fans, such that all fans in the group run at the same time, balancing the cooling load between them. If one of these fan fails, the others remain running to provide cooling.

This feature can be made available to clients at the granularity of Fan instances.

It can be concluded that the feature is available for a Fan instance if:

- The following OCL derivation constraint evaluates to a Boolean value of True.

  OCL context: A Fan instance.

      derive: self.MemberOfRedundancySet::Collection->size() > 0 and
      self.IsSpare.Antecedent->size() = 0

Otherwise, it can be concluded that the feature is not available.

### Feature: FanRedundancyBySparing

Requirement level: Optional

The implementation of this feature for a fan provides the ability to represent that a fan is redundant within a redundancy group of fans, such that some fans in the group run at the same time, balancing the cooling load between them, and some others do not normally run and act as spare fans . If one of the normally running fans fails, the other normally running fans remain running to provide cooling; and additional spare fans may be started to accomodate for the cooling capacity of the failed fan(s).

This feature can be made available to clients at the granularity of Fan instances.

It can be concluded that the feature is available for a Fan instance if:

- The following OCL derivation constraint evaluates to a Boolean value of True.

  OCL context: A Fan instance.

      derive: self.MemberOfRedundancySet::Collection->size() > 0 and
      self.IsSpare.Antecedent->size() > 0

Otherwise, it can be concluded that the feature is not available.

### Feature: FanSpeedSensor

Requirement level: Conditional

Condition:

Profile Error: Invalid type of condition "ManagedEnvironmentCondition" defined on an element.

This feature provides the ability to expose the speed of fans that have a speed sensor .

This feature can be made available to clients at the granularity of Fan instances.

It can be concluded that the feature is available for a Fan instance if:

- The following OCL derivation constraint evaluates to a Boolean value of True.

  OCL context: A Fan instance.

      derive: self.SpeedSensors::NumericSensor->size() > 0 or
      self.SpeedSensors::DiscreteSensor->size() > 0

Otherwise, it can be concluded that the feature is not available.

### Feature: PhysicalAssetDescription

Requirement level: Optional

This feature provides support for describing physical asset information of a fan.

This feature can be made available to clients at the granularity of an implementation of this profile.

It can be concluded that the feature is available if:

- The following OCL derivation constraint evaluates to a Boolean value of True.

  OCL context: A RegisteredProfile instance for this profile.

      derive: self.mrpIsReferencedProfileImplemented('PhysicalAsset')

Otherwise, it can be concluded that the feature is not available.

### Feature: PartialCooling

Requirement level: Conditional

Condition:

Profile Error: Invalid type of condition "ManagedEnvironmentCondition" defined on an element.

The implementation of this feature for a fan allows representing that the fan provides cooling to a subset of the elements in a system, instead of to the entire system.

This feature can be made available to clients at the granularity of Fan instances.

It can be concluded that the feature is available for a Fan instance if:

- The following OCL derivation constraint evaluates to a Boolean value of True.

  OCL context: A Fan instance.

      derive: self.AssociatedCooling::Antecedent->size() > 0

Otherwise, it can be concluded that the feature is not available.

### Feature: FanCapabilities

Requirement level: Optional

This feature allows a fan to expose its capabilities through an FanCapabilities instance.

This feature can be made available to clients at the granularity of Fan instances.

It can be concluded that the feature is available for a Fan instance if:

- The following OCL derivation constraint evaluates to a Boolean value of True.

  OCL context: A Fan instance.

      derive: self.ElementCapabilities->size() = 1

  Explanation:

  One instance exists of ElementCapabilities that is associated to the Fan instance.

Otherwise, it can be concluded that the feature is not available.

### Feature: FanElementNameModification

Requirement level: Optional

This feature provides support for client modification of the CIM_Fan.ElementName property of a fan.

This feature can be made available to clients at the granularity of Fan instances.

It can be concluded that the feature is available for a Fan instance if:

- The following OCL derivation constraint evaluates to a Boolean value of True.

  OCL context: A Fan instance.

      derive: self.ElementCapabilities::Capabilities.ElementNameEditSupported = true

Otherwise, it can be concluded that the feature is not available.

### Feature: FanStateManagement

Requirement level: Optional

This feature provides support for client management of the state of a fan.

This feature can be made available to clients at the granularity of Fan instances.

It can be concluded that the feature is available for a Fan instance if:

- The following OCL derivation constraint evaluates to a Boolean value of True.

  OCL context: A Fan instance.

      derive: self.ElementCapabilities::Capabilities.RequestedStatesSupported->size() > 0

Otherwise, it can be concluded that the feature is not available.

### Feature: SettingFanSpeed

Requirement level: Optional

This feature provides support for setting the speed of a fan, via the CIM_Fan.SetSpeed() method.

This feature can be made available to clients at the granularity of Fan instances.

Availability of this feature cannot be discovered by clients (other than trying the functionality provided by the feature).

### Feature: FanIndications

Requirement level: Optional

Design Note: This feature has been defined to demonstrate the grouping of indication implementation decisions under one point of decision; this features is not part of DSP1013 1.0. Note, a profile is free to define more granular features for indications, or to define indications without usage of any feature for grouping purposes.

This feature provides support for indications related to a fan.

This feature can be made available to clients at the granularity of an implementation of this profile.

Availability of this feature cannot be discovered by clients (other than trying the functionality provided by the feature).

## Adaptations

### Conventions

This profile defines operation requirements based on DSP0223.

For adaptations of ordinary classes and of associations, the requirements for operations are defined in adaptation-specific subclauses of subclause Adaptations.

For association traversal operation requirements that are specified only in the elements table of an adaptation (i.e., without operation-specific subclauses), the names of the association adaptations to be traversed are listed in the elements table.

The default initialization requirement level for property requirements is optional.

The default modification requirement level for property requirements is optional.

This profile repeats the effective values of certain Boolean qualifiers as part of property, method parameter, or method return value requirements. The following convention is established: If the name of a qualifier is listed, its effective value is True; if the qualifier name is not listed, its effective value is False. The convention is applied in the following cases:

- In: indicates that the parameter is an input parameter
- Out: indicates that the parameter is an output parameter
- Key: indicates that the property is a key (that is, its value is part of the instance path)
- Required: indicates that the element value shall be non-Null
- Null OK: indicates explicitly that the element value may be Null for mandatory, conditional or conditional exclusive properties. This information is not specified as a qualifier in the schema but as an indicator in the profile.

### Adaptation: ComputerSystem: CIM_ComputerSystem

This adaptation does not define a model description.

Adaptation type: Ordinary class

Implementation type: Instantiated

Requirement level: Mandatory

ComputerSystem: Element requirements
Element | Requirement | Description
--- | --- | ---
Operations
Associators( ) | Mandatory |
AssociatorNames( ) | Mandatory |
References( ) | Mandatory |
ReferenceNames( ) | Mandatory |

### Adaptation: SystemDevice: CIM_SystemDevice

#### General

Adaptation type: Association class

Implementation type: Instantiated

Requirement level: Mandatory

This adaptation does not define a model description.

SystemDevice: Element requirements
Element | Requirement | Description
--- | --- | ---
Properties
GroupComponent | Mandatory | Key, see subclause "Property: GroupComponent"
PartComponent | Mandatory | Key, see subclause "Property: PartComponent"
Operations
GetInstance( ) | Mandatory |

#### Property: GroupComponent

Requirement level: Mandatory

Reference kind: REF-typed

Constraints:

- Referenced instances shall be of class adaptation ComputerSystem.
- The multiplicity of this association end is 1 .. 1

#### Property: PartComponent

Requirement level: Mandatory

Reference kind: REF-typed

Constraints:

- Referenced instances shall be of class adaptation Fan.
- The multiplicity of this association end is 1 .. *

### Adaptation: FanMetricDefinition: CIM_BaseMetricDefinition

Design Note: This adaptation has been defined to demonstrate the definition of metrics through a metric definition; it is not part of DSP1013 1.0.

This adaptation models metric definitions for fans.

Adaptation type: Ordinary class

Implementation type: Instantiated

Requirement level: Optional

FanMetricDefinition: Element requirements
Element | Requirement | Description
--- | --- | ---
Base adaptations
BaseMetric::BaseMetricDefinition | Optional | See BaseMetric::BaseMetricDefinition.
Metrics
Sample::Metric1 | Optional | Sample metric #1

### Adaptation: Fan: CIM_Fan

#### General

Adaptation type: Ordinary class

Implementation type: Instantiated

Requirement level: Mandatory

This adaptation models fans in the managed environment.

Design Note: This adaptation defines an additional base adaptation 'MonitoredElement' and a metric 'Metric2' to demonstrate the definition of metrics; this is not part of DSP1013 1.0.

Each fan in the managed environment should be represented by a Fan instance.

Constraints:

- OCL constraint in the context of a Fan instance:

      inv:
      ( mrpIsFeatureSupported('FanCapabilities',self) or
        mrpIsFeatureSupported('FanElementNameModification',self) )
      implies
              self.cIM_ElementCapabilities.Capabilities->size() = 1

  Explanation:

  If the FanCapabilities feature or the FanElementNameModification feature are supported for a fan, then there shall be one FanCapabilities instance associated via ElementCapabilities to the Fan instance representing that fan.

- OCL constraint in the context of a Fan instance:

      inv:
      self.SystemDevice.ComputerSystem->size() = 1

  Explanation:

  There shall be one ComputerSystem instance associated via SystemDevice to the Fan instance representing that fan.

- OCL constraint in the context of a Fan instance:

      inv:
      mrpIsFeatureSupported('FanRedundancyByBalancing',self) or
      mrpIsFeatureSupported('FanRedundancyBySparing',self)
      implies
          let rgfans : Set(Fan) =
              self.MemberOfCollection.Collection.MemberOfCollection.Member
              /* rgfans is the set of fans in the redundancy group of the
                 current redundant fan (i.e. self) */
          in
              if mrpIsFeatureSupported('PartialCooling',self)
              then rgfans->forall( rgfan |
                  rgfan.AssociatedCooling.Dependent =
                      self.AssociatedCooling.Dependent)
              else rgfans->forall( rgfan |
                  rgfan.SystemDevice.System =
                      self.SystemDevice.System)
              endif

  Explanation:

  If feature 'fan redundancy' is supported for a fan and feature 'partial cooling' is supported for the same fan, the CIM_Fan instances in the redundancy group of that fan shall be associated with the same CIM_ManagedSystemElement instance through CIM_AssociatedCooling associations.

  If feature 'fan redundancy' is supported for a fan and feature 'partial cooling' is not supported for the same fan, the CIM_Fan instances in the redundancy group of that fan shall be associated with the same CIM_ComputerSystem instance through CIM_SystemDevice associations.

Fan: Element requirements
Element | Requirement | Description
--- | --- | ---
Base adaptations
SpeedSensors::SensoredElement | Optional | See SpeedSensors::SensoredElement.
PhysicalAsset::PackagedElement | Optional | See PhysicalAsset::PackagedElement.
BaseMetric::MonitoredElement | Optional | See BaseMetric::MonitoredElement.
Metrics
Sample::Metric2 | Optional | Sample metric #2
Properties
SystemCreationClassName | Mandatory | Key
SystemName | Mandatory | Key
CreationClassName | Mandatory | Key
DeviceID | Mandatory | Key
OperationalStatus | Mandatory |
HealthState | Mandatory |
VariableSpeed | Mandatory |
DesiredSpeed | Mandatory | See subclause "Property: DesiredSpeed"
ActiveCooling | Mandatory | See subclause "Property: ActiveCooling"
EnabledState | Mandatory | See subclause "Property: EnabledState"
RequestedState | Mandatory | See subclause "Property: RequestedState"
ElementName | Mandatory | See subclause "Property: ElementName"
Methods
RequestStateChange( ) | Conditional | See subclause "Method: RequestStateChange( )"
SetSpeed( ) | Conditional | See subclause "Method: SetSpeed( )"
Operations
GetInstance( ) | Mandatory |
EnumerateInstances( ) | Mandatory |
EnumerateInstanceNames( ) | Mandatory |
ModifyInstance( ) | Conditional | See subclause "Operation: ModifyInstance( )"
Associators( ) | Mandatory |
AssociatorNames( ) | Mandatory |
References( ) | Mandatory |
ReferenceNames( ) | Mandatory |

#### Property: DesiredSpeed

Requirement level: Mandatory

If setting the fan speed is supported, the meaning of the value 0 is that no change in fan speed has been requested.

If setting the fan speed is not supported, the value of this property is meaningless.

Constraints:

- OCL constraint in the context of a Fan instance:

      init:
      mrpIsFeatureSupported('SettingFanSpeed',self)
      implies
              self.DesiredSpeed = 0

  Explanation:

  If setting the fan speed is supported for the fan, the initial value of DesiredSpeed shall be 0.

- OCL constraint in the context of a Fan instance:

      inv:
      not mrpIsFeatureSupported('SettingFanSpeed',self)
      implies
              self.DesiredSpeed = 0

  Explanation:

  If setting the fan speed is not supported for the fan, the value of DesiredSpeed shall be 0.

#### Property: ActiveCooling

Requirement level: Mandatory

Constraint:

OCL constraint in the context of a Fan instance:

    inv:
    self.ActiveCooling = True

Explanation:

ActiveCooling shall match True.

#### Property: EnabledState

Requirement level: Mandatory

describes the mapping between the EnabledState property values and the corresponding description of the state of the fan.

EnabledState Value Description
Value | Description | Extended Description
2 | Enabled | The fan shall be turned on.
3 | Disabled | The fan shall be turned off.
5 | Not Applicable | The fan state is indeterminate, or fan state management is not supported.

The value of the EnabledState property may change as the result of a change to the fan's enabled state by a non-CIM implementation.

#### Property: RequestedState

Requirement level: Mandatory

Constraints:

- OCL constraint in the context of a Fan instance:

      inv:
      mrpIsFeatureSupported('FanStateManagement',self)
      implies
              Set { 5 /* No Change */, 12 /* Not Applicable */ }->
                      union( self.ElementCapabilities.Capabilities->
                      asOrderedSet()->at(1).RequestedStatesSupported)->
                      includes(self.RequestedState)

  Explanation:

  If feature 'FanStateManagement' is supported for a fan, the value of RequestedState shall be 5 (No Change), 12 (Not Applicable), or one of the values in the RequestedStatesSupported array of the associated CIM_EnabledLogicalElementCapabilities instance.

- OCL constraint in the context of a Fan instance:

      inv:
      not mrpIsFeatureSupported('FanStateManagement',self)
      implies
              self.RequestedState = 12 /* Not Applicable */

  Explanation:

  If feature 'fan state management' is not supported for a fan, the value of the RequestedState property shall be 12 (Not Applicable).

- OCL constraint in the context of a Fan instance:

      init:
      mrpIsFeatureSupported('FanStateManagement',self)
      implies
              self.RequestedState = 5 /* No Change */

  Explanation:

  If feature 'FanStateManagement' is supported for a fan, the initial value of RequestedState shall be 5 (No Change).

- OCL constraint in the context of a Fan instance:

      inv:
      not mrpIsFeatureSupported('FanStateManagement',self)
      implies
              self.RequestedState = 12 /* Not Applicable */

  Explanation:

  If feature 'FanStateManagement' is not supported for a fan, the value of the RequestedState property shall be 12 (Not Applicable).

- OCL constraint in the context of a Fan instance:

      inv:
      not mrpIsFeatureSupported('FanStateManagement',self)
      implies
              self.RequestedState = 12 /* Not Applicable */

  Explanation:

  If feature 'fan state management' is supported for a fan, the value of the RequestedState property shall be 12 (Not Applicable).

#### Property: ElementName

Requirement level: Mandatory

Constraint:

OCL constraint in the context of a Fan instance:

    inv:
    self.ElementCapabilities.Capabilities.
        ElementNameEditSupported = True
    implies
        self.ElementName.isModifiable()

Explanation:

The ElementName property shall be modifiable when the ElementNameEditSupported property of the CIM_EnabledLogicalElementCapabilities instance that is associated with the CIM_Fan instance has a value of True.

#### Method: RequestStateChange( )

Requirement level: Conditional

Condition:

The FanStateManagement feature is implemented.

Design Note: This method defines error reporting requirements based on standard messages. It represents the error situations 'method not supported' and 'timeout' as errors, instead of as return values as defined in DSP1013 1.0.

If feature 'fan state management' is supported, the method shall be implemented.

When the RequestStateChange() method does not complete successfully and the fan is in an indeterminate state, the EnabledState property shall have a value of 5 (Not Applicable).

Invocation of the RequestStateChange() method changes the fan's state to the value specified in the RequestedState parameter.

Invoking this method multiple times may result in earlier requests being overwritten or lost.

Constraints:

- OCL constraint in the context of a Fan instance:

      pre:
      Set { 2 /* Enabled */, 3 /* Disabled */, 11 /* Reset */ }->
          includes(self.RequestStateChange.RequestedState)

  Explanation:

  The RequestedState parameter shall have one of the following values: 2 (Enabled), 3 (Disabled), 11 (Reset).

- OCL constraint in the context of a Fan instance:

      post:
      self.RequestedState = self.RequestStateChange.RequestedState

  Explanation:

  After successful completion of the RequestStateChange() method, the RequestedState property of the CIM_Fan instance for which the method was invoked, shall have the value specified in the RequestedState parameter.

- OCL constraint in the context of a Fan instance:

      post:
      self.IsSpare->size() > 0 and
          self.RequestStateChange.RequestedState = 3 /* Disabled */
      implies
              self.IsSpare.SpareStatus = 3 /* Cold Standby */

  Explanation:

  After successful completion of the RequestStateChange() method on a CIM_Fan instance representing a spare fan with the RequestedState parameter set to 3 (Disabled), the SpareStatus property of the CIM_IsSpare association referencing this CIM_Fan instance shall have a value of 3 (Cold Standby).

RequestStateChange( ): Parameter requirements
Parameter | Description
--- | ---
RequestedState | In. For valid values, see method constraints.
Job | Out, see subclause "Parameter: Job"
TimeoutPeriod | In, see subclause "Parameter: TimeoutPeriod"
Return value | See subclause "Return value"

RequestStateChange( ): Error reporting requirements
Reporting mechanism | Requirement level | Description
--- | --- | ---
WBEMOperations::WIPG0208, Platform::PLAT9001 | Mandatory | The requested state is not supported for the fan. Design Note: The messages are: WIPG0208: Invalid input parameter value PLAT9001(example): Requested state not supported for the element
WBEMOperations::WIPG0208, Platform::PLAT9002 | Mandatory | A non-Null value for the Timeout parameter is not supported. Design Note: The messages are: WIPG0208: Invalid input parameter value PLAT9002(example): Timeout not supported for the method
WBEMOperations::WIPG0219 | Mandatory | Method is not implemented. Note: This error situation and its reporting through this message is defined already in DSP0223. This error situation is listed in this table only because it was reported through a return value in earlier versions of this profile. Design Note: The messages are: WIPG0219: Method not supported by class implementation
WBEMOperations::WIPG0227, Platform::PLAT9003 | Mandatory | Fan cannot be disabled due to excessive temperature. The detail text of WIPG0227 should be omitted or should indicate that the next message details the error. Design Note: The messages are: WIPG0227: Other failure PLAT9003(example): Fan cannot be disabled due to excessive temperature
WBEMOperations::WIPG0227 | Mandatory | Any other failure. As defined in WIPG0227, the failure shall be described in its detail text. Note: This error situation and its reporting through this message is defined already in DSP0223. This error situation is listed in this table only because it was reported through a return value in earlier versions of this profile. Design Note: The messages are: WIPG0227: Other failure
CIM_ERR_SERVER_LIMITS_EXCEEDED | Mandatory | More element changes are under way than the configured limit of concurrent changes, or there is a resource shortage in the WBEM server. Design Note: This error situation demonstrates the possibility of mixing the usage of CIM status codes and messages. It is not recommended to define such a mixed usage in a single profile, but it may happen in merged profiles.

##### Parameter: RequestedState

For valid values, see method constraints.

##### Parameter: Job

A non-Null instance path is returned if a job was started. If no job was started, Null is returned.

Constraint:

Referenced instances shall be of class adaptation ConcreteJobProfile Error: A class adaptation "ConcreteJob" is referenced in a class adaptation link but is not defined or is defined more than once in this profile..

##### Parameter: TimeoutPeriod

Client-specified maximum amount of time the transition to a new state is supposed to take:

- 0 or Null – No maximum time is specified
- Non-Null – The value specifies the maximum time allowed

##### Return value

This method shall return one of the following return values:

RequestStateChange: Return values
Value | Description
--- | ---
0 | The state change was successfully performed.
1 | The method is not implemented.
2 | An error has occurred.
4096 | The request to change the state is being executed asynchronously, and the Job parameter references a ConcreteJobProfile Error: A class adaptation "ConcreteJob" is referenced in a class adaptation link but is not defined or is defined more than once in this profile. instance representing the request.

#### Method: SetSpeed( )

Requirement level: Conditional

Condition:

The SettingFanSpeed feature is implemented.
If the feature is not supported, the method shall not be implemented or shall return a value of 1 (Not Supported).

The SetSpeed() method requests that the speed of the fan represented by CIM_Fan be set to the value specified in the method's DesiredSpeed input parameter.

Constraints:

- OCL constraint in the context of a Fan instance:

      body:
      if (self.VariableSpeed = false or
          self.EnabledState = 3 /* Disabled */ )
      then 1 /* Not Supported */

  Explanation:

  When the CIM_Fan.VariableSpeed property has a value of FALSE or the CIM_Fan.EnabledState property has a value of 3 (Disabled), the CIM_Fan.SetSpeed() method shall return a value of 1 (Not Supported).

- OCL constraint in the context of a Fan instance:

      post:
      self.DesiredSpeed = self.SetSpeed.Speed

  Explanation:

  When the CIM_Fan.SetSpeed() method successfully executed, the DesiredSpeed property shall be the value of the Speed parameter of the SetSpeed() method.

SetSpeed( ): Parameter requirements
Parameter | Description
--- | ---
DesiredSpeed | In. The parameter shall be specified in a unit of RPMs (revolutions per minute)
Return value | See subclause "Return value"

##### Parameter: DesiredSpeed

The parameter shall be specified in a unit of RPMs (revolutions per minute)

##### Return value

This method shall return one of the following return values:

SetSpeed: Return values
Value | Description
--- | ---
0 | The speed change was successfully performed.
1 | The method is not implemented.
2 | An error has occurred. Note, the meaning of this value differs from the definition in the CIM schema.

dummy

#### Operation: ModifyInstance( )

Requirement level: Conditional

Condition:

The FanElementNameModification feature is implemented.

### Adaptation: FanCapabilities: CIM_EnabledLogicalElementCapabilities

#### General

Adaptation type: Ordinary class

Implementation type: Instantiated

Requirement level: Conditional

Condition:

The FanCapabilities feature is implemented.
This adaptation models the capabilities of fans modeled with Fan .

FanCapabilities: Element requirements
Element | Requirement | Description
--- | --- | ---
Properties
InstanceID | Mandatory | Key
RequestedStatesSupported | Mandatory | See subclause "Property: RequestedStatesSupported"
ElementNameEditSupported | Mandatory | See subclause "Property: ElementNameEditSupported"
MaxElementNameLen | Conditional | See subclause "Property: MaxElementNameLen"
Operations
GetInstance( ) | Mandatory |
EnumerateInstances( ) | Mandatory |
EnumerateInstanceNames( ) | Mandatory |
Associators( ) | Mandatory |
AssociatorNames( ) | Mandatory |
References( ) | Mandatory |
ReferenceNames( ) | Mandatory |

#### Property: RequestedStatesSupported

Requirement level: Mandatory

Constraint:

OCL constraint in the context of a FanCapabilities instance:

    inv:
    if mrpIsFeatureSupported('fan ElementName modification',
        self.cIM_ElementCapabilities.Element)
    then self.RequestedStatesSupported =
        Set { 2 /* Enabled */, 3 /* Disabled */, 11 /* Reset */ } )
    else self.RequestedStatesSupported->isEmpty() )

Explanation:

If feature 'fan ElementName modification' is supported, the RequestedStatesSupported array property shall contain any combination of the values: 2 (Enabled), 3 (Disabled), 11 (Reset). If feature 'fan ElementName modification' is not supported, the RequestedStatesSupported property shall be an empty array.

#### Property: ElementNameEditSupported

Requirement level: Mandatory

Constraint:

OCL constraint in the context of a FanCapabilities instance:

    inv:
    mrpIsFeatureSupported('fan ElementName modification',
        self.cIM_ElementCapabilities.Element)
    implies
            self.ElementNameEditSupported = True

Explanation:

If client modification of the CIM_Fan.ElementName property is supported, the ElementNameEditSupported property shall have a value of True.

#### Property: MaxElementNameLen

Requirement level: Conditional

Condition:

The FanElementNameModification feature is implemented.

### Adaptation: ElementCapabilities: CIM_ElementCapabilities

#### General

Adaptation type: Association class

Implementation type: Instantiated

Requirement level: Conditional

Condition:

The FanCapabilities feature is implemented.

This adaptation does not define a model description.

ElementCapabilities: Element requirements
Element | Requirement | Description
--- | --- | ---
Properties
ManagedElement | Mandatory | Key, see subclause "Property: ManagedElement"
Capabilities | Mandatory | Key, see subclause "Property: Capabilities"
Operations
GetInstance( ) | Mandatory |

#### Property: ManagedElement

Requirement level: Mandatory

Reference kind: REF-typed

Shall reference an instance of CIM_Fan representing the fan.

Constraints:

- Referenced instances shall be of class adaptation Fan.
- The multiplicity of this association end is 1 .. *Profile Error: Reference "ManagedElement" defined in association class adaptation "ElementCapabilities" constrains its maximum multiplicity to "unbounded", which is invalid because it is greater than the maximum multiplicity "1" defined in schema association class "CIM_ElementCapabilities".

#### Property: Capabilities

Requirement level: Mandatory

Reference kind: REF-typed

Shall reference an instance of CIM_EnabledLogicalElementCapabilities that describes the capabilities of CIM_Fan.

Constraints:

- Referenced instances shall be of class adaptation FanCapabilities.
- The multiplicity of this association end is 0 .. 1

### Adaptation: CooledElement: CIM_ManagedSystemElement

This adaptation does not define a model description.

Adaptation type: Ordinary class

Implementation type: Instantiated

A concrete subclass of the abstract schema class CIM_ManagedSystemElement needs to be implemented.

Requirement level: Conditional

Condition:

The PartialCooling feature is implemented.

CooledElement: Element requirements
Element | Requirement | Description
--- | --- | ---
Operations
Associators( ) | Mandatory |
AssociatorNames( ) | Mandatory |
References( ) | Mandatory |
ReferenceNames( ) | Mandatory |

### Adaptation: AssociatedCooling: CIM_AssociatedCooling

#### General

Adaptation type: Association class

Implementation type: Instantiated

Requirement level: Conditional

Condition:

The PartialCooling feature is implemented.

This adaptation does not define a model description.

The managed system element for which the fan provides cooling is represented by the CIM_Fan instance that is associated with a CIM_ManagedSystemElement subclass instance through the CIM_AssociatedCooling association. When no instance of CIM_AssociatedCooling references the instance of CIM_Fan, the fan represented by CIM_Fan cools the whole managed system represented by the CIM_System instance associated with the CIM_Fan instance via CIM_SystemDevice. When at least one instance of CIM_AssociatedCooling references the instance of CIM_Fan, the elements cooled by the fan shall be only those referenced by the CIM_AssociatedCooling association and not the whole managed system.

AssociatedCooling: Element requirements
Element | Requirement | Description
--- | --- | ---
Properties
Antecedent | Mandatory | Key, see subclause "Property: Antecedent"
Dependent | Mandatory | Key, see subclause "Property: Dependent"
Operations
GetInstance( ) | Mandatory |

#### Property: Antecedent

Requirement level: Mandatory

Reference kind: REF-typed

Shall reference an instance of CIM_Fan representing the fan.

Constraints:

- Referenced instances shall be of class adaptation Fan.
- The multiplicity of this association end is 1 .. *

#### Property: Dependent

Requirement level: Mandatory

Reference kind: REF-typed

Shall reference an instance of a subclass of CIM_ManagedSystemElement for which the fan is providing cooling.

Constraints:

- Referenced instances shall be of class adaptation CooledElement.
- The multiplicity of this association end is 1 .. *

### Adaptation: FanRedundancySet: CIM_RedundancySet

#### General

Adaptation type: Ordinary class

Implementation type: Instantiated

Requirement level: Conditional

Condition:

At least one of the following is true:

- The FanRedundancyBySparing feature is implemented.
- The FanRedundancyByBalancing feature is implemented.

This adaptation models fan redundancy groups for which the feature 'fan redundancy' is implemented.

FanRedundancySet: Element requirements
Element | Requirement | Description
--- | --- | ---
Properties
InstanceID | Mandatory | Key
RedundancyStatus | Mandatory |
TypeOfSet | Mandatory | See subclause "Property: TypeOfSet"
MinNumberNeeded | Mandatory | See subclause "Property: MinNumberNeeded"
ElementName | Mandatory | See subclause "Property: ElementName"
Methods
Failover( ) | Optional | See subclause "Method: Failover( )"
Operations
GetInstance( ) | Mandatory |
EnumerateInstances( ) | Mandatory |
EnumerateInstanceNames( ) | Mandatory |
Associators( ) | Mandatory |
AssociatorNames( ) | Mandatory |
References( ) | Mandatory |
ReferenceNames( ) | Mandatory |

#### Property: TypeOfSet

Requirement level: Mandatory

Constraints:

- OCL constraint in the context of a FanRedundancySet instance:

      inv:
      mrpIsFeatureSupported('fan redundancy type \'load-balanced\'',self)
      implies
          self.TypeOfSet->forall( v | Set { 3 /* Load Balanced */,
              2 /* N+1 */ }->includes(v))

  Explanation:

  If feature 'fan redundancy type "load-balanced"' is supported for a fan redundancy group represented by a CIM_RedundancySet instance, its TypeOfSet array property shall contain the values 3 (Load Balanced), 2 (N+1), or both, and shall not contain any other values.

- OCL constraint in the context of a FanRedundancySet instance:

      inv:
      mrpIsFeatureSupported('fan redundancy type \'sparing\'',self)
      implies
          self.TypeOfSet->forall( v | Set { 4 /* Sparing */,
              5 /* Limited Sparing */ }->includes(v))

  Explanation:

  If feature 'fan redundancy type "sparing"' is supported for a fan redundancy group represented by a CIM_RedundancySet instance, its TypeOfSet array property shall contain the values 4 (Sparing), 5 (Limited Sparing), or both, and shall not contain any other values.

#### Property: MinNumberNeeded

Requirement level: Mandatory

Shall match 0 when the minimum number of fans needed for the redundancy is unknown.

#### Property: ElementName

Requirement level: Mandatory

Shall be formatted as a free-form string of variable length, using the pattern ".*".

#### Method: Failover( )

Requirement level: Optional

The Failover() method forces a failover from one member of a CIM_RedundancySet collection to another. After the successful execution of the method, the fan that is represented by the CIM_Fan instance referenced by the FailoverFrom parameter becomes inactive. The fan that is represented by the CIM_Fan instance referenced by the FailoverTo parameter takes over as the active fan.

The Failover() method may be supported if the FailoverSupported property of at least one instance of CIM_IsSpare that references the CIM_RedundancySet instance has a value of 3 (Manual) or 4 (Both Manual and Automatic). The Failover() method shall not be supported if the FailoverSupported property of every instance of CIM_IsSpare that references the CIM_RedundancySet has a value of 2 (Automatic).

The execution of the Failover() method shall return a value of 2 (Error Occurred) under the following conditions:

- The CIM_Fan instance that is referenced by the FailoverTo parameter is not a spare fan .
- The CIM_Fan instance that is referenced by the FailoverFrom parameter is not associated with the CIM_RedundancySet only through an instance of CIM_MemberOfCollection.

After the successful execution of the Failover() method, the following actions occur:

- The CIM_Fan that is referenced by the FailoverTo parameter shall take over as the active fan.
- The CIM_Fan instance that is referenced by the FailoverTo parameter shall be associated with the CIM_RedundancySet only through an instance of CIM_MemberOfCollection.
- The CIM_Fan instance that is referenced by FailoverFrom parameter shall become a spare fan .
- When fan state management is supported, the CIM_Fan instance that is referenced by the FailoverFrom parameter shall not have an EnabledState property value of 2 (Enabled).

Failover( ): Parameter requirements
Parameter | Description
--- | ---
FailoverFrom | In, see subclause "Parameter: FailoverFrom"
FailoverTo | In, see subclause "Parameter: FailoverTo"
Return value | See subclause "Return value"

##### Parameter: FailoverFrom

The redundant fan that will become inactive.

Constraint:

Referenced instances shall be of class adaptation Fan.

##### Parameter: FailoverTo

The redundant fan that will become active and take over for the inactivated fan.

Constraint:

Referenced instances shall be of class adaptation Fan.

##### Return value

This method shall return one of the following return values:

Failover: Return values
Value | Description
--- | ---
0 | The failover was successfully performed.
1 | The method is not implemented.
2 | An error has occurred.

### Adaptation: OwningCollectionElement: CIM_OwningCollectionElement

#### General

Adaptation type: Association class

Implementation type: Instantiated

Requirement level: Conditional

Condition:

At least one of the following is true:

- The FanRedundancyBySparing feature is implemented.
- The FanRedundancyByBalancing feature is implemented.

This adaptation does not define a model description.

OwningCollectionElement: Element requirements
Element | Requirement | Description
--- | --- | ---
Properties
OwningElement | Mandatory | Key, see subclause "Property: OwningElement"
OwnedElement | Mandatory | Key, see subclause "Property: OwnedElement"
Operations
GetInstance( ) | Mandatory |

#### Property: OwningElement

Requirement level: Mandatory

Reference kind: REF-typed

Constraints:

- Referenced instances shall be of class adaptation ComputerSystem.
- The multiplicity of this association end is 1 .. 1

#### Property: OwnedElement

Requirement level: Mandatory

Reference kind: REF-typed

Constraints:

- Referenced instances shall be of class adaptation FanRedundancySet.
- The multiplicity of this association end is 0 .. *

### Adaptation: HostedRedundancySet: CIM_HostedCollection

#### General

Adaptation type: Association class

Implementation type: Instantiated

Requirement level: Conditional

Condition:

At least one of the following is true:

- The FanRedundancyBySparing feature is implemented.
- The FanRedundancyByBalancing feature is implemented.

This adaptation does not define a model description.

HostedRedundancySet: Element requirements
Element | Requirement | Description
--- | --- | ---
Properties
Antecedent | Mandatory | Key, see subclause "Property: Antecedent"
Dependent | Mandatory | Key, see subclause "Property: Dependent"
Operations
GetInstance( ) | Mandatory |

#### Property: Antecedent

Requirement level: Mandatory

Reference kind: REF-typed

Constraints:

- Referenced instances shall be of class adaptation ComputerSystem.
- The multiplicity of this association end is 1 .. 1

#### Property: Dependent

Requirement level: Mandatory

Reference kind: REF-typed

Constraints:

- Referenced instances shall be of class adaptation FanRedundancySet.
- The multiplicity of this association end is 0 .. *

### Adaptation: MemberOfRedundancySet: CIM_MemberOfCollection

#### General

Adaptation type: Association class

Implementation type: Instantiated

Requirement level: Conditional

Condition:

At least one of the following is true:

- The FanRedundancyBySparing feature is implemented.
- The FanRedundancyByBalancing feature is implemented.

This adaptation does not define a model description.

MemberOfRedundancySet: Element requirements
Element | Requirement | Description
--- | --- | ---
Properties
Collection | Mandatory | Key, see subclause "Property: Collection"
Member | Mandatory | Key, see subclause "Property: Member"
Operations
GetInstance( ) | Mandatory |

#### Property: Collection

Requirement level: Mandatory

Reference kind: REF-typed

Constraints:

- Referenced instances shall be of class adaptation FanRedundancySet.
- The multiplicity of this association end is 0 .. *

#### Property: Member

Requirement level: Mandatory

Reference kind: REF-typed

Constraints:

- Referenced instances shall be of class adaptation Fan.
- The multiplicity of this association end is 1 .. *

### Adaptation: IsSpare: CIM_IsSpare

#### General

Adaptation type: Association class

Implementation type: Instantiated

Requirement level: Conditional

Condition:

The FanRedundancyBySparing feature is implemented.

This adaptation models the relationship between spare fans and their redundancy group.

Constraints:

- OCL constraint in the context of a IsSpare instance:

      inv:
      self.Antecedent.EnabledState = 3 /* Disabled */
      implies
              self.SpareStatus = 3 /* Cold Standby */

  Explanation:

  If the CIM_Fan instance (representing the spare fan ) referenced from this association instance has an EnabledState property value of 3 (Disabled), the value of the referencing CIM_IsSpare instance's SpareStatus property shall be 3 (Cold Standby).

- OCL constraint in the context of a IsSpare instance:

      inv:
      self.Antecedent.EnabledState != 3 /* Disabled */
      implies
              self.SpareStatus = 0 /* Unknown */

  Explanation:

  If the CIM_Fan instance (representing the spare fan ) referenced from this association instance has an EnabledState property value other than 3 (Disabled), the value of the referencing CIM_IsSpare instance's SpareStatus property shall be 0 (Unknown).

IsSpare: Element requirements
Element | Requirement | Description
--- | --- | ---
Properties
Antecedent | Mandatory | Key, see subclause "Property: Antecedent"
Dependent | Mandatory | Key, see subclause "Property: Dependent"
Operations
GetInstance( ) | Mandatory |

#### Property: Antecedent

Requirement level: Mandatory

Reference kind: REF-typed

Constraints:

- Referenced instances shall be of class adaptation Fan.
- The multiplicity of this association end is 1 .. *

#### Property: Dependent

Requirement level: Mandatory

Reference kind: REF-typed

Constraints:

- Referenced instances shall be of class adaptation FanRedundancySet.
- The multiplicity of this association end is 0 .. *

### Adaptation: NumericFanSpeedSensor: CIM_NumericSensor

#### General

Adaptation type: Ordinary class

Implementation type: Instantiated

Requirement level: Conditional

Condition:

The FanSpeedSensor feature is implemented.

Design Note: DSP1013 1.0 defines the requirement level as optional. However, clause 7.10 of DSP1013 1.0 states the condition, so this machine readable profile has consistently defined the requirement level to be conditional.

This adaptation models analog speed sensors .

NumericFanSpeedSensor: Element requirements
Element | Requirement | Description
--- | --- | ---
Base adaptations
SpeedSensors::NumericSensor | Optional | See SpeedSensors::NumericSensor.
Properties
SensorType | Mandatory | See subclause "Property: SensorType"
BaseUnits | Mandatory | See subclause "Property: BaseUnits"
RateUnits | Mandatory | See subclause "Property: RateUnits"
CurrentReading | Mandatory |

#### Property: SensorType

Requirement level: Mandatory

Constraint:

OCL constraint in the context of a NumericFanSpeedSensor instance:

    inv:
    self.SensorType = 5 /* Tachometer */

Explanation:

The value of the SensorType property shall be 5 (Tachometer).

#### Property: BaseUnits

Requirement level: Mandatory

Constraint:

OCL constraint in the context of a NumericFanSpeedSensor instance:

    inv:
    self.BaseUnits = 19 /* RPM */

Explanation:

The value of the BaseUnits property shall be 19 (RPM).

#### Property: RateUnits

Requirement level: Mandatory

Constraint:

OCL constraint in the context of a NumericFanSpeedSensor instance:

    inv:
    self.RateUnits = 0 /* None */

Explanation:

The value of the RateUnits property shall be 0 (None).

### Adaptation: DiscreteFanSpeedSensor: CIM_Sensor

#### General

Adaptation type: Ordinary class

Implementation type: Instantiated

Requirement level: Conditional

Condition:

The FanSpeedSensor feature is implemented.

Design Note: DSP1013 1.0 defines the requirement level as optional. However, clause 7.10 of DSP1013 1.0 states the condition, so this machine readable profile has consistently defined the requirement level to be conditional.

This adaptation models discrete fan speed sensors .

DiscreteFanSpeedSensor: Element requirements
Element | Requirement | Description
--- | --- | ---
Base adaptations
SpeedSensors::DiscreteSensor | Optional | See SpeedSensors::DiscreteSensor.
Properties
SensorType | Mandatory | See subclause "Property: SensorType"

#### Property: SensorType

Requirement level: Mandatory

Constraint:

OCL constraint in the context of a DiscreteFanSpeedSensor instance:

    inv:
    self.SensorType = 5 /* Tachometer */

Explanation:

The value of the SensorType property shall be 5 (Tachometer).

### Adaptation: FanAddedIndication: CIM_InstCreation

This adaptation does not define a model description.

Design Note: This adaptation has been defined to demonstrate the definition of lifecycle indications; it is not part of DSP1013 1.0.

Adaptation type: Indication class

Implementation type: Indication

Requirement level: Conditional

Condition:

The FanIndications feature is implemented.

FanAddedIndication: Element requirements
Element | Requirement | Description
--- | --- | ---
Base adaptations
Indications::LifecycleIndication | Mandatory | See Indications::LifecycleIndication.

### Adaptation: FanRemovedIndication: CIM_InstDeletion

This adaptation does not define a model description.

Design Note: This adaptation has been defined to demonstrate the definition of lifecycle indications; it is not part of DSP1013 1.0.

Adaptation type: Indication class

Implementation type: Indication

Requirement level: Conditional

Condition:

The FanIndications feature is implemented.

FanRemovedIndication: Element requirements
Element | Requirement | Description
--- | --- | ---
Base adaptations
Indications::LifecycleIndication | Mandatory | See Indications::LifecycleIndication.

### Adaptation: FanHealthIndication: CIM_AlertIndication

This adaptation models alert indications for reporting the health state of fans.

Design Note: This adaptation has been defined to demonstrate the definition of alert indications; it is not part of DSP1013 1.0.

Indications related to the redundancy of fans are defined in the FanRedundancyIndication adaptation.

Adaptation type: Indication class

Implementation type: Indication

Requirement level: Conditional

Condition:

The FanIndications feature is implemented.

FanHealthIndication: Element requirements
Element | Requirement | Description
--- | --- | ---
Base adaptations
Indications::AlertIndication | Mandatory | See Indications::AlertIndication.
Alert messages
Platform::PLAT0458 | Mandatory | Fan failed
Platform::PLAT0459 | Mandatory | Fan return to OK
Platform::PLAT0460 | Mandatory | Fan degraded
Platform::PLAT0462 | Mandatory | Fan speed high
Platform::PLAT0463 | Mandatory | Fan speed normal

### Adaptation: FanRedundancyIndication: CIM_AlertIndication

This adaptation models alert indications related to the redundancy of fans.

Design Note: This adaptation has been defined to demonstrate the definition of alert indications; it is not part of DSP1013 1.0.

Adaptation type: Indication class

Implementation type: Indication

Requirement level: Conditional

Condition:

All of the following is true:

- The FanIndications feature is implemented.
- At least one of the following is true:
  - The FanRedundancyByBalancing feature is implemented.
  - The FanRedundancyBySparing feature is implemented.

FanRedundancyIndication: Element requirements
Element | Requirement | Description
--- | --- | ---
Base adaptations
Indications::AlertIndication | Mandatory | See Indications::AlertIndication.
Alert messages
Platform::PLAT0452 | Mandatory | Fan Redundacy Lost (sufficient)
Platform::PLAT0454 | Mandatory | Fan Redundancy Lost (insufficient)
Platform::PLAT0455 | Mandatory | Fan Redundancy Restored

### Adaptation: FanSpeedAlertIndicationFilter: CIM_IndicationFilter

#### General

Adaptation type: Ordinary class

Implementation type: Instantiated

Requirement level: Conditional

Condition:

The FanIndications feature is implemented.

This adaptation does not define a model description.

A static filter for the fan speed related alert indications.

Design Note: This adaptation has been defined to demonstrate the definition of an indication specific (i.e. static) indication filter for certain alert indications; it is not part of DSP1013 1.0.

FanSpeedAlertIndicationFilter: Element requirements
Element | Requirement | Description
--- | --- | ---
Base adaptations
Indications::IndicationSpecificIndicationFilter | Mandatory | See Indications::IndicationSpecificIndicationFilter.
Properties
Name | Mandatory | Key, see subclause "Property: Name"
Query | Mandatory | Required, see subclause "Property: Query"
QueryLanguage | Mandatory | Required, see subclause "Property: QueryLanguage"

#### Property: Name

Requirement level: Mandatory

Constraint:

OCL constraint in the context of a FanSpeedAlertIndicationFilter instance:

    inv: self.Name = 'DMTF:Fan:SpeedAlertIndicationFilter'

#### Property: Query

Requirement level: Mandatory

Constraint:

OCL constraint in the context of a FanSpeedAlertIndicationFilter instance:

    inv: self.Query = 'SELECT * FROM CIM_AlertIndication WHERE MessageID IN ( "PLAT0462", "PLAT0463")'

#### Property: QueryLanguage

Requirement level: Mandatory

Constraint:

OCL constraint in the context of a FanSpeedAlertIndicationFilter instance:

    inv: self.QueryLanguage = 'DMTF:CQL'

### Adaptation: FanAddedLifecycleIndicationFilter: CIM_IndicationFilter

#### General

Adaptation type: Ordinary class

Implementation type: Instantiated

Requirement level: Conditional

Condition:

The FanIndications feature is implemented.

This adaptation does not define a model description.

A static filter for the fan added lifecycle indication.

Design Note: This adaptation has been defined to demonstrate the definition of an indication specific (i.e. static) indication filter for a single lifecycle indication; it is not part of DSP1013 1.0.

FanAddedLifecycleIndicationFilter: Element requirements
Element | Requirement | Description
--- | --- | ---
Base adaptations
Indications::IndicationSpecificIndicationFilter | Mandatory | See Indications::IndicationSpecificIndicationFilter.
Properties
Name | Mandatory | Key, see subclause "Property: Name"
Query | Mandatory | Required, see subclause "Property: Query"
QueryLanguage | Mandatory | Required, see subclause "Property: QueryLanguage"

#### Property: Name

Requirement level: Mandatory

Constraint:

OCL constraint in the context of a FanAddedLifecycleIndicationFilter instance:

    inv: self.Name = 'DMTF:Fan:AddedLifecycleIndicationFilter'

#### Property: Query

Requirement level: Mandatory

Constraint:

OCL constraint in the context of a FanAddedLifecycleIndicationFilter instance:

    inv: self.Query = 'SELECT * FROM CIM_InstCreation WHERE SourceInstance ISA CIM_Fan'

#### Property: QueryLanguage

Requirement level: Mandatory

Constraint:

OCL constraint in the context of a FanAddedLifecycleIndicationFilter instance:

    inv: self.QueryLanguage = 'DMTF:CQL'

# Use cases and state descriptions

## State description: ObjectDiagram

Section 9.1 of Fan Profile (DSP1013) would be inserted here.

## Use case: SetFanSpeed

Section 9.2 of Fan Profile (DSP1013) would be inserted here.

The main flow for this use case consists of the following step:

- Steps from Section 9.2

## Use case: ResetFan

Section 9.3 of Fan Profile (DSP1013) would be inserted here.

The main flow for this use case consists of the following step:

- Steps from Section 9.3

## Use case: GetFanRedundancyStatus

Section 9.4 of Fan Profile (DSP1013) would be inserted here.

The main flow for this use case consists of the following step:

- Steps from Section 9.4

## Use case: FindSpareFan

Section 9.5 of Fan Profile (DSP1013) would be inserted here.

The main flow for this use case consists of the following step:

- Steps from Section 9.5

## Use case: ShowFanSensorInfo

Section 9.6 of Fan Profile (DSP1013) would be inserted here.

The main flow for this use case consists of the following step:

- Steps from Section 9.6

## Use case: FindCooledElements

Section 9.7 of Fan Profile (DSP1013) would be inserted here.

The main flow for this use case consists of the following step:

- Steps from Section 9.7

## Use case: DetermineElementNameModifiability

Section 9.8 of Fan Profile (DSP1013) would be inserted here.

The main flow for this use case consists of the following step:

- Steps from Section 9.8

#
(informative)
Change log

Version | Date | Description
--- | --- | ---
1.0.0a | 2006-06-13 | DSP1013: Released as a Preliminary Standard
1.0.0 | 2007-10-12 | DSP1013: Released as a Final Standard
1.0.1 | 2008-09-23 | DSP1013: Released as a Final Standard
1.0.2m | 2011-08-31 | XMP1013: Included as a sample profile into DSP2023

# Bibliography

This clause lists references that are helpful for the application of this document.

DMTF DSP1000, Management Profile Specification Template 1.1,
http://www.dmtf.org/standards/published_documents/DSP1000_1.1.pdf

Internal Error: The tocgen.js script failed (or did not run at all).