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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bts: Introduce test TC_tx_power_start_ramp_up_bcch<br><br>This test verifies power ramping (up) is working fine during BTS<br>startup.<br><br>config files are updated to make sense:<br>* "nominal power" in osmo-bsc.cfg reflects correct default nominal tx<br>  power of fake_trx.<br>* "osmotrx tx-attenuation" in osmo-bts.cfg is removed to let osmo-bts<br>  use the value received through OML (max_power_red 20).<br>* "power-ramp step-size" in osmo-bts.cfg is increased to speed up the<br>  test. There's no good reason to keep it lower.<br><br>Change-Id: Ieb7444c6312bbeab64da2732393b3facf3e1f003<br>---<br>M bts/BTS_Tests.ttcn<br>M bts/osmo-bsc.cfg<br>M bts/osmo-bts.cfg<br>3 files changed, 82 insertions(+), 3 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 8a297fb..012327e 100644</span><br><span>--- a/bts/BTS_Tests.ttcn</span><br><span>+++ b/bts/BTS_Tests.ttcn</span><br><span>@@ -100,6 +100,8 @@</span><br><span>       integer mp_rxlev_exp := 57;</span><br><span>  integer mp_ul_rxlev_exp := 10;</span><br><span>       integer mp_ms_power_level_exp := 7;</span><br><span style="color: hsl(120, 100%, 40%);">+   integer mp_bts_tx_nom_pwr_exp := 50; /* Expected Tx Nominal Output Power of the BTS, in dBm */</span><br><span style="color: hsl(120, 100%, 40%);">+        integer mp_bts_tx_pwr_att_exp := 20; /* Expected Tx Power attenuation wrt to Tx Nominal Output Power, in dB */</span><br><span>       integer mp_ms_actual_ta_exp := 0;</span><br><span>    integer mp_timing_offset_256syms_exp := 512;</span><br><span>         /* Time to wait for RSL conn from BTS during startup of test */</span><br><span>@@ -2017,6 +2019,83 @@</span><br><span>     f_L1CTL_DM_REL_REQ(L1CTL, g_chan_nr);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Verify Tx power reduction and ramping up during BTS bring up */</span><br><span style="color: hsl(120, 100%, 40%);">+function f_TC_tx_power_start_ramp_up_bcch(charstring id) runs on ConnHdlr {</span><br><span style="color: hsl(120, 100%, 40%);">+       var L1ctlDlMessage l1_dl;</span><br><span style="color: hsl(120, 100%, 40%);">+     f_l1_tune(L1CTL);</span><br><span style="color: hsl(120, 100%, 40%);">+     RSL.clear;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  var integer initial_rx_lvl := -1;</span><br><span style="color: hsl(120, 100%, 40%);">+     var integer last_rx_lvl := -1;</span><br><span style="color: hsl(120, 100%, 40%);">+        var integer max_rx_lvl := mp_bts_tx_nom_pwr_exp - mp_bts_tx_pwr_att_exp;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    timer T := 2.0;</span><br><span style="color: hsl(120, 100%, 40%);">+       alt {</span><br><span style="color: hsl(120, 100%, 40%);">+ [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_BCCH(0), ?)) -> value l1_dl {</span><br><span style="color: hsl(120, 100%, 40%);">+               var GsmRxLev rx_lvl := l1_dl.dl_info.rx_level;</span><br><span style="color: hsl(120, 100%, 40%);">+                log("Received rx_level=", rx_lvl);</span><br><span style="color: hsl(120, 100%, 40%);">+          if (initial_rx_lvl == -1) {</span><br><span style="color: hsl(120, 100%, 40%);">+                   initial_rx_lvl := rx_lvl;</span><br><span style="color: hsl(120, 100%, 40%);">+                     last_rx_lvl := rx_lvl;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                      /* Expect a somehow low value during first received messages */</span><br><span style="color: hsl(120, 100%, 40%);">+                       if (initial_rx_lvl >= max_rx_lvl / 2) {</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%);">+                                                    log2str("Detected high initial tx power during ramp up: ",</span><br><span style="color: hsl(120, 100%, 40%);">+                                                          initial_rx_lvl , ", full power is", max_rx_lvl));</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%);">+           /* received Rx level bigger than maximum allowed power by CN */</span><br><span style="color: hsl(120, 100%, 40%);">+               if (rx_lvl > max_rx_lvl) {</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%);">+                                            log2str("Detected Tx power higher than full power: ",</span><br><span style="color: hsl(120, 100%, 40%);">+                                                       rx_lvl , " > ", max_rx_lvl));</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%);">+           /* Make sure it never decreases, since we are rumping up */</span><br><span style="color: hsl(120, 100%, 40%);">+           if (last_rx_lvl > rx_lvl) {</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%);">+                                            log2str("Detected Tx power decrease during ramp up: ",</span><br><span style="color: hsl(120, 100%, 40%);">+                                                      last_rx_lvl , " -> ", rx_lvl));</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%);">+           if (rx_lvl == max_rx_lvl and not T.running) {</span><br><span style="color: hsl(120, 100%, 40%);">+                 /* We reached the maximum power, start timer and receive</span><br><span style="color: hsl(120, 100%, 40%);">+                      /* a few more to make sure we don't surpass it */</span><br><span style="color: hsl(120, 100%, 40%);">+                 log("Reached full power, wating a bit more until success");</span><br><span style="color: hsl(120, 100%, 40%);">+                 T.start;</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%);">+           last_rx_lvl := rx_lvl;</span><br><span style="color: hsl(120, 100%, 40%);">+                repeat;</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span style="color: hsl(120, 100%, 40%);">+     [] L1CTL.receive { repeat; }</span><br><span style="color: hsl(120, 100%, 40%);">+  [] T.timeout { }</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%);">+   /* We didn't increase tx power during ramp up */</span><br><span style="color: hsl(120, 100%, 40%);">+  if (initial_rx_lvl < last_rx_lvl) {</span><br><span style="color: hsl(120, 100%, 40%);">+                log("Tx power increased during ramp up: ", initial_rx_lvl , " -> ", last_rx_lvl);</span><br><span style="color: hsl(120, 100%, 40%);">+      } else {</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%);">+                                    log2str("No Tx power increase during whole ramp up: ",</span><br><span style="color: hsl(120, 100%, 40%);">+                                              initial_rx_lvl , " -> ", last_rx_lvl));</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%);">+   setverdict(pass);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+testcase TC_tx_power_start_ramp_up_bcch() runs on test_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+     var ConnHdlr vc_conn;</span><br><span style="color: hsl(120, 100%, 40%);">+ var ConnHdlrPars pars;</span><br><span style="color: hsl(120, 100%, 40%);">+        f_init();</span><br><span style="color: hsl(120, 100%, 40%);">+     pars := valueof(t_Pars(t_RslChanNr_Bm(0), ts_RSL_ChanMode_SIGN));</span><br><span style="color: hsl(120, 100%, 40%);">+     vc_conn := f_start_handler(refers(f_TC_tx_power_start_ramp_up_bcch), pars,</span><br><span style="color: hsl(120, 100%, 40%);">+                               pcu_comp := false, trxc_comp := true);</span><br><span style="color: hsl(120, 100%, 40%);">+     vc_conn.done;</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> function f_check_meas_bs_power_level(integer level) runs on ConnHdlr {</span><br><span>         timer T := 8.0;</span><br><span>      T.start;</span><br><span>@@ -6434,6 +6513,7 @@</span><br><span>     execute( TC_meas_res_sign_sdcch4() );</span><br><span>        execute( TC_meas_res_sign_sdcch8() );</span><br><span>        execute( TC_meas_res_sign_tchh_toa256() );</span><br><span style="color: hsl(120, 100%, 40%);">+    execute( TC_tx_power_start_ramp_up_bcch() );</span><br><span>         execute( TC_rsl_bs_pwr_static_ass() );</span><br><span>       execute( TC_rsl_bs_pwr_static_power_control() );</span><br><span>     execute( TC_rsl_ms_pwr_ctrl() );</span><br><span>diff --git a/bts/osmo-bsc.cfg b/bts/osmo-bsc.cfg</span><br><span>index 3b31eb7..9025fe4 100644</span><br><span>--- a/bts/osmo-bsc.cfg</span><br><span>+++ b/bts/osmo-bsc.cfg</span><br><span>@@ -106,7 +106,7 @@</span><br><span>   trx 0</span><br><span>    rf_locked 0</span><br><span>    arfcn 871</span><br><span style="color: hsl(0, 100%, 40%);">-   nominal power 23</span><br><span style="color: hsl(120, 100%, 40%);">+   nominal power 50</span><br><span>    max_power_red 20</span><br><span>    rsl e1 tei 0</span><br><span>    timeslot 0</span><br><span>diff --git a/bts/osmo-bts.cfg b/bts/osmo-bts.cfg</span><br><span>index a9867bf..c2cd0bd 100644</span><br><span>--- a/bts/osmo-bts.cfg</span><br><span>+++ b/bts/osmo-bts.cfg</span><br><span>@@ -28,7 +28,6 @@</span><br><span>  osmotrx rts-advance 5</span><br><span>  instance 0</span><br><span>   osmotrx rx-gain 10</span><br><span style="color: hsl(0, 100%, 40%);">-  osmotrx tx-attenuation 0</span><br><span> bts 0</span><br><span>  band DCS1800</span><br><span>  ipa unit-id 1234 0</span><br><span>@@ -49,7 +48,7 @@</span><br><span>  pcu-socket /tmp/pcu_sock</span><br><span>  trx 0</span><br><span>   power-ramp max-initial 0 mdBm</span><br><span style="color: hsl(0, 100%, 40%);">-  power-ramp step-size 2000 mdB</span><br><span style="color: hsl(120, 100%, 40%);">+  power-ramp step-size 8000 mdB</span><br><span>   power-ramp step-interval 1</span><br><span>   ms-power-control dsp</span><br><span>   phy 0 instance 0</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18654">change 18654</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/+/18654"/><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: Ieb7444c6312bbeab64da2732393b3facf3e1f003 </div>
<div style="display:none"> Gerrit-Change-Number: 18654 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </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>