Change in osmo-ttcn3-hacks[master]: msc: Introduce test TC_(iu_)chan_rel_sccp_tiar_timeout

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

laforge gerrit-no-reply at lists.osmocom.org
Sun Jan 12 13:11:40 UTC 2020


laforge has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/16799 )

Change subject: msc: Introduce test TC_(iu_)chan_rel_sccp_tiar_timeout
......................................................................

msc: Introduce test TC_(iu_)chan_rel_sccp_tiar_timeout

Verify SCCP T(iar) timeout triggers release of established channel.

Related: OS#4343
Change-Id: Id6488a262e656f5c8fabb4e81f4797b305eb09e2
---
M msc/MSC_Tests.ttcn
M msc/MSC_Tests_Iu.ttcn
M msc/expected-results.xml
3 files changed, 64 insertions(+), 0 deletions(-)

Approvals:
  laforge: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index 177c2f8..bf7f748 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -113,6 +113,11 @@
 	 * handler is not active, which means that also no guard timer is
 	 * set up. The following timer will serve as a replacement */
 	timer Tguard_direct := 60.0;
+
+	/* Configure T(tias) over VTY, seconds */
+	var integer g_msc_sccp_timer_ias :=  7 * 60;
+	/* Configure T(tiar) over VTY, seconds */
+	var integer g_msc_sccp_timer_iar := 15 * 60;
 }
 
 modulepar {
@@ -337,6 +342,8 @@
 	f_vty_config(MSCVTY, "msc", "assign-tmsi");
 	f_vty_config(MSCVTY, "msc", "check-imei-rqd 0");
 	f_vty_config(MSCVTY, "network", "encryption a5 0");
+	f_vty_config(MSCVTY, "cs7 instance 0", "sccp-timer ias " & int2str(g_msc_sccp_timer_ias));
+	f_vty_config(MSCVTY, "cs7 instance 0", "sccp-timer iar " & int2str(g_msc_sccp_timer_iar));
 	if (mp_enable_osmux_test) {
 		if (osmux) {
 			f_vty_config(MSCVTY, "msc", "osmux on");
@@ -676,6 +683,45 @@
 	vc_conn.done;
 }
 
+/* Verify T(iar) triggers and releases the channel */
+friend function f_lu_and_mo_call_sccp_tiar_timeout(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
+	timer T_wait_iar := int2float(5 + 1); /* g_msc_sccp_timer_iar + Give extra time (+1 sec) */
+	f_init_handler(pars);
+	var CallParameters cpars := valueof(t_CallParams);
+	f_perform_lu();
+	f_mo_call_establish(cpars);
+
+	/* Expect the channel cleared upon T(iar) triggered: */
+	T_wait_iar.start;
+	alt {
+	[] BSSAP.receive(RAN_Conn_Prim:MSC_CONN_PRIM_DISC_IND) {
+				T_wait_iar.stop
+				setverdict(pass);
+		}
+	[] MGCP.receive(tr_DLCX(?)) { repeat; }
+	[] T_wait_iar.timeout {
+		setverdict(fail, "Timeout waiting for T(iar) triggered SCCP RSLD");
+		mtc.stop;
+		}
+	}
+
+	setverdict(pass);
+}
+testcase TC_lu_and_mo_call_sccp_tiar_timeout() runs on MTC_CT {
+	var BSC_ConnHdlr vc_conn;
+
+	/* Set T(iar) in MSC low enough that it will trigger before other side
+	   has time to keep alive with a T(ias). Keep recommended ratio of
+	   T(iar) >= T(ias)*2 */
+	g_msc_sccp_timer_ias := 2;
+	g_msc_sccp_timer_iar := 5;
+
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_lu_and_mo_call_sccp_tiar_timeout), 89);
+	vc_conn.done;
+}
+
 
 /* Test LU (with authentication enabled), where HLR times out sending SAI response */
 friend function f_tc_lu_auth_sai_timeout(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
@@ -5816,6 +5862,7 @@
 	execute( TC_lu_imsi_timeout_tmsi_realloc() );
 	execute( TC_cmserv_imsi_unknown() );
 	execute( TC_lu_and_mo_call() );
+	execute( TC_lu_and_mo_call_sccp_tiar_timeout() );
 	execute( TC_lu_auth_sai_timeout() );
 	execute( TC_lu_auth_sai_err() );
 	execute( TC_lu_clear_request() );
diff --git a/msc/MSC_Tests_Iu.ttcn b/msc/MSC_Tests_Iu.ttcn
index b6b0983..e894598 100644
--- a/msc/MSC_Tests_Iu.ttcn
+++ b/msc/MSC_Tests_Iu.ttcn
@@ -80,6 +80,21 @@
 	vc_conn.done;
 }
 
+testcase TC_iu_lu_and_mo_call_sccp_tiar_timeout() runs on MTC_CT {
+	var BSC_ConnHdlr vc_conn;
+
+	/* Set T(iar) in MSC low enough that it will trigger before other side
+	   has time to keep alive with a T(ias). Keep recommended ratio of
+	   T(iar) >= T(ias)*2 */
+	g_msc_sccp_timer_ias := 2;
+	g_msc_sccp_timer_iar := 5;
+
+	f_init(3);
+
+	vc_conn := f_start_handler(refers(f_lu_and_mo_call_sccp_tiar_timeout), 1019, ran_idx := 2, ran_is_geran := false);
+	vc_conn.done;
+}
+
 testcase TC_iu_lu_auth_sai_timeout() runs on MTC_CT {
 	var BSC_ConnHdlr vc_conn;
 	f_init(3);
@@ -515,6 +530,7 @@
 	execute( TC_iu_lu_imsi_timeout_tmsi_realloc() );
 	execute( TC_iu_cmserv_imsi_unknown() );
 	execute( TC_iu_lu_and_mo_call() );
+	execute( TC_iu_lu_and_mo_call_sccp_tiar_timeout() );
 	execute( TC_iu_lu_auth_sai_timeout() );
 	execute( TC_iu_lu_auth_sai_err() );
 	execute( TC_iu_lu_release_request() );
diff --git a/msc/expected-results.xml b/msc/expected-results.xml
index 074eeb1..e2cca45 100644
--- a/msc/expected-results.xml
+++ b/msc/expected-results.xml
@@ -14,6 +14,7 @@
   </testcase>
   <testcase classname='MSC_Tests' name='TC_cmserv_imsi_unknown' time='MASKED'/>
   <testcase classname='MSC_Tests' name='TC_lu_and_mo_call' time='MASKED'/>
+  <testcase classname='MSC_Tests' name='TC_lu_and_mo_call_sccp_tiar_timeout' time='MASKED'/>
   <testcase classname='MSC_Tests' name='TC_lu_auth_sai_timeout' time='MASKED'/>
   <testcase classname='MSC_Tests' name='TC_lu_auth_sai_err' time='MASKED'/>
   <testcase classname='MSC_Tests' name='TC_lu_clear_request' time='MASKED'/>

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/16799
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Id6488a262e656f5c8fabb4e81f4797b305eb09e2
Gerrit-Change-Number: 16799
Gerrit-PatchSet: 3
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200112/0bf8e552/attachment.htm>


More information about the gerrit-log mailing list