<p>neels has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/24423">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">handover_test: add bspower to meas-rep cmd<br><br>Subsequent patch will add a test that uses this to show a handover<br>oscillation problem in the presence of nonzero BS Power.<br><br>Related: SYS#5339<br>Change-Id: I158d4b27370ab19318f83018803853f423c89b79<br>---<br>M tests/handover/handover_test.c<br>1 file changed, 28 insertions(+), 7 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/23/24423/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c</span><br><span>index 8e23a4f..5f45865 100644</span><br><span>--- a/tests/handover/handover_test.c</span><br><span>+++ b/tests/handover/handover_test.c</span><br><span>@@ -82,7 +82,7 @@</span><br><span> </span><br><span> uint8_t meas_rep_ba = 0, meas_rep_valid = 1, meas_valid = 1, meas_multi_rep = 0;</span><br><span> uint8_t meas_ul_rxlev = 0, meas_ul_rxqual = 0;</span><br><span style="color: hsl(0, 100%, 40%);">-uint8_t meas_tx_power_ms = 0, meas_tx_power_bs = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+uint8_t meas_tx_power_ms = 0;</span><br><span> uint8_t meas_dtx_ms = 0, meas_dtx_bs = 0, meas_nr = 0;</span><br><span> char *codec_tch_f = NULL;</span><br><span> char *codec_tch_h = NULL;</span><br><span>@@ -94,7 +94,7 @@</span><br><span> };</span><br><span> </span><br><span> static void gen_meas_rep(struct gsm_lchan *lchan,</span><br><span style="color: hsl(0, 100%, 40%);">-                      uint8_t rxlev, uint8_t rxqual, uint8_t ta,</span><br><span style="color: hsl(120, 100%, 40%);">+                    uint8_t bs_power, uint8_t rxlev, uint8_t rxqual, uint8_t ta,</span><br><span>                         int neighbors_count, struct neighbor_meas *neighbors)</span><br><span> {</span><br><span>  struct msgb *msg = msgb_alloc_headroom(256, 64, "RSL");</span><br><span>@@ -117,7 +117,7 @@</span><br><span>      ulm[2] = (meas_ul_rxqual << 3) | meas_ul_rxqual;</span><br><span>       msgb_tlv_put(msg, RSL_IE_UPLINK_MEAS, sizeof(ulm), ulm);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    msgb_tv_put(msg, RSL_IE_BS_POWER, meas_tx_power_bs);</span><br><span style="color: hsl(120, 100%, 40%);">+  msgb_tv_put(msg, RSL_IE_BS_POWER, (bs_power / 2) & 0xf);</span><br><span> </span><br><span>     l1i[0] = 0;</span><br><span>  l1i[1] = ta;</span><br><span>@@ -865,6 +865,7 @@</span><br><span> struct meas_rep_data {</span><br><span>         int argc;</span><br><span>    const char **argv;</span><br><span style="color: hsl(120, 100%, 40%);">+    uint8_t bs_power;</span><br><span> };</span><br><span> </span><br><span> static void _meas_rep_cb(struct gsm_lchan *lc, void *data)</span><br><span>@@ -916,14 +917,15 @@</span><br><span>                    fprintf(stderr, " * Neighbor cell #%d, actual BTS %d: rxlev=%d\n", i, neighbor_bts_nr,</span><br><span>                             nm[i].rxlev);</span><br><span>        }</span><br><span style="color: hsl(0, 100%, 40%);">-       gen_meas_rep(lc, rxlev, rxqual, ta, argc, nm);</span><br><span style="color: hsl(120, 100%, 40%);">+        gen_meas_rep(lc, d->bs_power, rxlev, rxqual, ta, argc, nm);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static int _meas_rep(struct vty *vty, int argc, const char **argv)</span><br><span style="color: hsl(120, 100%, 40%);">+static int _meas_rep(struct vty *vty, uint8_t bs_power, int argc, const char **argv)</span><br><span> {</span><br><span>         struct meas_rep_data d = {</span><br><span>           .argc = argc - 4,</span><br><span>            .argv = argv + 4,</span><br><span style="color: hsl(120, 100%, 40%);">+             .bs_power = bs_power,</span><br><span>        };</span><br><span>   parse_lchan_wildcard_args(argv, _meas_rep_cb, &d);</span><br><span>       return CMD_SUCCESS;</span><br><span>@@ -951,7 +953,7 @@</span><br><span>       MEAS_REP_DOC MEAS_REP_ARGS_DOC)</span><br><span> {</span><br><span>      VTY_ECHO();</span><br><span style="color: hsl(0, 100%, 40%);">-     return _meas_rep(vty, argc, argv);</span><br><span style="color: hsl(120, 100%, 40%);">+    return _meas_rep(vty, 0, argc, argv);</span><br><span> }</span><br><span> </span><br><span> DEFUN(meas_rep_repeat, meas_rep_repeat_cmd,</span><br><span>@@ -966,7 +968,25 @@</span><br><span>         argc -= 1;</span><br><span> </span><br><span>       while (count--)</span><br><span style="color: hsl(0, 100%, 40%);">-         _meas_rep(vty, argc, argv);</span><br><span style="color: hsl(120, 100%, 40%);">+           _meas_rep(vty, 0, argc, argv);</span><br><span style="color: hsl(120, 100%, 40%);">+        return CMD_SUCCESS;</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%);">+DEFUN(meas_rep_repeat_bspower, meas_rep_repeat_bspower_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+      "meas-rep repeat <0-999> bspower <0-63> " MEAS_REP_ARGS,</span><br><span style="color: hsl(120, 100%, 40%);">+      MEAS_REP_DOC</span><br><span style="color: hsl(120, 100%, 40%);">+      "Resend the same measurement report N times\nN\n"</span><br><span style="color: hsl(120, 100%, 40%);">+      "Send a nonzero BS Power value in the measurement report (downlink power reduction)\nBS Power reduction in dB\n"</span><br><span style="color: hsl(120, 100%, 40%);">+      MEAS_REP_ARGS_DOC)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     int count = atoi(argv[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+    uint8_t bs_power = atoi(argv[1]);</span><br><span style="color: hsl(120, 100%, 40%);">+     VTY_ECHO();</span><br><span style="color: hsl(120, 100%, 40%);">+   argv += 2;</span><br><span style="color: hsl(120, 100%, 40%);">+    argc -= 2;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  while (count--)</span><br><span style="color: hsl(120, 100%, 40%);">+               _meas_rep(vty, bs_power, argc, argv);</span><br><span>        return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span>@@ -1184,6 +1204,7 @@</span><br><span>         install_element(CONFIG_NODE, &create_ms_cmd);</span><br><span>    install_element(CONFIG_NODE, &meas_rep_cmd);</span><br><span>     install_element(CONFIG_NODE, &meas_rep_repeat_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+       install_element(CONFIG_NODE, &meas_rep_repeat_bspower_cmd);</span><br><span>      install_element(CONFIG_NODE, &congestion_check_cmd);</span><br><span>     install_element(CONFIG_NODE, &expect_no_chan_cmd);</span><br><span>       install_element(CONFIG_NODE, &expect_chan_cmd);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/24423">change 24423</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-bsc/+/24423"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I158d4b27370ab19318f83018803853f423c89b79 </div>
<div style="display:none"> Gerrit-Change-Number: 24423 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>