1#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 7#fans: 8# - inventory: 9# [The system inventory location for the fan] 10# method: [timebased|count](optional) 11# [Available methods: 12# * timebased - use a percentage based deviation 13# * count - run up/down count fault detection] 14# functional_delay: 15# [Delay (in secs) before a fan is marked functional after returning 16# within the allowed deviation] 17# allowed_out_of_range_time: (required for method timebased) 18# [Time (in secs) actual speed can be outside of deviation of 19# target speed] 20# deviation: 21# [Percentage that actual speed must be within target speed] 22# num_sensors_nonfunc_for_fan_nonfunc: 23# [How many sensors on the fan must be faulted before fan 24# will be considered faulted] 25# sensors: [array of speed sensors for the fan] 26# - name [The name of the fan sensor] 27# has_target [true|false If this sensor has a Target property for 28# setting a fan speed (otherwise just for reads)] 29# target_interface [The fan target interface used by the sensor. 30# Default is "xyz.openbmc_project.Control.FanSpeed"] 31# target_path [The full target path, which implements 32# xyz.openbmc_project.Control.FanSpeed or 33# xyz.openbmc_project.Control.FanPwm interface. 34# Default is /xyz/openbmc_project/sensors/fan_tach/*"] 35# factor [The factor to multiply with target to calculate the expected 36# fan speed. Default is 1 for fan speed target; 37# Customized value for pwm target] 38# offset [The offset to add to calculate the expected fan speed. 39# Default is 0 for fan speed target; 40# Customized value for pwm target] 41# condition: [optional condition function to create fan functional monitoring] 42# name: [The name of an available condition function] 43# properties: [The properties used in the condition function] 44# - object: [Object path of property to use] 45# interface: [Interface of property to use] 46# property: 47# name: [Property name] 48# type: [Property data type] 49# value: [Property value to check condition against] 50# 51#sensor_trust_groups: 52# - class: [Group class name 53# Available classes: 54# * NonzeroSpeed - Only trust if at least one sensor in the group 55# has a nonzero speed.] 56# group: 57# - name [The name of the fan sensor in this group] 58# in_trust: [true|false] (optional) 59# [Include in trust determination or not. Default = true] 60 61#The code uses these parameters as follows: 62# After a speed reading of a sensor is outside of the allowed deviation of 63# the target speed for the allowed out of range time, if at least 64# num_sensors_nonfunc_for_fan_nonfunc sensors meet this condition, 65# the fan will be set to nonfunctional in the inventory. 66# 67# Sensor trust groups are used to specify that the speed values for the 68# sensors in a group cannot be trusted based on some condition, where 69# the condition is based on the class used to implement the group. All 70# sensors in the group go in and out of trust based on those defined 71# to be part of determining the trust. This section is optional. 72 73#Example entries for 1 fan system: 74#fans: 75# - inventory: /system/chassis/motherboard/fan0 76# functional_delay: 5 77# allowed_out_of_range_time: 15 78# deviation: 15 79# num_sensors_nonfunc_for_fan_nonfunc: 1 80# sensors: 81# - name: fan0 82# has_target: true 83# # Only create fan functional properties and monitor on air cooled 84# condition: 85# name: propertiesMatch 86# properties: 87# - object: /xyz/openbmc_project/inventory/system/chassis 88# interface: xyz.openbmc_project.Inventory.Decorator.CoolingType 89# property: 90# name: WaterCooled 91# type: bool 92# value: false 93#sensor_trust_groups: 94# - class: NonzeroSpeed 95# group: 96# - name: fan0_0 97# in_trust: false 98# - name: fan0_1 99 100#Example entries for count method fan system: 101#fans: 102# - inventory: /system/chassis/motherboard/fan2 103# method: count 104# functional_delay: 5 105# deviation: 15 106# num_sensors_nonfunc_for_fan_nonfunc: 1 107# sensors: 108# - name: fan2 109# has_target: true 110# # Only create fan functional properties and monitor on air cooled 111# condition: 112# name: propertiesMatch 113# properties: 114# - object: /xyz/openbmc_project/inventory/system/chassis 115# interface: xyz.openbmc_project.Inventory.Decorator.CoolingType 116# property: 117# name: WaterCooled 118# type: bool 119# value: false 120