<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/25743">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">rsl: Fix all shadow TS being Chan Act NACKed<br><br>The OML NM Channel FSM state only apply to primary timeslots, hence we<br>need to make sure we pick the primary TS (the non-shadow one).<br><br>Due to this bug, all channels on shadow TS where NACKed because the<br>related state was never "Enabled Ok".<br><br>Fixes: c97a7f51e1b15d40e39df4b7d07b3c6534540186<br>Related: OS#5249<br>Related: OS#5251<br>Change-Id: If47e4bdd45a05ed1b5709b6e3d541f2830723e37<br>---<br>M src/common/rsl.c<br>1 file changed, 5 insertions(+), 2 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/43/25743/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/common/rsl.c b/src/common/rsl.c</span><br><span>index 638caf8..b186adf 100644</span><br><span>--- a/src/common/rsl.c</span><br><span>+++ b/src/common/rsl.c</span><br><span>@@ -1624,6 +1624,7 @@</span><br><span>         struct abis_rsl_dchan_hdr *dch = msgb_l2(msg);</span><br><span>       struct gsm_lchan *lchan = msg->lchan;</span><br><span>     struct gsm_bts_trx_ts *ts = lchan->ts;</span><br><span style="color: hsl(120, 100%, 40%);">+     struct gsm_bts_trx_ts *primary_ts;</span><br><span>   struct tlv_parsed tp;</span><br><span>        const struct tlv_p_entry *ie;</span><br><span>        uint8_t type, cause;</span><br><span>@@ -1635,8 +1636,10 @@</span><br><span>                return rsl_tx_chan_act_nack(lchan, RSL_ERR_EQUIPMENT_FAIL);</span><br><span>  }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   if (ts->mo.nm_state.operational != NM_OPSTATE_ENABLED ||</span><br><span style="color: hsl(0, 100%, 40%);">-         ts->mo.nm_state.availability != NM_AVSTATE_OK) {</span><br><span style="color: hsl(120, 100%, 40%);">+       /* We need to pick the real TS here to check NM state: */</span><br><span style="color: hsl(120, 100%, 40%);">+     primary_ts = ts->vamos.is_shadow ? ts->vamos.peer : ts;</span><br><span style="color: hsl(120, 100%, 40%);">+ if (primary_ts->mo.nm_state.operational != NM_OPSTATE_ENABLED ||</span><br><span style="color: hsl(120, 100%, 40%);">+       primary_ts->mo.nm_state.availability != NM_AVSTATE_OK) {</span><br><span>              LOGP(DRSL, LOGL_ERROR, "%s rx chan activ but TS not in nm_state oper=ENABLED avail=OK, nack!\n",</span><br><span>                gsm_ts_and_pchan_name(ts));</span><br><span>             return rsl_tx_chan_act_nack(lchan, RSL_ERR_RR_UNAVAIL);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/25743">change 25743</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/+/25743"/><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: If47e4bdd45a05ed1b5709b6e3d541f2830723e37 </div>
<div style="display:none"> Gerrit-Change-Number: 25743 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>