FMA 2008/024 introduces a libtopo model for supporting indicators and sensors. The initial implementation provides sensors and indicators over IPMI. The SES (SCSI enclosure services) specification also allows a fairly rich set of indicators and sensors. This case extends the enumerator introduced as part of FMA 2008/024 to support these sensors and indicators. The SES enumerator presents several different types of nodes. The following describes the sensors and indicators available for each. NODE TYPE CLASS TYPE NAME ses-enclosure indicator locate ident indicator service fail sensor temperature sensor voltage sensor current sensor discrete fault psu indicator locate ident indicator service fail sensor power_supply status fan indicator locate ident indicator service fail sensor speed speed sensor discrete fault bay indicator locate ident indicator service fail indicator ok2rm ok2rm sensor discrete fault The 'ident', 'fail', and 'ok2rm' indicators all implement a boolean indicator of the given type for the element. SES has the unfortunate property that there is no way to tell if a given indicator is supported or not other than attempting to change it. As such, we are forced to export indicators that may not be functional on all platforms. In addition, some elements (bay and enclosure) support enclosure-detected failures distinct from requested failure indication. Either of these properties will turn on the indicator, so the user may make a request to explicitly turn off a failure indicator only to find that it is still active because there is an enclosure-detected failure present. The 'fault' discrete sensors are a representation of this array-detected internal state. In the future, it may be possible to diagnose these failures by periodically scanning the available components and checking their status. The fan speed sensor presents the current speed in RPM. Again, there is no way to know know whether the fan supports monitoring speed. Some enclosures that don't support this seem to report an RPM of 0, but this is indistinguishable from the fan being actually stopped. The psu status sensor combines several different properties (acfail, dcfail, overcurrent, undervoltage, etc) into a single discrete sensor that matches the existing libtopo PSU state masks. The temperature, voltage, and current sensors are all enclosure-wide, and named according the SES element description (or class description if there is no element-specific description). While it is possible for these sensors to monitor a particular component (such as PSU voltage), SES does not provide a way to associate these sensors with any element. This means that all analog sensors much be attached to the ses-enclosure ndoe. In the future, if we develop some way to describe this relationship via vendor-specific libses plugins, the enumerator could use this information to construct a more specific topology. All temperature sensors are reported in degrees celsius, all voltage sensors are reported in volts, and all current sensors are reported in amps. Reading a single SES sensor requires taking an entire snapshot of the enclosure, so it is impractical to read these indicators and sensors upon every request. Instead, the last requested snapshot will be used for an implementation-defined period of time (approximately one second) such that a series of queries can be efficient while still allowing changes to be observed over time.