rsl_tx_chan_activ(): fix manual channel activation for nanoBTS

nanoBTS would NACK a CHANnel ACTIVation message for an 'intra cell
channel change' if it does not contain the Timing Advance IE.  And
this is right, because according to 3GPP TS 48.058, section 8.4.1,
point '4)', it *must* be included.

Indeed, the actual Timing Advance value is not known during the
manual channel activation triggered from the VTY interface.  So
let's merely indicate 0 if it's not known.

Change-Id: Iee7ddb4cf1a9a7bb9b34e6c9f6f9899da480fbd0
This commit is contained in:
Vadim Yanitskiy 2021-11-05 01:42:06 +03:00
parent e74269bbe2
commit 140aa51ea1
1 changed files with 6 additions and 0 deletions

View File

@ -691,6 +691,12 @@ int rsl_tx_chan_activ(struct gsm_lchan *lchan, uint8_t act_type, uint8_t ho_ref)
if (bts->type == GSM_BTS_TYPE_BS11)
ta <<= 2;
msgb_tv_put(msg, RSL_IE_TIMING_ADVANCE, ta);
} else if ((act_type & 0x06) == 0x00) {
/* Note '4)' in section 8.4.1: The Timing Advance element must be
* included if activation type is intra cell channel change. */
LOG_LCHAN(lchan, LOGL_NOTICE, "Timing Advance IE shall be present, "
"but the actual value is not known => assuming 0\n");
msgb_tv_put(msg, RSL_IE_TIMING_ADVANCE, 0);
}
/* BS/MS Power Control Parameters (if supported by BTS model) */