summaryrefslogtreecommitdiffstats
path: root/doc/admin/fan/dmtf.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/admin/fan/dmtf.rst')
-rw-r--r--doc/admin/fan/dmtf.rst144
1 files changed, 144 insertions, 0 deletions
diff --git a/doc/admin/fan/dmtf.rst b/doc/admin/fan/dmtf.rst
new file mode 100644
index 0000000..cb8234d
--- /dev/null
+++ b/doc/admin/fan/dmtf.rst
@@ -0,0 +1,144 @@
+.. _dmtf_profiles:
+
+DMTF profiles
+=============
+*OpenLMI Fan* provider implements *Fan Profile*
+
+Fan Profile
+--------------------------
+Implemented *DMTF* version: ``1.0.1``
+
+Described by `DSP1013`_
+
+It defines the classes used to describe the fans and the possible redundancy
+of the fans in a managed system. The document also defines association
+classes that describe the relationship of the fan to the fan’s physical
+aspects (such as FRU data) to the sensors monitoring the fans, to other
+cooling devices, to redundancy status, and to DMTF profile version
+information. The information in this specification is intended to be
+sufficient for a provider or consumer of this data to identify unambiguously
+the classes, properties, methods, and values that are mandatory to be
+instantiated and manipulated to represent and manage fans and redundant fans
+of managed systems and subsystems that are modeled using the DMTF CIM core
+and extended model definitions.
+
+Not implemented features
+~~~~~~~~~~~~~~~~~~~~~~~~
+*DMTF* profile defines many classes that are not instrumented due to
+limitations of low level libraries giving informations about fans.
+Here is a list of not implemented classes:
+
+ ``CIM_ManagedSystemElement``
+ Models the piece of hardware being cooled by particular fan. It's
+ associated with :ref:`LMI_Fan<LMI-Fan>` through ``CIM_AssociatedColling`` which
+ is also not instrumented.
+
+ ``CIM_RedundancySet``
+ Represents redundacy of fans belonging to particular computer
+ system. It's associated with :ref:`LMI_Fan<LMI-Fan>` through
+ ``CIM_MemberOfCollection`` and ``CIM_IsSpare`` associations.
+ There is no way how to detect whether the fan is spare or not.
+
+Classes that shall be implemented
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+There are still classes missing implementation and are planned to
+be delivered in future versions.
+
+ ``CIM_SystemDevice``
+ Associates :ref:`LMI_Fan<LMI-Fan>` to ``CIM_ComputerSystem``.
+
+ ``CIM_EnabledLogicalElementCapacilities``
+ Represents the capabilities of associated fan. It's associated
+ to :ref:`LMI_Fan<LMI-Fan>` through ``CIM_ElementCapabilities``.
+
+Not implemented optional features
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+*Physical Asset* association from :ref:`LMI_Fan<LMI-Fan>` to ``CIM_PhysicalPackage``
+through ``CIM_Realizes`` association class is not instrumented.
+This is an optional feature. It may be implemented later.
+
+*Physical Asset* is a related profile implemented by *OpenLMI Hardware*
+provider.
+
+Class overview
+~~~~~~~~~~~~~~
+
+ +---------------------------------------------------------+---------------------------------------------------+------------------+
+ | Class-name | Parent_class | Type |
+ +=========================================================+===================================================+==================+
+ | :ref:`LMI_Fan<LMI-Fan>` | :ref:`CIM_Fan<CIM-Fan>` | Plain |
+ +---------------------------------------------------------+---------------------------------------------------+------------------+
+ | :ref:`LMI_FanSensor<LMI-FanSensor>` | :ref:`CIM_NumericSensor<CIM-NumericSensor>` | Plain |
+ +---------------------------------------------------------+---------------------------------------------------+------------------+
+ | :ref:`LMI_FanAssociatedSensor<LMI-FanAssociatedSensor>` | :ref:`CIM_AssociatedSensor<CIM-AssociatedSensor>` | Association |
+ +---------------------------------------------------------+---------------------------------------------------+------------------+
+
+LMI_Fan
+^^^^^^^
+Represents the the fan installed and connected to computer.
+One of the most important keys is :ref:`DeviceID<LMI-Fan-DeviceID>`. It's a
+*sys* path to kernel driver's abstraction for fan combined with its name.
+
+Typical sys directory for fan looks like this: ::
+
+ /sys/class/hwmon/hwmon1/device/
+ ├── driver -> ../../../bus/platform/drivers/thinkpad_hwmon
+ ├── fan1_input
+ ├── hwmon
+ │   └── hwmon1
+ │   ├── device -> ../../../thinkpad_hwmon
+ │   ├── power
+ │   │   ├── async
+ │   │   ├── autosuspend_delay_ms
+ │   │   ├── control
+ │   │   ├── runtime_active_kids
+ │   │   ├── runtime_active_time
+ │   │   ├── runtime_enabled
+ │   │   ├── runtime_status
+ │   │   ├── runtime_suspended_time
+ │   │   └── runtime_usage
+ │   ├── subsystem -> ../../../../../class/hwmon
+ │   └── uevent
+ ├── modalias
+ ├── name
+ ├── power
+ │   ├── async
+ │   ├── autosuspend_delay_ms
+ │   ├── control
+ │   ├── runtime_active_kids
+ │   ├── runtime_active_time
+ │   ├── runtime_enabled
+ │   ├── runtime_status
+ │   ├── runtime_suspended_time
+ │   └── runtime_usage
+ ├── pwm1
+ ├── pwm1_enable
+ ├── subsystem -> ../../../bus/platform
+ └── uevent
+
+Corresponding ``DeviceID`` is ``/sys/class/hwmon/hwmon1/device/fan1``. The fan
+name is the prefix of ``*_input`` file which gives the current
+:abbr:`RPM(Revolutions per minute)` value.
+
+It has several other interesting properties:
+
+ :ref:`OtherIdentifyingInfo<CIM-LogicalDevice-OtherIdentifyingInfo>` : ``string []``
+ Has the name of chip controlling the fan as the first item.
+
+LMI_FanSensor
+^^^^^^^^^^^^^
+Represents a sensor measuring a speed of particular fan. It's exactly the same
+keys and values except for
+:ref:`CreationClassName<CIM-LogicalDevice-CreationClassName>` containg the name
+of corresponding class ``LMI_Fan``.
+
+It inherts many methods that are not supported because underlying library does
+not offer such functionality. Controlling of fans is very hardware dependent.
+Different drivers may provide different ways and possibilities to manage
+connected fans.
+
+..
+ ***************************************************************************
+
+.. _DSP1013: http://www.dmtf.org/sites/default/files/standards/documents/DSP1013_1.0.1.pdf
+