diff options
author | Harald Welte <laforge@gnumonks.org> | 2018-04-06 18:56:48 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-04-07 11:35:12 +0200 |
commit | 0a405f13fc69a0c1d2a353c77ea6a9e7a3eb4401 (patch) | |
tree | ba26f86514fb9dd9d7861261498e1d00ba73bc01 | |
parent | 44311ea6e93f2832fe385cd97117ffcccee5ad3a (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
-rw-r--r-- | src/libbsc/abis_om2000.c | 9 | ||||
-rw-r--r-- | src/libbsc/bsc_init.c | 4 | ||||
-rw-r--r-- | src/libbsc/bts_ipaccess_nanobts.c | 3 |
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; |