bsc: add intra-BSC handover tests with encryption

In f_tc_ho_int(), verify encryption information for the handover
target's chan act.

Add test cases calling f_tc_ho_int() with various A5/n encryption modes.

Related: SYS#5324
Change-Id: Iaab26c708c106a61b762234d42ed9a52cdc2998c
This commit is contained in:
Neels Hofmeyr 2021-06-21 02:14:27 +02:00 committed by laforge
parent 58ffceb4ec
commit af88d9dbf3
1 changed files with 50 additions and 0 deletions

View File

@ -4715,6 +4715,11 @@ private function f_tc_ho_int(charstring id) runs on MSC_ConnHdlr {
/* Check the amount of MGCP transactions is still consistant with the
* test expectation */
f_check_mgcp_expectations()
/* Ensure the Channel Activation for the new channel contained the right encryption params. as_handover() set
* g_chan_nr to the new lchan that was handed over to. It lives in bts 1, so look it up at RSL1_PROC. */
f_verify_encr_info(f_rslem_get_last_act(RSL1_PROC, 0, g_chan_nr));
f_sleep(0.5);
}
@ -4741,6 +4746,47 @@ testcase TC_ho_int() runs on test_CT {
f_shutdown_helper();
}
function f_tc_ho_int_a5(OCT1 encr_alg) runs on test_CT {
var MSC_ConnHdlr vc_conn;
var TestHdlrParams pars := f_gen_test_hdlr_pars();
pars.encr := valueof(t_EncrParams(encr_alg, f_rnd_octstring(8), f_rnd_octstring(16)));
f_init(2, true);
f_sleep(1.0);
f_ctrs_bsc_and_bts_init();
vc_conn := f_start_handler(refers(f_tc_ho_int), pars);
vc_conn.done;
/* from f_establish_fully() */
f_ctrs_bsc_and_bts_add(0, "assignment:attempted");
f_ctrs_bsc_and_bts_add(0, "assignment:completed");
/* from handover */
f_ctrs_bsc_and_bts_add(0, "handover:attempted");
f_ctrs_bsc_and_bts_add(0, "handover:completed");
f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:attempted");
f_ctrs_bsc_and_bts_add(0, "intra_bsc_ho:completed");
f_ctrs_bsc_and_bts_verify();
f_shutdown_helper();
}
testcase TC_ho_int_a5_0() runs on test_CT {
f_tc_ho_int_a5('01'O);
}
testcase TC_ho_int_a5_1() runs on test_CT {
f_tc_ho_int_a5('02'O);
}
testcase TC_ho_int_a5_3() runs on test_CT {
f_tc_ho_int_a5('08'O);
}
testcase TC_ho_int_a5_4() runs on test_CT {
f_tc_ho_int_a5('10'O);
}
/* intra-BSC hand-over with CONNection FAILure and cause Radio Link Failure: check RR release cause */
private function f_tc_ho_int_radio_link_failure(charstring id) runs on MSC_ConnHdlr {
g_pars := f_gen_test_hdlr_pars();
@ -9059,6 +9105,10 @@ control {
execute( TC_err_84_unknown_msg() );
execute( TC_ho_int() );
execute( TC_ho_int_a5_0() );
execute( TC_ho_int_a5_1() );
execute( TC_ho_int_a5_3() );
execute( TC_ho_int_a5_4() );
execute( TC_ho_int_radio_link_failure() );
execute( TC_ho_out_of_this_bsc() );