<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/16786">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">MSC: f_ran_register_imsi(): allow passing omit as TMSI<br><br>Change-Id: I6dd2f77283a79e83f028115f4cc42f05db885838<br>---<br>M library/RAN_Emulation.ttcnpp<br>M msc/MSC_Tests.ttcn<br>2 files changed, 21 insertions(+), 61 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/86/16786/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/RAN_Emulation.ttcnpp b/library/RAN_Emulation.ttcnpp</span><br><span>index 891de09..b54d6e4 100644</span><br><span>--- a/library/RAN_Emulation.ttcnpp</span><br><span>+++ b/library/RAN_Emulation.ttcnpp</span><br><span>@@ -1444,8 +1444,17 @@</span><br><span> }</span><br><span> </span><br><span> /* helper function for clients to register their IMSI/TMSI */</span><br><span style="color: hsl(0, 100%, 40%);">-function f_ran_register_imsi(hexstring imsi, OCT4 tmsi)</span><br><span style="color: hsl(120, 100%, 40%);">+function f_ran_register_imsi(hexstring imsi, template (omit) OCT4 tmsi_or_omit)</span><br><span> runs on RAN_ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+    var OCT4 tmsi;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      /* Resolve omit to a special reserved value */</span><br><span style="color: hsl(120, 100%, 40%);">+        if (istemplatekind(tmsi_or_omit, "omit")) {</span><br><span style="color: hsl(120, 100%, 40%);">+         tmsi := 'FFFFFFFF'O;</span><br><span style="color: hsl(120, 100%, 40%);">+  } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              tmsi := valueof(tmsi_or_omit);</span><br><span style="color: hsl(120, 100%, 40%);">+        }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  BSSAP_PROC.call(RAN_register_imsi:{imsi, tmsi, self}) {</span><br><span>              [] BSSAP_PROC.getreply(RAN_register_imsi:{?,?,?}) {};</span><br><span>        }</span><br><span>diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn</span><br><span>index 529a396..f7df81a 100644</span><br><span>--- a/msc/MSC_Tests.ttcn</span><br><span>+++ b/msc/MSC_Tests.ttcn</span><br><span>@@ -1345,15 +1345,9 @@</span><br><span> private function f_mt_call_start(inout CallParameters cpars) runs on BSC_ConnHdlr {</span><br><span>       var MNCC_PDU mncc;</span><br><span>   var MgcpCommand mgcp_cmd;</span><br><span style="color: hsl(0, 100%, 40%);">-       var OCT4 tmsi;</span><br><span> </span><br><span>   f_perform_lu();</span><br><span style="color: hsl(0, 100%, 40%);">- if (isvalue(g_pars.tmsi)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             tmsi := g_pars.tmsi;</span><br><span style="color: hsl(0, 100%, 40%);">-    } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                tmsi := 'FFFFFFFF'O;</span><br><span style="color: hsl(0, 100%, 40%);">-    }</span><br><span style="color: hsl(0, 100%, 40%);">-       f_ran_register_imsi(g_pars.imsi, tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span> </span><br><span>   /* Allocate call reference and send SETUP via MNCC to MSC */</span><br><span>         cpars.mncc_callref := f_rnd_int(2147483648);</span><br><span>@@ -1914,7 +1908,6 @@</span><br><span> /* LU followed by MT SMS */</span><br><span> friend function f_tc_lu_and_mt_sms(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {</span><br><span>       var SmsParameters spars := valueof(t_SmsPars);</span><br><span style="color: hsl(0, 100%, 40%);">-  var OCT4 tmsi;</span><br><span> </span><br><span>   f_init_handler(pars);</span><br><span> </span><br><span>@@ -1922,12 +1915,7 @@</span><br><span>   f_perform_lu();</span><br><span> </span><br><span>  /* register an 'expect' for given IMSI (+TMSI) */</span><br><span style="color: hsl(0, 100%, 40%);">-       if (isvalue(g_pars.tmsi)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             tmsi := g_pars.tmsi;</span><br><span style="color: hsl(0, 100%, 40%);">-    } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                tmsi := 'FFFFFFFF'O;</span><br><span style="color: hsl(0, 100%, 40%);">-    }</span><br><span style="color: hsl(0, 100%, 40%);">-       f_ran_register_imsi(g_pars.imsi, tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span> </span><br><span>   f_vty_sms_send(hex2str(pars.imsi), "2342", "Hello SMS");</span><br><span> </span><br><span>@@ -1955,19 +1943,14 @@</span><br><span> /* Paging for MT SMS but no response */</span><br><span> friend function f_tc_lu_and_mt_sms_paging_and_nothing(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {</span><br><span>  var SmsParameters spars := valueof(t_SmsPars);</span><br><span style="color: hsl(0, 100%, 40%);">-  var OCT4 tmsi;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>     f_init_handler(pars, 150.0);</span><br><span> </span><br><span>     /* Perform location update */</span><br><span>        f_perform_lu();</span><br><span> </span><br><span>  /* register an 'expect' for given IMSI (+TMSI) */</span><br><span style="color: hsl(0, 100%, 40%);">-       if (isvalue(g_pars.tmsi)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             tmsi := g_pars.tmsi;</span><br><span style="color: hsl(0, 100%, 40%);">-    } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                tmsi := 'FFFFFFFF'O;</span><br><span style="color: hsl(0, 100%, 40%);">-    }</span><br><span style="color: hsl(0, 100%, 40%);">-       f_ran_register_imsi(g_pars.imsi, tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span> </span><br><span>   f_vty_sms_send(hex2str(pars.imsi), "2342", "Hello SMS");</span><br><span> </span><br><span>@@ -2013,7 +1996,6 @@</span><br><span> /* LU followed by MT SMS with repeated paging */</span><br><span> friend function f_tc_lu_and_mt_sms_paging_repeated(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr {</span><br><span>      var SmsParameters spars := valueof(t_SmsPars);</span><br><span style="color: hsl(0, 100%, 40%);">-  var OCT4 tmsi;</span><br><span> </span><br><span>   f_init_handler(pars);</span><br><span> </span><br><span>@@ -2021,12 +2003,7 @@</span><br><span>   f_perform_lu();</span><br><span> </span><br><span>  /* register an 'expect' for given IMSI (+TMSI) */</span><br><span style="color: hsl(0, 100%, 40%);">-       if (isvalue(g_pars.tmsi)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             tmsi := g_pars.tmsi;</span><br><span style="color: hsl(0, 100%, 40%);">-    } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                tmsi := 'FFFFFFFF'O;</span><br><span style="color: hsl(0, 100%, 40%);">-    }</span><br><span style="color: hsl(0, 100%, 40%);">-       f_ran_register_imsi(g_pars.imsi, tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span> </span><br><span>   f_vty_sms_send(hex2str(pars.imsi), "2342", "Hello SMS");</span><br><span> </span><br><span>@@ -2310,11 +2287,7 @@</span><br><span>    f_perform_lu();</span><br><span> </span><br><span>  /* Register an 'expect' for given IMSI (+TMSI) */</span><br><span style="color: hsl(0, 100%, 40%);">-       if (isvalue(g_pars.tmsi)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span style="color: hsl(0, 100%, 40%);">-  } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                f_ran_register_imsi(g_pars.imsi, 'FFFFFFFF'O);</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(120, 100%, 40%);">+     f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span> </span><br><span>   var template GSUP_PDU mt_forwardSM_res := tr_GSUP_MT_FORWARD_SM_RES(</span><br><span>                 imsi := g_pars.imsi,</span><br><span>@@ -2375,11 +2348,7 @@</span><br><span>        f_perform_lu();</span><br><span> </span><br><span>  /* Register an 'expect' for given IMSI (+TMSI) */</span><br><span style="color: hsl(0, 100%, 40%);">-       if (isvalue(g_pars.tmsi)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span style="color: hsl(0, 100%, 40%);">-  } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                f_ran_register_imsi(g_pars.imsi, 'FFFFFFFF'O);</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(120, 100%, 40%);">+     f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span> </span><br><span>   var template GSUP_PDU mt_forwardSM_err := tr_GSUP_MT_FORWARD_SM_ERR(</span><br><span>                 imsi := g_pars.imsi,</span><br><span>@@ -2442,11 +2411,7 @@</span><br><span>        f_perform_lu();</span><br><span> </span><br><span>  /* Register an 'expect' for given IMSI (+TMSI) */</span><br><span style="color: hsl(0, 100%, 40%);">-       if (isvalue(g_pars.tmsi)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span style="color: hsl(0, 100%, 40%);">-  } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                f_ran_register_imsi(g_pars.imsi, 'FFFFFFFF'O);</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(120, 100%, 40%);">+     f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span> </span><br><span>   /* Submit the 1st MT SMS on GSUP */</span><br><span>  log("TX MT-forwardSM-Req for the 1st SMS");</span><br><span>@@ -2555,11 +2520,7 @@</span><br><span>       f_perform_lu();</span><br><span> </span><br><span>  /* Register an 'expect' for given IMSI (+TMSI) */</span><br><span style="color: hsl(0, 100%, 40%);">-       if (isvalue(g_pars.tmsi)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span style="color: hsl(0, 100%, 40%);">-  } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                f_ran_register_imsi(g_pars.imsi, 'FFFFFFFF'O);</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(120, 100%, 40%);">+     f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span> </span><br><span>   /* Send CM Service Request for MO SMMA */</span><br><span>    f_establish_fully(EST_TYPE_MO_SMS);</span><br><span>@@ -2659,11 +2620,7 @@</span><br><span>         f_perform_lu();</span><br><span> </span><br><span>  /* Register an 'expect' for given IMSI (+TMSI) */</span><br><span style="color: hsl(0, 100%, 40%);">-       if (isvalue(g_pars.tmsi)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span style="color: hsl(0, 100%, 40%);">-  } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                f_ran_register_imsi(g_pars.imsi, 'FFFFFFFF'O);</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(120, 100%, 40%);">+     f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span> </span><br><span>   var template GSUP_PDU mt_forwardSM_res := tr_GSUP_MT_FORWARD_SM_RES(</span><br><span>                 imsi := g_pars.imsi,</span><br><span>@@ -2811,13 +2768,7 @@</span><br><span>        SMPP.receive(tr_SMPP(c_SMPP_command_id_alert_notification, ESME_ROK));</span><br><span> </span><br><span>   /* register an 'expect' for given IMSI (+TMSI) */</span><br><span style="color: hsl(0, 100%, 40%);">-       var OCT4 tmsi;</span><br><span style="color: hsl(0, 100%, 40%);">-  if (isvalue(g_pars.tmsi)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             tmsi := g_pars.tmsi;</span><br><span style="color: hsl(0, 100%, 40%);">-    } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                tmsi := 'FFFFFFFF'O;</span><br><span style="color: hsl(0, 100%, 40%);">-    }</span><br><span style="color: hsl(0, 100%, 40%);">-       f_ran_register_imsi(g_pars.imsi, tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_ran_register_imsi(g_pars.imsi, g_pars.tmsi);</span><br><span> </span><br><span>   var SmsParameters spars := valueof(t_SmsPars);</span><br><span>       /* TODO: test with more intelligent user data; test different coding schemes */</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/16786">change 16786</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/c/osmo-ttcn3-hacks/+/16786"/><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-Change-Id: I6dd2f77283a79e83f028115f4cc42f05db885838 </div>
<div style="display:none"> Gerrit-Change-Number: 16786 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>