diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2019-03-01 17:40:27 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2019-03-19 13:29:10 +0000 |
commit | fc09a7c01026b3dbc44c5677f8b47e64a1a0af80 (patch) | |
tree | d292d23ac1681c9f75a4ed61d953ddf32e419c0c | |
parent | 0e5a3c5ffd4d9fcb1a1e07fc8bc28e8fb30cd4e8 (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.c | 9 |
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; |