BTS_Tests: indicate TCH mode to the L1 in f_est_dchan()

Otherwise the L1 (trxcon or Calypso PHY) would 'think' that we're
in signalling mode, and would not send us Bad Frame Indications.

Change-Id: I0ade3bd63f604c7f0665124b182a023d50030d0b
Depends: I6f403ed0506b4b1872361d9976d3186bfe514b52
Related: OS#4799
This commit is contained in:
Vadim Yanitskiy 2020-10-19 17:34:52 +07:00 committed by laforge
parent d0ec1490c6
commit 52787bf97f
2 changed files with 33 additions and 0 deletions

View File

@ -2099,6 +2099,25 @@ private function f_est_dchan(boolean encr_enable := false, RSL_IE_List more_ies
f_L1CTL_CRYPTO_REQ(L1CTL, g_pars.chan_nr, alg_id, g_pars.encr.key);
}
/* Send TCH Mode Request to the L1 if needed */
if (match(g_pars.chan_mode.spd_ind, (RSL_SPDI_SPEECH, RSL_SPDI_DATA))) {
var L1ctlTchMode tch_mode;
select (g_pars.chan_mode.coding_alg_rate) {
case (RSL_CMOD_NO_RESOURCE) { tch_mode := L1CTL_CHAN_MODE_SIGN; }
case (RSL_CMOD_SP_GSM1) { tch_mode := L1CTL_CHAN_MODE_SPEECH_V1; }
case (RSL_CMOD_SP_GSM2) { tch_mode := L1CTL_CHAN_MODE_SPEECH_V2; }
case (RSL_CMOD_SP_GSM3) { tch_mode := L1CTL_CHAN_MODE_SPEECH_V3; }
case else {
log("RSL channel mode := ", g_pars.chan_mode.coding_alg_rate,
" is not supported by the L1, falling back to signalling");
tch_mode := L1CTL_CHAN_MODE_SIGN;
}
}
f_L1CTL_TCH_MODE(L1CTL, tch_mode);
}
g_first_meas_res := true;
}

View File

@ -80,6 +80,20 @@ module L1CTL_PortType {
}
}
function f_L1CTL_TCH_MODE(L1CTL_PT pt, L1ctlTchMode tch_mode) {
timer T := 2.0;
pt.send(ts_L1CTL_TCH_MODE_REQ(tch_mode));
T.start;
alt {
[] pt.receive(tr_L1CTL_MsgType(L1CTL_TCH_MODE_CONF)) { }
[] pt.receive { repeat; }
[] T.timeout {
setverdict(fail, "Timeout waiting for L1CTL_TCH_MODE_CONF");
mtc.stop;
}
}
}
function f_L1CTL_RACH(L1CTL_PT pt, uint8_t ra, uint8_t combined := 1, uint16_t offset := 0,
template (value) RslChannelNr chan_nr := ts_RslChanNr_RACH(0),
template (value) RslLinkId link_id := ts_RslLinkID_DCCH(0))