timeslot_fsm: Warn in case Ercisson RBS uses static PDCH

The Ericsson RBS is a BTS that natively works with dynamic timeslots.
This colides with the current understanding of static PDCH channels
because the BTSs we support so far get thier static PDCH information on
startup and then handle everything related internally. The BSC does not
actively manage the channel in those cases. In the case of Ericsson we
have to activate the PDCH via RSL like any other channel and the timeslot
FSM has to manage it. Lets not add work arouds for this, lets just print
and error message and use the BTS in the dynamic scheme as intended by
the manufacturer.

Change-Id: Icc7c2956fc934691e3bfacb283d896a8767baf27
Related: OS#5198
This commit is contained in:
Philipp Maier 2023-01-30 14:18:11 +01:00
parent 373d4f05f6
commit 3fff53aed7
1 changed files with 17 additions and 0 deletions

View File

@ -326,6 +326,23 @@ bool trx_has_valid_pchan_config(const struct gsm_bts_trx *trx)
}
break;
case GSM_PCHAN_PDCH:
if (is_ericsson_bts(trx->bts)) {
/* NOTE: A static PDCH is usually handled by the BTS/PCU internally, the BSC
* will not actively manage this channel. It will just keep the timeslot
* unused so that it is free for the BTS/PCU to use it as PDCH. Not all BTSs
* work well in this scheme. Ericsson RBS BTSs support dynamic channels natively
* and require a channel activation on RSL level before the PDCH can be used.
* One could work around this by activating the PDCH once on startup and
* leave it on indefinetly but we decided not to do so. Users of Ericsson RBS
* BTSs must configure a dynamic PDCH channel. */
LOGP(DNM, LOGL_ERROR, "%s is not allowed, because Ericsson RBS does"
"not support static PDCH (use TCH/F_TCH/H_SDCCH8_PDCH)\n",
gsm_pchan_name(ts->pchan_from_config));
result = false;
}
break;
default:
/* CCCH on TS0 is mandatory for C0 */
if (trx->bts->c0 == trx && i == 0) {