blob: 59be7e60e0eca0cfc7ea10fe3e3519d2ceea36c5 [file] [log] [blame]
Matt Spinler14321842017-04-28 15:27:43 -05001#Example fan monitor definitions for phosphor-fan-monitor
2
3#List the fans that need to be monitored, along with some
4#properties that define how much slack is allowed in the actual
5#tach value as compared to the target tach value.
6
Matt Spinler956a0a52017-09-28 12:44:06 -05007#fans:
8# - inventory:
Matt Spinler14321842017-04-28 15:27:43 -05009# [The system inventory location for the fan]
Matthew Barth9396bcc2018-02-19 14:13:20 -060010# functional_delay:
11# [Delay (in secs) before a fan is marked functional after returning
12# within the allowed deviation]
Matt Spinler14321842017-04-28 15:27:43 -050013# allowed_out_of_range_time:
14# [Time (in secs) actual speed can be outside of deviation of
15# target speed]
16# deviation:
17# [Percentage that actual speed must be within target speed]
18# num_sensors_nonfunc_for_fan_nonfunc:
19# [How many sensors on the fan must be faulted before fan
20# will be considered faulted]
21# sensors: [array of speed sensors for the fan]
22# - name [The name of the fan sensor]
23# has_target [true|false If this sensor has a Target property for
24# setting a fan speed (otherwise just for reads)]
Lei YU80f271b2018-01-31 15:24:46 +080025# target_interface [The fan target interface used by the sensor.
26# Default is "xyz.openbmc_project.Control.FanSpeed"]
Lei YU8e5d1972018-01-26 17:14:00 +080027# factor [The factor to multiply with target to calculate the expected
28# fan speed. Default is 1 for fan speed target;
29# Customized value for pwm target]
30# offset [The offset to add to calculate the expected fan speed.
31# Default is 0 for fan speed target;
32# Customized value for pwm target]
Matthew Barth33618bc2018-05-03 10:55:11 -050033# condition: [optional condition function to create fan functional monitoring]
34# name: [The name of an available condition function]
35# properties: [The properties used in the condition function]
36# - object: [Object path of property to use]
37# interface: [Interface of property to use]
38# property:
39# name: [Property name]
40# type: [Property data type]
41# value: [Property value to check condition against]
Matt Spinler956a0a52017-09-28 12:44:06 -050042#
43#sensor_trust_groups:
44# - class: [Group class name
45# Available classes:
46# * NonzeroSpeed - Only trust if at least one sensor in the group
47# has a nonzero speed.]
Matthew Barthc63ef392018-02-16 13:06:36 -060048# group:
Matt Spinler956a0a52017-09-28 12:44:06 -050049# - name [The name of the fan sensor in this group]
Matthew Barthc63ef392018-02-16 13:06:36 -060050# in_trust: [true|false] (optional)
51# [Include in trust determination or not. Default = true]
Matt Spinler14321842017-04-28 15:27:43 -050052
53#The code uses these parameters as follows:
54# After a speed reading of a sensor is outside of the allowed deviation of
55# the target speed for the allowed out of range time, if at least
56# num_sensors_nonfunc_for_fan_nonfunc sensors meet this condition,
57# the fan will be set to nonfunctional in the inventory.
Matt Spinler956a0a52017-09-28 12:44:06 -050058#
59# Sensor trust groups are used to specify that the speed values for the
60# sensors in a group cannot be trusted based on some condition, where
61# the condition is based on the class used to implement the group. All
Matthew Barthc63ef392018-02-16 13:06:36 -060062# sensors in the group go in and out of trust based on those defined
63# to be part of determining the trust. This section is optional.
Matt Spinler14321842017-04-28 15:27:43 -050064
65#Example entries for 1 fan system:
Matt Spinler956a0a52017-09-28 12:44:06 -050066#fans:
Matt Spinler14321842017-04-28 15:27:43 -050067# - inventory: /system/chassis/motherboard/fan0
Matthew Barth9396bcc2018-02-19 14:13:20 -060068# functional_delay: 5
Matt Spinler14321842017-04-28 15:27:43 -050069# allowed_out_of_range_time: 15
70# deviation: 15
71# num_sensors_nonfunc_for_fan_nonfunc: 1
72# sensors:
73# - name: fan0
74# has_target: true
Matthew Barth33618bc2018-05-03 10:55:11 -050075# # Only create fan functional properties and monitor on air cooled
76# condition:
77# name: propertiesMatch
78# properties:
79# - object: /xyz/openbmc_project/inventory/system/chassis
80# interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
81# property:
82# name: WaterCooled
83# type: bool
84# value: false
Matt Spinler956a0a52017-09-28 12:44:06 -050085#sensor_trust_groups:
86# - class: NonzeroSpeed
Matthew Barthc63ef392018-02-16 13:06:36 -060087# group:
Matt Spinler956a0a52017-09-28 12:44:06 -050088# - name: fan0_0
Matthew Barthc63ef392018-02-16 13:06:36 -060089# in_trust: false
90# - name: fan0_1