Add extra validation for GetPayloadData

Issue: GetPayloadData gives command response error when
greater data length is given.

Fix: Added extra validation to give correct response

Tested:
Before fix:
1. To get datalength
Command : ipmitool raw 0x30 0xd6 0x0 0x0
Response:
 00 00 00 cb 36 04 00 2a 5f 12 28 00 01 6d 2e 52
 5c
Case-1: When data length is invalid
Command : ipmitool raw 0x30 0xd6 1 0 0 0 0 0 0 0 0 0x05
Response:
Unable to send RAW command (channel=0x0 netfn=0x30 lun=0x0 cmd=0xd6
rsp=0xce): Command response could not be provided
Case-2:When data length is valid
Command : ipmitool raw 0x30 0xd6 1 0 0x09 0 0 0 0xcb 0 0 0
Response:
Unable to send RAW command (channel=0x0 netfn=0x30 lun=0x0 cmd=0xd6
rsp=0xce): Command response could not be provided

After fix:
1. Repeat 1 in before fix to get data length
Case-1: When data length is invalid
Command : ipmitool raw 0x30 0xd6 1 0 0 0 0 0 0 0 0 0x05
Response:
Unable to send RAW command (channel=0x0 netfn=0x30 lun=0x0 cmd=0xd6
rsp=0xcc): Invalid data field in request
Case-2:When data length is valid
Command : ipmitool raw 0x30 0xd6 1 0 0x09 0 0 0 0xcb 0 0 0
Response:     //Success

Signed-off-by: Snehalatha Venkatesh <snehalathax.v@intel.com>
Change-Id: I85d9648cb48991510c3a016a9d6bc6ef65904259
1 file changed
tree: 74d3886ad36507021561ac8a3e3b3241b487dfb7
  1. cmake/
  2. docs/
  3. include/
  4. non-yocto/
  5. src/
  6. tests/
  7. .clang-format
  8. .gitignore
  9. cmake-format.json
  10. CMakeLists.txt
  11. CMakeLists.txt.in
  12. generate-whitelist.py
  13. ipmi-whitelist.conf
  14. LICENSE
  15. MAINTAINERS
  16. OWNERS
  17. README.md
README.md

Intel IPMI OEM support library

This component is intended to provide Intel-specific IPMI[3] command handlers for OpenBMC. These handlers are intended to integrate BMC with servers based on Intel architecture.

Overview

intel-ipmi-oem serves as an extension[1] to OpenBMC IPMI daemon[2]. It is compiled as a shared library and intended to both:

  • override existing implementation of standard IPMI commands to comply with Intel-specific solutions,
  • provide implementation for non-standard OEM extensions.

Capabilities

Related features provided by the library are grouped in separate source files. Main extensions to vanilla OpenBMC IPMI stack are the following:

  • Acquiring SMBIOS data over IPMI
  • Commands for better integration with Intel hardware
  • Firmware update extensions
  • Extended parsing of IPMI Platform Events[4]

References

  1. OpenBMC IPMI Architecture
  2. Phosphor IPMI Host
  3. IPMI Specification v2.0
  4. Intel Platform Events parsing