<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/15716">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">L1SAP: there can be no DATA.ind primitives on PTCCH/U, reject them<br><br>Change-Id: Ib846a9b8e619c7da56b5f0a54d16f629913af80d<br>---<br>M src/common/l1sap.c<br>1 file changed, 19 insertions(+), 16 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/16/15716/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 87ef01b..ffb638e 100644</span><br><span>--- a/src/common/l1sap.c</span><br><span>+++ b/src/common/l1sap.c</span><br><span>@@ -1109,11 +1109,21 @@</span><br><span>   DEBUGPGT(DL1P, &g_time, "Rx PH-DATA.ind chan_nr=%s link_id=0x%02x len=%d\n",</span><br><span>            rsl_chan_nr_str(chan_nr), link_id, len);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ /* Actually, there can be no DATA.ind on PTCCH/U (rather RACH.ind instead),</span><br><span style="color: hsl(120, 100%, 40%);">+    * but some BTS models with buggy implementation may still be sending them</span><br><span style="color: hsl(120, 100%, 40%);">+     * to us. Let's keep this for backwards compatibility. */</span><br><span style="color: hsl(120, 100%, 40%);">+ if (L1SAP_IS_CHAN_PDCH(chan_nr) && L1SAP_IS_PTCCH(fn)) {</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGPGT(DL1P, LOGL_NOTICE, &g_time, "There can be no DATA.ind on PTCCH/U. "</span><br><span style="color: hsl(120, 100%, 40%);">+                     "This is probably a bug of the BTS model you're using, please fix!\n");</span><br><span style="color: hsl(120, 100%, 40%);">+          return -EINVAL;</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%);">+</span><br><span>  if (ts_is_pdch(&trx->ts[tn])) {</span><br><span>               lchan = get_lchan_by_chan_nr(trx, chan_nr);</span><br><span>          if (!lchan)</span><br><span>                  LOGPGT(DL1P, LOGL_ERROR, &g_time, "No lchan for chan_nr=%s\n", rsl_chan_nr_str(chan_nr));</span><br><span style="color: hsl(0, 100%, 40%);">-         if (lchan && lchan->loopback && !L1SAP_IS_PTCCH(fn)) {</span><br><span style="color: hsl(120, 100%, 40%);">+             if (lchan && lchan->loopback) {</span><br><span>                   /* we are in loopback mode (for BER testing)</span><br><span>                          * mode and need to enqeue the frame to be</span><br><span>                    * returned in downlink */</span><br><span>@@ -1128,21 +1138,14 @@</span><br><span>                 /* don't send bad frames to PCU */</span><br><span>               if (len == 0)</span><br><span>                        return -EINVAL;</span><br><span style="color: hsl(0, 100%, 40%);">-         if (L1SAP_IS_PTCCH(fn)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                       pcu_tx_data_ind(&trx->ts[tn], PCU_IF_SAPI_PTCCH, fn,</span><br><span style="color: hsl(0, 100%, 40%);">-                                     trx->arfcn, L1SAP_FN2PTCCHBLOCK(fn),</span><br><span style="color: hsl(0, 100%, 40%);">-                                 data, len, rssi, data_ind->ber10k,</span><br><span style="color: hsl(0, 100%, 40%);">-                                   data_ind->ta_offs_256bits/64,</span><br><span style="color: hsl(0, 100%, 40%);">-                                        data_ind->lqual_cb);</span><br><span style="color: hsl(0, 100%, 40%);">-         } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                        /* drop incomplete UL block */</span><br><span style="color: hsl(0, 100%, 40%);">-                  if (pr_info != PRES_INFO_BOTH)</span><br><span style="color: hsl(0, 100%, 40%);">-                          return 0;</span><br><span style="color: hsl(0, 100%, 40%);">-                       /* PDTCH / PACCH frame handling */</span><br><span style="color: hsl(0, 100%, 40%);">-                      pcu_tx_data_ind(&trx->ts[tn], PCU_IF_SAPI_PDTCH, fn, trx->arfcn,</span><br><span style="color: hsl(0, 100%, 40%);">-                                      L1SAP_FN2MACBLOCK(fn), data, len, rssi, data_ind->ber10k,</span><br><span style="color: hsl(0, 100%, 40%);">-                                    data_ind->ta_offs_256bits/64, data_ind->lqual_cb);</span><br><span style="color: hsl(0, 100%, 40%);">-                }</span><br><span style="color: hsl(120, 100%, 40%);">+             /* drop incomplete UL block */</span><br><span style="color: hsl(120, 100%, 40%);">+                if (pr_info != PRES_INFO_BOTH)</span><br><span style="color: hsl(120, 100%, 40%);">+                        return 0;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           /* PDTCH / PACCH frame handling */</span><br><span style="color: hsl(120, 100%, 40%);">+            pcu_tx_data_ind(&trx->ts[tn], PCU_IF_SAPI_PDTCH, fn, trx->arfcn,</span><br><span style="color: hsl(120, 100%, 40%);">+                            L1SAP_FN2MACBLOCK(fn), data, len, rssi, data_ind->ber10k,</span><br><span style="color: hsl(120, 100%, 40%);">+                          data_ind->ta_offs_256bits/64, data_ind->lqual_cb);</span><br><span>             return 0;</span><br><span>    }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/15716">change 15716</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/+/15716"/><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: Ib846a9b8e619c7da56b5f0a54d16f629913af80d </div>
<div style="display:none"> Gerrit-Change-Number: 15716 </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>