aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2019-03-01 17:40:27 +0100
committerHarald Welte <laforge@gnumonks.org>2019-03-19 13:29:10 +0000
commitfc09a7c01026b3dbc44c5677f8b47e64a1a0af80 (patch)
treed292d23ac1681c9f75a4ed61d953ddf32e419c0c
parent0e5a3c5ffd4d9fcb1a1e07fc8bc28e8fb30cd4e8 (diff)
lchan_fsm: do not include 12.2k in active set on HR channels
When "Config-NB-Code = 1" is set via the S-bits, then the resulting multirate configuration IE will contain 12.2K. Since the generator function is not aware if the lchan is activated for HR or FR it sets the flag for 12.2k always. We have to add a check here in order to set the 12.2k flag in the IE back to 0 so that the active set contains a set of useable rates. Change-Id: I40e7f568f4822040a2d1e78f22dbba0e49d0167e Related: SYS#4470
-rw-r--r--src/osmo-bsc/lchan_fsm.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c
index 0c54efb6d..7cbba4499 100644
--- a/src/osmo-bsc/lchan_fsm.c
+++ b/src/osmo-bsc/lchan_fsm.c
@@ -545,6 +545,15 @@ static void lchan_fsm_wait_ts_ready_onenter(struct osmo_fsm_inst *fi, uint32_t p
return;
}
+ /* Do not include 12.2 kbps rate when S1 is set. */
+ if (lchan->type == GSM_LCHAN_TCH_H && (info->s15_s0 & GSM0808_SC_CFG_AMR_4_75_5_90_7_40_12_20)) {
+ /* See also 3GPP TS 28.062, chapter 7.11.3.1.3: "In case this Configuration
+ * "Config-NB-Code = 1" is signalled in the TFO Negotiation for the HR_AMR
+ * Codec Type,then it shall be assumed that AMR mode 12.2 kbps is (of course)
+ * not included. */
+ mr_conf.m12_2 = 0;
+ }
+
if (lchan_mr_config(lchan, &mr_conf) < 0) {
lchan_fail("Can not generate multirate configuration IE\n");
return;