<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22225">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Add f_gen_tmsi() to generate a TMSI similar to f_gen_{imsi,imei}()<br><br>... and start to use it from BSC_Tests.ttcn<br><br>Related: OS#4472, SYS#5002<br>Change-Id: Iacba62bb740374c28cbcf50d54ba1814c5b4e1c2<br>---<br>M bsc/BSC_Tests.ttcn<br>M library/Osmocom_Types.ttcn<br>2 files changed, 17 insertions(+), 8 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/25/22225/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn</span><br><span>index 2c02e36..52b4906 100644</span><br><span>--- a/bsc/BSC_Tests.ttcn</span><br><span>+++ b/bsc/BSC_Tests.ttcn</span><br><span>@@ -6383,14 +6383,8 @@</span><br><span>  * MSC Pooling</span><br><span>  ***********************************************************************/</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-function f_tmsi_nri(integer nri_v, octetstring base_tmsi := '42000023'O, integer nri_bitlen := 10) return octetstring</span><br><span style="color: hsl(0, 100%, 40%);">-{</span><br><span style="color: hsl(0, 100%, 40%);">-     return int2oct( oct2int(base_tmsi) + bit2int( (int2bit(nri_v, 32) << ( 24 - nri_bitlen)) ),</span><br><span style="color: hsl(0, 100%, 40%);">-                       4);</span><br><span style="color: hsl(0, 100%, 40%);">-}</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> template MobileIdentityLV ts_MI_TMSI_NRI_LV(integer nri_v, integer nri_bitlen := 10) :=</span><br><span style="color: hsl(0, 100%, 40%);">- ts_MI_TMSI_LV(tmsi := f_tmsi_nri(nri_v, nri_bitlen := nri_bitlen));</span><br><span style="color: hsl(120, 100%, 40%);">+   ts_MI_TMSI_LV(tmsi := f_gen_tmsi(suffix := 0, nri_v := nri_v, nri_bitlen := nri_bitlen));</span><br><span> </span><br><span> private function f_expect_lchan_rel(RSL_DCHAN_PT rsl) runs on MSC_ConnHdlr {</span><br><span>        interleave {</span><br><span>@@ -6949,7 +6943,7 @@</span><br><span>         var RSL_ChanNeeded rsl_chneed := RSL_CHANNEED_SDCCH;</span><br><span>         var template BSSMAP_IE_ChannelNeeded bssmap_chneed := ts_BSSMAP_IE_ChanNeeded(int2bit(enum2int(valueof(rsl_chneed)),2));</span><br><span>     var integer nri_v := 300; /* <-- second MSC's NRI */</span><br><span style="color: hsl(0, 100%, 40%);">-     var octetstring tmsi := f_tmsi_nri(nri_v);</span><br><span style="color: hsl(120, 100%, 40%);">+    var octetstring tmsi := f_gen_tmsi(suffix := 0, nri_v := nri_v);</span><br><span>     var BSSAP_N_UNITDATA_req paging;</span><br><span> </span><br><span>         f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", FR_AMR);</span><br><span>diff --git a/library/Osmocom_Types.ttcn b/library/Osmocom_Types.ttcn</span><br><span>index 862509b..1cba168 100644</span><br><span>--- a/library/Osmocom_Types.ttcn</span><br><span>+++ b/library/Osmocom_Types.ttcn</span><br><span>@@ -267,6 +267,21 @@</span><br><span>       return f_concat_pad(12, '49123'H, suffix);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+function f_gen_tmsi(integer suffix, integer nri_v := 0, integer nri_bitlen := 10,</span><br><span style="color: hsl(120, 100%, 40%);">+                    OCT4 base_tmsi := '42000023'O) return OCT4 {</span><br><span style="color: hsl(120, 100%, 40%);">+      var integer tmsi_int := oct2int(base_tmsi) + suffix;</span><br><span style="color: hsl(120, 100%, 40%);">+  var bitstring base_tmsi_bits := int2bit(tmsi_int, 32);</span><br><span style="color: hsl(120, 100%, 40%);">+        var bitstring prefix_bits := substr(base_tmsi_bits, 0, 8);</span><br><span style="color: hsl(120, 100%, 40%);">+    var bitstring suffix_bits := substr(base_tmsi_bits, 8 + nri_bitlen, 24 - nri_bitlen);</span><br><span style="color: hsl(120, 100%, 40%);">+ var bitstring total_bits := prefix_bits & int2bit(nri_v, nri_bitlen) & suffix_bits;</span><br><span style="color: hsl(120, 100%, 40%);">+   var OCT4 tmsi := bit2oct(total_bits);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       log("f_gen_tmsi(suffix:=", suffix, ", nri_v:=", nri_v, ", nri_bitlen:=", nri_bitlen,</span><br><span style="color: hsl(120, 100%, 40%);">+        ", base_tmsi:=", base_tmsi, ") -> prefix:=", prefix_bits, ", suffix:=", suffix_bits,</span><br><span style="color: hsl(120, 100%, 40%);">+         "total_bits:=", total_bits, " == ", tmsi);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  return tmsi;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span> </span><br><span> </span><br><span> } with { encode "RAW"; variant "FIELDORDER(msb)" }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/22225">change 22225</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/+/22225"/><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: Iacba62bb740374c28cbcf50d54ba1814c5b4e1c2 </div>
<div style="display:none"> Gerrit-Change-Number: 22225 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>