summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2016-11-16 13:02:56 +0100
committerHarald Welte <laforge@gnumonks.org>2016-11-16 13:02:56 +0100
commit3bc66b8d05d132f4661d540322668a6a885e4f39 (patch)
treedce3c4e77e850dc7ccfce4b75ed106445e12b29e
parent66c18c7b2bebc9b43e8e3fd6182fa30c3b743b5f (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.c10
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);
}