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

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">l1sap: fix handling of lchan->pending_rel_ind_msg<br><br>After merging the patch [1] fixing handling of the RLL RELease<br>INDication message in lapdm_rll_tx_cb(), ttcn3-bts-test shows<br>several regressions:<br><br>  pass->fail: BTS_Tests.TC_rll_rel_ind_DCCH_0<br>  pass->fail: BTS_Tests.TC_rll_rel_ind_DCCH_3<br>  pass->fail: BTS_Tests.TC_rll_rel_ind_ACCH_0<br>  pass->fail: BTS_Tests.TC_rll_rel_ind_ACCH_3<br>  pass->fail: BTS_Tests_LAPDm.TC_sabm_dm<br><br>[1] I823c9101bcca72d5792e16379b02d3602ffc2726<br>    991020c049c63768e147d49bd2918c2d2e0f6dcb<br><br>The problem is actually *not* in patch [1], but in the older one<br>[2] which we attempted to fix.  While a logical channel is in<br>signalling mode, the lower layers do not produce PRIM_TCH_RTS,<br>and thus the l1sap_tch_rts_ind() is not being called.<br><br>Unlike l1sap_tch_rts_ind(), the l1sap_ph_rts_ind() is being called<br>regardless of the channel mode (signalling vs speech), so let's<br>move handling of lchan->pending_rel_ind_msg there.<br><br>Change-Id: I2c380f9045624f0a0a8f988bb207bc73d8354857<br>Fixes: [2] Ie4f70c75f0137b4bd72d579b3a32575bac2fca3<br>---<br>M src/common/l1sap.c<br>1 file changed, 7 insertions(+), 11 deletions(-)<br><br></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 f1d1575..6eb08ba 100644</span><br><span>--- a/src/common/l1sap.c</span><br><span>+++ b/src/common/l1sap.c</span><br><span>@@ -1139,6 +1139,13 @@</span><br><span>                              rsl_chan_nr_str(chan_nr));</span><br><span>                    return 0;</span><br><span>            }</span><br><span style="color: hsl(120, 100%, 40%);">+             if (lchan->pending_rel_ind_msg) {</span><br><span style="color: hsl(120, 100%, 40%);">+                  LOGPGT(DRSL, LOGL_INFO, &g_time,</span><br><span style="color: hsl(120, 100%, 40%);">+                         "%s Forward RLL RELease INDication to the BSC\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                           gsm_lchan_name(lchan));</span><br><span style="color: hsl(120, 100%, 40%);">+                        abis_bts_rsl_sendmsg(lchan->pending_rel_ind_msg);</span><br><span style="color: hsl(120, 100%, 40%);">+                  lchan->pending_rel_ind_msg = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+         }</span><br><span>            if (L1SAP_IS_LINK_SACCH(link_id)) {</span><br><span>                  p = msgb_put(msg, GSM_MACBLOCK_LEN);</span><br><span>                         /* L1-header, if not set/modified by layer 1 */</span><br><span>@@ -1274,7 +1281,6 @@</span><br><span>      struct gsm_lchan *lchan;</span><br><span>     uint8_t chan_nr, marker = 0;</span><br><span>         uint32_t fn;</span><br><span style="color: hsl(0, 100%, 40%);">-    int rc;</span><br><span> </span><br><span>  chan_nr = rts_ind->chan_nr;</span><br><span>       fn = rts_ind->fn;</span><br><span>@@ -1318,16 +1324,6 @@</span><br><span>                resp_l1sap = msgb_l1sap_prim(resp_msg);</span><br><span>      }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   /* check for pending REL_IND */</span><br><span style="color: hsl(0, 100%, 40%);">- if (lchan->pending_rel_ind_msg) {</span><br><span style="color: hsl(0, 100%, 40%);">-            LOGPGT(DRSL, LOGL_INFO, &g_time, "%s Forward REL_IND to L3\n", gsm_lchan_name(lchan));</span><br><span style="color: hsl(0, 100%, 40%);">-            /* Forward it to L3 */</span><br><span style="color: hsl(0, 100%, 40%);">-          rc = abis_bts_rsl_sendmsg(lchan->pending_rel_ind_msg);</span><br><span style="color: hsl(0, 100%, 40%);">-               lchan->pending_rel_ind_msg = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-           if (rc < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-                  return rc;</span><br><span style="color: hsl(0, 100%, 40%);">-      }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>    memset(resp_l1sap, 0, sizeof(*resp_l1sap));</span><br><span>  osmo_prim_init(&resp_l1sap->oph, SAP_GSM_PH, PRIM_TCH, PRIM_OP_REQUEST,</span><br><span>               resp_msg);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/25948">change 25948</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/+/25948"/><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: I2c380f9045624f0a0a8f988bb207bc73d8354857 </div>
<div style="display:none"> Gerrit-Change-Number: 25948 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>