BSC_Tests: Add new TC_chan_rel_hard_rlsd (MSC sends hard RLSD)
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 6a33d89..b50728f 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -434,6 +434,46 @@
setverdict(pass);
}
+/* Test behavior of channel release after hard RLSD from MSC */
+testcase TC_chan_rel_hard_rlsd() runs on test_CT {
+ var RSL_Message rx_rsl;
+ var DchanTuple dt;
+ var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0));
+
+ f_init();
+ f_bssap_reset();
+
+ dt := f_est_dchan('23'O, 23, '00010203040506'O);
+
+ /* release the SCCP connection */
+ BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0));
+
+ /* Clear the queue, it might still contain stuff like IMMEDIATE ASSIGN */
+ IPA_RSL[0].clear;
+ alt {
+ /* ignore DEACTIVATE SACCH (if any) */
+ [] IPA_RSL[0].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
+ tr_RSL_DEACT_SACCH(dt.rsl_chan_nr))) {
+ repeat;
+ }
+ /* acknowledge RLL release (if any)*/
+ [] IPA_RSL[0].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
+ tr_RSL_REL_REQ(dt.rsl_chan_nr, ?))) {
+ /* FIXME: Why are we getting this for LinkID SACCH? */
+ f_ipa_tx(0, ts_RSL_REL_CONF(dt.rsl_chan_nr, main_dcch));
+ repeat;
+ }
+ /* Expect RF channel release from BSC on Abis */
+ [] IPA_RSL[0].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0,
+ tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL))) {
+ /* respond with CHAN REL ACK */
+ f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr));
+ }
+ }
+
+ setverdict(pass);
+}
+
testcase TC_ctrl_msc_connection_status() runs on test_CT {
var charstring ctrl_resp;
@@ -494,6 +534,7 @@
execute( TC_chan_rel_rll_rel_ind() );
execute( TC_chan_rel_conn_fail() );
execute( TC_chan_rel_hard_clear() );
+ execute( TC_chan_rel_hard_rlsd() );
}
}