<p>Pau Espin Pedrol has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/11791">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bsc: vty: Verify and warn on invalid arfcn passed<br><br>Related: OS#3063<br>Depends: libosmocore Change-Id I780d452dcebce385469e32ef2fd844df6033393a<br>Change-Id: Ib001501bf37289e824a1f72b62afde23892e88d2<br>---<br>M src/osmo-bsc/bsc_vty.c<br>1 file changed, 31 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/91/11791/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c</span><br><span>index b9a5268..7537dbe 100644</span><br><span>--- a/src/osmo-bsc/bsc_vty.c</span><br><span>+++ b/src/osmo-bsc/bsc_vty.c</span><br><span>@@ -3111,6 +3111,7 @@</span><br><span>    struct gsm_bts *bts = vty->index;</span><br><span>         struct bitvec *bv = &bts->si_common.neigh_list;</span><br><span>       uint16_t arfcn = atoi(argv[1]);</span><br><span style="color: hsl(120, 100%, 40%);">+       enum gsm_band unused;</span><br><span> </span><br><span>    if (bts->neigh_list_manual_mode == NL_MODE_AUTOMATIC) {</span><br><span>           vty_out(vty, "%% Cannot configure neighbor list in "</span><br><span>@@ -3118,6 +3119,11 @@</span><br><span>              return CMD_WARNING;</span><br><span>  }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ if (gsm_arfcn2band_rc(arfcn, &unused) < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+           vty_out(vty, "%% Invalid arfcn %" PRIu16 " detected%s", arfcn, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+              return CMD_WARNING;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  if (!strcmp(argv[0], "add"))</span><br><span>               bitvec_set_bit_pos(bv, arfcn, 1);</span><br><span>    else</span><br><span>@@ -3254,6 +3260,7 @@</span><br><span>         "Delete from SI5 manual neighbor list\n" "ARFCN of neighbor\n"</span><br><span>   "ARFCN of neighbor\n")</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+ enum gsm_band unused;</span><br><span>        struct gsm_bts *bts = vty->index;</span><br><span>         struct bitvec *bv = &bts->si_common.si5_neigh_list;</span><br><span>   uint16_t arfcn = atoi(argv[1]);</span><br><span>@@ -3264,6 +3271,11 @@</span><br><span>             return CMD_WARNING;</span><br><span>  }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ if (gsm_arfcn2band_rc(arfcn, &unused) < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+           vty_out(vty, "%% Invalid arfcn %" PRIu16 " detected%s", arfcn, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+              return CMD_WARNING;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  if (!strcmp(argv[0], "add"))</span><br><span>               bitvec_set_bit_pos(bv, arfcn, 1);</span><br><span>    else</span><br><span>@@ -3932,8 +3944,14 @@</span><br><span>       "Set the ARFCN for this TRX\n"</span><br><span>       "Absolute Radio Frequency Channel Number\n")</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    int arfcn = atoi(argv[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+    enum gsm_band unused;</span><br><span>        struct gsm_bts_trx *trx = vty->index;</span><br><span style="color: hsl(120, 100%, 40%);">+      int arfcn = atoi(argv[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  if (gsm_arfcn2band_rc(arfcn, &unused) < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+           vty_out(vty, "%% Invalid arfcn %" PRIu16 " detected%s", arfcn, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+              return CMD_WARNING;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span> </span><br><span>        /* FIXME: check if this ARFCN is supported by this TRX */</span><br><span> </span><br><span>@@ -4181,9 +4199,15 @@</span><br><span>       HOPPING_STR "Configure hopping ARFCN list\n"</span><br><span>       "Add an entry to the hopping ARFCN list\n" "ARFCN\n")</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+        enum gsm_band unused;</span><br><span>        struct gsm_bts_trx_ts *ts = vty->index;</span><br><span>   int arfcn = atoi(argv[0]);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+        if (gsm_arfcn2band_rc(arfcn, &unused) < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+           vty_out(vty, "%% Invalid arfcn %" PRIu16 " detected%s", arfcn, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+              return CMD_WARNING;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  bitvec_set_bit_pos(&ts->hopping.arfcns, arfcn, 1);</span><br><span> </span><br><span>        return CMD_SUCCESS;</span><br><span>@@ -4195,9 +4219,15 @@</span><br><span>         HOPPING_STR "Configure hopping ARFCN list\n"</span><br><span>       "Delete an entry to the hopping ARFCN list\n" "ARFCN\n")</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+     enum gsm_band unused;</span><br><span>        struct gsm_bts_trx_ts *ts = vty->index;</span><br><span>   int arfcn = atoi(argv[0]);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+        if (gsm_arfcn2band_rc(arfcn, &unused) < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+           vty_out(vty, "%% Invalid arfcn %" PRIu16 " detected%s", arfcn, VTY_NEWLINE);</span><br><span style="color: hsl(120, 100%, 40%);">+              return CMD_WARNING;</span><br><span style="color: hsl(120, 100%, 40%);">+   }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  bitvec_set_bit_pos(&ts->hopping.arfcns, arfcn, 0);</span><br><span> </span><br><span>        return CMD_SUCCESS;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/11791">change 11791</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/11791"/><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-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ib001501bf37289e824a1f72b62afde23892e88d2 </div>
<div style="display:none"> Gerrit-Change-Number: 11791 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Pau Espin Pedrol <pespin@sysmocom.de> </div>