chan activ: activate DL SACCH only when TA is known
A channel activation for handover to another cell does not know the Timing Advance until the handover RACH is received. It does not make much sense to enable downlink SACCH without an accurate TA. If the BSC omits the Access Delay IE (a.k.a. the Timing Advance), do not enable downlink SACCH. This is expected to happen only for inter-cell handover. In all other situations, the TA should be known either from a Channel Request RACH for Immediate Assignment, or from the previous lchan on the same cell upon Assignment / intra-cell handover. Related: OS#4008 OS#4009 SYS#5192 Change-Id: I170b63c9856230d5f1a10654a9d950ada8e730d7
This commit is contained in:
parent
a666f713ec
commit
10272f7702
|
@ -1545,11 +1545,23 @@ 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. */
|
||||
* 4.1.3 and 4.1.4.
|
||||
*
|
||||
* | | Access || transmit | activate | This implementation
|
||||
* | MS Power | Delay || 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
|
||||
*/
|
||||
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);
|
||||
lchan->want_dl_sacch_active = (TLVP_PRES_LEN(&tp, RSL_IE_MS_POWER, 1)
|
||||
&& TLVP_PRES_LEN(&tp, RSL_IE_ACCESS_DELAY, 1));
|
||||
break;
|
||||
default:
|
||||
lchan->want_dl_sacch_active = true;
|
||||
|
|
Loading…
Reference in New Issue