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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">BSC_Tests: set band in f_TC_fh_params_set<br><br>The function f_TC_fh_params_set sets frequency hopping parameters. The<br>ARFCN is also part of those parameters. However, this function does not<br>set the respective band for the ARFCN that it configurs. This results in<br>an invalid setting at the BSC that might cause unexpected behavior.<br><br>Lets make sure we configure the band parameter correctly before setting<br>the ARFCN<br><br>Change-Id: I447e4145c68c62b11b818e28f0081c19e9107647<br>Related: SYS#5369<br>---<br>M bsc/BSC_Tests.ttcn<br>1 file changed, 39 insertions(+), 8 deletions(-)<br><br></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 ee4dac2..ad8f666 100644</span><br><span>--- a/bsc/BSC_Tests.ttcn</span><br><span>+++ b/bsc/BSC_Tests.ttcn</span><br><span>@@ -8439,7 +8439,7 @@</span><br><span> </span><br><span> /* Hopping parameters per a transceiver */</span><br><span> private type record FHParamsTrx {</span><br><span style="color: hsl(0, 100%, 40%);">-  GsmArfcn        arfcn,</span><br><span style="color: hsl(120, 100%, 40%);">+        GsmBandArfcn    arfcn,</span><br><span>       FHParamsTs      ts[8]</span><br><span> };</span><br><span> </span><br><span>@@ -8448,8 +8448,10 @@</span><br><span> runs on test_CT return FHParamsTrx {</span><br><span>     var FHParamsTrx fhp;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        /* Generate a random ARFCN, including ARFCN 0 */</span><br><span style="color: hsl(0, 100%, 40%);">-        fhp.arfcn := f_rnd_int(3);</span><br><span style="color: hsl(120, 100%, 40%);">+    /* Generate a random ARFCN in the range of 0 - 3. This ARFCN will</span><br><span style="color: hsl(120, 100%, 40%);">+      * fall in the GSM900 band. */</span><br><span style="color: hsl(120, 100%, 40%);">+        fhp.arfcn.arfcn := f_rnd_int(3);</span><br><span style="color: hsl(120, 100%, 40%);">+      fhp.arfcn.pcs := false;</span><br><span> </span><br><span>  for (var integer tn := 0; tn < 8; tn := tn + 1) {</span><br><span>                 if (not match(tn, tr_tn)) {</span><br><span>@@ -8488,7 +8490,7 @@</span><br><span>          tr_maio_hsn := tr_HsnMaio(fhp.ts[tn].hsn, fhp.ts[tn].maio);</span><br><span>          tr_cd := tr_ChanDescH1(cd.chan_nr, tr_maio_hsn);</span><br><span>     } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                tr_cd := tr_ChanDescH0(cd.chan_nr, fhp.arfcn);</span><br><span style="color: hsl(120, 100%, 40%);">+                tr_cd := tr_ChanDescH0(cd.chan_nr, fhp.arfcn.arfcn);</span><br><span>         }</span><br><span> </span><br><span>        if (not match(cd, tr_cd)) {</span><br><span>@@ -8533,7 +8535,7 @@</span><br><span>  }</span><br><span> </span><br><span>        /* Take ARFCN of the TRX itself into account */</span><br><span style="color: hsl(0, 100%, 40%);">- full_mask[fhp.arfcn] := '1'B;</span><br><span style="color: hsl(120, 100%, 40%);">+ full_mask[fhp.arfcn.arfcn] := '1'B;</span><br><span> </span><br><span>      /* Compose a bit-mask for the given timeslot number */</span><br><span>       for (var integer i := 0; i < lengthof(fhp.ts[tn].ma); i := i + 1) {</span><br><span>@@ -8570,15 +8572,41 @@</span><br><span>     return { len := ma_mask_len, ma := ma_mask };</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Configure the appropriate band for a given arfcn, exc */</span><br><span style="color: hsl(120, 100%, 40%);">+private function f_TC_set_band_by_arfcn(integer bts_nr, GsmBandArfcn arfcn) runs on test_CT</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+   var charstring band;</span><br><span style="color: hsl(120, 100%, 40%);">+  var GsmBandArfcn arfcn_ := valueof(ts_GsmBandArfcn(arfcn.arfcn, arfcn.pcs, false));</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ select (arfcn_) {</span><br><span style="color: hsl(120, 100%, 40%);">+     case (tr_GsmBandArfcn((259..293), false, ?)) { band := "GSM450"; }</span><br><span style="color: hsl(120, 100%, 40%);">+  case (tr_GsmBandArfcn((306..340), false, ?)) { band := "GSM480"; }</span><br><span style="color: hsl(120, 100%, 40%);">+  case (tr_GsmBandArfcn((438..511), false, ?)) { band := "GSM750"; }</span><br><span style="color: hsl(120, 100%, 40%);">+  case (tr_GsmBandArfcn((128..251), false, ?)) { band := "GSM850"; }</span><br><span style="color: hsl(120, 100%, 40%);">+  case (tr_GsmBandArfcn((0..124), false, ?)) { band := "GSM900"; }</span><br><span style="color: hsl(120, 100%, 40%);">+    case (tr_GsmBandArfcn((955..1023), false, ?)) { band := "GSM900"; }</span><br><span style="color: hsl(120, 100%, 40%);">+ case (tr_GsmBandArfcn((512..885), false, ?)) { band := "DCS1800"; }</span><br><span style="color: hsl(120, 100%, 40%);">+ case (tr_GsmBandArfcn((512..810), true, ?)) { band := "PCS1900"; }</span><br><span style="color: hsl(120, 100%, 40%);">+  case else { 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%);">+   f_vty_enter_cfg_bts(BSCVTY, bts_nr);</span><br><span style="color: hsl(120, 100%, 40%);">+  f_vty_transceive(BSCVTY, "band " & band);</span><br><span style="color: hsl(120, 100%, 40%);">+       f_vty_transceive(BSCVTY, "end");</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Configure the hopping parameters in accordance with the given record */</span><br><span> private function f_TC_fh_params_set(in FHParamsTrx fhp,</span><br><span>                                 uint8_t bts_nr := 0,</span><br><span>                                 uint8_t trx_nr := 0)</span><br><span> runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       f_TC_set_band_by_arfcn(bts_nr, fhp.arfcn);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>         /* Enter the configuration node for the given BTS/TRX numbers */</span><br><span>     f_vty_enter_cfg_trx(BSCVTY, bts_nr, trx_nr);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        f_vty_transceive(BSCVTY, "arfcn " & int2str(fhp.arfcn));</span><br><span style="color: hsl(120, 100%, 40%);">+        f_vty_transceive(BSCVTY, "arfcn " & int2str(fhp.arfcn.arfcn));</span><br><span> </span><br><span>     for (var integer tn := 0; tn < lengthof(fhp.ts); tn := tn + 1) {</span><br><span>          f_vty_transceive(BSCVTY, "timeslot " & int2str(tn));</span><br><span>@@ -8609,12 +8637,15 @@</span><br><span> private function f_TC_fh_params_unset(in FHParamsTrx fhp,</span><br><span>                                  uint8_t bts_nr := 0,</span><br><span>                                 uint8_t trx_nr := 0,</span><br><span style="color: hsl(0, 100%, 40%);">-                                    GsmArfcn arfcn := 871)</span><br><span style="color: hsl(120, 100%, 40%);">+                                GsmBandArfcn arfcn := {pcs := false, arfcn := 871})</span><br><span> runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      f_TC_set_band_by_arfcn(bts_nr, arfcn);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>     /* Enter the configuration node for the given BTS/TRX numbers */</span><br><span>     f_vty_enter_cfg_trx(BSCVTY, bts_nr, trx_nr);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        f_vty_transceive(BSCVTY, "arfcn " & int2str(arfcn));</span><br><span style="color: hsl(120, 100%, 40%);">+    f_vty_transceive(BSCVTY, "arfcn " & int2str(arfcn.arfcn));</span><br><span> </span><br><span>         for (var integer tn := 0; tn < lengthof(fhp.ts); tn := tn + 1) {</span><br><span>          f_vty_transceive(BSCVTY, "timeslot " & int2str(tn));</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25828">change 25828</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/+/25828"/><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: I447e4145c68c62b11b818e28f0081c19e9107647 </div>
<div style="display:none"> Gerrit-Change-Number: 25828 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: dexter <pmaier@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: fixeria <vyanitskiy@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>