<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/24567">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve
  dexter: Looks good to me, but someone else must approve

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">BTS: add a test case for RF RESource INDication<br><br>Change-Id: I78b6d8beffa5228a28231b75728e7aebdd3cb23c<br>Related: SYS#5313, OS#1569, OS#1866<br>---<br>M bts/BTS_Tests.ttcn<br>1 file changed, 67 insertions(+), 0 deletions(-)<br><br></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 a6ccf30..c9553a3 100644</span><br><span>--- a/bts/BTS_Tests.ttcn</span><br><span>+++ b/bts/BTS_Tests.ttcn</span><br><span>@@ -119,6 +119,17 @@</span><br><span>       TrxPars mp_trx_pars; /* see BTS_Tests.default */</span><br><span>     /* default Training Sequence Code */</span><br><span>         GsmTsc mp_tsc_def := 7;</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Default interference boundaries in osmo-bsc (in dBm):</span><br><span style="color: hsl(120, 100%, 40%);">+       *   0(-85) X1(-91) X2(-97) X3(-103) X4(-109) X5(-115)</span><br><span style="color: hsl(120, 100%, 40%);">+         * Default interference level reported by fake_trx.py:</span><br><span style="color: hsl(120, 100%, 40%);">+         *    0: -109 >= -85 dBm (no)</span><br><span style="color: hsl(120, 100%, 40%);">+       *   X1: -109 >= -91 dBm (no)</span><br><span style="color: hsl(120, 100%, 40%);">+       *   X2: -109 >= -97 dBm (no)</span><br><span style="color: hsl(120, 100%, 40%);">+       *   X3: -109 >= -103 dBm (no)</span><br><span style="color: hsl(120, 100%, 40%);">+      *   X4: -109 >= -109 dBm (yes)</span><br><span style="color: hsl(120, 100%, 40%);">+     *   X5: -109 >= -115 dBm (no)</span><br><span style="color: hsl(120, 100%, 40%);">+      * So all channels should be in band 4. */</span><br><span style="color: hsl(120, 100%, 40%);">+    uint3_t mp_interf_band := 4;</span><br><span> }</span><br><span> </span><br><span> type record of RslChannelNr ChannelNrs;</span><br><span>@@ -6776,6 +6787,61 @@</span><br><span>    f_testmatrix_each_chan(pars, refers(f_TC_rsl_modify_encr));</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Verify RF RESource INDication messages (periodically sent over the RSL) */</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_TC_rsl_rf_resource_ind(template RSL_ResourceInfo info)</span><br><span style="color: hsl(120, 100%, 40%);">+runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     const IpaStreamId sid := IPAC_PROTO_RSL_TRX0;</span><br><span style="color: hsl(120, 100%, 40%);">+ var ASP_RSL_Unitdata ud;</span><br><span style="color: hsl(120, 100%, 40%);">+      timer T;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* Intave is 6 SACCH periods by default */</span><br><span style="color: hsl(120, 100%, 40%);">+    var float Tval := int2float(6 * 480) / 1000.0 + 0.5;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        T.start(Tval);</span><br><span style="color: hsl(120, 100%, 40%);">+        alt {</span><br><span style="color: hsl(120, 100%, 40%);">+ [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND(info), sid)) {</span><br><span style="color: hsl(120, 100%, 40%);">+           setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND(?), sid)) -> value ud {</span><br><span style="color: hsl(120, 100%, 40%);">+               setverdict(fail, "RF RESource INDication mismatch: ", ud.rsl);</span><br><span style="color: hsl(120, 100%, 40%);">+              }</span><br><span style="color: hsl(120, 100%, 40%);">+     [] RSL_CCHAN.receive { repeat; }</span><br><span style="color: hsl(120, 100%, 40%);">+      [] T.timeout {</span><br><span style="color: hsl(120, 100%, 40%);">+                Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,</span><br><span style="color: hsl(120, 100%, 40%);">+                    "Timeout waiting for RF RESource INDication");</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 style="color: hsl(120, 100%, 40%);">+testcase TC_rsl_rf_resource_ind() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     var RSL_ResourceInfo info := { };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   f_init(trx_nr := 0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        f_init_l1ctl();</span><br><span style="color: hsl(120, 100%, 40%);">+       f_l1_tune(L1CTL);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* g_AllChannels contains all logical channels */</span><br><span style="color: hsl(120, 100%, 40%);">+     for (var integer i := 0; i < lengthof(g_AllChannels); i := i + 1) {</span><br><span style="color: hsl(120, 100%, 40%);">+                var RslChannelNr chan_nr := g_AllChannels[i];</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+               /* FIXME: osmo-bts does not report for Osmocom style dynamic timeslots */</span><br><span style="color: hsl(120, 100%, 40%);">+             if (mp_trx_pars[0].ts[chan_nr.tn].config == GSM_PCHAN_TCHH_TCHF_PDCH)</span><br><span style="color: hsl(120, 100%, 40%);">+                 { continue; }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+               info := info & { valueof(ts_RSL_ResourceInfoItem(chan_nr, mp_interf_band)) };</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%);">+   /* Align to the first interference report */</span><br><span style="color: hsl(120, 100%, 40%);">+  f_TC_rsl_rf_resource_ind(?);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        /* Test 4 consecutive messages */</span><br><span style="color: hsl(120, 100%, 40%);">+     for (var integer i := 0; i < 4; i := i + 1) {</span><br><span style="color: hsl(120, 100%, 40%);">+              f_TC_rsl_rf_resource_ind(info);</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%);">+   Misc_Helpers.f_shutdown(__BFILE__, __LINE__);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Test unencrypted channel activation followed by explicit ENCR CMD later */</span><br><span> private function f_TC_encr_cmd(charstring id) runs on ConnHdlr {</span><br><span>      /* L3 payload doesn't matter, as it is passed transparently */</span><br><span>@@ -7356,6 +7422,7 @@</span><br><span>   execute( TC_rsl_chan_initial_ms_pwr() );</span><br><span>     execute( TC_rsl_chan_initial_ta() );</span><br><span>         execute( TC_rsl_modify_encr() );</span><br><span style="color: hsl(120, 100%, 40%);">+      execute( TC_rsl_rf_resource_ind() );</span><br><span>         execute( TC_conn_fail_crit() );</span><br><span>      execute( TC_paging_imsi_80percent() );</span><br><span>       execute( TC_paging_tmsi_80percent() );</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/24567">change 24567</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/+/24567"/><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: I78b6d8beffa5228a28231b75728e7aebdd3cb23c </div>
<div style="display:none"> Gerrit-Change-Number: 24567 </div>
<div style="display:none"> Gerrit-PatchSet: 5 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: dexter <pmaier@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>