diff options
author | Harald Welte <laforge@gnumonks.org> | 2016-11-16 13:02:56 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2016-11-16 13:02:56 +0100 |
commit | 3bc66b8d05d132f4661d540322668a6a885e4f39 (patch) | |
tree | dce3c4e77e850dc7ccfce4b75ed106445e12b29e | |
parent | 66c18c7b2bebc9b43e8e3fd6182fa30c3b743b5f (diff) |
RBS2000: More missing dynamic TCH initialization
When OM2000 has confirmed that a TS is started, call dyn_ts_init()
on the timeslot to start the processing for fully dynamic (osmocom
style) TCH/F_TCH/H_PDCH. This should in turn trigger the activation of
idle timeslots as PDCH until we want to allocate any of them for TCH/F
or TCH/H.
Change-Id: I1a1fd61d6afd85449cacad4bacfb830252dab6b1
-rw-r--r-- | openbsc/src/libbsc/abis_om2000.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/openbsc/src/libbsc/abis_om2000.c b/openbsc/src/libbsc/abis_om2000.c index af8bb30fc..7fc8a0b39 100644 --- a/openbsc/src/libbsc/abis_om2000.c +++ b/openbsc/src/libbsc/abis_om2000.c @@ -39,6 +39,7 @@ #include <openbsc/gsm_data.h> #include <openbsc/debug.h> #include <openbsc/abis_nm.h> +#include <openbsc/abis_rsl.h> #include <openbsc/abis_om2000.h> #include <openbsc/signal.h> #include <osmocom/abis/e1_input.h> @@ -1683,6 +1684,15 @@ 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_s *ts; + ts = mo2obj(omfp->trx->bts, &omfp->mo->addr); + dyn_ts_init(ts); + } osmo_fsm_inst_state_chg(fi, OM2K_ST_DONE, 0, 0); } |