Make sensor/sdr list commands work on systems with > 255 sensors

The "ipmitool sdr elist" and "ipmitool sensor list" commands failed to
operate correctly on systems that contain more than 255 sensors. A
change made in the past assigned up to 255 sensors to LUN 0, 1, and
3. The code for iterating the SDR's did not get updated at the same
time. The SDR record number acted as the sensor number. This
incompatibility caused error response codes to be returned when sensor
number 255 (which is reserved) was accessed.

The change in this commit modifies the SDR access code to prevent
using the reserved sensor number. SDR records are still assigned in
order. The sensor number associated with the SDR are assigned to avoid
the reserved value, and in the same manner as code previously
submitted and merged.

Tested:
Installed the modified code on a SUT that enumerates more than 256
sensors.
Issued "ipmitool sensor list" and confirmed all sensors were
displayed. The "Get SDR 00ff command failed: Invalid data field in
request" error message was not displayed.
Issued "ipmitool sdr elist" and confirmed all sensors were
displayed. The "Get SDR 00ff command failed: Invalid data field in
request" error message was not displayed.
Confirmed the sensor number/LUN guard code was not activated.

Ported From:
https://gerrit.openbmc-project.xyz/c/openbmc/intel-ipmi-oem/+/45384

Change-Id: I194a3116fdf255527a8c5036ee71b8b478c9b275
Signed-off-by: Johnathan Mantey <johnathanx.mantey@intel.com>
Signed-off-by: Willy Tu <wltu@google.com>
1 file changed