<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bts/+/23780">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">rsl: do not blindly ignore unhandled/unknown Channel Mode<br><br>Change-Id: I67a70132999be6580a29e6b814763309a6df4ae9<br>Related: SYS#4895<br>---<br>M src/common/rsl.c<br>1 file changed, 14 insertions(+), 4 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/80/23780/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 525b637..8488ab7 100644</span><br><span>--- a/src/common/rsl.c</span><br><span>+++ b/src/common/rsl.c</span><br><span>@@ -112,8 +112,8 @@</span><br><span> }</span><br><span> </span><br><span> /* compute lchan->rsl_cmode and lchan->tch_mode from RSL CHAN MODE IE */</span><br><span style="color: hsl(0, 100%, 40%);">-static void lchan_tchmode_from_cmode(struct gsm_lchan *lchan,</span><br><span style="color: hsl(0, 100%, 40%);">-                                struct rsl_ie_chan_mode *cm)</span><br><span style="color: hsl(120, 100%, 40%);">+static int lchan_tchmode_from_cmode(struct gsm_lchan *lchan,</span><br><span style="color: hsl(120, 100%, 40%);">+                                   const struct rsl_ie_chan_mode *cm)</span><br><span> {</span><br><span>  lchan->rsl_cmode = cm->spd_ind;</span><br><span>        lchan->ts->trx->bts->dtxd = (cm->dtx_dtu & RSL_CMOD_DTXd) ? true : false;</span><br><span>@@ -137,7 +137,11 @@</span><br><span>  case RSL_CMOD_SP_NT_6k0:</span><br><span>             lchan->tch_mode = GSM48_CMODE_DATA_6k0;</span><br><span>           break;</span><br><span style="color: hsl(120, 100%, 40%);">+        default:</span><br><span style="color: hsl(120, 100%, 40%);">+              return -ENOTSUP;</span><br><span>     }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   return 0;</span><br><span> }</span><br><span> </span><br><span> </span><br><span>@@ -1359,7 +1363,10 @@</span><br><span>                      return rsl_tx_chan_act_nack(lchan, RSL_ERR_MAND_IE_ERROR);</span><br><span>           }</span><br><span>            cm = (struct rsl_ie_chan_mode *) TLVP_VAL(&tp, RSL_IE_CHAN_MODE);</span><br><span style="color: hsl(0, 100%, 40%);">-           lchan_tchmode_from_cmode(lchan, cm);</span><br><span style="color: hsl(120, 100%, 40%);">+          if (lchan_tchmode_from_cmode(lchan, cm) != 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+                       LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Unhandled RSL Channel Mode\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                        return rsl_tx_chan_act_nack(lchan, RSL_ERR_IE_CONTENT);</span><br><span style="color: hsl(120, 100%, 40%);">+               }</span><br><span>    }</span><br><span> </span><br><span>        /* 9.3.7 Encryption Information */</span><br><span>@@ -1874,7 +1881,10 @@</span><br><span>          return rsl_tx_mode_modif_nack(lchan, RSL_ERR_MAND_IE_ERROR);</span><br><span>         }</span><br><span>    cm = (struct rsl_ie_chan_mode *) TLVP_VAL(&tp, RSL_IE_CHAN_MODE);</span><br><span style="color: hsl(0, 100%, 40%);">-   lchan_tchmode_from_cmode(lchan, cm);</span><br><span style="color: hsl(120, 100%, 40%);">+  if (lchan_tchmode_from_cmode(lchan, cm) != 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGPLCHAN(lchan, DRSL, LOGL_NOTICE, "Unhandled RSL Channel Mode\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                return rsl_tx_mode_modif_nack(lchan, RSL_ERR_IE_CONTENT);</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span> </span><br><span>        if (bts_supports_cm(lchan->ts->trx->bts, ts_pchan(lchan->ts), lchan->tch_mode) != 1) {</span><br><span>                LOGPLCHAN(lchan, DRSL, LOGL_ERROR, "%s: invalid mode: %s (wrong BSC configuration?)\n",</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bts/+/23780">change 23780</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/+/23780"/><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: I67a70132999be6580a29e6b814763309a6df4ae9 </div>
<div style="display:none"> Gerrit-Change-Number: 23780 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>