aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-04-06 18:56:48 +0200
committerHarald Welte <laforge@gnumonks.org>2018-04-07 11:35:12 +0200
commit0a405f13fc69a0c1d2a353c77ea6a9e7a3eb4401 (patch)
treeba26f86514fb9dd9d7861261498e1d00ba73bc01 /src
parent44311ea6e93f2832fe385cd97117ffcccee5ad3a (diff)
Start Dynamic PDCH Initialization after RSL is up
We used to start the dynamic PDCH initialization right after the respective OML initialization of the related timeslot. However, this is problematic as the RSL link may very well not even be up yet at that point. So let's do this at RSL link esetablishment time, not from OML. Change-Id: I8ac30ca075a1db4b624dc38a423d844d705fda7e Closes: OS#1841
Diffstat (limited to 'src')
-rw-r--r--src/libbsc/abis_om2000.c9
-rw-r--r--src/libbsc/bsc_init.c4
-rw-r--r--src/libbsc/bts_ipaccess_nanobts.c3
3 files changed, 3 insertions, 13 deletions
diff --git a/src/libbsc/abis_om2000.c b/src/libbsc/abis_om2000.c
index 756cc89ba..6057bc647 100644
--- a/src/libbsc/abis_om2000.c
+++ b/src/libbsc/abis_om2000.c
@@ -1683,15 +1683,6 @@ static void om2k_mo_st_wait_enable_res(struct osmo_fsm_inst *fi, uint32_t event,
static void om2k_mo_st_wait_opinfo_accept(struct osmo_fsm_inst *fi, uint32_t event, void *data)
{
- struct om2k_mo_fsm_priv *omfp = fi->priv;
-
- /* if we have just received opinfo accept for the timeslot,
- * start dynamic TCH switching procedures */
- if (omfp->mo->addr.class == OM2K_MO_CLS_TS) {
- struct gsm_bts_trx_ts *ts;
- ts = mo2obj(omfp->trx->bts, &omfp->mo->addr);
- dyn_ts_init(ts);
- }
osmo_fsm_inst_state_chg(fi, OM2K_ST_DONE, 0, 0);
}
diff --git a/src/libbsc/bsc_init.c b/src/libbsc/bsc_init.c
index f164533bc..ba8b8e641 100644
--- a/src/libbsc/bsc_init.c
+++ b/src/libbsc/bsc_init.c
@@ -350,8 +350,10 @@ static void bootstrap_rsl(struct gsm_bts_trx *trx)
rsl_nokia_si_end(trx);
}
- for (i = 0; i < ARRAY_SIZE(trx->ts); i++)
+ for (i = 0; i < ARRAY_SIZE(trx->ts); i++) {
generate_ma_for_ts(&trx->ts[i]);
+ dyn_ts_init(&trx->ts[i]);
+ }
if (acc_ramp_is_enabled(&trx->bts->acc_ramp))
acc_ramp_start(&trx->bts->acc_ramp);
diff --git a/src/libbsc/bts_ipaccess_nanobts.c b/src/libbsc/bts_ipaccess_nanobts.c
index edfe41771..4f1ac4bd8 100644
--- a/src/libbsc/bts_ipaccess_nanobts.c
+++ b/src/libbsc/bts_ipaccess_nanobts.c
@@ -175,9 +175,6 @@ static int nm_statechg_event(int evt, struct nm_statechg_signal_data *nsd)
abis_nm_opstart(trx->bts, obj_class,
trx->bts->bts_nr, trx->nr, ts->nr);
}
- if (new_state->operational == NM_OPSTATE_ENABLED
- && new_state->availability == NM_AVSTATE_OK)
- dyn_ts_init(ts);
break;
case NM_OC_RADIO_CARRIER:
trx = obj;