Add parameter selector to CR config command resp
Add Parameter selector to response of Get Cold Redundancy Configuration
Command. According to Intel BMC EPS, the first response data after
completion code should be parameter selector.
Tested:
ipmitool raw 0x30 0x2e 0x00 return 0x00 0x01
ipmitool raw 0x30 0x2e 0x01 return 0x01 0x01
ipmitool raw 0x30 0x2e 0x02 return 0x02 0x01
Signed-off-by: Cheng C Yang <cheng.c.yang@linux.intel.com>
Change-Id: I9e05579f974843a9f3389d817205e60c7373c92f
diff --git a/src/oemcommands.cpp b/src/oemcommands.cpp
index a101da0..133815d 100644
--- a/src/oemcommands.cpp
+++ b/src/oemcommands.cpp
@@ -2095,7 +2095,7 @@
return ipmi::responseSuccess(crSetCompleted);
}
-ipmi::RspType<std::variant<uint8_t, uint32_t, std::array<uint8_t, 5>>>
+ipmi::RspType<uint8_t, std::variant<uint8_t, uint32_t, std::array<uint8_t, 5>>>
ipmiOEMGetCRConfig(ipmi::Context::ptr ctx, uint8_t parameter)
{
crConfigVariant value;
@@ -2121,10 +2121,12 @@
switch (status)
{
case server::PowerSupplyRedundancy::Status::inProgress:
- return ipmi::responseSuccess(static_cast<uint8_t>(0));
+ return ipmi::responseSuccess(parameter,
+ static_cast<uint8_t>(0));
case server::PowerSupplyRedundancy::Status::completed:
- return ipmi::responseSuccess(static_cast<uint8_t>(1));
+ return ipmi::responseSuccess(parameter,
+ static_cast<uint8_t>(1));
default:
phosphor::logging::log<phosphor::logging::level::ERR>(
"Error to get valid status");
@@ -2145,7 +2147,8 @@
return ipmi::responseResponseError();
}
- return ipmi::responseSuccess(static_cast<uint8_t>(*pResponse));
+ return ipmi::responseSuccess(parameter,
+ static_cast<uint8_t>(*pResponse));
}
case crParameter::rotationFeature:
{
@@ -2160,7 +2163,8 @@
"Error to get RotationEnabled property");
return ipmi::responseResponseError();
}
- return ipmi::responseSuccess(static_cast<uint8_t>(*pResponse));
+ return ipmi::responseSuccess(parameter,
+ static_cast<uint8_t>(*pResponse));
}
case crParameter::rotationAlgo:
{
@@ -2214,7 +2218,7 @@
}
std::copy(pResponse->begin(), pResponse->end(),
response.begin() + 1);
- return ipmi::responseSuccess(response);
+ return ipmi::responseSuccess(parameter, response);
}
case crParameter::rotationPeriod:
{
@@ -2229,7 +2233,7 @@
"Error to get RotationAlgorithm property");
return ipmi::responseResponseError();
}
- return ipmi::responseSuccess(*pResponse);
+ return ipmi::responseSuccess(parameter, *pResponse);
}
case crParameter::numOfPSU:
{
@@ -2238,7 +2242,7 @@
{
return ipmi::responseResponseError();
}
- return ipmi::responseSuccess(numberOfPSU);
+ return ipmi::responseSuccess(parameter, numberOfPSU);
}
default:
{