<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/17644">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">PCU: fix f_tc_paging_ps_from_sgsn(): also match received MI<br><br>Change-Id: Ia8c25ee74c711d8abc84b7d164b3d41abafc1da4<br>---<br>M pcu/PCU_Tests_RAW.ttcn<br>1 file changed, 22 insertions(+), 17 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/44/17644/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pcu/PCU_Tests_RAW.ttcn b/pcu/PCU_Tests_RAW.ttcn</span><br><span>index 6e11889..f6960a5 100644</span><br><span>--- a/pcu/PCU_Tests_RAW.ttcn</span><br><span>+++ b/pcu/PCU_Tests_RAW.ttcn</span><br><span>@@ -366,25 +366,38 @@</span><br><span> }</span><br><span> </span><br><span> /* Expect a Paging Request Type 1 from PCU on PCUIF on specified sapi.  */</span><br><span style="color: hsl(0, 100%, 40%);">-private function f_pcuif_rx_pch_pag_req1(out integer imsi_suff_rx, out GsmRrMessage rr_pag_req1)</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_pcuif_rx_pch_pag_req1(template MobileIdentityV mi1 := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+                                      template integer pag_group := ?)</span><br><span> runs on RAW_PCU_Test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+        var GsmRrMessage rr_pag_req1;</span><br><span>        var PCUIF_Message pcu_msg;</span><br><span>   var octetstring imsi_suff_octstr;</span><br><span style="color: hsl(120, 100%, 40%);">+     var integer pag_group_rx;</span><br><span>    var octetstring macblock;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  BTS.receive(tr_PCUIF_DATA_REQ(bts_nr := 0, trx_nr := 0, ts_nr := 0,</span><br><span>                                sapi := PCU_IF_SAPI_PCH)) -> value pcu_msg;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>       /* First 3 bytes contain IMSI suffix to calculate paging group: */</span><br><span>   imsi_suff_octstr := substr(pcu_msg.u.data_req.data, 0, 3);</span><br><span style="color: hsl(0, 100%, 40%);">-      imsi_suff_rx := str2int(oct2char(imsi_suff_octstr[0])) * 100 +</span><br><span style="color: hsl(120, 100%, 40%);">+        pag_group_rx := str2int(oct2char(imsi_suff_octstr[0])) * 100 +</span><br><span>                       str2int(oct2char(imsi_suff_octstr[1])) * 10 +</span><br><span>                        str2int(oct2char(imsi_suff_octstr[2]));</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+   /* Make sure we've got RR Paging Request Type 1 for a given MI */</span><br><span>        macblock := substr(pcu_msg.u.data_req.data, 3, pcu_msg.u.data_req.len - 3);</span><br><span>  rr_pag_req1 := dec_GsmRrMessage(macblock);</span><br><span style="color: hsl(0, 100%, 40%);">-      if (not match(rr_pag_req1, tr_PAG_REQ1())) {</span><br><span style="color: hsl(120, 100%, 40%);">+  if (not match(rr_pag_req1, tr_PAG_REQ1(tr_MI_LV(mi1)))) {</span><br><span>            setverdict(fail, "Failed to match Paging Request Type 1: ", rr_pag_req1);</span><br><span>          mtc.stop;</span><br><span>    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* Make sure that received paging froup matches the expected one */</span><br><span style="color: hsl(120, 100%, 40%);">+   if (not match(pag_group_rx, pag_group)) {</span><br><span style="color: hsl(120, 100%, 40%);">+             setverdict(fail, "Paging group", pag_group_rx, " does not match expected ", pag_group);</span><br><span style="color: hsl(120, 100%, 40%);">+           mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  BTS.send(ts_PCUIF_DATA_CNF(bts_nr := 0, trx_nr := 0, ts_nr := 0, block_nr := 0,</span><br><span>                                 fn := pcu_msg.u.data_req.fn, arfcn := 871, sapi := PCU_IF_SAPI_PCH, data := macblock));</span><br><span> }</span><br><span>@@ -1502,12 +1515,9 @@</span><br><span>  */</span><br><span> private function f_tc_paging_ps_from_sgsn(Nsvci bvci, boolean use_ptmsi := false)</span><br><span> runs on RAW_PCU_Test_CT {</span><br><span style="color: hsl(0, 100%, 40%);">-       var GsmRrMessage rr_pag_req1;</span><br><span>        var OCT4 tlli := '00000001'O;</span><br><span style="color: hsl(0, 100%, 40%);">-   var integer imsi_suff_rx;</span><br><span>    var integer imsi_suff_tx := 423;</span><br><span>     var hexstring imsi := f_gen_imsi(imsi_suff_tx);</span><br><span style="color: hsl(0, 100%, 40%);">- var GsmTmsi tmsi;</span><br><span> </span><br><span>        /* Initialize NS/BSSGP side */</span><br><span>       f_init_bssgp();</span><br><span>@@ -1519,22 +1529,17 @@</span><br><span>    f_bssgp_establish();</span><br><span>         f_bssgp_client_llgmm_assign('FFFFFFFF'O, tlli);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     /* Send paging request with or without TMSI */</span><br><span style="color: hsl(120, 100%, 40%);">+        /* Send BSSGP PAGING-PS (with or without TMSI), wait for RR Paging Request Type 1.</span><br><span style="color: hsl(120, 100%, 40%);">+     * Make sure that both paging group (IMSI suffix) and Mobile Identity match. */</span><br><span>      if (use_ptmsi) {</span><br><span style="color: hsl(0, 100%, 40%);">-                tmsi := oct2int(f_rnd_octstring(4)); /* Random P-TMSI */</span><br><span style="color: hsl(0, 100%, 40%);">-                BSSGP[0].send(ts_BSSGP_PS_PAGING_PTMSI(bvci, imsi, tmsi));</span><br><span style="color: hsl(120, 100%, 40%);">+            var OCT4 tmsi := f_rnd_octstring(4); /* Random P-TMSI */</span><br><span style="color: hsl(120, 100%, 40%);">+              BSSGP[0].send(ts_BSSGP_PS_PAGING_PTMSI(bvci, imsi, oct2int(tmsi)));</span><br><span style="color: hsl(120, 100%, 40%);">+           f_pcuif_rx_pch_pag_req1(t_MI_TMSI(tmsi), imsi_suff_tx);</span><br><span>      } else {</span><br><span>             BSSGP[0].send(ts_BSSGP_PS_PAGING_IMSI(bvci, imsi));</span><br><span style="color: hsl(120, 100%, 40%);">+           f_pcuif_rx_pch_pag_req1(tr_MI_IMSI(imsi), imsi_suff_tx);</span><br><span>     }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   /* Receive it on BTS side towards MS */</span><br><span style="color: hsl(0, 100%, 40%);">- f_pcuif_rx_pch_pag_req1(imsi_suff_rx, rr_pag_req1);</span><br><span style="color: hsl(0, 100%, 40%);">-     if (imsi_suff_rx != imsi_suff_tx) {</span><br><span style="color: hsl(0, 100%, 40%);">-             setverdict(fail, "Wrong IMSI suffix: expected ", imsi_suff_tx, " but received ", imsi_suff_rx);</span><br><span style="color: hsl(0, 100%, 40%);">-             mtc.stop;</span><br><span style="color: hsl(0, 100%, 40%);">-       }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       /* TODO: match MI (P-TMSI/IMSI) of received RR Paging Request */</span><br><span>     setverdict(pass);</span><br><span> }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/17644">change 17644</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/+/17644"/><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: Ia8c25ee74c711d8abc84b7d164b3d41abafc1da4 </div>
<div style="display:none"> Gerrit-Change-Number: 17644 </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>