diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2020-10-22 17:29:36 +0200 |
---|---|---|
committer | Philipp Maier <pmaier@sysmocom.de> | 2020-10-22 17:33:57 +0200 |
commit | 149c392f25fcdf05f78cf703b7756718636f0fb7 (patch) | |
tree | 2fcfc54258b035323405745aeb2f13d6ced0ae3c | |
parent | d6d69b50fcffe6539466a067c748ef18bf32730a (diff) |
BTS_Tests: add FAACH to TC_meas_res_speech_tchX
The current TC_meas_res_speech_tchX tests only test a pure voice
transmission. A voice transmission can be occasionally interrupted by
FACCH transmissions. This should also be tested. Lets ad a _facch
variant for the two speech test variants we already that injects a FACCH
from time to time.
Related: OS#4799
Change-Id: Ie9cd39739d4b972f4e533a7bc90f79e914888aab
-rw-r--r-- | bts/BTS_Tests.ttcn | 45 |
1 files changed, 39 insertions, 6 deletions
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 09a7a15b..cfb49dc9 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -751,7 +751,8 @@ friend template ConnHdlrPars t_Pars(template RslChannelNr chan_nr, timing_offset_256syms := mp_timing_offset_256syms_exp, bs_power_level := 0, ms_power_level := mp_ms_power_level_exp, - ms_actual_ta := mp_ms_actual_ta_exp + ms_actual_ta := mp_ms_actual_ta_exp, + facch_enabled := false }, spec := omit, encr := omit, @@ -1788,8 +1789,17 @@ private altstep as_l1_tch_loop() runs on ConnHdlr { var L1ctlDlMessage l1_dl; [] L1CTL.receive(tr_L1CTL_TRAFFIC_IND(g_chan_nr)) -> value l1_dl { log("TCH received: ", l1_dl.payload.traffic_ind.data); - L1CTL.send(ts_L1CTL_TRAFFIC_REQ(g_chan_nr, l1_dl.dl_info.link_id, - l1_dl.payload.traffic_ind.data)); + + /* occasionaly inject FACCH frames into the uplink */ + if (g_pars.l1_pars.facch_enabled == true and l1_dl.dl_info.frame_nr mod 5 == 0) { + var octetstring pl := '010301'O; + L1CTL.send(ts_L1CTL_DATA_REQ(g_chan_nr, ts_RslLinkID_DCCH(0), + f_pad_oct(pl, 23, '2B'O))); + } else { + L1CTL.send(ts_L1CTL_TRAFFIC_REQ(g_chan_nr, l1_dl.dl_info.link_id, + l1_dl.payload.traffic_ind.data)); + } + repeat; } } @@ -1811,7 +1821,8 @@ private type record ConnL1Pars { int16_t timing_offset_256syms, uint4_t bs_power_level, uint5_t ms_power_level, - uint8_t ms_actual_ta + uint8_t ms_actual_ta, + boolean facch_enabled } /* Convert tiing offset from 1/256th symbol to RSL Timing Offset */ @@ -2976,7 +2987,7 @@ testcase TC_rsl_ms_pwr_dyn_active2() runs on test_CT { Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } -testcase TC_meas_res_speech_tchf() runs on test_CT { +function f_TC_meas_res_speech_tchf(boolean facch_enabled) runs on test_CT { var template RSL_IE_ChannelMode ch_mode; var ConnHdlr vc_conn; var ConnHdlrPars pars; @@ -2984,13 +2995,23 @@ testcase TC_meas_res_speech_tchf() runs on test_CT { ch_mode := ts_RSL_ChanMode(RSL_CHRT_TCH_F, RSL_CMOD_SP_GSM1); for (var integer tn := 1; tn <= 1; tn := tn + 1) { pars := valueof(t_Pars(t_RslChanNr_Bm(tn), ch_mode)); + pars.l1_pars.facch_enabled := facch_enabled; vc_conn := f_start_handler(refers(f_TC_meas_res_periodic), pars, pcu_comp := false, trxc_comp := true); vc_conn.done; } Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } -testcase TC_meas_res_speech_tchh() runs on test_CT { + +testcase TC_meas_res_speech_tchf() runs on test_CT { + f_TC_meas_res_speech_tchf(false); +} + +testcase TC_meas_res_speech_tchf_facch() runs on test_CT { + f_TC_meas_res_speech_tchf(true); +} + +function f_TC_meas_res_speech_tchh(boolean facch_enabled) runs on test_CT { var template RSL_IE_ChannelMode ch_mode; var ConnHdlr vc_conn; var ConnHdlrPars pars; @@ -2998,12 +3019,22 @@ testcase TC_meas_res_speech_tchh() runs on test_CT { ch_mode := ts_RSL_ChanMode(RSL_CHRT_TCH_H, RSL_CMOD_SP_GSM1); for (var integer ss := 0; ss <= 1; ss := ss + 1) { pars := valueof(t_Pars(t_RslChanNr_Lm(5, ss), ch_mode)); + pars.l1_pars.facch_enabled := facch_enabled; vc_conn := f_start_handler(refers(f_TC_meas_res_periodic), pars, pcu_comp := false, trxc_comp := true); vc_conn.done; } Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } + +testcase TC_meas_res_speech_tchh() runs on test_CT { + f_TC_meas_res_speech_tchh(false) +} + +testcase TC_meas_res_speech_tchh_facch() runs on test_CT { + f_TC_meas_res_speech_tchh(true) +} + testcase TC_meas_res_speech_tchh_toa256() runs on test_CT { var template RSL_IE_ChannelMode ch_mode; var ConnHdlr vc_conn; @@ -7185,7 +7216,9 @@ control { execute( TC_rach_load_idle_below_thresh() ); execute( TC_rach_load_count() ); execute( TC_meas_res_speech_tchf() ); + execute( TC_meas_res_speech_tchf_facch() ); execute( TC_meas_res_speech_tchh() ); + execute( TC_meas_res_speech_tchh_facch() ); execute( TC_meas_res_speech_tchh_toa256() ); execute( TC_meas_res_sign_tchf() ); execute( TC_meas_res_sign_tchh() ); |