sel: remove unified sel timestamp message
The issue stems from the BMC parsing a timestamp in the unified SEL,
but the BIOS always sends 0 in the timestamp byte.
The new log format already includes a dedicated timestamp item,
so the plan is to remove the "Time: Wed Dec 31 16:00:00 1969"
from the log message.
TestPlan
ipmitool raw 0x0A 0x44 0xC0 0xAB 0xC2 0 0 0 0 0x4C 0x1C 0 0 0xFE 0 0 0 0
19 00
ipmitool raw 0x0A 0x44 0xC0 0xAB 0xC0 0 0 0 0 0x4C 0x1C 0 0 0xFE 0 0 0 0
1a 00
"2": {
"additional_data": [
"IPMI_RAW=C0ABC2000000004C1C0000FE00000000"
],
"event_id": "",
"message": "SEL Entry: FRU: 1, Record: OEM timestamped (0xC2),
MFG ID: 4C1C00, OEM Data: (00FE00000000) Extra info:0xFE
MSCOD:0x0000 MCACOD:0x0000",
"resolution": "",
"resolved": false,
"severity": "xyz.openbmc_project.Logging.Entry.Level.Critical",
"timestamp": "2024-10-11T15:38:00.679000000Z",
"updated_timestamp": "2024-10-11T15:38:00.679000000Z"
},
"3": {
"additional_data": [
"IPMI_RAW=C0ABC0000000004C1C0000FE00000000"
],
"event_id": "",
"message": "SEL Entry: FRU: 1, Record: OEM timestamped (0xC0),
MFG ID: 4C1C00, OEM Data: (00FE00000000) VID:0xFE00 DID:0x0000
Slot:0x00 Error ID:0x00",
"resolution": "",
"resolved": false,
"severity": "xyz.openbmc_project.Logging.Entry.Level.Critical",
"timestamp": "2024-10-11T15:38:05.221000000Z",
"updated_timestamp": "2024-10-11T15:38:05.221000000Z"
}
Change-Id: Id35a71ad52d3385118b7d701c16c7556e25bda34
Signed-off-by: Peter Yin <peter.yin@quantatw.com>
diff --git a/src/selcommands.cpp b/src/selcommands.cpp
index 9d5afe5..684c027 100644
--- a/src/selcommands.cpp
+++ b/src/selcommands.cpp
@@ -1393,18 +1393,6 @@
}
}
- time_t timeStamp = static_cast<time_t>(data->timeStamp);
- std::string timeStr;
- std::tm ts;
- if (localtime_r(&timeStamp, &ts))
- {
- char buf[64];
- if (strftime(buf, sizeof(buf), "%c", &ts))
- {
- timeStr = buf;
- }
- }
-
parseStdSel(data, errLog);
ptr = &(data->eventData1);
std::vector<uint8_t> evtData(ptr, ptr + 3);
@@ -1416,9 +1404,8 @@
<< std::setw(2) << (int)(data->sensorNum);
msgLog += errType + " (0x" + recTypeStream.str() +
- "), Time: " + timeStr + ", Sensor: " + sensorName + " (0x" +
- senNumStream.str() + "), Event Data: (" + eventData + ") " +
- errLog;
+ "), Sensor: " + sensorName + " (0x" + senNumStream.str() +
+ "), Event Data: (" + eventData + ") " + errLog;
}
else if ((recType >= oemTSErrTypeMin) && (recType <= oemTSErrTypeMax))
{
@@ -1434,24 +1421,11 @@
std::string oemDataStr;
toHexStr(oemData, oemDataStr);
- time_t timeStamp = static_cast<time_t>(data->timeStamp);
- std::string timeStr;
- std::tm ts;
- if (localtime_r(&timeStamp, &ts))
- {
- char buf[64];
- if (strftime(buf, sizeof(buf), "%c", &ts))
- {
- timeStr = buf;
- }
- }
-
errType = oemTSErr;
parseOemSel(data, errLog);
- msgLog += errType + " (0x" + recTypeStream.str() +
- "), Time: " + timeStr + ", MFG ID: " + mfrIdStr +
- ", OEM Data: (" + oemDataStr + ") " + errLog;
+ msgLog += errType + " (0x" + recTypeStream.str() + "), MFG ID: " +
+ mfrIdStr + ", OEM Data: (" + oemDataStr + ") " + errLog;
}
else if (recType == fbUniErrType)
{