common/utils: use decoder in findStateSensorPDR
Refactor findStateSensorPDR to decode the fixed fields with
decode_pldm_platform_state_sensor_pdr() and walk the composite states
with foreach_pldm_platform_state_sensor_pdr_possible_states(), replacing
the packed struct overlay and its manual offset math. Both are bounds
checked against the record length.
Tested: Build an image for the vr-nvl-obmc machine with the following
patches cherry-picked:
```
1. Kernel
https://lore.kernel.org/all/20260702165524.2168091-1-jackyhuang@nvidia.com/
2. u-boot
https://lore.kernel.org/openbmc/20260629105202.1417679-1-jackyhuang@nvidia.com/
3. meta-nvidia
https://gerrit.openbmc.org/c/openbmc/openbmc/+/90959
https://gerrit.openbmc.org/c/openbmc/openbmc/+/92346
4. platform-init
https://gerrit.openbmc.org/c/openbmc/platform-init/+/92189
https://gerrit.openbmc.org/c/openbmc/platform-init/+/92190
https://gerrit.openbmc.org/c/openbmc/platform-init/+/92191
https://gerrit.openbmc.org/c/openbmc/platform-init/+/92192
5. mctp-over-usb-config
https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/80452
https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/86236
https://gerrit.openbmc.org/c/openbmc/dbus-sensors/+/86791
6. libpldm
https://gerrit.openbmc.org/c/openbmc/libpldm/+/90952
https://gerrit.openbmc.org/c/openbmc/libpldm/+/91583
```
Built pldmd at this change and at master for vr-nvl-obmc, with a PDR
JSON adding one composite state sensor (sets 100 and 200). The D-Bus
wrapper returns the identical record from both builds for either set ID,
and raises ResourceNotFound for an absent one:
```
busctl call xyz.openbmc_project.PLDM /xyz/openbmc_project/pldm \
xyz.openbmc_project.PLDM.PDR FindStateSensorPDR yqq 0 33 100
aay 1 31 3 0 0 0 1 4 0 0 21 0 1 0 1 0 33 0 1 0 1 0 0 0 \
2 100 0 1 6 200 0 1 6
```
Change-Id: Iaefe3ca4fe9a095ac988388b9b6479dc52580591
Signed-off-by: JY Voon <jvoon@nvidia.com> J
JY Voon committed
b109898982b905cc9154df6cc320231275844d0b
Parent: fef35d5
Committed by ManojKiran Eda <manojkiran.eda@gmail.com>
on 8/17/2026, 8:55:13 AM