<p>neels has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-bsc/+/24459">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">ensure chan_mode comparisons in non-VAMOS mode<br><br>When checking a chan_mode for AMR, both lchans in VAMOS and non-VAMOS<br>mode should match. So make sure that all chan_modes are converted to<br>non-vamos before comparing.<br><br>Change-Id: I791e7966b1f8eaa3299a8a46abeb313cf5136e0b<br>---<br>M src/osmo-bsc/abis_rsl.c<br>M src/osmo-bsc/gsm_04_08_rr.c<br>M src/osmo-bsc/lchan_fsm.c<br>3 files changed, 8 insertions(+), 11 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/59/24459/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c</span><br><span>index 02f1109..aec6bf5 100644</span><br><span>--- a/src/osmo-bsc/abis_rsl.c</span><br><span>+++ b/src/osmo-bsc/abis_rsl.c</span><br><span>@@ -70,7 +70,7 @@</span><br><span>       OSMO_ASSERT(bts);</span><br><span> </span><br><span>        if (lchan->type == GSM_LCHAN_TCH_H) {</span><br><span style="color: hsl(0, 100%, 40%);">-                switch (lchan->current_ch_mode_rate.chan_mode) {</span><br><span style="color: hsl(120, 100%, 40%);">+           switch (gsm48_chan_mode_to_non_vamos(lchan->current_ch_mode_rate.chan_mode)) {</span><br><span>            case GSM48_CMODE_SPEECH_AMR:</span><br><span>                         rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CODEC_AMR_H]);</span><br><span>                    break;</span><br><span>@@ -81,7 +81,7 @@</span><br><span>                   break;</span><br><span>               }</span><br><span>    } else if (lchan->type == GSM_LCHAN_TCH_F) {</span><br><span style="color: hsl(0, 100%, 40%);">-         switch (lchan->current_ch_mode_rate.chan_mode) {</span><br><span style="color: hsl(120, 100%, 40%);">+           switch (gsm48_chan_mode_to_non_vamos(lchan->current_ch_mode_rate.chan_mode)) {</span><br><span>            case GSM48_CMODE_SPEECH_AMR:</span><br><span>                         rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CODEC_AMR_F]);</span><br><span>                    break;</span><br><span>@@ -390,20 +390,17 @@</span><br><span>               return -EINVAL;</span><br><span>      }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   switch (ch_mode_rate->chan_mode) {</span><br><span style="color: hsl(120, 100%, 40%);">+ switch (gsm48_chan_mode_to_non_vamos(ch_mode_rate->chan_mode)) {</span><br><span>  case GSM48_CMODE_SIGN:</span><br><span>               cm->chan_rate = 0;</span><br><span>                break;</span><br><span>       case GSM48_CMODE_SPEECH_V1:</span><br><span style="color: hsl(0, 100%, 40%);">-     case GSM48_CMODE_SPEECH_V1_VAMOS:</span><br><span>            cm->chan_rate = RSL_CMOD_SP_GSM1;</span><br><span>                 break;</span><br><span>       case GSM48_CMODE_SPEECH_EFR:</span><br><span style="color: hsl(0, 100%, 40%);">-    case GSM48_CMODE_SPEECH_V2_VAMOS:</span><br><span>            cm->chan_rate = RSL_CMOD_SP_GSM2;</span><br><span>                 break;</span><br><span>       case GSM48_CMODE_SPEECH_AMR:</span><br><span style="color: hsl(0, 100%, 40%);">-    case GSM48_CMODE_SPEECH_V3_VAMOS:</span><br><span>            cm->chan_rate = RSL_CMOD_SP_GSM3;</span><br><span>                 break;</span><br><span>       case GSM48_CMODE_DATA_14k5:</span><br><span>@@ -602,7 +599,7 @@</span><br><span>    add_power_control_params(msg, RSL_IE_BS_POWER_PARAM, lchan);</span><br><span>         add_power_control_params(msg, RSL_IE_MS_POWER_PARAM, lchan);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        if (lchan->activate.ch_mode_rate.chan_mode == GSM48_CMODE_SPEECH_AMR) {</span><br><span style="color: hsl(120, 100%, 40%);">+    if (gsm48_chan_mode_to_non_vamos(lchan->activate.ch_mode_rate.chan_mode) == GSM48_CMODE_SPEECH_AMR) {</span><br><span>             rc = put_mr_config_for_bts(msg, &lchan->activate.mr_conf_filtered,</span><br><span>                                       (lchan->type == GSM_LCHAN_TCH_F) ? &bts->mr_full : &bts->mr_half);</span><br><span>               if (rc) {</span><br><span>@@ -2114,7 +2111,7 @@</span><br><span> /* Return an ip.access BTS speech mode value (uint8_t) or negative on error. */</span><br><span> int ipacc_speech_mode(enum gsm48_chan_mode tch_mode, enum gsm_chan_t type)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- switch (tch_mode) {</span><br><span style="color: hsl(120, 100%, 40%);">+   switch (gsm48_chan_mode_to_non_vamos(tch_mode)) {</span><br><span>    case GSM48_CMODE_SPEECH_V1:</span><br><span>          switch (type) {</span><br><span>              case GSM_LCHAN_TCH_F:</span><br><span>@@ -2162,7 +2159,7 @@</span><br><span> /* Return an ip.access BTS payload type value (uint8_t) or negative on error. */</span><br><span> int ipacc_payload_type(enum gsm48_chan_mode tch_mode, enum gsm_chan_t type)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-   switch (tch_mode) {</span><br><span style="color: hsl(120, 100%, 40%);">+   switch (gsm48_chan_mode_to_non_vamos(tch_mode)) {</span><br><span>    case GSM48_CMODE_SPEECH_V1:</span><br><span>          switch (type) {</span><br><span>              case GSM_LCHAN_TCH_F:</span><br><span>diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c</span><br><span>index 6e55947..bfc5bd0 100644</span><br><span>--- a/src/osmo-bsc/gsm_04_08_rr.c</span><br><span>+++ b/src/osmo-bsc/gsm_04_08_rr.c</span><br><span>@@ -638,7 +638,7 @@</span><br><span>         }</span><br><span> </span><br><span>        /* in case of multi rate we need to attach a config */</span><br><span style="color: hsl(0, 100%, 40%);">-  if (new_lchan->current_ch_mode_rate.chan_mode == GSM48_CMODE_SPEECH_AMR) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (gsm48_chan_mode_to_non_vamos(new_lchan->current_ch_mode_rate.chan_mode) == GSM48_CMODE_SPEECH_AMR) {</span><br><span>          int rc = put_mr_config_for_ms(msg, &new_lchan->current_mr_conf,</span><br><span>                                             (new_lchan->type == GSM_LCHAN_TCH_F) ? &bts->mr_full : &bts->mr_half);</span><br><span>                if (rc) {</span><br><span>diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c</span><br><span>index 4b0b31f..0708292 100644</span><br><span>--- a/src/osmo-bsc/lchan_fsm.c</span><br><span>+++ b/src/osmo-bsc/lchan_fsm.c</span><br><span>@@ -642,7 +642,7 @@</span><br><span>         lchan->activate.ch_mode_rate = lchan->activate.info.ch_mode_rate;</span><br><span>      /* future: automatically adjust chan_mode in lchan->activate.ch_mode_rate */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     if (lchan->activate.ch_mode_rate.chan_mode == GSM48_CMODE_SPEECH_AMR) {</span><br><span style="color: hsl(120, 100%, 40%);">+    if (gsm48_chan_mode_to_non_vamos(lchan->activate.ch_mode_rate.chan_mode) == GSM48_CMODE_SPEECH_AMR) {</span><br><span>             if (lchan_mr_config(&lchan->activate.mr_conf_filtered, lchan, lchan->activate.ch_mode_rate.s15_s0) < 0) {</span><br><span>                       lchan_fail("Can not generate multirate configuration IE\n");</span><br><span>                       return;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-bsc/+/24459">change 24459</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-bsc/+/24459"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bsc </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I791e7966b1f8eaa3299a8a46abeb313cf5136e0b </div>
<div style="display:none"> Gerrit-Change-Number: 24459 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: neels <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>