Change in osmo-ttcn3-hacks[master]: msc: finish and enable test case for MT Call T310 timer

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/.

fixeria gerrit-no-reply at lists.osmocom.org
Fri Feb 5 01:00:39 UTC 2021


fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22716 )


Change subject: msc: finish and enable test case for MT Call T310 timer
......................................................................

msc: finish and enable test case for MT Call T310 timer

The test suite needs to handle MGCP messages, otherwise the related
FSMs in the IUT would tear everything down before T310 is expired.

Change-Id: I79d9ae3b086d05c3d7c0a1241720d6c3f1e90281
Related: SYS#5340
---
M msc/MSC_Tests.ttcn
1 file changed, 41 insertions(+), 15 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/16/22716/1

diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index e6681bb..206effa 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -1679,43 +1679,69 @@
 
 /* Test MT Call T310 timer */
 friend function f_tc_mt_t310(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {
-	f_init_handler(pars, 200.0);
 	var CallParameters cpars := valueof(t_CallParams('123456'H, 0));
-	var MNCC_PDU mncc;
 	var MgcpCommand mgcp_cmd;
+	var PDU_BSSAP bssap;
+	timer T310;
 
+	f_init_handler(pars);
+
+	/* Initiate a MT call, establish connection */
 	f_mt_call_start(cpars);
 
 	/* MS->MSC: CALL CONFIRMED */
 	BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_CALL_CONF(cpars.transaction_id)));
 	MNCC.receive(tr_MNCC_CALL_CONF_ind(cpars.mncc_callref));
 
-	MGCP.receive(tr_CRCX) -> value mgcp_cmd;
-	cpars.mgcp_call_id := f_MgcpCmd_extract_call_id(mgcp_cmd);
-	cpars.mgcp_ep := mgcp_cmd.line.ep;
-	/* FIXME: Respond to CRCX */
+	/* NOTE: MSC is expected to start T310 here */
 
-	/* old libosmocore T310 default timeout is 180s. so let's wait 190 */
-	timer T := 190.0;
-	T.start;
+	/* MSC->MGW: CRCX (first) */
+	MGCP.receive(tr_CRCX) -> value mgcp_cmd;
+	f_handle_crcx(cpars, mgcp_cmd); /* MSC<-MGW: OK */
+
+	/* BSC->BSC: BSSMAP ASSIGNMENT REQ */
+	BSSAP.receive(tr_BSSMAP_AssignmentReq(omit, ?)) -> value bssap;
+	BSSAP.send(ts_BSSMAP_AssignmentComplete(omit,
+		aoip := f_ts_BSSMAP_IE_AoIP_TLA(cpars.bss_rtp_ip, cpars.bss_rtp_port),
+		speechCodec := ts_BSSMAP_IE_SpeechCodec({ ts_CodecFR })));
+
+	/* MSC->MGW: MDCX */
+	MGCP.receive(tr_MDCX) -> value mgcp_cmd;
+	MGCP.send(ts_MDCX_ACK(mgcp_cmd.line.trans_id, cpars.mgw_conn_1.mgcp_connection_id,
+		sdp := omit));
+
+	/* MSC->MGW: CRCX (second) */
+	MGCP.receive(tr_CRCX) -> value mgcp_cmd;
+	f_handle_crcx(cpars, mgcp_cmd); /* MSC<-MGW: OK */
+	MNCC.receive(tr_MNCC_RTP_CREATE(cpars.mncc_callref));
+
+	/* Reschedule the guard timeout */
+	g_Tguard.start(30.0 + 10.0);
+
+	/* NOTE: the BSC is expected to respond with CC ALERTING at this state, so
+	 * the MSC would stop T310.  However, the idea is to verify T310 expiration
+	 * here, so grab some popcorn and wait for MNCC DISC.ind. */
+	T310.start(30.0 + 2.0);
 	alt {
-	[] T.timeout {
-		setverdict(fail, "Timeout waiting for T310");
+	[] T310.timeout {
+		setverdict(fail, "Timeout waiting for MNCC DISC.ind due to T310");
 		mtc.stop;
 		}
 	[] MNCC.receive(tr_MNCC_DISC_ind(cpars.mncc_callref)) {
 		MNCC.send(ts_MNCC_REL_req(cpars.mncc_callref, valueof(ts_MNCC_cause(23))));
+		log("Rx MNCC DISC.ind, T310.read yelds ", T310.read);
+		setverdict(pass);
 		}
 	}
+
 	BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_DISC(cpars.transaction_id)));
 	BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_RELEASE(cpars.transaction_id)));
-	/* FIXME: We're sending this with TIflag 0: allocated by sender, which is wrong */
-	BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_REL_COMPL(cpars.transaction_id)));
+	BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_CC_REL_COMPL(cpars.transaction_id, '1'B)));
 
 	alt {
 	[] MGCP.receive(tr_DLCX(?)) -> value mgcp_cmd {
 		MGCP.send(ts_DLCX_ACK2(mgcp_cmd.line.trans_id));
-		f_create_mgcp_delete_ep(cpars.mgcp_ep);
+		// FIXME: f_create_mgcp_delete_ep(cpars.mgcp_ep);
 		repeat;
 		}
 	[] as_clear_cmd_compl_disc();
@@ -6342,7 +6368,7 @@
 	execute( TC_mo_crcx_ran_reject() );
 	execute( TC_mt_crcx_ran_reject() );
 	execute( TC_mo_setup_and_dtmf_dup() );
-	//execute( TC_mt_t310() );
+	execute( TC_mt_t310() );
 	execute( TC_gsup_cancel() );
 	execute( TC_lu_imsi_auth_tmsi_encr_1_13() );
 	execute( TC_lu_imsi_auth_tmsi_encr_3_13() );

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22716
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: I79d9ae3b086d05c3d7c0a1241720d6c3f1e90281
Gerrit-Change-Number: 22716
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210205/ce124d7c/attachment.htm>


More information about the gerrit-log mailing list