aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2017-06-27 10:02:59 +0200
committerHarald Welte <laforge@gnumonks.org>2017-09-02 19:44:54 +0000
commit9e36dca82aa139f10e25ca037cf4a7cc03eafea0 (patch)
treeb6314a422d9499a15933e544247a748fc56d3ed9 /src
parentbbf6c435f60083b3e964843a6461df5bdc04fd85 (diff)
trx: avoid deactivating lchan on LCHAN_REL_ACT_REACT
* do not deactivate lchan when called with LCHAN_REL_ACT_REACT * add fixme comment It's unclear yet if any special steps are required for osmo-bts-trx so let's just make it compatible with setups [1] using BS_AG_BLKS_RES != 1 for now. Background: CCCH is auto activated by some OsmoBTS - before we receive SI3, see 4a8582846281322e8d7dfc577b18767cf35c24d1. To accommodate for that we deactivate CCCH in common/rsl.c, which triggers BTS-model specific callback sapi_deactivate_cb() which updates parameters and activates it again. In case of osmo-bts-trx there is no auto-activation and (seems to be) no need in special interaction with hw to activate channel (no lchan_activate()) hence we can just skip entire deactivate/setup/activate again routine. [1] "channel-descrption bs-ag-blks-res N" in OpenBSC config file. Related: OS#1575 Change-Id: I20b89ba1e43d1414180b083cd1e085eeffe5d513
Diffstat (limited to 'src')
-rw-r--r--src/osmo-bts-trx/l1_if.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/osmo-bts-trx/l1_if.c b/src/osmo-bts-trx/l1_if.c
index c629a61b..3c11dfd5 100644
--- a/src/osmo-bts-trx/l1_if.c
+++ b/src/osmo-bts-trx/l1_if.c
@@ -109,6 +109,12 @@ int bts_model_lchan_deactivate(struct gsm_lchan *lchan)
struct phy_instance *pinst = trx_phy_instance(lchan->ts->trx);
struct trx_l1h *l1h = pinst->u.osmotrx.hdl;
+ if (lchan->rel_act_kind == LCHAN_REL_ACT_REACT) {
+ lchan->rel_act_kind = LCHAN_REL_ACT_RSL;
+ /* FIXME: perform whatever is needed (if any) to set proper PCH/AGCH allocation according to
+ 3GPP TS 44.018 Table 10.5.2.11.1 using num_agch(lchan->ts->trx, "TRX L1"); function */
+ return 0;
+ }
/* set lchan inactive */
lchan_set_state(lchan, LCHAN_S_NONE);