I was trying to figure out why some output in FreeIPMI was different
than in ipmitool, then I figured it out.  In lib/ipmi_sensor.c in
several locations after a sensor reading, there is code like this:

printf("| 0x%-8x | %-10s | 0x%02x%02x",
       val,
       unitstr, rsp->data[2], rsp->data[3]);

Most notably, the code is reading data[2] and data[3] from the response,
which maps to state offsets 0-7 and 8-14 of discrete sensors.

In the IPMI spec (35.14), only states 0-7 (byte data[2]) are required to
be returned, states 8-14 (byte data[3]) are optional.  So if you have a
sensor that is returning only the first set of offsets, you have an
array out of bounds and the output is returning whatever junk is out
there.  I've also found some sensors that don't return either byte
(which is a compliance issue, but nevertheless), perhaps that should be
handled as well.  This probably requires a reasonable amount of
re-coding, so I'll leave it to someone who is more familiar and a bigger
maintainer of the code.

Also, I believe the output of the above example is semantically
incorrect.  data[2] represents state offsets 0-7 and data[3] represents
state offsets 8-14.  So semantically, shouldn't the output be:

printf("0x%02x%02x", rsp->data[3], rsp->data[2]);

In other words, is the "endian" of the output backwards?  [1] It's
possible that the original output wanted to output event bitmasks 0-14
in order left to right, but it's actually outputting
"7-0,reserved(ie. bit 15),14-8".

Al

[1] - "endian" isn't the right word, but hopefully you get what I'm
trying to say :-)

-- 
Albert Chu
ch...@llnl.gov
Computer Scientist
High Performance Systems Division
Lawrence Livermore National Laboratory


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel

Reply via email to