<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21314">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">BTS_Tests: re-organize configuration of TRX/TS params<br><br>Change-Id: I9b225249d135399f63d3c7e4c567121dfea63f75<br>---<br>M bts/BTS_Tests.default<br>M bts/BTS_Tests.ttcn<br>M bts/BTS_Tests_LAPDm.ttcn<br>M bts/BTS_Tests_SMSCB.ttcn<br>M library/GSM_Types.ttcn<br>5 files changed, 98 insertions(+), 19 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/14/21314/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/bts/BTS_Tests.default b/bts/BTS_Tests.default</span><br><span>index 89b04e8..0657b65 100644</span><br><span>--- a/bts/BTS_Tests.default</span><br><span>+++ b/bts/BTS_Tests.default</span><br><span>@@ -31,4 +31,60 @@</span><br><span> Osmocom_VTY_Functions.mp_prompt_prefix := "OsmoBTS";</span><br><span> PCUIF_Types.mp_pcuif_version := 10;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+# Configuration for each individual transceiver</span><br><span style="color: hsl(120, 100%, 40%);">+BTS_Tests.mp_trx_pars := {</span><br><span style="color: hsl(120, 100%, 40%);">+    { # TRX0</span><br><span style="color: hsl(120, 100%, 40%);">+              arfcn := 871,</span><br><span style="color: hsl(120, 100%, 40%);">+         ts := {</span><br><span style="color: hsl(120, 100%, 40%);">+                       { config := GSM_PCHAN_CCCH_SDCCH4 },</span><br><span style="color: hsl(120, 100%, 40%);">+                  { config := GSM_PCHAN_TCHF },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_TCHF },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_TCHF_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                    { config := GSM_PCHAN_TCHH_TCHF_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { config := GSM_PCHAN_TCHH },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_SDCCH8 },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { config := GSM_PCHAN_PDCH }</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%);">+    { # TRX1</span><br><span style="color: hsl(120, 100%, 40%);">+              arfcn := 873,</span><br><span style="color: hsl(120, 100%, 40%);">+         ts := {</span><br><span style="color: hsl(120, 100%, 40%);">+                       { config := GSM_PCHAN_TCHF },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_SDCCH8 },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { config := GSM_PCHAN_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_TCHH_TCHF_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { config := GSM_PCHAN_TCHF_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                    { config := GSM_PCHAN_SDCCH8 },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { config := GSM_PCHAN_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_PDCH }</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%);">+    { # TRX2</span><br><span style="color: hsl(120, 100%, 40%);">+              arfcn := 875,</span><br><span style="color: hsl(120, 100%, 40%);">+         ts := {</span><br><span style="color: hsl(120, 100%, 40%);">+                       { config := GSM_PCHAN_TCHH },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_SDCCH8 },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { config := GSM_PCHAN_TCHF },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_SDCCH8 },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { config := GSM_PCHAN_TCHF },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_PDCH }</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%);">+    { # TRX3</span><br><span style="color: hsl(120, 100%, 40%);">+              arfcn := 877,</span><br><span style="color: hsl(120, 100%, 40%);">+         ts := {</span><br><span style="color: hsl(120, 100%, 40%);">+                       { config := GSM_PCHAN_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_TCHH },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_TCHH },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_SDCCH8 },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { config := GSM_PCHAN_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_TCHF },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                 { config := GSM_PCHAN_SDCCH8 }</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%);">+</span><br><span> [EXECUTE]</span><br><span>diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn</span><br><span>index cf468cf..8895c6b 100644</span><br><span>--- a/bts/BTS_Tests.ttcn</span><br><span>+++ b/bts/BTS_Tests.ttcn</span><br><span>@@ -84,10 +84,6 @@</span><br><span> modulepar {</span><br><span>        charstring mp_rsl_ip := "127.0.0.2";</span><br><span>       integer mp_rsl_port := 3003;</span><br><span style="color: hsl(0, 100%, 40%);">-    integer mp_trx0_arfcn := 871;</span><br><span style="color: hsl(0, 100%, 40%);">-   integer mp_trx1_arfcn := 873;</span><br><span style="color: hsl(0, 100%, 40%);">-   integer mp_trx2_arfcn := 875;</span><br><span style="color: hsl(0, 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>@@ -118,6 +114,8 @@</span><br><span>  boolean mp_freq_hop_enabled := false;</span><br><span>        /* frequency hopping parameters */</span><br><span>   FreqHopConfig mp_fh_config;</span><br><span style="color: hsl(120, 100%, 40%);">+   /* configuration for each individual transceiver */</span><br><span style="color: hsl(120, 100%, 40%);">+   TrxPars mp_trx_pars; /* see BTS_Tests.default */</span><br><span> }</span><br><span> </span><br><span> type record of RslChannelNr ChannelNrs;</span><br><span>@@ -256,6 +254,17 @@</span><br><span>  }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+friend type record length(1 .. 256) of TrxParsItem TrxPars;</span><br><span style="color: hsl(120, 100%, 40%);">+friend type record TrxParsItem {</span><br><span style="color: hsl(120, 100%, 40%);">+     GsmArfcn arfcn,</span><br><span style="color: hsl(120, 100%, 40%);">+       TrxTsPars ts</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%);">+friend type record length(8) of TrxTsParsItem TrxTsPars;</span><br><span style="color: hsl(120, 100%, 40%);">+friend type record TrxTsParsItem {</span><br><span style="color: hsl(120, 100%, 40%);">+      PchanConfig config</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> friend type record FreqHopPars {</span><br><span>         /* Whether frequency hopping is in use */</span><br><span>    boolean enabled,</span><br><span>@@ -584,7 +593,7 @@</span><br><span>                       /* Compose the actual Mobile Allocation and the bitmask */</span><br><span>                   for (j := 0; j < lengthof(g.trx_maio); j := j + 1) {</span><br><span>                              var FreqHopGroupItem gi := g.trx_maio[j];</span><br><span style="color: hsl(0, 100%, 40%);">-                               var GsmArfcn arfcn := c_arfcn_list[gi.trx_nr];</span><br><span style="color: hsl(120, 100%, 40%);">+                                var GsmArfcn arfcn := mp_trx_pars[gi.trx_nr].arfcn;</span><br><span>                          fhp.ma := fhp.ma & { valueof(ts_GsmBandArfcn(arfcn)) };</span><br><span>                          fhp.ma_map.ma[gi.trx_nr] := '1'B;</span><br><span>                    }</span><br><span>@@ -636,7 +645,7 @@</span><br><span> }</span><br><span> </span><br><span> friend function f_l1_tune(L1CTL_PT L1CTL, L1ctlCcchMode ccch_mode := CCCH_MODE_COMBINED) {</span><br><span style="color: hsl(0, 100%, 40%);">-  var GsmBandArfcn arfcn := valueof(ts_GsmBandArfcn(mp_trx0_arfcn));</span><br><span style="color: hsl(120, 100%, 40%);">+    var GsmBandArfcn arfcn := valueof(ts_GsmBandArfcn(mp_trx_pars[0].arfcn));</span><br><span>    f_L1CTL_FBSB(L1CTL, arfcn, ccch_mode, mp_rxlev_exp);</span><br><span> }</span><br><span> </span><br><span>@@ -727,12 +736,6 @@</span><br><span>                         "RF CHAN REL", true);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* TODO: move this to module parameters */</span><br><span style="color: hsl(0, 100%, 40%);">-private const GsmArfcn c_arfcn_list[4] := {</span><br><span style="color: hsl(0, 100%, 40%);">-   mp_trx0_arfcn, mp_trx1_arfcn,</span><br><span style="color: hsl(0, 100%, 40%);">-   mp_trx2_arfcn, mp_trx3_arfcn</span><br><span style="color: hsl(0, 100%, 40%);">-};</span><br><span style="color: hsl(0, 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>                                       float t_guard := 20.0) := {</span><br><span>@@ -2145,7 +2148,7 @@</span><br><span>  if (not pars.fhp.enabled) {</span><br><span>          pt.send(ts_L1CTL_DM_EST_REQ_H0(pars.chan_nr,</span><br><span>                                                 7 /* TODO: mp_tsc */,</span><br><span style="color: hsl(0, 100%, 40%);">-                                           mp_trx0_arfcn));</span><br><span style="color: hsl(120, 100%, 40%);">+                                              mp_trx_pars[0].arfcn));</span><br><span>      } else {</span><br><span>             pt.send(ts_L1CTL_DM_EST_REQ_H1(pars.chan_nr,</span><br><span>                                                 7 /* TODO: mp_tsc */,</span><br><span>@@ -2172,7 +2175,7 @@</span><br><span>        if (g_pars.fhp.enabled) {</span><br><span>            ch_desc := valueof(ts_ChanDescH1(g_pars.chan_nr, g_pars.fhp.maio_hsn));</span><br><span>      } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                ch_desc := valueof(ts_ChanDescH0(g_pars.chan_nr, mp_trx0_arfcn));</span><br><span style="color: hsl(120, 100%, 40%);">+             ch_desc := valueof(ts_ChanDescH0(g_pars.chan_nr, mp_trx_pars[0].arfcn));</span><br><span>     }</span><br><span> </span><br><span>        /* Send IMM.ASS via CCHAN */</span><br><span>@@ -3729,7 +3732,8 @@</span><br><span>         f_l1_tune(L1CTL);</span><br><span> </span><br><span>        for (var integer i := 0; i < num_total; i := i+1) {</span><br><span style="color: hsl(0, 100%, 40%);">-          var ChannelDescription ch_desc := valueof(ts_ChanDescH0(ts_RslChanNr_SDCCH4(0, 0), mp_trx0_arfcn));</span><br><span style="color: hsl(120, 100%, 40%);">+           var ChannelDescription ch_desc := valueof(ts_ChanDescH0(ts_RslChanNr_SDCCH4(0, 0),</span><br><span style="color: hsl(120, 100%, 40%);">+                                                                    mp_trx_pars[0].arfcn));</span><br><span>              var GsmRrMessage ia := valueof(ts_IMM_ASS(42, i, 5, ch_desc, c_MA_null));</span><br><span>            var octetstring ia_enc := enc_GsmRrMessage(ia);</span><br><span>              RSL_CCHAN.send(ts_ASP_RSL_UD(ts_RSL_IMM_ASSIGN(ia_enc, 0)));</span><br><span>diff --git a/bts/BTS_Tests_LAPDm.ttcn b/bts/BTS_Tests_LAPDm.ttcn</span><br><span>index 0c032bb..a4fa2e8 100644</span><br><span>--- a/bts/BTS_Tests_LAPDm.ttcn</span><br><span>+++ b/bts/BTS_Tests_LAPDm.ttcn</span><br><span>@@ -43,16 +43,18 @@</span><br><span> </span><br><span> /* master function switching to a dedicated radio channel */</span><br><span> function f_switch_dcch() runs on ConnHdlr {</span><br><span style="color: hsl(0, 100%, 40%);">-      var GsmBandArfcn arfcn := valueof(ts_GsmBandArfcn(mp_trx0_arfcn));</span><br><span style="color: hsl(120, 100%, 40%);">+    var GsmBandArfcn arfcn := valueof(ts_GsmBandArfcn(mp_trx_pars[0].arfcn));</span><br><span>    var BCCH_tune_req tune_req := { arfcn := arfcn, combined_ccch := true };</span><br><span>     var DCCH_switch_req sw_req;</span><br><span> </span><br><span>      /* Craft channel description (with or without frequency hopping parameters) */</span><br><span>       if (g_pars.fhp.enabled) {</span><br><span style="color: hsl(0, 100%, 40%);">-               sw_req.chan_desc := valueof(ts_ChanDescH1(g_pars.chan_nr, g_pars.fhp.maio_hsn));</span><br><span style="color: hsl(120, 100%, 40%);">+              sw_req.chan_desc := valueof(ts_ChanDescH1(g_pars.chan_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                       g_pars.fhp.maio_hsn));</span><br><span>             sw_req.ma := g_pars.fhp.ma;</span><br><span>  } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                sw_req.chan_desc := valueof(ts_ChanDescH0(g_pars.chan_nr, mp_trx0_arfcn));</span><br><span style="color: hsl(120, 100%, 40%);">+            sw_req.chan_desc := valueof(ts_ChanDescH0(g_pars.chan_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                       mp_trx_pars[0].arfcn));</span><br><span>            sw_req.ma := omit;</span><br><span>   }</span><br><span> </span><br><span>diff --git a/bts/BTS_Tests_SMSCB.ttcn b/bts/BTS_Tests_SMSCB.ttcn</span><br><span>index 6d080f2..5f06f04 100644</span><br><span>--- a/bts/BTS_Tests_SMSCB.ttcn</span><br><span>+++ b/bts/BTS_Tests_SMSCB.ttcn</span><br><span>@@ -267,7 +267,7 @@</span><br><span>             } else {</span><br><span>                     L1CTL.send(ts_L1CTL_DM_EST_REQ_H0(pars.chan_nr,</span><br><span>                                                        7 /* TODO: mp_tsc */,</span><br><span style="color: hsl(0, 100%, 40%);">-                                                   mp_trx0_arfcn));</span><br><span style="color: hsl(120, 100%, 40%);">+                                                      mp_trx_pars[0].arfcn));</span><br><span>            }</span><br><span>    }</span><br><span> </span><br><span>diff --git a/library/GSM_Types.ttcn b/library/GSM_Types.ttcn</span><br><span>index e7d8a7c..34b6517 100644</span><br><span>--- a/library/GSM_Types.ttcn</span><br><span>+++ b/library/GSM_Types.ttcn</span><br><span>@@ -59,6 +59,23 @@</span><br><span>      arfcn := arfcn</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* see enum 'gsm_phys_chan_config' in libosmocore */</span><br><span style="color: hsl(120, 100%, 40%);">+type enumerated PchanConfig {</span><br><span style="color: hsl(120, 100%, 40%);">+ GSM_PCHAN_NONE,</span><br><span style="color: hsl(120, 100%, 40%);">+       GSM_PCHAN_CCCH,</span><br><span style="color: hsl(120, 100%, 40%);">+       GSM_PCHAN_CCCH_SDCCH4,</span><br><span style="color: hsl(120, 100%, 40%);">+        GSM_PCHAN_CCCH_SDCCH4_CBCH,</span><br><span style="color: hsl(120, 100%, 40%);">+   GSM_PCHAN_SDCCH8,</span><br><span style="color: hsl(120, 100%, 40%);">+     GSM_PCHAN_SDCCH8_CBCH,</span><br><span style="color: hsl(120, 100%, 40%);">+        GSM_PCHAN_TCHF,</span><br><span style="color: hsl(120, 100%, 40%);">+       GSM_PCHAN_TCHH,</span><br><span style="color: hsl(120, 100%, 40%);">+       GSM_PCHAN_PDCH,</span><br><span style="color: hsl(120, 100%, 40%);">+       /* IPA style dynamic TCH/F+PDCH */</span><br><span style="color: hsl(120, 100%, 40%);">+    GSM_PCHAN_TCHF_PDCH,</span><br><span style="color: hsl(120, 100%, 40%);">+  /* Osmocom style dynamic TCH/H+TCH/F+PDCH */</span><br><span style="color: hsl(120, 100%, 40%);">+  GSM_PCHAN_TCHH_TCHF_PDCH</span><br><span style="color: hsl(120, 100%, 40%);">+};</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> type enumerated GprsCodingScheme {</span><br><span>         CS1, CS2, CS3, CS4</span><br><span> };</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21314">change 21314</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/+/21314"/><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: I9b225249d135399f63d3c7e4c567121dfea63f75 </div>
<div style="display:none"> Gerrit-Change-Number: 21314 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>