rsl: fix wrong IE being checked in rsl_rx_chan_activ()

According to 3GPP TS 48.058, section 4.1.4, BTS shall start transmission
on SACCH if both MS Power and *Timing Advance* IEs are present.  There
can be no Access Delay IE in the RSL CHANnel ACTIVation message.

Change-Id: Icd8ccfd6e37ded8966125a473b5003845ba87fec
Fixes: I170b63c9856230d5f1a10654a9d950ada8e730d7
Related: SYS#5838
This commit is contained in:
Vadim Yanitskiy 2022-03-11 11:56:32 +03:00
parent da1b9a59f5
commit e746d6b54d
1 changed files with 9 additions and 9 deletions

View File

@ -1645,21 +1645,21 @@ static int rsl_rx_chan_activ(struct msgb *msg)
/* Indicate which SAPIs should be enabled before the first RACH is received, for handover. See 3GPP TS 48.058
* 4.1.3 and 4.1.4.
*
* | | Access || transmit | activate | This implementation
* | MS Power | Delay || on main channel | dl SACCH | activates DL SACCH
* | | Timing || transmit | activate | This implementation
* | MS Power | Advance || on main channel | dl SACCH | activates DL SACCH
* -----------------------------------------------------------------------------------------
* async ho no * --> yes no no
* async ho yes * --> yes may be started no
* async ho yes yes --> yes may be started yes
* sync ho no no --> yes no no
* sync ho yes no --> yes may be started no
* sync ho yes yes --> yes shall be started yes
* async ho no * --> yes no no
* async ho yes * --> yes may be started no
* async ho yes yes --> yes may be started yes
* sync ho no no --> yes no no
* sync ho yes no --> yes may be started no
* sync ho yes yes --> yes shall be started yes
*/
switch (type) {
case RSL_ACT_INTER_ASYNC:
case RSL_ACT_INTER_SYNC:
lchan->want_dl_sacch_active = (TLVP_PRES_LEN(&tp, RSL_IE_MS_POWER, 1)
&& TLVP_PRES_LEN(&tp, RSL_IE_ACCESS_DELAY, 1));
&& TLVP_PRES_LEN(&tp, RSL_IE_TIMING_ADVANCE, 1));
break;
default:
lchan->want_dl_sacch_active = true;