BSC_Tests: Add more tests about invalid channel activations
Change-Id: I8a44b5eab6c6e09330305547d145820983f90140
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 14ba97d..c8016d7 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -538,6 +538,108 @@
setverdict(pass);
}
+/* Test behavior if RSL EST IND for non-active channel */
+testcase TC_rll_est_ind_inact_lchan() runs on test_CT {
+ timer T := 2.0;
+
+ f_init();
+ f_bssap_reset();
+
+ var octetstring l3 := '00010203040506'O;
+ var RslChannelNr chan_nr := valueof(t_RslChanNr_Bm(6));
+ f_ipa_tx(0, ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3));
+
+ T.start;
+ alt {
+ [] BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) {
+ setverdict(fail, "MSC received COMPL L3 for non-active lchan");
+ }
+ [] BSSAP.receive {}
+ [] IPA_RSL[0].receive {}
+ [] T.timeout {}
+ }
+
+ setverdict(pass);
+}
+
+/* Test behavior if RSL EST IND for invalid SAPI */
+testcase TC_rll_est_ind_inval_sapi1() runs on test_CT {
+ var RslChannelNr chan_nr;
+
+ f_init();
+ f_bssap_reset();
+
+ chan_nr := f_chreq_act_ack()
+
+ var octetstring l3 := '00010203040506'O;
+ f_ipa_tx(0, ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(1)), l3));
+
+ timer T := 2.0;
+ T.start;
+ alt {
+ [] BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) {
+ setverdict(fail, "MSC received COMPL L3 for invalid SAPI 1");
+ }
+ [] BSSAP.receive { repeat; }
+ [] IPA_RSL[0].receive { repeat; }
+ [] T.timeout {}
+ }
+
+ setverdict(pass);
+}
+
+/* Test behavior if RSL EST IND for invalid SAPI */
+testcase TC_rll_est_ind_inval_sapi3() runs on test_CT {
+ timer T := 2.0;
+
+ f_init();
+ f_bssap_reset();
+
+ var RslChannelNr chan_nr := f_chreq_act_ack();
+
+ var octetstring l3 := '00010203040506'O;
+ f_ipa_tx(0, ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(3)), l3));
+
+ T.start;
+ alt {
+ [] BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) {
+ setverdict(fail, "MSC received COMPL L3 for invalid SAPI 3");
+ }
+ [] BSSAP.receive { repeat; }
+ [] IPA_RSL[0].receive { repeat; }
+ [] T.timeout {}
+ }
+
+ setverdict(pass);
+}
+
+/* Test behavior if RSL EST IND for invalid SACCH */
+testcase TC_rll_est_ind_inval_sacch() runs on test_CT {
+ timer T := 2.0;
+
+ f_init();
+ f_bssap_reset();
+
+ var RslChannelNr chan_nr := f_chreq_act_ack();
+
+ var octetstring l3 := '00010203040506'O;
+ f_ipa_tx(0, ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_SACCH(0)), l3));
+
+ T.start;
+ alt {
+ [] BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) {
+ setverdict(fail, "MSC received COMPL L3 for invalid Link SACCH");
+ }
+ [] BSSAP.receive { repeat; }
+ [] IPA_RSL[0].receive { repeat; }
+ [] T.timeout {}
+ }
+
+ setverdict(pass);
+}
+
+
+
testcase TC_ctrl_msc_connection_status() runs on test_CT {
var charstring ctrl_resp;
@@ -851,6 +953,11 @@
execute( TC_chan_rel_hard_rlsd() );
execute( TC_chan_rel_a_reset() );
+ execute( TC_rll_est_ind_inact_lchan() );
+ execute( TC_rll_est_ind_inval_sapi1() );
+ execute( TC_rll_est_ind_inval_sapi3() );
+ execute( TC_rll_est_ind_inval_sacch() );
+
execute( TC_paging_imsi_nochan() );
execute( TC_paging_tmsi_nochan() );
execute( TC_paging_tmsi_any() );