<p>laforge <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/18579">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  laforge: Looks good to me, approved
  Jenkins Builder: Verified

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bts-trx: vty: Add 'nominal-tx-power' cmd<br><br>This value will be soon acquired automatically by osmo-bts-trx by asking<br>over TRXC to new versions of osmo-trx which is the nominal tx power for a given trx.<br>However, to still be able to work correctly against older versions of<br>osmo-trx or other TRX implementation (older or current) not supporting<br>this new TRX comamnd, let's allow the user to force a given value<br>through VTY for Tx power to work correctly.<br><br>Change-Id: Ib1b6f80d3b54afc42db9d358a79582cc619c6ce4<br>---<br>M src/osmo-bts-trx/l1_if.h<br>M src/osmo-bts-trx/main.c<br>M src/osmo-bts-trx/trx_vty.c<br>3 files changed, 45 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bts-trx/l1_if.h b/src/osmo-bts-trx/l1_if.h</span><br><span>index 7370999..42452d2 100644</span><br><span>--- a/src/osmo-bts-trx/l1_if.h</span><br><span>+++ b/src/osmo-bts-trx/l1_if.h</span><br><span>@@ -78,6 +78,8 @@</span><br><span>         int                     power_oml;</span><br><span>   int                     power_sent;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+       bool                    nominal_power_set_by_vty; /* whether nominal trx power was enforced/retreived from VTY config "nominal-tx-power" */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>      int                     maxdly_valid;</span><br><span>        int                     maxdly;</span><br><span>      int                     maxdly_sent;</span><br><span>diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c</span><br><span>index ab0472e..3c1c892 100644</span><br><span>--- a/src/osmo-bts-trx/main.c</span><br><span>+++ b/src/osmo-bts-trx/main.c</span><br><span>@@ -104,8 +104,10 @@</span><br><span>         bts->variant = BTS_OSMO_TRX;</span><br><span>      bts->support.ciphers = CIPHER_A5(1) | CIPHER_A5(2) | CIPHER_A5(3);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       /* FIXME: this needs to be overridden with the real hardrware</span><br><span style="color: hsl(0, 100%, 40%);">-    * value */</span><br><span style="color: hsl(120, 100%, 40%);">+   /* The nominal value is later  overwritten through VTY cmd</span><br><span style="color: hsl(120, 100%, 40%);">+     * 'nominal-tx-power' if present.</span><br><span style="color: hsl(120, 100%, 40%);">+      * FIXME: In the future, we want osmo-trx to provide us with this info</span><br><span style="color: hsl(120, 100%, 40%);">+         * through TRXC. */</span><br><span>  bts->c0->nominal_power = 23;</span><br><span> </span><br><span>       gsm_bts_set_feature(bts, BTS_FEAT_GPRS);</span><br><span>diff --git a/src/osmo-bts-trx/trx_vty.c b/src/osmo-bts-trx/trx_vty.c</span><br><span>index 9c67a7f..6dddfe2 100644</span><br><span>--- a/src/osmo-bts-trx/trx_vty.c</span><br><span>+++ b/src/osmo-bts-trx/trx_vty.c</span><br><span>@@ -160,6 +160,36 @@</span><br><span>         return CMD_SUCCESS;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+DEFUN(cfg_trx_nominal_power, cfg_trx_nominal_power_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+ "nominal-tx-power <-10-100>",</span><br><span style="color: hsl(120, 100%, 40%);">+ "Manually set (force) the nominal transmit output power in dBm\n"</span><br><span style="color: hsl(120, 100%, 40%);">+   "Nominal transmit output power level in dBm\n")</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  struct gsm_bts_trx *trx = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct phy_instance *pinst = trx_phy_instance(trx);</span><br><span style="color: hsl(120, 100%, 40%);">+   struct trx_l1h *l1h = pinst->u.osmotrx.hdl;</span><br><span style="color: hsl(120, 100%, 40%);">+        int val = atoi(argv[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    trx->nominal_power = val;</span><br><span style="color: hsl(120, 100%, 40%);">+  l1h->config.nominal_power_set_by_vty = true;</span><br><span style="color: hsl(120, 100%, 40%);">+</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(cfg_trx_no_nominal_power, cfg_trx_no_nominal_power_cmd,</span><br><span style="color: hsl(120, 100%, 40%);">+       "no nominal-tx-power",</span><br><span style="color: hsl(120, 100%, 40%);">+      NO_STR</span><br><span style="color: hsl(120, 100%, 40%);">+        "Manually set (force) the nominal transmit output power; ask the TRX instead (default)\n")</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+       struct gsm_bts_trx *trx = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      struct phy_instance *pinst = trx_phy_instance(trx);</span><br><span style="color: hsl(120, 100%, 40%);">+   struct trx_l1h *l1h = pinst->u.osmotrx.hdl;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      l1h->config.nominal_power_set_by_vty = false;</span><br><span style="color: hsl(120, 100%, 40%);">+</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> DEFUN_DEPRECATED(cfg_phy_ms_power_loop, cfg_phy_ms_power_loop_cmd,</span><br><span>       "osmotrx ms-power-loop <-127-127>", OSMOTRX_STR</span><br><span>      "Enable MS power control loop\nTarget RSSI value (transceiver specific, "</span><br><span>@@ -574,6 +604,12 @@</span><br><span> </span><br><span> void bts_model_config_write_trx(struct vty *vty, struct gsm_bts_trx *trx)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+      struct phy_instance *pinst = trx_phy_instance(trx);</span><br><span style="color: hsl(120, 100%, 40%);">+   struct trx_l1h *l1h = pinst->u.osmotrx.hdl;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      if (l1h->config.nominal_power_set_by_vty)</span><br><span style="color: hsl(120, 100%, 40%);">+          vty_out(vty, "  nominal-tx-power %d%s", trx->nominal_power,</span><br><span style="color: hsl(120, 100%, 40%);">+                      VTY_NEWLINE);</span><br><span> }</span><br><span> </span><br><span> int bts_model_vty_init(struct gsm_bts *bts)</span><br><span>@@ -583,6 +619,9 @@</span><br><span>  install_element_ve(&show_transceiver_cmd);</span><br><span>       install_element_ve(&show_phy_cmd);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+    install_element(TRX_NODE, &cfg_trx_nominal_power_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+    install_element(TRX_NODE, &cfg_trx_no_nominal_power_cmd);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>      install_element(PHY_NODE, &cfg_phy_ms_power_loop_cmd);</span><br><span>   install_element(PHY_NODE, &cfg_phy_no_ms_power_loop_cmd);</span><br><span>        install_element(PHY_NODE, &cfg_phy_timing_advance_loop_cmd);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/18579">change 18579</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/+/18579"/><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: Ib1b6f80d3b54afc42db9d358a79582cc619c6ce4 </div>
<div style="display:none"> Gerrit-Change-Number: 18579 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </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: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>