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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bts/BTS_Tests: add frequency hopping parameters<br><br>Change-Id: I111a14ca5d77c589529b40429d99d9ec6fa55a98<br>Related: Ib5ad31388ae25399ad09739aac3fdcb0b3a1f78b<br>Related: OS#4546<br>---<br>M bts/BTS_Tests.ttcn<br>M bts/BTS_Tests_perf.ttcn<br>2 files changed, 38 insertions(+), 16 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 0f89ec6..80804ec 100644</span><br><span>--- a/bts/BTS_Tests.ttcn</span><br><span>+++ b/bts/BTS_Tests.ttcn</span><br><span>@@ -84,6 +84,9 @@</span><br><span>    charstring mp_rsl_ip := "127.0.0.2";</span><br><span>       integer mp_rsl_port := 3003;</span><br><span>         integer mp_trx0_arfcn := 871;</span><br><span style="color: hsl(120, 100%, 40%);">+ integer mp_trx1_arfcn := 873;</span><br><span style="color: hsl(120, 100%, 40%);">+ integer mp_trx2_arfcn := 875;</span><br><span style="color: hsl(120, 100%, 40%);">+ integer mp_trx3_arfcn := 877;</span><br><span>        charstring mp_bts_trxc_ip := "127.0.0.1";</span><br><span>  integer mp_bts_trxc_port := 5701;</span><br><span>    charstring mp_pcu_socket := PCU_SOCK_DEFAULT;</span><br><span>@@ -207,7 +210,14 @@</span><br><span>         ConnL1Pars l1_pars,</span><br><span>  TestSpecUnion spec optional,</span><br><span>         RSL_IE_EncryptionInfo encr optional,</span><br><span style="color: hsl(0, 100%, 40%);">-    BtsBand bts0_band optional</span><br><span style="color: hsl(120, 100%, 40%);">+    BtsBand bts0_band optional,</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Frequency hopping parameters (disabled if absent) */</span><br><span style="color: hsl(120, 100%, 40%);">+       MaioHsn maio_hsn optional,</span><br><span style="color: hsl(120, 100%, 40%);">+    /* MA bitmap to be indicated in RR Immediate Assignment */</span><br><span style="color: hsl(120, 100%, 40%);">+    MobileAllocation ma_map,</span><br><span style="color: hsl(120, 100%, 40%);">+      /* The actual Mobile Allocation (ARFCN list) to be used */</span><br><span style="color: hsl(120, 100%, 40%);">+    L1ctlMA ma</span><br><span> }</span><br><span> </span><br><span> /* Test-specific parameters */</span><br><span>@@ -587,8 +597,13 @@</span><br><span>                         "RF CHAN REL", true);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Default Mobile Allocation to be used for frequency hopping */</span><br><span style="color: hsl(120, 100%, 40%);">+private const L1ctlMA l1ctl_ma_def := { { false, mp_trx0_arfcn }, { false, mp_trx1_arfcn },</span><br><span style="color: hsl(120, 100%, 40%);">+                                       { false, mp_trx2_arfcn }, { false, mp_trx3_arfcn } };</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> friend template ConnHdlrPars t_Pars(template RslChannelNr chan_nr,</span><br><span>                                        template RSL_IE_ChannelMode chan_mode,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        template (omit) MaioHsn maio_hsn := omit,</span><br><span>                                    float t_guard := 20.0) := {</span><br><span>  chan_nr := valueof(chan_nr),</span><br><span>         chan_mode := valueof(chan_mode),</span><br><span>@@ -613,7 +628,10 @@</span><br><span>      },</span><br><span>   spec := omit,</span><br><span>        encr := omit,</span><br><span style="color: hsl(0, 100%, 40%);">-   bts0_band := omit</span><br><span style="color: hsl(120, 100%, 40%);">+     bts0_band := omit,</span><br><span style="color: hsl(120, 100%, 40%);">+    maio_hsn := maio_hsn,</span><br><span style="color: hsl(120, 100%, 40%);">+ ma_map := c_MA_null,</span><br><span style="color: hsl(120, 100%, 40%);">+  ma := l1ctl_ma_def</span><br><span> }</span><br><span> </span><br><span> /***********************************************************************</span><br><span>@@ -1906,6 +1924,7 @@</span><br><span> private function f_est_dchan(boolean encr_enable := false, RSL_IE_List more_ies := {}) runs on ConnHdlr {</span><br><span>         var GsmFrameNumber fn;</span><br><span>       var ImmediateAssignment imm_ass;</span><br><span style="color: hsl(120, 100%, 40%);">+      var ChannelDescription ch_desc;</span><br><span>      var integer ra := 23;</span><br><span> </span><br><span>    /* Send RACH request and wait for ChanReq */</span><br><span>@@ -1914,26 +1933,28 @@</span><br><span>       /* Activate channel on BTS side */</span><br><span>   f_rsl_chan_act(g_pars.chan_mode, encr_enable, more_ies);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+  /* Craft channel description (with or without frequency hopping parameters) */</span><br><span style="color: hsl(120, 100%, 40%);">+        if (ispresent(g_pars.maio_hsn)) {</span><br><span style="color: hsl(120, 100%, 40%);">+             ch_desc := valueof(ts_ChanDescH1(g_pars.chan_nr, maio_hsn := g_pars.maio_hsn));</span><br><span style="color: hsl(120, 100%, 40%);">+       } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              ch_desc := valueof(ts_ChanDescH0(g_pars.chan_nr));</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  /* Send IMM.ASS via CCHAN */</span><br><span style="color: hsl(0, 100%, 40%);">-    var ChannelDescription ch_desc := {</span><br><span style="color: hsl(0, 100%, 40%);">-             chan_nr := g_pars.chan_nr,</span><br><span style="color: hsl(0, 100%, 40%);">-              tsc := 7,</span><br><span style="color: hsl(0, 100%, 40%);">-               h := false,</span><br><span style="color: hsl(0, 100%, 40%);">-             arfcn := mp_trx0_arfcn,</span><br><span style="color: hsl(0, 100%, 40%);">-         maio_hsn := omit</span><br><span style="color: hsl(0, 100%, 40%);">-        };</span><br><span style="color: hsl(0, 100%, 40%);">-      var MobileAllocation ma := {</span><br><span style="color: hsl(0, 100%, 40%);">-            len := 0,</span><br><span style="color: hsl(0, 100%, 40%);">-               ma := ''B</span><br><span style="color: hsl(0, 100%, 40%);">-       };</span><br><span style="color: hsl(0, 100%, 40%);">-      var GsmRrMessage rr_msg := valueof(ts_IMM_ASS(ra, fn, 0, ch_desc, ma));</span><br><span style="color: hsl(120, 100%, 40%);">+       var GsmRrMessage rr_msg := valueof(ts_IMM_ASS(ra, fn, 0, ch_desc, g_pars.ma_map));</span><br><span>   RSL.send(ts_RSL_IMM_ASSIGN(enc_GsmRrMessage(rr_msg)));</span><br><span> </span><br><span>   /* receive IMM.ASS on MS side */</span><br><span>     var ImmediateAssignment ia_um;</span><br><span>       ia_um := f_L1CTL_WAIT_IMM_ASS(L1CTL, ra, fn);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       /* Make sure that IMM.ASS contains hopping parameters (if enabled) */</span><br><span style="color: hsl(120, 100%, 40%);">+ if (ch_desc.h != ia_um.chan_desc.h) {</span><br><span style="color: hsl(120, 100%, 40%);">+         Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Hopping parameters mismatch");</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  /* enable dedicated mode */</span><br><span style="color: hsl(0, 100%, 40%);">-     f_L1CTL_DM_EST_REQ_IA(L1CTL, ia_um);</span><br><span style="color: hsl(120, 100%, 40%);">+  f_L1CTL_DM_EST_REQ_IA(L1CTL, ia_um, ma := g_pars.ma);</span><br><span>        /* enable encryption, if requested */</span><br><span>        if (encr_enable) {</span><br><span>           var uint8_t alg_id := f_alg_id_to_l1ctl(g_pars.encr.alg_id);</span><br><span>diff --git a/bts/BTS_Tests_perf.ttcn b/bts/BTS_Tests_perf.ttcn</span><br><span>index 1e70bc8..5b3b672 100644</span><br><span>--- a/bts/BTS_Tests_perf.ttcn</span><br><span>+++ b/bts/BTS_Tests_perf.ttcn</span><br><span>@@ -86,7 +86,8 @@</span><br><span> }</span><br><span> testcase TC_highchanload_tchh() runs on test_CT {</span><br><span>  var ConnHdlr vc_conn; /* 1..7 * 2 */</span><br><span style="color: hsl(0, 100%, 40%);">-    var ConnHdlrPars pars := valueof(t_Pars(t_RslChanNr_Bm(1), ts_RSL_ChanMode_SIGN, 60.0 + mp_wait_time));</span><br><span style="color: hsl(120, 100%, 40%);">+       var ConnHdlrPars pars := valueof(t_Pars(t_RslChanNr_Bm(1), ts_RSL_ChanMode_SIGN,</span><br><span style="color: hsl(120, 100%, 40%);">+                                              t_guard := 60.0 + mp_wait_time));</span><br><span> </span><br><span>        f_init();</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18530">change 18530</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/+/18530"/><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: I111a14ca5d77c589529b40429d99d9ec6fa55a98 </div>
<div style="display:none"> Gerrit-Change-Number: 18530 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <axilirator@gmail.com> </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>