aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2022-05-04 19:07:14 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2022-05-13 14:06:37 +0200
commit50a42e7436db6e675d7e27b6fb1565d8f71ad03a (patch)
tree95c85d25533ba1a44756d3b5f8c366874a1badec /include/osmocom
parentb7ef6884f91db7ffe7add51766abc311c9e7d05e (diff)
Introduce new signal S_NM_RUNNING_CHG and implement it for rcarrier,bbtransc
This allows different parts of the code to hook to some signals which allow start/stopping processes based, for instance, on whether C0 is available or not. This can be later used by paging or CBSP code. Also ACC code can be ported to this new system (acc_ramp_nm_sig_cb()). Same signal can be used for other NM objects, but is left unimplemented until there's use for them. Change-Id: I206d4c7863a77fbab6a600126742a6a6b8fc3614
Diffstat (limited to 'include/osmocom')
-rw-r--r--include/osmocom/bsc/nm_common_fsm.h7
-rw-r--r--include/osmocom/bsc/signal.h9
2 files changed, 16 insertions, 0 deletions
diff --git a/include/osmocom/bsc/nm_common_fsm.h b/include/osmocom/bsc/nm_common_fsm.h
index 89ec863aa..1d56220be 100644
--- a/include/osmocom/bsc/nm_common_fsm.h
+++ b/include/osmocom/bsc/nm_common_fsm.h
@@ -25,6 +25,9 @@
#include <osmocom/core/fsm.h>
#include <osmocom/core/utils.h>
+#include <osmocom/gsm/protocol/gsm_12_21.h>
+
+struct gsm_bts;
/* Common */
enum nm_fsm_events {
@@ -111,3 +114,7 @@ enum nm_gprs_op_nsvc_fsm_states {
NM_GPRS_NSVC_ST_OP_ENABLED,
};
extern struct osmo_fsm nm_gprs_nsvc_fsm;
+
+void nm_obj_fsm_becomes_enabled_disabled(struct gsm_bts *bts, void *obj,
+ enum abis_nm_obj_class obj_class,
+ bool running);
diff --git a/include/osmocom/bsc/signal.h b/include/osmocom/bsc/signal.h
index 17c9c03f1..66776daff 100644
--- a/include/osmocom/bsc/signal.h
+++ b/include/osmocom/bsc/signal.h
@@ -77,6 +77,7 @@ enum signal_nm {
S_NM_SET_RADIO_ATTR_ACK, /* Received Set Radio Carrier Attributes Ack, arg is struct msgb *oml_msg */
S_NM_SET_CHAN_ATTR_ACK, /* Received Set Radio Channel Attributes Ack, arg is struct msgb *oml_msg */
S_NM_SET_BTS_ATTR_ACK, /* Received Set BTS Attributes Ack, arg is struct msgb *oml_msg */
+ S_NM_RUNNING_CHG, /* Object moves from/to NM running state (op=Enabled adm=Unlocked avail=OK) */
};
/* SS_LCHAN signals */
@@ -140,6 +141,14 @@ struct nm_statechg_signal_data {
struct abis_om2k_mo *om2k_mo;
};
+/* data for <SS_NM, S_NM_RUNNING_CHG>: */
+struct nm_running_chg_signal_data {
+ struct gsm_bts *bts;
+ uint8_t obj_class;
+ void *obj;
+ bool running;
+};
+
struct nm_om2k_signal_data {
struct gsm_bts *bts;
void *obj;