blob: c5b41880ebb943e04933ede95aa0415107e7bc2f [file] [log] [blame]
#Example set speed events for phosphor-fan-control
#groups:
# - name: [A unique name for this group]
# description: [A user description of what makes up the group]
# type: [The '/xyz/openbmc_project' path extension]
# members:
# [List of object paths under the path extension]
#
#matches:
# - name: [The name associated with a supported match string function]
# description: [A user description of what this match string represents]
# parameters:
# [Ordered list of required parameters for the match string function]
#
#signals:
# - name: [The name associated with a supported signal function]
# description: [A user description of what this signal does]
# parameters:
# [Ordered list of required parameters for the signal function]
# match: [Match string function to use in subscribing to the signal]
#
#methods:
# - name: [The name associated with a supported method function]
# description: [A user description of what this method does]
# parameters:
# [Ordered list of required parameteres for the method function]
#
#handlers:
# - name: [The name associated with a supported handler function]
# description: [A user descriptiion of what this handler does]
# parameters:
# [Ordered list of required parameters for the handler function]
#
#preconditions: [Preconditions are intended to load or unload events based
# on the precondition's resulting state]
# - name: [Name associated with an available precondition function]
# description: [A user description of the precondition's use]
# parameters:
# [Ordered list of required parameters for the precondition function]
#
#actions:
# - name: [Name associated with an available action function]
# description: [A user description of what this action does]
# parameters:
# [Ordered list of required parameters for the associated function]
#
#events:
# - name: [A unique name for this event]
# precondition{OPTIONAL}:
# name: [Name of the precondition function]
# groups:
# - name: [A group name from the list of groups]
# zone_conditions{OPTIONAL}:
# - name: [The name of the zone condition]
# zones:
# - [Zone number to include this set speed event with]
# interface: [Dbus interface on the group members' object path]
# property:
# name: [Name of the property on the interface]
# type: [The property's data type]
# triggers:
# [At least 1 trigger is required per event from those available:
# "init" - Executes a method(with associated handler) at startup
# and then process the event actions
# "signal" - Subscribes to a signal and executes the associated
# handler when the signal is received and then process
# the event actions
# "timer" - Configures a type of timer over an interval that
# processess the event actions each time the timer
# expires]
# - name: [Name of trigger to execute the event]
# [Provide the required trigger parameter(s)]
# events: [Define the event that is to be loaded when the precondition
# succeeds]
# groups:
# - name: [A group name from the list of groups]
# zone_conditions{OPTIONAL}:
# - name: [The name of the zone condition]
# zones:
# - [Zone number to include this set speed event with]
# interface: [The Dbus interface on the group members' object path]
# property:
# name: [Name of the property on the interface]
# type: [The property's data type]
# triggers:
# [At least 1 trigger is required per event from those available:
# "init" - Executes a method(with associated handler) at startup
# and then process the event actions
# "signal" - Subscribes to a signal and executes the associated
# handler when the signal is received and then process
# the event actions
# "timer" - Configures a type of timer over an interval that
# processess the event actions each time the timer expires]
# - name: [Name of trigger to execute the event]
# [Provide the required trigger parameter(s)]
# actions:
# - name: [Name of an action from the list of actions]
# [Ordered list of each required action parameter with a defined
# type and value for this event. The 'property' parameter utilizes
# the same type defined under the 'property' attribute.]
#Example:
#groups:
# - name: zone0_fans
# description: Group of fan inventory objects for zone 0
# type: /xyz/openbmc_project/inventory
# members:
# - /system/chassis/motherboard/fan0
# - /system/chassis/motherboard/fan1
# - /system/chassis/motherboard/fan2
# - /system/chassis/motherboard/fan3
# - name: zone0_ambient
# description: Group of ambient temperature sensors for zone 0
# type: /xyz/openbmc_project/sensors
# members:
# - /temperature/ambient
# - name: occ0_object
# description: Dbus object containing OCC0 properties
# type: /org/open_power/control
# members:
# - /occ0
# - name: zone0_regulators
# description: Group of regulator temperature sensors for zone 0
# type: /xyz/openbmc_project/sensors
# members:
# - /temperature/p0_vdd_temp
# - /temperature/p1_vdd_temp
# - name: zone0_dimms
# description: Group of dimm temperature sensors for zone 0
# type: /xyz/openbmc_project/sensors
# members:
# - /temperature/dimm0_temp
# - /temperature/dimm1_temp
# - /temperature/dimm2_temp
# - /temperature/dimm3_temp
# - /temperature/dimm4_temp
#
#matches:
# - name: propertiesChanged
# parameters:
# - object
# - interface
# - name: interfacesAdded
# parameters:
# - object
# - name: interfacesRemoved
# parameters:
# - object
#
#signals:
# - name: propertiesChanged
# description: >
# A property changed signal
# parameters:
# - object
# - interface
# match: propertiesChanged
# - name: interfacesAdded
# description: >
# An interfaces added signal
# parameters:
# - type
# - object
# - interface
# - property
# match: interfacesAdded
# - name: interfacesRemoved
# description: >
# An interfaces removed match
# parameters:
# - object
# - interface
# match: interfacesRemoved
#
#methods:
# - name: getProperties
# description: >
# Get the property values of the given group members
# by performing a `GetProperty` method call on each
# parameters:
# - type
#
#handlers:
# - name: setProperty
# description: >
# Sets a value for the givent object/interface/property
# parameters:
# - type
#
#preconditions:
# - name: property_states_match
# description: >
# All defined properties must match the values given to
# enable a set speed event otherwise fan speeds are set to full
# parameters:
# - groups
#
#actions:
# - name: count_state_before_speed
# description: Set the speed when a number of properties at a state
# parameters:
# - count
# - property
# - speed
# - name: set_floor_from_average_sensor_value
# description: Set floor speed from first entry with average less than key
# parameters:
# - map
# - name: set_ceiling_from_average_sensor_value
# description: Set ceiling speed based on key transition values with average
# parameters:
# - map
# - name: set_net_increase_speed
# description: >
# Set the speed increase delta based on the delta increase
# size times the given value and property's value difference
# parameters:
# - property
# - factor
# - delta
# - name: set_net_decrease_speed
# description: >
# Set the speed decrease delta based on the delta decrease
# size times the given value and property's value difference
# parameters:
# - property
# - factor
# - delta
# - name: update_default_floor
# description: >
# Update the default fan floor to the given speed
# parameters:
# - property
# - speed
# - name: use_events_on_state
# description: >
# Use a set of events when all the group properties are at a given
# state, otherwise remove the events
# parameters:
# - property
# - events
#
#events:
# - name: missing_before_high_speed
# groups:
# - name: zone0_fans
# zone_conditions:
# - name: air_cooled_chassis
# zones:
# - 0
# interface: xyz.openbmc_project.Inventory.Item
# property:
# name: Present
# type: bool
# triggers:
# - name: init
# method: getProperties
# handler: setProperty
# - name: signal
# signal: propertiesChanged
# handler: setProperty
# actions:
# - name: count_state_before_speed
# count: 1
# property:
# value: false
# type: bool
# speed:
# value: 10500
# type: uint64_t
# - name: set_air_cooled_speed_boundaries_based_on_ambient
# groups:
# - name: zone0_ambient
# zone_conditions:
# - name: air_cooled_chassis
# zones:
# - 0
# interface: xyz.openbmc_project.Sensor.Value
# property:
# name: Value
# type: int64_t
# triggers:
# - name: init
# method: getProperties
# handler: setProperty
# - name: signal
# signal: propertiesChanged
# handler: setProperty
# actions:
# - name: set_floor_from_average_sensor_value
# map:
# value:
# - 27000: 3500
# - 32000: 4600
# - 37000: 5200
# - 40000: 5800
# type: std::map<int64_t, uint64_t>
# - name: set_ceiling_from_average_sensor_value
# map:
# value:
# - 25000: 7200
# - 27000: 10500
# type: std::map<int64_t, uint64_t>
# - name: set_water_cooled_speed_boundaries_based_on_ambient
# groups:
# - name: zone0_ambient
# zone_conditions:
# - name: water_and_air_cooled_chassis
# zones:
# - 0
# interface: xyz.openbmc_project.Sensor.Value
# property:
# name: Value
# type: int64_t
# triggers:
# - name: init
# method: getProperties
# handler: setProperty
# - name: signal
# signal: propertiesChanged
# handler: setProperty
# actions:
# - name: set_floor_from_average_sensor_value
# map:
# value:
# - 27000: 3000
# - 32000: 4300
# - 37000: 5000
# - 40000: 5800
# type: std::map<int64_t, uint64_t>
# - name: set_ceiling_from_average_sensor_value
# map:
# value:
# - 25000: 7200
# - 27000: 10500
# type: std::map<int64_t, uint64_t>
# - name: occ_active_speed_changes
# precondition:
# name: property_states_match
# groups:
# - name: occ0_object
# interface: org.open_power.OCC.Status
# property:
# name: OccActive
# type: bool
# value: true
# - name: occ1_object
# interface: org.open_power.OCC.Status
# property:
# name: OccActive
# type: bool
# value: true
# triggers:
# - name: init
# method: getProperties
# handler: setProperty
# - name: signal
# signal: interfacesAdded
# handler: setProperty
# - name: signal
# signal: propertiesChanged
# handler: setProperty
# events:
# - name: speed_control_sensors
# groups:
# - name: zone0_regulators
# interface: xyz.openbmc_project.Sensor.Value
# property:
# name: Value
# type: int64_t
# - name: zone0_dimms
# interface: xyz.openbmc_project.Sensor.Value
# property:
# name: Value
# type: int64_t
# triggers:
# - name: init
# method: getProperties
# handler: setProperty
# - name: signal
# signal: interfacesAdded
# handler: setProperty
# - name: signal
# signal: propertiesChanged
# handler: setProperty
# - name: signal
# signal: interfacesRemoved
# handler: removeInterface
# - name: 1sec_speed_change_request_sampling
# triggers:
# - name: timer
# interval: 1000000
# type: repeating
# actions:
# # Speed changes based on regulator temps
# - name: set_net_increase_speed
# groups:
# - name: zone0_regulators
# interface: xyz.openbmc_project.Sensor.Value
# property:
# name: Value
# type: int64_t
# property:
# value: 85000
# type: int64_t
# factor:
# value: 1000
# type: int64_t
# delta:
# value: 400
# type: uint64_t
# - name: set_net_decrease_speed
# groups:
# - name: zone0_regulators
# interface: xyz.openbmc_project.Sensor.Value
# property:
# name: Value
# type: int64_t
# property:
# value: 82000
# type: int64_t
# factor:
# value: 1000
# type: int64_t
# delta:
# value: 40
# type: uint64_t
# # Speed changes based on dimm temps
# - name: set_net_increase_speed
# groups:
# - name: zone0_dimms
# interface: xyz.openbmc_project.Sensor.Value
# property:
# name: Value
# type: int64_t
# property:
# value: 64000
# type: int64_t
# factor:
# value: 1000
# type: int64_t
# delta:
# value: 200
# type: uint64_t
# - name: set_net_decrease_speed
# groups:
# - name: zone0_dimms
# interface: xyz.openbmc_project.Sensor.Value
# property:
# name: Value
# type: int64_t
# property:
# value: 61000
# type: int64_t
# factor:
# value: 1000
# type: int64_t
# delta:
# value: 40
# type: uint64_t