<p>dexter has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/10726">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">BTS_Tests: check paging channel fn _ag_blks_res)<br><br>BTS_Tests.ttcn contains numorous tests that issue pagings via RSL and<br>observe if these pagings are visible on the UM interface as well.<br>However, it is not checked whether the frame number of the blocks on<br>which those pagings are sent actually falls into the range that is<br>specified for PCH. We should check this as well.<br><br>(The PCH is part of the CCCH, which also contains the<br>AGC. How many blocks of the CCCH are to be used by the PCH is set by the<br>parameter bs_ag_blks_res.)<br><br>- Check the FN of each paging message that arrives on L1CTL and make<br>  sure that those FN are part of the PCH.<br><br>Change-Id: I839e75ece05166518bf7132acd3017434b3d3bc2<br>Related: OS#1575<br>---<br>M bts/BTS_Tests.ttcn<br>1 file changed, 59 insertions(+), 3 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/26/10726/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn</span><br><span>index fd2e50f..dfc7efa 100644</span><br><span>--- a/bts/BTS_Tests.ttcn</span><br><span>+++ b/bts/BTS_Tests.ttcn</span><br><span>@@ -1532,7 +1532,60 @@</span><br><span>         }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-altstep as_l1_count_paging(inout integer num_paging_rcv_msgs, inout integer num_paging_rcv_ids)</span><br><span style="color: hsl(120, 100%, 40%);">+type record allowedFn { integer frame_nr }</span><br><span style="color: hsl(120, 100%, 40%);">+template allowedFn bs_ag_blks_res_0  := { frame_nr := (6, 12, 16, 22, 26, 32, 36, 42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+template allowedFn bs_ag_blks_res_1  := { frame_nr := (12, 16, 22, 26, 32, 36, 42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+template allowedFn bs_ag_blks_res_2  := { frame_nr := (16, 22, 26, 32, 36, 42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+template allowedFn bs_ag_blks_res_3  := { frame_nr := (22, 26, 32, 36, 42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+template allowedFn bs_ag_blks_res_4  := { frame_nr := (26, 32, 36, 42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+template allowedFn bs_ag_blks_res_5  := { frame_nr := (32, 36, 42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+template allowedFn bs_ag_blks_res_6  := { frame_nr := (36, 42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+template allowedFn bs_ag_blks_res_7  := { frame_nr := (42, 46) }</span><br><span style="color: hsl(120, 100%, 40%);">+function check_pch_fn(integer frame_nr, integer bs_ag_blks_res) runs on test_CT</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+      var integer frame_nr_51;</span><br><span style="color: hsl(120, 100%, 40%);">+      frame_nr_51 := frame_nr mod 51</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      var allowedFn fn_check;</span><br><span style="color: hsl(120, 100%, 40%);">+       fn_check.frame_nr := frame_nr_51;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (bs_ag_blks_res < 0 or bs_ag_blks_res > 7) {</span><br><span style="color: hsl(120, 100%, 40%);">+         setverdict(fail, "bs_ag_blks_res out of valid range (0..7)");</span><br><span style="color: hsl(120, 100%, 40%);">+               mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+             return;</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%);">+   if (bs_ag_blks_res == 0 and match(fn_check, bs_ag_blks_res_0)) {</span><br><span style="color: hsl(120, 100%, 40%);">+              return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     if (bs_ag_blks_res == 1 and match(fn_check, bs_ag_blks_res_1)) {</span><br><span style="color: hsl(120, 100%, 40%);">+              return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     if (bs_ag_blks_res == 2 and match(fn_check, bs_ag_blks_res_2)) {</span><br><span style="color: hsl(120, 100%, 40%);">+              return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     if (bs_ag_blks_res == 3 and match(fn_check, bs_ag_blks_res_3)) {</span><br><span style="color: hsl(120, 100%, 40%);">+              return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     if (bs_ag_blks_res == 4 and match(fn_check, bs_ag_blks_res_4)) {</span><br><span style="color: hsl(120, 100%, 40%);">+              return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     if (bs_ag_blks_res == 5 and match(fn_check, bs_ag_blks_res_5)) {</span><br><span style="color: hsl(120, 100%, 40%);">+              return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     if (bs_ag_blks_res == 6 and match(fn_check, bs_ag_blks_res_6)) {</span><br><span style="color: hsl(120, 100%, 40%);">+              return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span style="color: hsl(120, 100%, 40%);">+     if (bs_ag_blks_res == 7 and match(fn_check, bs_ag_blks_res_7)) {</span><br><span style="color: hsl(120, 100%, 40%);">+              return;</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%);">+   setverdict(fail, "received paging on AGCH");</span><br><span style="color: hsl(120, 100%, 40%);">+        mtc.stop;</span><br><span style="color: hsl(120, 100%, 40%);">+     return;</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%);">+altstep as_l1_count_paging(inout integer num_paging_rcv_msgs, inout integer num_paging_rcv_ids, PagingTestCfg cfg)</span><br><span> runs on test_CT {</span><br><span>        var L1ctlDlMessage dl;</span><br><span>       [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0), ?, c_DummyUI)) {</span><br><span>@@ -1542,6 +1595,9 @@</span><br><span>                 var octetstring without_plen :=</span><br><span>                      substr(dl.payload.data_ind.payload, 1, lengthof(dl.payload.data_ind.payload)-1);</span><br><span>             var PDU_ML3_NW_MS rr := dec_PDU_ML3_NW_MS(without_plen);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+            check_pch_fn(dl.dl_info.frame_nr, cfg.bs_ag_blks_res);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>             if (match(rr, tr_PAGING_REQ1)) {</span><br><span>                     num_paging_rcv_msgs := num_paging_rcv_msgs + 1;</span><br><span>                      num_paging_rcv_ids := num_paging_rcv_ids + 1;</span><br><span>@@ -1659,7 +1715,7 @@</span><br><span>                        repeat;</span><br><span>                      }</span><br><span>            /* check if paging requests arrive on Um side */</span><br><span style="color: hsl(0, 100%, 40%);">-                [] as_l1_count_paging(st.num_paging_rcv_msgs, st.num_paging_rcv_ids);</span><br><span style="color: hsl(120, 100%, 40%);">+         [] as_l1_count_paging(st.num_paging_rcv_msgs, st.num_paging_rcv_ids, cfg);</span><br><span>           [] L1CTL.receive { repeat; }</span><br><span>                 [] T_itv.timeout { }</span><br><span>                 [] as_rsl_res_ind();</span><br><span>@@ -1670,7 +1726,7 @@</span><br><span>         timer T_wait := 18.0;</span><br><span>        T_wait.start;</span><br><span>        alt {</span><br><span style="color: hsl(0, 100%, 40%);">-   [] as_l1_count_paging(st.num_paging_rcv_msgs, st.num_paging_rcv_ids);</span><br><span style="color: hsl(120, 100%, 40%);">+ [] as_l1_count_paging(st.num_paging_rcv_msgs, st.num_paging_rcv_ids, cfg);</span><br><span>   [] L1CTL.receive { repeat; }</span><br><span>         /* 65535 == empty paging queue, we can terminate*/</span><br><span>   [] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_PAGING_LOAD_IND(65535))) { }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/10726">change 10726</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/10726"/><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: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I839e75ece05166518bf7132acd3017434b3d3bc2 </div>
<div style="display:none"> Gerrit-Change-Number: 10726 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@sysmocom.de> </div>