sensor->inventory associations in phosphor-hwmon

Matt Spinler mspinler at linux.ibm.com
Thu Feb 21 08:39:42 AEDT 2019


On 2/20/2019 12:47 PM, James Feist wrote:
> On 2/20/19 10:32 AM, Patrick Venture wrote:
>> On Wed, Feb 20, 2019 at 10:31 AM Matt Spinler 
>> <mspinler at linux.ibm.com> wrote:
>>>
>>> Hi,
>>>
>>> We have a need to know which sensor objects hosted by the various
>>> phosphor-hwmon
>>> daemons belong to which inventory objects.  For example, we need to 
>>> know
>>> that
>>> the /xyz/openbmc_project/sensors/power/ps1_input_power sensor 
>>> belongs to
>>> the
>>> /xyz/openbmc_project/inventory/system/powersupply1 item.
>>>
>>> To accomplish this, I am proposing we add a new environment variable to
>>> the
>>> system specific phosphor-hwmon config files that the phosphor-hwmon 
>>> code
>>> can then use to create associations interfaces that will cause the
>>> mapper to
>>> create the appropriate association D-Bus paths.
>>>
>>> As an example, we could add to the power-supply1 conf file an
>>> ASSOCIATIONS
>>> variable for each sensor (assuming ps1_input_power is represented by
>>> IN1):
>>>
>>> ASSOCIATIONS_IN1=/xyz/openbmc_project/inventory/system/powersupply1
>>>
>>> The code would then see that and create a new org.openbmc.Associations
>>> interface
>>> on the /xyz/openbmc_project/sensors/power/ps1_input_power path with an
>>> associations property of:
>>>
>>>       ["inventory",
>>>        "sensors",
>>>        "/xyz/openbmc_project/inventory/system/powersupply1"]
>>>
>>> This leads to the mapper creating:
>>>
>>> /xyz/openbmc_project/sensors/power/ps1_input_power/inventory
>>>
>>> With an xyz.openbmc_project.Association interface with an
>>> endpoints property of:
>>>
>>>       ["/xyz/openbmc_project/inventory/system/powersupply1"]
>>>
>>> And also the other association path:
>>>
>>> /xyz/openbmc_project/inventory/system/powersupply1/sensors
>>>
>>> With an xyz.openbmc_project.Association interface with an
>>> endpoints property of:
>>>
>>>       ["/xyz/openbmc_project/sensors/power/ps1_input_power"]
>>>
>>> This now allows one to both find all sensors associated with a power
>>> supply, and
>>> find which inventory item is associated with a particular sensor.  Note
>>> that
>>> the endpoints property is an array, and can get entries from multiple
>>> places.
>>>
>>> I suppose we could also put the forward/reverse association names, in
>>> this case
>>> "inventory" and "sensors", into the hwmon config file, and also allow
>>> creating
>>> multiple associations for each sensor if there is a usecase, though I
>>> would like
>>> to keep it as simple as possible:
>>>
>>> ASSOCIATIONS1_IN1=inventory,sensors,/xyz/openbmc_project/inventory/system/powersupply1 
>>>
>>> ASSOCIATIONS2_IN1=chassis,contained_sensors,/xyz/openbmc_project/inventory/system/chassis 
>>>
>>>
>>> What does everyone think?
>>
>> I think it's useful and straightforward to use, and easy to test.
>
> Have we considered the alternative of the inventory item creating the 
> association? I only ask because in the past we've tried to keep 
> redfish/ipmi specific things outside of the sensors. I think this 
> proposal works fine btw, just seems like the alternative would work as 
> well and would keep sensors as just 'sensors'.
>

After our discussion on IRC, I will look into adding the functionality 
in phosphor-inventory-manager to add any required inventory 
associations, which would cover LEDs, sensors, etc, and then you can do 
the same for Entity-Manager.  That way, the bmcweb Redfish code that 
would use these can be common.


> -James
>
>>
>>>
>>> Thanks
>>> Matt
>>>
>



More information about the openbmc mailing list