BTS_Tests: add TC_meas_res_speech_{tchf,tchh}_sapi3()
The idea behind these test cases is to make sure that osmo-bts does send RSL MEASurement RESult messages regardless of what was received on SACCH: RR Measurement Report or SAPI=3 data. Change-Id: I7d17d6e5f413f2de78db944f23ad731b81ad24cf
This commit is contained in:
parent
9ff4780505
commit
8f6eae0813
|
@ -3310,6 +3310,86 @@ testcase TC_meas_res_sign_tchh_toa256() runs on test_CT {
|
|||
Misc_Helpers.f_shutdown(__BFILE__, __LINE__);
|
||||
}
|
||||
|
||||
/* Make sure that we always get RSL MEASurement RESult messages regardless
|
||||
* of what is sent on SACCH: (RR) Measurement Report or SAPI=3 data (SMS). */
|
||||
private function f_TC_meas_res_sapi3(charstring id) runs on ConnHdlr {
|
||||
timer Texec := 8.0;
|
||||
timer Timpf := 2.0;
|
||||
timer Tmr;
|
||||
|
||||
f_l1_tune(L1CTL);
|
||||
RSL.clear;
|
||||
|
||||
f_est_dchan();
|
||||
L1CTL.clear;
|
||||
|
||||
/* Establish the main SAPI=0 link on DCCH first */
|
||||
f_tx_lapdm(ts_LAPDm_SABM(0, cr_MO_CMD, true, ''O), ts_RslLinkID_DCCH(0));
|
||||
|
||||
/* Give more time for the first RSL MEASurement RESult */
|
||||
Tmr.start(0.480 * 2.0);
|
||||
Texec.start; /* EXECution timer */
|
||||
Timpf.start; /* IMPFung timer */
|
||||
|
||||
alt {
|
||||
/* We expect RSL MEASurement RESult messages every ~480ms (plus some guard) */
|
||||
[] RSL.receive(tr_RSL_MEAS_RES(g_pars.chan_nr)) {
|
||||
/* Reschedule the MEAS RES timer */
|
||||
Tmr.start(0.480 + 0.120);
|
||||
repeat;
|
||||
}
|
||||
[] RSL.receive { repeat; }
|
||||
[] Tmr.timeout {
|
||||
setverdict(fail, "Timeout waiting for RSL MEAS RES");
|
||||
}
|
||||
/* Inject some SAPI=3 traffic on SACCH every 2 seconds */
|
||||
[] Timpf.timeout {
|
||||
f_tx_lapdm(ts_LAPDm_SABM(3, cr_MO_CMD, true, ''O), ts_RslLinkID_SACCH(3));
|
||||
log("Injected SAPI=3 traffic on SACCH");
|
||||
Timpf.start;
|
||||
repeat;
|
||||
}
|
||||
/* We're good if survived so far */
|
||||
[] Texec.timeout {
|
||||
setverdict(pass);
|
||||
}
|
||||
}
|
||||
|
||||
f_rsl_chan_deact();
|
||||
f_L1CTL_DM_REL_REQ(L1CTL, g_chan_nr);
|
||||
f_rslem_unregister(0, g_chan_nr);
|
||||
}
|
||||
testcase TC_meas_res_speech_tchf_sapi3() runs on test_CT {
|
||||
var template RSL_IE_ChannelMode ch_mode;
|
||||
var template ConnHdlrPars pars;
|
||||
var ConnHdlr vc_conn;
|
||||
|
||||
f_init();
|
||||
|
||||
ch_mode := ts_RSL_ChanMode(RSL_CHRT_TCH_F, RSL_CMOD_SP_GSM1);
|
||||
pars := t_Pars(t_RslChanNr_Bm(1), ch_mode);
|
||||
|
||||
vc_conn := f_start_handler(refers(f_TC_meas_res_sapi3), valueof(pars));
|
||||
vc_conn.done;
|
||||
|
||||
Misc_Helpers.f_shutdown(__BFILE__, __LINE__);
|
||||
}
|
||||
testcase TC_meas_res_speech_tchh_sapi3() runs on test_CT {
|
||||
var template RSL_IE_ChannelMode ch_mode;
|
||||
var template ConnHdlrPars pars;
|
||||
var ConnHdlr vc_conn;
|
||||
|
||||
f_init();
|
||||
|
||||
ch_mode := ts_RSL_ChanMode(RSL_CHRT_TCH_H, RSL_CMOD_SP_GSM1);
|
||||
pars := t_Pars(t_RslChanNr_Lm(5, 0), ch_mode);
|
||||
|
||||
vc_conn := f_start_handler(refers(f_TC_meas_res_sapi3), valueof(pars));
|
||||
vc_conn.done;
|
||||
|
||||
Misc_Helpers.f_shutdown(__BFILE__, __LINE__);
|
||||
}
|
||||
|
||||
/* establish DChan, and send MS POWER CONTROL messages via RSL, verify that
|
||||
* the BTS is forwarding those values to the MS via the SACCH L1 header. */
|
||||
private function f_tc_rsl_ms_pwr_ctrl(charstring id) runs on ConnHdlr {
|
||||
|
@ -7890,6 +7970,8 @@ control {
|
|||
execute( TC_meas_res_sign_sdcch4() );
|
||||
execute( TC_meas_res_sign_sdcch8() );
|
||||
execute( TC_meas_res_sign_tchh_toa256() );
|
||||
execute( TC_meas_res_speech_tchf_sapi3() );
|
||||
execute( TC_meas_res_speech_tchh_sapi3() );
|
||||
execute( TC_tx_power_start_ramp_up_bcch() );
|
||||
execute( TC_tx_power_start_ramp_down_bcch() );
|
||||
execute( TC_tx_power_ramp_adm_state_change() );
|
||||
|
|
Loading…
Reference in New Issue