diff options
author | Harald Welte <laforge@gnumonks.org> | 2011-03-06 22:11:32 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2011-03-06 22:11:32 +0100 |
commit | f38ca9aec78421a5a065804007443e5c18ac582a (patch) | |
tree | 39b4515d715bd0dd56c113960eaed14c4b86601a | |
parent | d529db6e5025daab8c1316e827bbed4e1e2289ac (diff) |
OML: Include a pointer to the BTS in NM STATE CHANGE signals
... this allows the BTS driver to decide if it should handle the event at all
-rw-r--r-- | openbsc/include/openbsc/signal.h | 1 | ||||
-rw-r--r-- | openbsc/src/libbsc/abis_nm.c | 2 | ||||
-rw-r--r-- | openbsc/src/libbsc/bts_ipaccess_nanobts.c | 3 |
3 files changed, 6 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/signal.h b/openbsc/include/openbsc/signal.h index 572c9754c..83a4ee693 100644 --- a/openbsc/include/openbsc/signal.h +++ b/openbsc/include/openbsc/signal.h @@ -175,6 +175,7 @@ struct ipacc_ack_signal_data { struct abis_om2k_mo; struct nm_statechg_signal_data { + struct gsm_bts *bts; u_int8_t obj_class; void *obj; struct gsm_nm_state *old_state; diff --git a/openbsc/src/libbsc/abis_nm.c b/openbsc/src/libbsc/abis_nm.c index 788dd4de9..761dda182 100644 --- a/openbsc/src/libbsc/abis_nm.c +++ b/openbsc/src/libbsc/abis_nm.c @@ -697,6 +697,7 @@ static int update_admstate(struct gsm_bts *bts, u_int8_t obj_class, new_state = *nm_state; new_state.administrative = adm_state; + nsd.bts = bts; nsd.obj_class = obj_class; nsd.old_state = nm_state; nsd.new_state = &new_state; @@ -759,6 +760,7 @@ static int abis_nm_rx_statechg_rep(struct msgb *mb) nsd.old_state = nm_state; nsd.new_state = &new_state; nsd.obj_inst = &foh->obj_inst; + nsd.bts = bts; dispatch_signal(SS_NM, S_NM_STATECHG_OPER, &nsd); nm_state->operational = new_state.operational; nm_state->availability = new_state.availability; diff --git a/openbsc/src/libbsc/bts_ipaccess_nanobts.c b/openbsc/src/libbsc/bts_ipaccess_nanobts.c index 25dc0c8a2..463e3a7ad 100644 --- a/openbsc/src/libbsc/bts_ipaccess_nanobts.c +++ b/openbsc/src/libbsc/bts_ipaccess_nanobts.c @@ -258,6 +258,9 @@ static int nm_statechg_event(int evt, struct nm_statechg_signal_data *nsd) struct gsm_bts_trx_ts *ts; struct gsm_bts_gprs_nsvc *nsvc; + if (nsd->bts->type != GSM_BTS_TYPE_NANOBTS) + return 0; + /* This event-driven BTS setup is currently only required on nanoBTS */ /* S_NM_STATECHG_ADM is called after we call chg_adm_state() and would create |