manufacturingcmds: added intrusionsensor status
Modified appMTMGetSignal API to support intrusion sensor status.
Tested:
Tested intrusion sensor status with ipmitool raw command
Command: ipmitool raw 0x30 0x14 0x04 0x00 0x00
Response: 01 //hardware Intrusion
Signed-off-by: anil kumar appana <anil.kumarx.appana@intel.com>
Signed-off-by: jayaprakash Mutyala <mutyalax.jayaprakash@intel.com>
Change-Id: I6a0cf6738dacbbaeece6a66d0264e870963bed5b
diff --git a/src/manufacturingcommands.cpp b/src/manufacturingcommands.cpp
index c96d9f4..d8b49dc 100644
--- a/src/manufacturingcommands.cpp
+++ b/src/manufacturingcommands.cpp
@@ -277,6 +277,41 @@
switch (signalType)
{
+ case SmSignalGet::smChassisIntrusion:
+ {
+ ipmi::Value reply;
+ if (mtm.getProperty(intrusionService, intrusionPath, intrusionIntf,
+ "Status", &reply) < 0)
+ {
+ return ipmi::responseInvalidFieldRequest();
+ }
+ std::string* intrusionStatus = std::get_if<std::string>(&reply);
+ if (!intrusionStatus)
+ {
+ return ipmi::responseUnspecifiedError();
+ }
+
+ uint8_t status = 0;
+ if (!intrusionStatus->compare("Normal"))
+ {
+ status = static_cast<uint8_t>(IntrusionStatus::normal);
+ }
+ else if (!intrusionStatus->compare("HardwareIntrusion"))
+ {
+ status =
+ static_cast<uint8_t>(IntrusionStatus::hardwareIntrusion);
+ }
+ else if (!intrusionStatus->compare("TamperingDetected"))
+ {
+ status =
+ static_cast<uint8_t>(IntrusionStatus::tamperingDetected);
+ }
+ else
+ {
+ return ipmi::responseUnspecifiedError();
+ }
+ return ipmi::responseSuccess(status, std::nullopt);
+ }
case SmSignalGet::smFanPwmGet:
{
ipmi::Value reply;