<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bts: Introduce test TC_tx_power_start_ramp_down_bcch<br><br>Change-Id: I895d69394a0123ae32b336c9ffaff615ba657f12<br>---<br>M bts/BTS_Tests.ttcn<br>1 file changed, 95 insertions(+), 0 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/80/18980/1</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 9ebd952..38521c6 100644</span><br><span>--- a/bts/BTS_Tests.ttcn</span><br><span>+++ b/bts/BTS_Tests.ttcn</span><br><span>@@ -173,6 +173,9 @@</span><br><span>       port TRXC_CODEC_PT BTS_TRXC;</span><br><span>         var integer g_bts_trxc_conn_id;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+   /* port to be initialized optionally to access BSC VTY */</span><br><span style="color: hsl(120, 100%, 40%);">+     port TELNETasp_PT BSCVTY;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  timer g_Tguard;</span><br><span>      timer g_Tmeas_exp := 2.0; /* >= 103 SACCH multiframe ~ 500ms */</span><br><span> </span><br><span>@@ -2101,6 +2104,97 @@</span><br><span>      Misc_Helpers.f_shutdown(__BFILE__, __LINE__);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/* Verify Tx power reduction and ramping downd uring BTS bring shutdown due to Abis link failure */</span><br><span style="color: hsl(120, 100%, 40%);">+function f_TC_tx_power_start_ramp_down_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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   map(self:BSCVTY, system:BSCVTY);</span><br><span style="color: hsl(120, 100%, 40%);">+      f_vty_set_prompts(BSCVTY, "OsmoBSC");</span><br><span style="color: hsl(120, 100%, 40%);">+       f_vty_transceive(BSCVTY, "enable");</span><br><span style="color: hsl(120, 100%, 40%);">+</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 last_rx_lvl;</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%);">+    /* Wait until BTS is started and at full power */</span><br><span style="color: hsl(120, 100%, 40%);">+     timer Tup := 10.0;</span><br><span style="color: hsl(120, 100%, 40%);">+    Tup.start;</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%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+                if (rx_lvl != max_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%);">+             log("Reached nominal level ", max_rx_lvl, ", shutting down OML link");</span><br><span style="color: hsl(120, 100%, 40%);">+            Tup.stop;</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%);">+  [] Tup.timeout {</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("Didn't reach full power ", 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%);">+   f_vty_transceive(BSCVTY, "drop bts connection 0 oml");</span><br><span style="color: hsl(120, 100%, 40%);">+      last_rx_lvl := max_rx_lvl;</span><br><span style="color: hsl(120, 100%, 40%);">+    timer Tdown := 5.0;</span><br><span style="color: hsl(120, 100%, 40%);">+   Tdown.start;</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%);">+</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 increases, since we are rumping down */</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 increase 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%);">+           last_rx_lvl := rx_lvl;</span><br><span style="color: hsl(120, 100%, 40%);">+                if (last_rx_lvl != 0) {</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%);">+             /* we reached power level 0, we are done */</span><br><span style="color: hsl(120, 100%, 40%);">+           Tdown.stop;</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%);">+  [] Tdown.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 (max_rx_lvl > last_rx_lvl) {</span><br><span style="color: hsl(120, 100%, 40%);">+            log("Tx power decreased during ramp down: ", max_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 decrease during whole ramp down: ",</span><br><span style="color: hsl(120, 100%, 40%);">+                                            max_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_down_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_down_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>@@ -6519,6 +6613,7 @@</span><br><span>     execute( TC_meas_res_sign_sdcch8() );</span><br><span>        execute( TC_meas_res_sign_tchh_toa256() );</span><br><span>   execute( TC_tx_power_start_ramp_up_bcch() );</span><br><span style="color: hsl(120, 100%, 40%);">+  execute( TC_tx_power_start_ramp_down_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></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18980">change 18980</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/+/18980"/><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: I895d69394a0123ae32b336c9ffaff615ba657f12 </div>
<div style="display:none"> Gerrit-Change-Number: 18980 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>