<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21151">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: I021994001b0e819fd63364bb267950e0c9ff7695<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, 104 insertions(+), 22 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/51/21151/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..e187357 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%);">+                       { tsc := 7, config := GSM_PCHAN_CCCH_SDCCH4 },</span><br><span style="color: hsl(120, 100%, 40%);">+                        { tsc := 7, config := GSM_PCHAN_TCHF },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, config := GSM_PCHAN_TCHF },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, config := GSM_PCHAN_TCHF_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                  { tsc := 7, config := GSM_PCHAN_TCHH_TCHF_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                     { tsc := 7, config := GSM_PCHAN_TCHH },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, config := GSM_PCHAN_SDCCH8 },</span><br><span style="color: hsl(120, 100%, 40%);">+                     { tsc := 7, 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%);">+                       { tsc := 7, config := GSM_PCHAN_TCHF },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, config := GSM_PCHAN_SDCCH8 },</span><br><span style="color: hsl(120, 100%, 40%);">+                     { tsc := 7, config := GSM_PCHAN_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, config := GSM_PCHAN_TCHH_TCHF_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                     { tsc := 7, config := GSM_PCHAN_TCHF_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                  { tsc := 7, config := GSM_PCHAN_SDCCH8 },</span><br><span style="color: hsl(120, 100%, 40%);">+                     { tsc := 7, config := GSM_PCHAN_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, 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%);">+                       { tsc := 7, config := GSM_PCHAN_TCHH },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, config := GSM_PCHAN_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, config := GSM_PCHAN_SDCCH8 },</span><br><span style="color: hsl(120, 100%, 40%);">+                     { tsc := 7, config := GSM_PCHAN_TCHF },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, config := GSM_PCHAN_SDCCH8 },</span><br><span style="color: hsl(120, 100%, 40%);">+                     { tsc := 7, config := GSM_PCHAN_TCHF },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, config := GSM_PCHAN_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, 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%);">+                       { tsc := 7, config := GSM_PCHAN_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, config := GSM_PCHAN_TCHH },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, config := GSM_PCHAN_TCHH },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, config := GSM_PCHAN_SDCCH8 },</span><br><span style="color: hsl(120, 100%, 40%);">+                     { tsc := 7, config := GSM_PCHAN_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, config := GSM_PCHAN_TCHF },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, config := GSM_PCHAN_PDCH },</span><br><span style="color: hsl(120, 100%, 40%);">+                       { tsc := 7, 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..a749d90 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,18 @@</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%);">+   GsmTsc tsc</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 +594,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 +646,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 +737,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>@@ -2142,13 +2146,15 @@</span><br><span> </span><br><span> /* Tune to a dedicated channel: L1CTL only */</span><br><span> private function f_l1ctl_est_dchan(L1CTL_PT pt, ConnHdlrPars pars) {</span><br><span style="color: hsl(120, 100%, 40%);">+    var uint8_t tn := pars.chan_nr.tn;</span><br><span style="color: hsl(120, 100%, 40%);">+</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 style="color: hsl(0, 100%, 40%);">-                                            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].ts[tn].tsc,</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 style="color: hsl(0, 100%, 40%);">-                                            7 /* TODO: mp_tsc */,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         mp_trx_pars[0].ts[tn].tsc,</span><br><span>                                           pars.fhp.maio_hsn.hsn,</span><br><span>                                               pars.fhp.maio_hsn.maio,</span><br><span>                                              pars.fhp.ma));</span><br><span>@@ -2172,7 +2178,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 +3735,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..439fab6 100644</span><br><span>--- a/bts/BTS_Tests_LAPDm.ttcn</span><br><span>+++ b/bts/BTS_Tests_LAPDm.ttcn</span><br><span>@@ -43,7 +43,7 @@</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>@@ -52,7 +52,7 @@</span><br><span>          sw_req.chan_desc := valueof(ts_ChanDescH1(g_pars.chan_nr, 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, arfcn.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..680c19a 100644</span><br><span>--- a/bts/BTS_Tests_SMSCB.ttcn</span><br><span>+++ b/bts/BTS_Tests_SMSCB.ttcn</span><br><span>@@ -256,18 +256,20 @@</span><br><span>   if (match(pars.chan_nr, t_RslChanNr_CBCH4(0))) {</span><br><span>             f_l1_tune(L1CTL, ccch_mode := CCCH_MODE_COMBINED_CBCH);</span><br><span>      } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              var uint8_t tn := pars.chan_nr.tn;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>                 f_l1_tune(L1CTL, ccch_mode := CCCH_MODE_COMBINED);</span><br><span> </span><br><span>               if (pars.fhp.enabled) {</span><br><span>                      L1CTL.send(ts_L1CTL_DM_EST_REQ_H1(pars.chan_nr,</span><br><span style="color: hsl(0, 100%, 40%);">-                                                   7 /* TODO: mp_tsc */,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                         mp_trx_pars[0].ts[tn].tsc,</span><br><span>                                                           pars.fhp.maio_hsn.hsn,</span><br><span>                                                       pars.fhp.maio_hsn.maio,</span><br><span>                                                      pars.fhp.ma));</span><br><span>             } else {</span><br><span>                     L1CTL.send(ts_L1CTL_DM_EST_REQ_H0(pars.chan_nr,</span><br><span style="color: hsl(0, 100%, 40%);">-                                                   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].ts[tn].tsc,</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/+/21151">change 21151</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/+/21151"/><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: I021994001b0e819fd63364bb267950e0c9ff7695 </div>
<div style="display:none"> Gerrit-Change-Number: 21151 </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>