From 3035892d95424f17af64636bcba7ddb8f62c3207 Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Thu, 17 Jan 2019 13:49:32 +0100 Subject: lchan_select: Do not unsolicitedly select a TCH/F The function lchan_select_by_type() will unsolicitedly select a TCH/F when it is asked for a TCH/H but a TCH/H is not available. This behavior is presumably a leftover from before the split. Now every fallback to another rate must be agreed with the MSC in advance, it is a spec violation to silently fallback to TCH/F when asked for a TCH/H. Change-Id: I057e70bc81b3dac470f6d1d2a37533ec3a7a79d0 Related: OS#3503 --- src/osmo-bsc/lchan_select.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/src/osmo-bsc/lchan_select.c b/src/osmo-bsc/lchan_select.c index b63dcd299..0f4dd6527 100644 --- a/src/osmo-bsc/lchan_select.c +++ b/src/osmo-bsc/lchan_select.c @@ -207,12 +207,6 @@ struct gsm_lchan *lchan_select_by_type(struct gsm_bts *bts, enum gsm_chan_t type break; case GSM_LCHAN_TCH_H: lchan = _lc_find_bts(bts, GSM_PCHAN_TCH_H); - /* If we don't have TCH/H available, fall-back to TCH/F */ - if (!lchan) { - lchan = _lc_find_bts(bts, GSM_PCHAN_TCH_F); - if (lchan) - type = GSM_LCHAN_TCH_F; - } /* No dedicated TCH/x available -- try fully dynamic * TCH/F_TCH/H_PDCH */ if (!lchan) { @@ -222,17 +216,6 @@ struct gsm_lchan *lchan_select_by_type(struct gsm_bts *bts, enum gsm_chan_t type if (lchan) type = GSM_LCHAN_TCH_H; } - /* - * No need to check TCH/F_TCH/H_PDCH channels for TCH/F: - * if no TCH/H was available, neither will be TCH/F. - */ - /* If we don't have TCH/F either, try dynamic TCH/F_PDCH */ - if (!lchan) { - lchan = _lc_dyn_find_bts(bts, GSM_PCHAN_TCH_F_PDCH, - GSM_PCHAN_TCH_F); - if (lchan) - type = GSM_LCHAN_TCH_F; - } break; default: LOGP(DRLL, LOGL_ERROR, "Unknown gsm_chan_t %u\n", type); -- cgit v1.2.3