<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/21481">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">vty: resurrect per-lchan BS/MS Power Control information<br><br>Change-Id: I48812383ef0a125e83b9b3761f3f15873d3b37b4<br>---<br>M src/common/vty.c<br>1 file changed, 47 insertions(+), 7 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/81/21481/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/common/vty.c b/src/common/vty.c</span><br><span>index f366956..b2099ec 100644</span><br><span>--- a/src/common/vty.c</span><br><span>+++ b/src/common/vty.c</span><br><span>@@ -1353,6 +1353,49 @@</span><br><span>         }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static void lchan_bs_power_ctrl_state_dump(struct vty *vty, const char *prefix,</span><br><span style="color: hsl(120, 100%, 40%);">+                                      const struct gsm_lchan *lchan)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  const struct lchan_power_ctrl_state *st = &lchan->bs_power_ctrl;</span><br><span style="color: hsl(120, 100%, 40%);">+       const struct gsm_bts_trx *trx = lchan->ts->trx;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       vty_out(vty, "%sBS (Downlink) Power Control (%s):%s",</span><br><span style="color: hsl(120, 100%, 40%);">+               prefix, st->fixed ? "fixed" : "autonomous",</span><br><span style="color: hsl(120, 100%, 40%);">+            VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       vty_out(vty, "%s  Channel reduction: %u dB", prefix, st->current);</span><br><span style="color: hsl(120, 100%, 40%);">+       if (!st->fixed)</span><br><span style="color: hsl(120, 100%, 40%);">+            vty_out(vty, " (max %u dB)", st->max);</span><br><span style="color: hsl(120, 100%, 40%);">+   vty_out(vty, "%s", VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  vty_out(vty, "%s  TRX reduction: %u dB%s",</span><br><span style="color: hsl(120, 100%, 40%);">+          prefix, trx->max_power_red, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        int actual = trx->nominal_power - (trx->max_power_red + st->current);</span><br><span style="color: hsl(120, 100%, 40%);">+        vty_out(vty, "%s  Actual / Nominal power: %d dBm / %d dBm%s",</span><br><span style="color: hsl(120, 100%, 40%);">+               prefix, actual, trx->nominal_power, VTY_NEWLINE);</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%);">+static void lchan_ms_power_ctrl_state_dump(struct vty *vty, const char *prefix,</span><br><span style="color: hsl(120, 100%, 40%);">+                                       const struct gsm_lchan *lchan)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  const struct lchan_power_ctrl_state *st = &lchan->ms_power_ctrl;</span><br><span style="color: hsl(120, 100%, 40%);">+       const struct gsm_bts_trx *trx = lchan->ts->trx;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       vty_out(vty, "%sMS (Uplink) Power Control (%s):%s",</span><br><span style="color: hsl(120, 100%, 40%);">+         prefix, st->fixed ? "fixed" : "autonomous",</span><br><span style="color: hsl(120, 100%, 40%);">+            VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       int current_dbm = ms_pwr_dbm(trx->bts->band, st->current);</span><br><span style="color: hsl(120, 100%, 40%);">+   int max_dbm = ms_pwr_dbm(trx->bts->band, st->max);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ vty_out(vty, "%s  Current power level: %u, -%d dBm",</span><br><span style="color: hsl(120, 100%, 40%);">+                prefix, st->current, current_dbm);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!st->fixed)</span><br><span style="color: hsl(120, 100%, 40%);">+            vty_out(vty, " (max %u, -%d dBm)", st->max, max_dbm);</span><br><span style="color: hsl(120, 100%, 40%);">+    vty_out(vty, "%s", VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void lchan_dump_full_vty(struct vty *vty, const struct gsm_lchan *lchan)</span><br><span> {</span><br><span>      struct in_addr ia;</span><br><span>@@ -1381,13 +1424,6 @@</span><br><span>          lchan->state == LCHAN_S_BROKEN ? " Error reason: " : "",</span><br><span>              lchan->state == LCHAN_S_BROKEN ? lchan->broken_reason : "",</span><br><span>          VTY_NEWLINE);</span><br><span style="color: hsl(0, 100%, 40%);">-#if 0</span><br><span style="color: hsl(0, 100%, 40%);">-      /* TODO: print more info about MS/BS Power Control */</span><br><span style="color: hsl(0, 100%, 40%);">-   vty_out(vty, "  BS Power: %d dBm, MS Power: %u dBm%s",</span><br><span style="color: hsl(0, 100%, 40%);">-                lchan->ts->trx->nominal_power - (lchan->ts->trx->max_power_red + lchan->bs_power_red),</span><br><span style="color: hsl(0, 100%, 40%);">-             ms_pwr_dbm(lchan->ts->trx->bts->band, lchan->ms_power_ctrl.max),</span><br><span style="color: hsl(0, 100%, 40%);">-         VTY_NEWLINE);</span><br><span style="color: hsl(0, 100%, 40%);">-#endif</span><br><span>  vty_out(vty, "  Channel Mode / Codec: %s%s",</span><br><span>               gsm48_chan_mode_name(lchan->tch_mode),</span><br><span>            VTY_NEWLINE);</span><br><span>@@ -1429,6 +1465,10 @@</span><br><span>       if (lchan->loopback)</span><br><span>              vty_out(vty, "  RTP/PDCH Loopback Enabled%s", VTY_NEWLINE);</span><br><span>        vty_out(vty, "  Radio Link Failure Counter 'S': %d%s", lchan->s, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* BS/MS Power Control state */</span><br><span style="color: hsl(120, 100%, 40%);">+       lchan_bs_power_ctrl_state_dump(vty, "  ", lchan);</span><br><span style="color: hsl(120, 100%, 40%);">+   lchan_ms_power_ctrl_state_dump(vty, "  ", lchan);</span><br><span> }</span><br><span> </span><br><span> static void lchan_dump_short_vty(struct vty *vty, const struct gsm_lchan *lchan)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/21481">change 21481</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-bts/+/21481"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I48812383ef0a125e83b9b3761f3f15873d3b37b4 </div>
<div style="display:none"> Gerrit-Change-Number: 21481 </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>