summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2018-10-03 03:59:34 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2018-10-04 06:20:58 +0700
commit4d78a70802c0a763ce03342b780ea9ba6717a2f4 (patch)
treed0d9f07bb4bbb13160997038d35a92abb33d443e
parent8d8f91c18bfbee770b6be721849d1e50bc4f1e51 (diff)
BTS_Tests.ttcn: fix: properly expect I-frames in f_TC_encr_cmd()
For some reason, in f_TC_encr_cmd() it was expected / assumed that when a ciphered I-frame is sent from MS on L1CTL, nothing else than this frame would arrive. But since we have fixed Measurement Reporting in trxcon (see OS#2988), the MR related messages do appear on A-bis interface now! This change introduces a new function f_data_mo(), which should be used to send I-frames from MS and expect them on A-bis. So, the following test cases: - TC_encr_cmd_a51; - TC_encr_cmd_a52; - TC_encr_cmd_a53; should pass with both trxcon and Calypso PHY now :) Change-Id: I08cb28dd9fa23f3ef8b0c9ede3d4c47f5702a1c1
-rw-r--r--bts/BTS_Tests.ttcn31
1 files changed, 27 insertions, 4 deletions
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index ea75937..0b8decd 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -3769,6 +3769,31 @@ private function f_unitdata_mo(
}
}
+/* Send I-frame from MS and expect it to arrive as RLL DATA IND on Abis */
+private function f_data_mo(
+ RslLinkId link_id,
+ boolean p, uint3_t nr, uint3_t ns,
+ octetstring l3,
+ boolean exp_sacch := true, /* Should tolerate SACCH messages? */
+ boolean exp_any := true /* Should tolerate any other RSL messages? */
+) runs on ConnHdlr {
+ timer T := 3.0;
+ f_tx_lapdm(ts_LAPDm_I(link_id.sapi, cr_MO_CMD, p, nr, ns, l3), link_id);
+ T.start;
+ /* Expect RLL DATA IND on RSL side */
+ alt {
+ [] RSL.receive(tr_RSL_DATA_IND(g_chan_nr, link_id, l3)) {
+ setverdict(pass);
+ }
+ [] as_rsl_sacch_ind(exp_sacch);
+ [] as_rsl_any_ind(exp_any);
+ [] T.timeout {
+ setverdict(fail, "Timeout waiting for DATA_IND");
+ mtc.stop;
+ }
+ }
+}
+
/* Test channel activation with A5/n right from the beginning (like in assignment + hand-over) */
function f_TC_chan_act_encr(charstring id) runs on ConnHdlr {
f_l1_tune(L1CTL);
@@ -3832,10 +3857,8 @@ function f_TC_encr_cmd(charstring id) runs on ConnHdlr {
var uint8_t alg_id := f_alg_id_to_l1ctl(g_pars.encr.alg_id);
f_L1CTL_CRYPTO_REQ(L1CTL, g_pars.chan_nr, alg_id, g_pars.encr.key);
- /* send first ciphered I-frame in response */
- l3 := '0a0b0c0d'O;
- f_tx_lapdm(ts_LAPDm_I(link_id.sapi, cr_MO_CMD, true, 1, 0, l3), link_id);
- RSL.receive(tr_RSL_DATA_IND(g_chan_nr, link_id, l3));
+ /* send first ciphered I-frame in response and expect it on RSL */
+ f_data_mo(link_id, true, 1, 0, '0a0b0c0d'O, exp_sacch := true);
/* now the BTS code should have detected the first properly encrypted uplink I-frame,
* and hence enable encryption also on the downlink */