Project

General

Profile

Actions

Feature #8976

closed

ipmi enumerator should include FRU identity information in FMRI authority

Added by Rob Johnston over 3 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Start date:
2018-01-19
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

The hc-scheme FMRI format allows for FRU identity information (i.e. part no, serial no, revision) to be encoded in the authority portion of the FMRI. This information is captured in FMA event telemetry and can be used, for example, to associate a fault telemetry with a specific FRU in a specific location, as opposed to just a location. This, in turn, enables fault management software to do things like:

  • detect FRU replacement
  • detect if a known faulty FRU has been re-introduced into a system.

FRU identity information is typically stored in EEPROMs (sometimes referred to as FRUPROMs) on the physical part. Fans typically do not have FRUPROMs, but power supply units (PSUs) normally do. The IPMI specification describes interfaces for exposing the contents of the FRUPROMs in a logical construct called FRU inventory records - as described by the "Platform Management FRU Information Storage Definition"

The ipmi topo enumerator module is responsible for enumerating fans and PSUs. However, it does not currently attempt to read any associate FRUPROMs. This CR is to track changes to the ipmi enumerator such that it will check if a fan or PSUs has an associated FRU inventory record and, if so, read the FRU identity data so that it can be encoded into the FMRI of the fan and/or psu topo nodes.

Actions #1

Updated by Rob Johnston over 3 years ago

Testing

I installed a platform image that included the changes for this CR on a Dell R730 (aka J3302) in the SF lab and verified that with the changes, the authority portion of the hc-scheme FMRI's for the power supplies (psu nodes) included the part number and serial number of the power supplies, and is consistent with what is reported in the corresponding IPMI FRU records:

[root@volcano ~]# /usr/lib/fm/fmd/fmtopo "*psu=*" 
TIME                 UUID
Dec 12 19:43:37 d74800e5-6b32-445c-e150-e6e356ef4a76

hc://:product-id=Joyent-Compute-Platform-3302:server-id=volcano:chassis-id=FHL5TD2:serial=CN1797268M9VDG:part=05RHVVA00/chassis=0/psu=0

hc://:product-id=Joyent-Compute-Platform-3302:server-id=volcano:chassis-id=FHL5TD2:serial=CN1797268M9VDG:part=05RHVVA00/chassis=0/psu=0?sensor=Presence

hc://:product-id=Joyent-Compute-Platform-3302:server-id=volcano:chassis-id=FHL5TD2:serial=CN1797268M9VDG:part=05RHVVA00/chassis=0/psu=0?sensor=Current 1

hc://:product-id=Joyent-Compute-Platform-3302:server-id=volcano:chassis-id=FHL5TD2:serial=CN1797268M9VDG:part=05RHVVA00/chassis=0/psu=0?sensor=Voltage 1

hc://:product-id=Joyent-Compute-Platform-3302:server-id=volcano:chassis-id=FHL5TD2:serial=CN1797268M9VDG:part=05RHVVA00/chassis=0/psu=0?sensor=Status

hc://:product-id=Joyent-Compute-Platform-3302:server-id=volcano:chassis-id=FHL5TD2:serial=CN1797268M9VCL:part=05RHVVA00/chassis=0/psu=1

hc://:product-id=Joyent-Compute-Platform-3302:server-id=volcano:chassis-id=FHL5TD2:serial=CN1797268M9VCL:part=05RHVVA00/chassis=0/psu=1?sensor=Presence

hc://:product-id=Joyent-Compute-Platform-3302:server-id=volcano:chassis-id=FHL5TD2:serial=CN1797268M9VCL:part=05RHVVA00/chassis=0/psu=1?sensor=Current 2

hc://:product-id=Joyent-Compute-Platform-3302:server-id=volcano:chassis-id=FHL5TD2:serial=CN1797268M9VCL:part=05RHVVA00/chassis=0/psu=1?sensor=Voltage 2

hc://:product-id=Joyent-Compute-Platform-3302:server-id=volcano:chassis-id=FHL5TD2:serial=CN1797268M9VCL:part=05RHVVA00/chassis=0/psu=1?sensor=Status

I also ran fmtopo in a mode where it drops a core at the end, and checked that there were no memory leaks introduced by these changes.

Actions #2

Updated by Electric Monk over 3 years ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

git commit 8f022dd6c1ebe3edc269726bf537617e665df32f

commit  8f022dd6c1ebe3edc269726bf537617e665df32f
Author: Rob Johnston <rob.johnston@joyent.com>
Date:   2018-01-23T21:33:23.000Z

    8967 libipmi: add support for GET_CHASSIS_STATUS command
    8974 fac_prov_ipmi should support binding by entity id and instance
    8975 ipmi topo plugin should automatically enumerate sensors on nodes it enumerates
    8976 ipmi enumerator should include FRU identity information in FMRI authority
    8977 ipmi enumerator doesn't always enumerate nested entities
    8978 Add topo facility method for controlling chassis ident indicator
    Reviewed by: Yuri Pankov <yuripv@icloud.com>
    Reviewed by: Ben Sims <bensims@gmail.com>
    Approved by: Dan McDonald <danmcd@joyent.com>

Actions

Also available in: Atom PDF