summaryrefslogtreecommitdiff
path: root/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0001-Add-redfish-log-support-for-IPMI-watchdog-timeout-ac.patch
blob: 28995d14bab652918de5dc57e5683f6d4c2da370 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
From 38faf5c040660e752741dcf7f03e4bb1e9f3411b Mon Sep 17 00:00:00 2001
From: Yong Li <yong.b.li@linux.intel.com>
Date: Thu, 4 Apr 2019 18:24:54 +0800
Subject: [PATCH] Add redfish log support for IPMI watchdog timeout actions

The current plan is that only threshold sensor events
will be logged to the IPMI SEL,
and all other events will be logged to the Redfish Event Log.

Tested:
Config IPMI watchdog: OEM hard reset after 10 seconds:
ipmitool raw 0x06 0x24 0x5 0x1 0x0 0x0 0x64 0x00
Start watchdog:
Ipmitool mc watchdog reset
Check the redfish logs in 10 seconds:
https://BMCIP/redfish/v1/Systems/system/LogServices/EventLog/Entries

Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
---
 watchdog.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/watchdog.cpp b/watchdog.cpp
index bc3ba95..4774fd8 100644
--- a/watchdog.cpp
+++ b/watchdog.cpp
@@ -1,5 +1,7 @@
 #include "watchdog.hpp"
 
+#include <systemd/sd-journal.h>
+
 #include <chrono>
 #include <phosphor-logging/elog.hpp>
 #include <phosphor-logging/log.hpp>
@@ -101,6 +103,13 @@ void Watchdog::timeOutHandler()
         action = fallback->action;
     }
 
+    // Log into redfish event log
+    sd_journal_send("MESSAGE=IPMIWatchdog: Timed out ACTION=%s",
+                    convertForMessage(action).c_str(), "PRIORITY=%i", LOG_INFO,
+                    "REDFISH_MESSAGE_ID=%s", "OpenBMC.0.1.IPMIWatchdog",
+                    "REDFISH_MESSAGE_ARGS=%s",
+                    convertForMessage(action).c_str(), NULL);
+
     expiredTimerUse(currentTimerUse());
 
     auto target = actionTargetMap.find(action);
-- 
2.7.4