aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2020-10-22 17:29:36 +0200
committerPhilipp Maier <pmaier@sysmocom.de>2020-10-22 17:33:57 +0200
commit149c392f25fcdf05f78cf703b7756718636f0fb7 (patch)
tree2fcfc54258b035323405745aeb2f13d6ced0ae3c
parentd6d69b50fcffe6539466a067c748ef18bf32730a (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.ttcn45
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() );