<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/16800">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">L1SAP: remove verbose logging from rach_pass_filter()<br><br>Due to relatively small training sequence of Access Bursts, there<br>can be frequent false-positives (basically noise). Fortunately,<br>we can distinguish them from the real Access Bursts by checking<br>the signal measurements attached to them (BER, ToA and C/I).<br><br>Let's avoid polluting the logs and do not print anything<br>if the signal measurements exceed any of the thresholds.<br><br>Change-Id: I7ab6727ffff00140a7f9e762b299b711481393f1<br>---<br>M src/common/l1sap.c<br>1 file changed, 7 insertions(+), 20 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/00/16800/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/common/l1sap.c b/src/common/l1sap.c</span><br><span>index b73de29..1be1a1a 100644</span><br><span>--- a/src/common/l1sap.c</span><br><span>+++ b/src/common/l1sap.c</span><br><span>@@ -1351,38 +1351,25 @@</span><br><span> </span><br><span> #define RACH_MIN_TOA256 -2 * 256</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-static bool rach_pass_filter(struct ph_rach_ind_param *rach_ind, struct gsm_bts *bts,</span><br><span style="color: hsl(0, 100%, 40%);">-                         const char *chan_name)</span><br><span style="color: hsl(120, 100%, 40%);">+static bool rach_pass_filter(struct ph_rach_ind_param *rach_ind, struct gsm_bts *bts)</span><br><span> {</span><br><span>      int16_t toa256 = rach_ind->acc_delay_256bits;</span><br><span> </span><br><span>         /* Check for RACH exceeding BER threshold (ghost RACH) */</span><br><span style="color: hsl(0, 100%, 40%);">-       if (rach_ind->ber10k > bts->max_ber10k_rach) {</span><br><span style="color: hsl(0, 100%, 40%);">-         LOGPFN(DL1C, LOGL_INFO, rach_ind->fn, "Ignoring an Access Burst on %s: "</span><br><span style="color: hsl(0, 100%, 40%);">-                   "BER10k(%u) > BER10k_MAX(%u)\n", chan_name,</span><br><span style="color: hsl(0, 100%, 40%);">-                        rach_ind->ber10k, bts->max_ber10k_rach);</span><br><span style="color: hsl(120, 100%, 40%);">+        if (rach_ind->ber10k > bts->max_ber10k_rach)</span><br><span>                return false;</span><br><span style="color: hsl(0, 100%, 40%);">-   }</span><br><span> </span><br><span>        /**</span><br><span>   * Make sure that ToA (Timing of Arrival) is acceptable.</span><br><span>      * We allow early arrival up to 2 symbols, and delay</span><br><span>          * according to maximal allowed Timing Advance value.</span><br><span>         */</span><br><span style="color: hsl(0, 100%, 40%);">-     if (toa256 < RACH_MIN_TOA256 || toa256 > bts->max_ta * 256) {</span><br><span style="color: hsl(0, 100%, 40%);">-          LOGPFN(DL1C, LOGL_INFO, rach_ind->fn, "Ignoring an Access Burst on %s: "</span><br><span style="color: hsl(0, 100%, 40%);">-                   "ToA(%d) exceeds the allowed range (%d..%d)\n", chan_name,</span><br><span style="color: hsl(0, 100%, 40%);">-                    toa256, RACH_MIN_TOA256, bts->max_ta * 256);</span><br><span style="color: hsl(120, 100%, 40%);">+       if (toa256 < RACH_MIN_TOA256 || toa256 > bts->max_ta * 256)</span><br><span>                 return false;</span><br><span style="color: hsl(0, 100%, 40%);">-   }</span><br><span> </span><br><span>        /* Link quality defined by C/I (Carrier-to-Interference ratio) */</span><br><span style="color: hsl(0, 100%, 40%);">-       if (rach_ind->lqual_cb < bts->min_qual_rach) {</span><br><span style="color: hsl(0, 100%, 40%);">-         LOGPFN(DL1C, LOGL_INFO, rach_ind->fn, "Ignoring an Access Burst on %s: "</span><br><span style="color: hsl(0, 100%, 40%);">-                   "link quality (%d) below the minimum (%d)\n", chan_name,</span><br><span style="color: hsl(0, 100%, 40%);">-                      rach_ind->lqual_cb, bts->min_qual_rach);</span><br><span style="color: hsl(120, 100%, 40%);">+        if (rach_ind->lqual_cb < bts->min_qual_rach)</span><br><span>                return false;</span><br><span style="color: hsl(0, 100%, 40%);">-   }</span><br><span> </span><br><span>        return true;</span><br><span> }</span><br><span>@@ -1391,7 +1378,7 @@</span><br><span> static int l1sap_handover_rach(struct gsm_bts_trx *trx, struct ph_rach_ind_param *rach_ind)</span><br><span> {</span><br><span>        /* Filter out noise / interference / ghosts */</span><br><span style="color: hsl(0, 100%, 40%);">-  if (!rach_pass_filter(rach_ind, trx->bts, "handover")) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!rach_pass_filter(rach_ind, trx->bts)) {</span><br><span>              rate_ctr_inc2(trx->bts->ctrs, BTS_CTR_RACH_DROP);</span><br><span>              return 0;</span><br><span>    }</span><br><span>@@ -1407,7 +1394,7 @@</span><br><span> static int l1sap_pdch_rach(struct gsm_bts_trx *trx, struct ph_rach_ind_param *rach_ind)</span><br><span> {</span><br><span>    /* Filter out noise / interference / ghosts */</span><br><span style="color: hsl(0, 100%, 40%);">-  if (!rach_pass_filter(rach_ind, trx->bts, "PDCH"))</span><br><span style="color: hsl(120, 100%, 40%);">+       if (!rach_pass_filter(rach_ind, trx->bts))</span><br><span>                return -EAGAIN;</span><br><span> </span><br><span>  /* PTCCH/U (Packet Timing Advance Control Channel) */</span><br><span>@@ -1459,7 +1446,7 @@</span><br><span>                bts->load.rach.busy++;</span><br><span> </span><br><span>        /* Filter out noise / interference / ghosts */</span><br><span style="color: hsl(0, 100%, 40%);">-  if (!rach_pass_filter(rach_ind, bts, "CCCH")) {</span><br><span style="color: hsl(120, 100%, 40%);">+     if (!rach_pass_filter(rach_ind, bts)) {</span><br><span>              rate_ctr_inc2(trx->bts->ctrs, BTS_CTR_RACH_DROP);</span><br><span>              return 0;</span><br><span>    }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/16800">change 16800</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/+/16800"/><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: I7ab6727ffff00140a7f9e762b299b711481393f1 </div>
<div style="display:none"> Gerrit-Change-Number: 16800 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <axilirator@gmail.com> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>