aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-sysmo
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2014-12-12 14:36:59 +0100
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2014-12-12 14:40:25 +0100
commit8381a6a4835feae6b714fb6fac38c247b69958ee (patch)
tree17afdd25d8eee78f9ff6e334edac86d8c69c9c1e /src/osmo-bts-sysmo
parent4d4dc2674252658330cdd581757d6168087ba4fb (diff)
sysmobts: Actions can be executed in all levels
Somebody could decide to switch off the PA in the warning level already. Support this mode of operation. This means we could have a config that: * Enables the PA in the normal level * Disables it in the critical level With kdbus or better IPC we could even have the PA and other parts be represented as service that talk to a bts manager and then simply execute start/stop requests. This would make the entire TODO entry irrelevant as state would be managed by systemd and one can see the time the service was executed.
Diffstat (limited to 'src/osmo-bts-sysmo')
-rw-r--r--src/osmo-bts-sysmo/misc/sysmobts_mgr_temp.c45
1 files changed, 25 insertions, 20 deletions
diff --git a/src/osmo-bts-sysmo/misc/sysmobts_mgr_temp.c b/src/osmo-bts-sysmo/misc/sysmobts_mgr_temp.c
index 90203542..d110c131 100644
--- a/src/osmo-bts-sysmo/misc/sysmobts_mgr_temp.c
+++ b/src/osmo-bts-sysmo/misc/sysmobts_mgr_temp.c
@@ -77,28 +77,10 @@ static int next_state(enum sysmobts_temp_state current_state, int critical, int
return next_state;
}
-/**
- * Go back to normal! Undo everything we did in the other states. For
- * reducint the transmit power, the question is if we should slowly set
- * it back to normal, let the BTS slowly increase it.. or handle it here
- * as well?
- */
-static void execute_normal_act(struct sysmobts_mgr_instance *manager)
-{
- LOGP(DTEMP, LOGL_NOTICE, "System is back to normal temperature.\n");
-}
-
-static void execute_warning_act(struct sysmobts_mgr_instance *manager)
-{
- LOGP(DTEMP, LOGL_NOTICE, "System has reached temperature warning.\n");
-}
-
-static void execute_critical_act(struct sysmobts_mgr_instance *manager)
+static void handle_actions(int actions)
{
- LOGP(DTEMP, LOGL_NOTICE, "System has reached critical warning.\n");
-
/* switch off the PA */
- if (manager->action_crit & TEMP_ACT_PA_OFF) {
+ if (actions & TEMP_ACT_PA_OFF) {
if (!is_sbts2050()) {
LOGP(DTEMP, LOGL_NOTICE,
"PA can only be switched-off on the master\n");
@@ -118,6 +100,29 @@ static void execute_critical_act(struct sysmobts_mgr_instance *manager)
}
}
+/**
+ * Go back to normal! Undo everything we did in the other states. For
+ * reducint the transmit power, the question is if we should slowly set
+ * it back to normal, let the BTS slowly increase it.. or handle it here
+ * as well?
+ */
+static void execute_normal_act(struct sysmobts_mgr_instance *manager)
+{
+ LOGP(DTEMP, LOGL_NOTICE, "System is back to normal temperature.\n");
+}
+
+static void execute_warning_act(struct sysmobts_mgr_instance *manager)
+{
+ LOGP(DTEMP, LOGL_NOTICE, "System has reached temperature warning.\n");
+ handle_actions(manager->action_warn);
+}
+
+static void execute_critical_act(struct sysmobts_mgr_instance *manager)
+{
+ LOGP(DTEMP, LOGL_NOTICE, "System has reached critical warning.\n");
+ handle_actions(manager->action_crit);
+}
+
static void sysmobts_mgr_temp_handle(struct sysmobts_mgr_instance *manager,
int critical, int warning)
{