aboutsummaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2013-06-30 15:05:09 +0200
committerHarald Welte <laforge@gnumonks.org>2013-06-30 15:09:35 +0200
commit48eca2524cb960b4ea430e228fcb80be73a512f5 (patch)
tree2cfadb49aa9ef9341c7bd8af78ebd296808441d1 /src/common
parent0089ce417822d989778c8a5f362f402578873897 (diff)
Don't send OML STATE CHANGE before OML is connected
Instead of calling oml_mo_state_chg() [which transmits OML STATE CHG] during bts_init(), we use a new oml_mo_state_init() function which simply sets the state.
Diffstat (limited to 'src/common')
-rw-r--r--src/common/bts.c10
-rw-r--r--src/common/oml.c7
2 files changed, 12 insertions, 5 deletions
diff --git a/src/common/bts.c b/src/common/bts.c
index bc60479d..e899ebd5 100644
--- a/src/common/bts.c
+++ b/src/common/bts.c
@@ -79,11 +79,11 @@ int bts_init(struct gsm_bts *bts)
btsb->radio_link_timeout = 32;
/* set BTS to dependency */
- oml_mo_state_chg(&bts->mo, -1, NM_AVSTATE_DEPENDENCY);
- oml_mo_state_chg(&bts->gprs.nse.mo, -1, NM_AVSTATE_DEPENDENCY);
- oml_mo_state_chg(&bts->gprs.cell.mo, -1, NM_AVSTATE_DEPENDENCY);
- oml_mo_state_chg(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_DEPENDENCY);
- oml_mo_state_chg(&bts->gprs.nsvc[1].mo, -1, NM_AVSTATE_DEPENDENCY);
+ oml_mo_state_init(&bts->mo, -1, NM_AVSTATE_DEPENDENCY);
+ oml_mo_state_init(&bts->gprs.nse.mo, -1, NM_AVSTATE_DEPENDENCY);
+ oml_mo_state_init(&bts->gprs.cell.mo, -1, NM_AVSTATE_DEPENDENCY);
+ oml_mo_state_init(&bts->gprs.nsvc[0].mo, -1, NM_AVSTATE_DEPENDENCY);
+ oml_mo_state_init(&bts->gprs.nsvc[1].mo, -1, NM_AVSTATE_DEPENDENCY);
/* initialize bts data structure */
llist_for_each_entry(trx, &bts->trx_list, list) {
diff --git a/src/common/oml.c b/src/common/oml.c
index 5a647097..62078662 100644
--- a/src/common/oml.c
+++ b/src/common/oml.c
@@ -229,6 +229,13 @@ int oml_tx_state_changed(struct gsm_abis_mo *mo)
return oml_mo_send_msg(mo, nmsg, NM_MT_STATECHG_EVENT_REP);
}
+/* First initialization of MO, does _not_ generate state changes */
+int oml_mo_state_init(struct gsm_abis_mo *mo, int op_state, int avail_state)
+{
+ mo->nm_state.availability = avail_state;
+ mo->nm_state.operational = op_state;
+}
+
int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state)
{
int rc = 0;