Change in osmo-ttcn3-hacks[master]: msc: Introduce f_cl3_or_initial_ue as replacement for f_bssap_compl_l3()

Harald Welte gerrit-no-reply at lists.osmocom.org
Tue Apr 30 20:41:54 UTC 2019


Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13752 )

Change subject: msc: Introduce f_cl3_or_initial_ue as replacement for f_bssap_compl_l3()
......................................................................

msc: Introduce f_cl3_or_initial_ue as replacement for f_bssap_compl_l3()

The new function will check the RAN type and dispath to
f_bssap_compl_l3() in case of 2G/GERAN and to f_ranap_initial_ue()
on case of 3G/UTRAN.

Change-Id: Ia27afa265d441d1a0cbb40cc2d938aff46fa25f9
---
M msc/BSC_ConnectionHandler.ttcn
M msc/MSC_Tests.ttcn
2 files changed, 33 insertions(+), 27 deletions(-)

Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved



diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn
index e603035..1fd02aa 100644
--- a/msc/BSC_ConnectionHandler.ttcn
+++ b/msc/BSC_ConnectionHandler.ttcn
@@ -311,6 +311,16 @@
 	}
 }
 
+/* Send BSSMAP Complete L3 or RANAP Initial UE depending on 2G/3G RAN type */
+function f_cl3_or_initial_ue(PDU_ML3_MS_NW l3)
+runs on BSC_ConnHdlr {
+	if (g_pars.ran_is_geran) {
+		f_bssap_compl_l3(l3);
+	} else {
+		f_ranap_initial_ue(l3);
+	}
+}
+
 type enumerated EstablishType {
 	EST_TYPE_MO_CALL,
 	EST_TYPE_EMERG_CALL,
@@ -351,11 +361,7 @@
 	}
 
 	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
-	if (g_pars.ran_is_geran) {
-		f_bssap_compl_l3(l3_info);
-	} else {
-		f_ranap_initial_ue(l3_info);
-	}
+	f_cl3_or_initial_ue(l3_info);
 
 	f_mm_common();
 	if (g_pars.net.expect_ciph) {
diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn
index 110c165..af654a3 100644
--- a/msc/MSC_Tests.ttcn
+++ b/msc/MSC_Tests.ttcn
@@ -592,7 +592,7 @@
 	var PDU_ML3_MS_NW l3_lu := f_build_lu_imsi(g_pars.imsi);
 
 	f_create_gsup_expect(hex2str(g_pars.imsi));
-	f_bssap_compl_l3(l3_lu);
+	f_cl3_or_initial_ue(l3_lu);
 	GSUP.receive(tr_GSUP_UL_REQ(g_pars.imsi));
 	GSUP.send(ts_GSUP_UL_ERR(g_pars.imsi, 23));
 	alt {
@@ -619,7 +619,7 @@
 	var PDU_ML3_MS_NW l3_lu := f_build_lu_imsi(g_pars.imsi);
 
 	f_create_gsup_expect(hex2str(g_pars.imsi));
-	f_bssap_compl_l3(l3_lu);
+	f_cl3_or_initial_ue(l3_lu);
 	GSUP.receive(tr_GSUP_UL_REQ(g_pars.imsi));
 	/* Normally the HLR would need to respond here, but we decide to force a timeout here */
 	alt {
@@ -682,7 +682,7 @@
 	f_create_gsup_expect(hex2str(g_pars.imsi));
 
 	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
-	f_bssap_compl_l3(l3_info);
+	f_cl3_or_initial_ue(l3_info);
 
 	timer T := 10.0;
 	T.start;
@@ -742,7 +742,7 @@
 	f_create_gsup_expect(hex2str(g_pars.imsi));
 
 	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
-	f_bssap_compl_l3(l3_lu);
+	f_cl3_or_initial_ue(l3_lu);
 
 	/* Send Early Classmark, just for the fun of it */
 	BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
@@ -773,7 +773,7 @@
 	f_create_gsup_expect(hex2str(g_pars.imsi));
 
 	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
-	f_bssap_compl_l3(l3_lu);
+	f_cl3_or_initial_ue(l3_lu);
 
 	/* Send Early Classmark, just for the fun of it */
 	BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
@@ -804,7 +804,7 @@
 	f_create_gsup_expect(hex2str(g_pars.imsi));
 
 	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
-	f_bssap_compl_l3(l3_lu);
+	f_cl3_or_initial_ue(l3_lu);
 
 	/* Send Early Classmark, just for the fun of it */
 	BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
@@ -847,7 +847,7 @@
 	f_create_gsup_expect(hex2str(g_pars.imsi));
 
 	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
-	f_bssap_compl_l3(l3_lu);
+	f_cl3_or_initial_ue(l3_lu);
 
 	/* Send Early Classmark, just for the fun of it */
 	BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
@@ -878,7 +878,7 @@
 	f_create_gsup_expect(hex2str(g_pars.imsi));
 
 	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
-	f_bssap_compl_l3(l3_lu);
+	f_cl3_or_initial_ue(l3_lu);
 
 	/* Send Early Classmark, just for the fun of it */
 	BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
@@ -911,7 +911,7 @@
 	f_create_gsup_expect(hex2str(g_pars.imsi));
 
 	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
-	f_bssap_compl_l3(l3_lu);
+	f_cl3_or_initial_ue(l3_lu);
 
 	/* Send Early Classmark, just for the fun of it */
 	BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
@@ -959,7 +959,7 @@
 	var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
 
 	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
-	f_bssap_compl_l3(valueof(ts_ML3_MO_MM_IMSI_DET_Ind(mi)));
+	f_cl3_or_initial_ue(valueof(ts_ML3_MO_MM_IMSI_DET_Ind(mi)));
 
 	/* Send Early Classmark, just for the fun of it? */
 	BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
@@ -982,7 +982,7 @@
 	var MobileIdentityLV mi := valueof(ts_MI_TMSI_LV('01020304'O));
 
 	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
-	f_bssap_compl_l3(valueof(ts_ML3_MO_MM_IMSI_DET_Ind(mi)));
+	f_cl3_or_initial_ue(valueof(ts_ML3_MO_MM_IMSI_DET_Ind(mi)));
 
 	/* Send Early Classmark, just for the fun of it? */
 	BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
@@ -1005,7 +1005,7 @@
 	var MobileIdentityLV mi := valueof(ts_MI_IMEI_LV(g_pars.imei));
 
 	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
-	f_bssap_compl_l3(valueof(ts_ML3_MO_MM_IMSI_DET_Ind(mi)));
+	f_cl3_or_initial_ue(valueof(ts_ML3_MO_MM_IMSI_DET_Ind(mi)));
 
 	/* Send Early Classmark, just for the fun of it? */
 	BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
@@ -1037,7 +1037,7 @@
 
 	var MobileIdentityLV mi := valueof(ts_MI_IMEI_LV(g_pars.imei));
 	var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_EMERG_CALL, mi));
-	f_bssap_compl_l3(l3_info);
+	f_cl3_or_initial_ue(l3_info);
 	BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ('05'O)));
 	f_expect_clear();
 }
