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 <[email protected]>
Gerrit-Reviewer: Harald Welte <[email protected]>
Gerrit-Reviewer: Jenkins Builder (1000002)

Reply via email to