diff options
author | Max <msuraev@sysmocom.de> | 2016-10-12 16:24:32 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2016-12-01 15:25:26 +0000 |
commit | 4a8582846281322e8d7dfc577b18767cf35c24d1 (patch) | |
tree | ff9cd1499a38e2d87834e65fc505e31aefff9251 /src/common/rsl.c | |
parent | b58aa60d785f4400ba6e21752d16ea01ac4c0a1f (diff) |
Fix AGCH/PCH proportional allocation
Do not assume that 1 == BS_AG_BLKS_RES but take that information from
SI3. Note: due to current implementation quirks we activate channels
before SI3 obtained, than we deactivate channels upon receiving SI3 and
activate them again. This might not be necessary once we migrate to
proper OML state machines.
This affects lc15 and sysmo hw.
Change-Id: I11377b12680ac3b2f77f80e742b6f0af63fc9c1e
Related: OS#1575
Diffstat (limited to 'src/common/rsl.c')
-rw-r--r-- | src/common/rsl.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/common/rsl.c b/src/common/rsl.c index 880136cd..8d1175db 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -295,6 +295,14 @@ static int rsl_rx_bcch_info(struct gsm_bts_trx *trx, struct msgb *msg) LOGP(DRSL, LOGL_INFO, " Rx RSL BCCH INFO (SI%s)\n", get_value_string(osmo_sitype_strs, osmo_si)); + if (SYSINFO_TYPE_3 == osmo_si && trx->nr == 0 && + num_agch(trx, "RSL") != 1) { + lchan_deactivate(&trx->bts->c0->ts[0].lchan[CCCH_LCHAN]); + /* will be reactivated by sapi_deactivate_cb() */ + trx->bts->c0->ts[0].lchan[CCCH_LCHAN].rel_act_kind = + LCHAN_REL_ACT_REACT; + } + if (SYSINFO_TYPE_2quater == osmo_si) { si2q = (struct gsm48_system_information_type_2quater *) bts->si_buf[SYSINFO_TYPE_2quater]; |