@@ -1074,7 +1074,7 @@
 
 	var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
 	var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_VGCS, mi));
-	f_bssap_compl_l3(l3_info);
+	f_cl3_or_initial_ue(l3_info);
 	BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ(int2oct(32,1))));
 	f_expect_clear();
 }
@@ -1095,7 +1095,7 @@
 
 	var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
 	var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_VBS, mi));
-	f_bssap_compl_l3(l3_info);
+	f_cl3_or_initial_ue(l3_info);
 	BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ(int2oct(32,1))));
 	f_expect_clear();
 }
@@ -1116,7 +1116,7 @@
 
 	var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
 	var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_LCS, mi));
-	f_bssap_compl_l3(l3_info);
+	f_cl3_or_initial_ue(l3_info);
 	BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ(int2oct(32,1))));
 	f_expect_clear();
 }
@@ -1137,7 +1137,7 @@
 
 	var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
 	var PDU_ML3_MS_NW l3_info := valueof(ts_CM_REEST_REQ(0, mi));
-	f_bssap_compl_l3(l3_info);
+	f_cl3_or_initial_ue(l3_info);
 	BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ(int2oct(32,1))));
 	f_expect_clear();
 }
@@ -1159,7 +1159,7 @@
 	f_create_gsup_expect(hex2str(g_pars.imsi));
 
 	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
-	f_bssap_compl_l3(l3_lu);
+	f_cl3_or_initial_ue(l3_lu);
 
 	/* Send Early Classmark, just for the fun of it */
 	BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
@@ -1624,7 +1624,7 @@
 	/* Follow-up transactions should fail */
 	var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));
 	var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, mi));
-	f_bssap_compl_l3(l3_info);
+	f_cl3_or_initial_ue(l3_info);
 	alt {
 	[] BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ)) { }
 	[] BSSAP.receive {
@@ -1691,7 +1691,7 @@
 	/* cannot use f_perform_lu() as we expect a reject */
 	var PDU_ML3_MS_NW l3_lu := f_build_lu_imsi(g_pars.imsi);
 	f_create_gsup_expect(hex2str(g_pars.imsi));
-	f_bssap_compl_l3(l3_lu);
+	f_cl3_or_initial_ue(l3_lu);
 	if (pars.send_early_cm) {
 		BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
 	} else {
@@ -1766,7 +1766,7 @@
 	/* cannot use f_perform_lu() as we expect a reject */
 	var PDU_ML3_MS_NW l3_lu := f_build_lu_imsi(g_pars.imsi);
 	f_create_gsup_expect(hex2str(g_pars.imsi));
-	f_bssap_compl_l3(l3_lu);
+	f_cl3_or_initial_ue(l3_lu);
 	BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));
 	f_mm_auth();
 	alt {
@@ -3502,7 +3502,7 @@
 
 	/* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */
 	var PDU_ML3_MS_NW l3_lu := f_build_lu_imsi(g_pars.imsi)
-	f_bssap_compl_l3(l3_lu);
+	f_cl3_or_initial_ue(l3_lu);
 
 	f_mm_auth();
 

-- 
To view, visit https://gerrit.osmocom.org/13752
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Ia27afa265d441d1a0cbb40cc2d938aff46fa25f9
Gerrit-Change-Number: 13752
Gerrit-PatchSet: 6
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder (1000002)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190430/42450fe0/attachment.html>


More information about the gerrit-log mailing list