<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/13752">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">msc: Introduce f_cl3_or_initial_ue as replacement for f_bssap_compl_l3()<br><br>The new function will check the RAN type and dispath to<br>f_bssap_compl_l3() in case of 2G/GERAN and to f_ranap_initial_ue()<br>on case of 3G/UTRAN.<br><br>Change-Id: Ia27afa265d441d1a0cbb40cc2d938aff46fa25f9<br>---<br>M msc/BSC_ConnectionHandler.ttcn<br>M msc/MSC_Tests.ttcn<br>2 files changed, 33 insertions(+), 27 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn</span><br><span>index e603035..1fd02aa 100644</span><br><span>--- a/msc/BSC_ConnectionHandler.ttcn</span><br><span>+++ b/msc/BSC_ConnectionHandler.ttcn</span><br><span>@@ -311,6 +311,16 @@</span><br><span>  }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Send BSSMAP Complete L3 or RANAP Initial UE depending on 2G/3G RAN type */</span><br><span style="color: hsl(120, 100%, 40%);">+function f_cl3_or_initial_ue(PDU_ML3_MS_NW l3)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on BSC_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+     if (g_pars.ran_is_geran) {</span><br><span style="color: hsl(120, 100%, 40%);">+            f_bssap_compl_l3(l3);</span><br><span style="color: hsl(120, 100%, 40%);">+ } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              f_ranap_initial_ue(l3);</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> type enumerated EstablishType {</span><br><span>    EST_TYPE_MO_CALL,</span><br><span>    EST_TYPE_EMERG_CALL,</span><br><span>@@ -351,11 +361,7 @@</span><br><span>  }</span><br><span> </span><br><span>        /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */</span><br><span style="color: hsl(0, 100%, 40%);">-     if (g_pars.ran_is_geran) {</span><br><span style="color: hsl(0, 100%, 40%);">-              f_bssap_compl_l3(l3_info);</span><br><span style="color: hsl(0, 100%, 40%);">-      } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                f_ranap_initial_ue(l3_info);</span><br><span style="color: hsl(0, 100%, 40%);">-    }</span><br><span style="color: hsl(120, 100%, 40%);">+     f_cl3_or_initial_ue(l3_info);</span><br><span> </span><br><span>    f_mm_common();</span><br><span>       if (g_pars.net.expect_ciph) {</span><br><span>diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn</span><br><span>index 110c165..af654a3 100644</span><br><span>--- a/msc/MSC_Tests.ttcn</span><br><span>+++ b/msc/MSC_Tests.ttcn</span><br><span>@@ -592,7 +592,7 @@</span><br><span>     var PDU_ML3_MS_NW l3_lu := f_build_lu_imsi(g_pars.imsi);</span><br><span> </span><br><span>         f_create_gsup_expect(hex2str(g_pars.imsi));</span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssap_compl_l3(l3_lu);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cl3_or_initial_ue(l3_lu);</span><br><span>  GSUP.receive(tr_GSUP_UL_REQ(g_pars.imsi));</span><br><span>   GSUP.send(ts_GSUP_UL_ERR(g_pars.imsi, 23));</span><br><span>  alt {</span><br><span>@@ -619,7 +619,7 @@</span><br><span>  var PDU_ML3_MS_NW l3_lu := f_build_lu_imsi(g_pars.imsi);</span><br><span> </span><br><span>         f_create_gsup_expect(hex2str(g_pars.imsi));</span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssap_compl_l3(l3_lu);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cl3_or_initial_ue(l3_lu);</span><br><span>  GSUP.receive(tr_GSUP_UL_REQ(g_pars.imsi));</span><br><span>   /* Normally the HLR would need to respond here, but we decide to force a timeout here */</span><br><span>     alt {</span><br><span>@@ -682,7 +682,7 @@</span><br><span>  f_create_gsup_expect(hex2str(g_pars.imsi));</span><br><span> </span><br><span>      /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */</span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssap_compl_l3(l3_info);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_cl3_or_initial_ue(l3_info);</span><br><span> </span><br><span>    timer T := 10.0;</span><br><span>     T.start;</span><br><span>@@ -742,7 +742,7 @@</span><br><span>       f_create_gsup_expect(hex2str(g_pars.imsi));</span><br><span> </span><br><span>      /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */</span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssap_compl_l3(l3_lu);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cl3_or_initial_ue(l3_lu);</span><br><span> </span><br><span>      /* Send Early Classmark, just for the fun of it */</span><br><span>   BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));</span><br><span>@@ -773,7 +773,7 @@</span><br><span>    f_create_gsup_expect(hex2str(g_pars.imsi));</span><br><span> </span><br><span>      /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */</span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssap_compl_l3(l3_lu);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cl3_or_initial_ue(l3_lu);</span><br><span> </span><br><span>      /* Send Early Classmark, just for the fun of it */</span><br><span>   BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));</span><br><span>@@ -804,7 +804,7 @@</span><br><span>    f_create_gsup_expect(hex2str(g_pars.imsi));</span><br><span> </span><br><span>      /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */</span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssap_compl_l3(l3_lu);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cl3_or_initial_ue(l3_lu);</span><br><span> </span><br><span>      /* Send Early Classmark, just for the fun of it */</span><br><span>   BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));</span><br><span>@@ -847,7 +847,7 @@</span><br><span>    f_create_gsup_expect(hex2str(g_pars.imsi));</span><br><span> </span><br><span>      /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */</span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssap_compl_l3(l3_lu);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cl3_or_initial_ue(l3_lu);</span><br><span> </span><br><span>      /* Send Early Classmark, just for the fun of it */</span><br><span>   BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));</span><br><span>@@ -878,7 +878,7 @@</span><br><span>    f_create_gsup_expect(hex2str(g_pars.imsi));</span><br><span> </span><br><span>      /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */</span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssap_compl_l3(l3_lu);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cl3_or_initial_ue(l3_lu);</span><br><span> </span><br><span>      /* Send Early Classmark, just for the fun of it */</span><br><span>   BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));</span><br><span>@@ -911,7 +911,7 @@</span><br><span>    f_create_gsup_expect(hex2str(g_pars.imsi));</span><br><span> </span><br><span>      /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */</span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssap_compl_l3(l3_lu);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cl3_or_initial_ue(l3_lu);</span><br><span> </span><br><span>      /* Send Early Classmark, just for the fun of it */</span><br><span>   BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));</span><br><span>@@ -959,7 +959,7 @@</span><br><span>    var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));</span><br><span> </span><br><span>  /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */</span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssap_compl_l3(valueof(ts_ML3_MO_MM_IMSI_DET_Ind(mi)));</span><br><span style="color: hsl(120, 100%, 40%);">+     f_cl3_or_initial_ue(valueof(ts_ML3_MO_MM_IMSI_DET_Ind(mi)));</span><br><span> </span><br><span>     /* Send Early Classmark, just for the fun of it? */</span><br><span>  BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));</span><br><span>@@ -982,7 +982,7 @@</span><br><span>    var MobileIdentityLV mi := valueof(ts_MI_TMSI_LV('01020304'O));</span><br><span> </span><br><span>  /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */</span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssap_compl_l3(valueof(ts_ML3_MO_MM_IMSI_DET_Ind(mi)));</span><br><span style="color: hsl(120, 100%, 40%);">+     f_cl3_or_initial_ue(valueof(ts_ML3_MO_MM_IMSI_DET_Ind(mi)));</span><br><span> </span><br><span>     /* Send Early Classmark, just for the fun of it? */</span><br><span>  BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));</span><br><span>@@ -1005,7 +1005,7 @@</span><br><span>  var MobileIdentityLV mi := valueof(ts_MI_IMEI_LV(g_pars.imei));</span><br><span> </span><br><span>  /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */</span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssap_compl_l3(valueof(ts_ML3_MO_MM_IMSI_DET_Ind(mi)));</span><br><span style="color: hsl(120, 100%, 40%);">+     f_cl3_or_initial_ue(valueof(ts_ML3_MO_MM_IMSI_DET_Ind(mi)));</span><br><span> </span><br><span>     /* Send Early Classmark, just for the fun of it? */</span><br><span>  BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));</span><br><span>@@ -1037,7 +1037,7 @@</span><br><span> </span><br><span>      var MobileIdentityLV mi := valueof(ts_MI_IMEI_LV(g_pars.imei));</span><br><span>      var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_EMERG_CALL, mi));</span><br><span style="color: hsl(0, 100%, 40%);">-   f_bssap_compl_l3(l3_info);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_cl3_or_initial_ue(l3_info);</span><br><span>        BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ('05'O)));</span><br><span>        f_expect_clear();</span><br><span> }</span><br><span>@@ -1074,7 +1074,7 @@</span><br><span> </span><br><span>   var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));</span><br><span>      var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_VGCS, mi));</span><br><span style="color: hsl(0, 100%, 40%);">- f_bssap_compl_l3(l3_info);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_cl3_or_initial_ue(l3_info);</span><br><span>        BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ(int2oct(32,1))));</span><br><span>        f_expect_clear();</span><br><span> }</span><br><span>@@ -1095,7 +1095,7 @@</span><br><span> </span><br><span>   var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));</span><br><span>      var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_VBS, mi));</span><br><span style="color: hsl(0, 100%, 40%);">-  f_bssap_compl_l3(l3_info);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_cl3_or_initial_ue(l3_info);</span><br><span>        BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ(int2oct(32,1))));</span><br><span>        f_expect_clear();</span><br><span> }</span><br><span>@@ -1116,7 +1116,7 @@</span><br><span> </span><br><span>   var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));</span><br><span>      var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_LCS, mi));</span><br><span style="color: hsl(0, 100%, 40%);">-  f_bssap_compl_l3(l3_info);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_cl3_or_initial_ue(l3_info);</span><br><span>        BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ(int2oct(32,1))));</span><br><span>        f_expect_clear();</span><br><span> }</span><br><span>@@ -1137,7 +1137,7 @@</span><br><span> </span><br><span>   var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));</span><br><span>      var PDU_ML3_MS_NW l3_info := valueof(ts_CM_REEST_REQ(0, mi));</span><br><span style="color: hsl(0, 100%, 40%);">-   f_bssap_compl_l3(l3_info);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_cl3_or_initial_ue(l3_info);</span><br><span>        BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ(int2oct(32,1))));</span><br><span>        f_expect_clear();</span><br><span> }</span><br><span>@@ -1159,7 +1159,7 @@</span><br><span>       f_create_gsup_expect(hex2str(g_pars.imsi));</span><br><span> </span><br><span>      /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */</span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssap_compl_l3(l3_lu);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cl3_or_initial_ue(l3_lu);</span><br><span> </span><br><span>      /* Send Early Classmark, just for the fun of it */</span><br><span>   BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));</span><br><span>@@ -1624,7 +1624,7 @@</span><br><span>  /* Follow-up transactions should fail */</span><br><span>     var MobileIdentityLV mi := valueof(ts_MI_IMSI_LV(g_pars.imsi));</span><br><span>      var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, mi));</span><br><span style="color: hsl(0, 100%, 40%);">-      f_bssap_compl_l3(l3_info);</span><br><span style="color: hsl(120, 100%, 40%);">+    f_cl3_or_initial_ue(l3_info);</span><br><span>        alt {</span><br><span>        [] BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_REJ)) { }</span><br><span>         [] BSSAP.receive {</span><br><span>@@ -1691,7 +1691,7 @@</span><br><span>   /* cannot use f_perform_lu() as we expect a reject */</span><br><span>        var PDU_ML3_MS_NW l3_lu := f_build_lu_imsi(g_pars.imsi);</span><br><span>     f_create_gsup_expect(hex2str(g_pars.imsi));</span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssap_compl_l3(l3_lu);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cl3_or_initial_ue(l3_lu);</span><br><span>  if (pars.send_early_cm) {</span><br><span>            BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));</span><br><span>  } else {</span><br><span>@@ -1766,7 +1766,7 @@</span><br><span>     /* cannot use f_perform_lu() as we expect a reject */</span><br><span>        var PDU_ML3_MS_NW l3_lu := f_build_lu_imsi(g_pars.imsi);</span><br><span>     f_create_gsup_expect(hex2str(g_pars.imsi));</span><br><span style="color: hsl(0, 100%, 40%);">-     f_bssap_compl_l3(l3_lu);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cl3_or_initial_ue(l3_lu);</span><br><span>  BSSAP.send(ts_BSSMAP_ClassmarkUpd(g_pars.cm2, g_pars.cm3));</span><br><span>  f_mm_auth();</span><br><span>         alt {</span><br><span>@@ -3502,7 +3502,7 @@</span><br><span> </span><br><span>    /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */</span><br><span>  var PDU_ML3_MS_NW l3_lu := f_build_lu_imsi(g_pars.imsi)</span><br><span style="color: hsl(0, 100%, 40%);">- f_bssap_compl_l3(l3_lu);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_cl3_or_initial_ue(l3_lu);</span><br><span> </span><br><span>      f_mm_auth();</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13752">change 13752</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/13752"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Ia27afa265d441d1a0cbb40cc2d938aff46fa25f9 </div>
<div style="display:none"> Gerrit-Change-Number: 13752 </div>
<div style="display:none"> Gerrit-PatchSet: 6 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>