aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/rsl.c
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-09-11 00:28:04 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2018-09-11 00:28:04 +0200
commitcb012598045ab39cd602db9d2ee0eddfa7bcbb7d (patch)
tree3b2e625fdc30103803e950136753767a638d7171 /src/common/rsl.c
parent386c33fa847d9f00937c43005bf6f949536cffbb (diff)
fix RSL Chan Mode Modif for dyn TS
Fix the chan mode checking for RSL Chan Mode Modif: do not reject all modes on dyn TS. In rsl_rx_mode_modif(), bts_supports_cm() should never be fed with dynamic pchan kinds (e.g. GSM_PCHAN_TCH_F_TCH_H_PDCH). Feed instead the return value of ts_pchan() that is to say, the actual pchan type (e.g. GSM_PCHAN_TCH_F). Change-Id: I7f0c835b25289931bccf96e982ea5564c8be4192
Diffstat (limited to 'src/common/rsl.c')
-rw-r--r--src/common/rsl.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/common/rsl.c b/src/common/rsl.c
index c6c00ea2..ad2d4de0 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -1498,7 +1498,7 @@ static int rsl_rx_mode_modif(struct msgb *msg)
cm = (struct rsl_ie_chan_mode *) TLVP_VAL(&tp, RSL_IE_CHAN_MODE);
lchan_tchmode_from_cmode(lchan, cm);
- if (bts_supports_cm(lchan->ts->trx->bts, lchan->ts->pchan, lchan->tch_mode) != 1) {
+ if (bts_supports_cm(lchan->ts->trx->bts, ts_pchan(lchan->ts), lchan->tch_mode) != 1) {
LOGP(DRSL, LOGL_ERROR, "invalid mode/codec instructed by BSC, check BSC configuration.\n");
return rsl_tx_mode_modif_nack(lchan, RSL_ERR_SERV_OPT_UNAVAIL);
}