From 44c94fdeae11d922d07a8ad2d22b157412f3ae3b Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 11 May 2023 09:22:08 +0200 Subject: [PATCH] validate RSL "channel rate and type" against VGCS/VBS flags We already have specfied (but not yet implemented BTS_FEAT_{VBS,VGCS}). Let's add code to validate "channel rate and type" compatibility in bts_supports_cm() once a BTS model would actually exhibit those feature flags. Change-Id: I5e7f65b44cef6e2f7ad4f152f80a1686a4f511e3 Related: OS#4851 --- src/common/bts.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/common/bts.c b/src/common/bts.c index 28f75678f..6652ce621 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -791,6 +791,16 @@ int bts_supports_cm(const struct gsm_bts *bts, return 1; case RSL_CMOD_SPD_SPEECH: break; + case RSL_CMOD_CRT_TCH_GROUP_Bm: + case RSL_CMOD_CRT_TCH_GROUP_Lm: + if (!osmo_bts_has_feature(bts->features, BTS_FEAT_VGCS)) + return 0; + break; + case RSL_CMOD_CRT_TCH_BCAST_Bm: + case RSL_CMOD_CRT_TCH_BCAST_Lm: + if (!osmo_bts_has_feature(bts->features, BTS_FEAT_VBS)) + return 0; + break; case RSL_CMOD_SPD_DATA: default: return 0; @@ -804,6 +814,8 @@ int bts_supports_cm(const struct gsm_bts *bts, return 0; /* fall-through */ case RSL_CMOD_CRT_TCH_Bm: + case RSL_CMOD_CRT_TCH_GROUP_Bm: + case RSL_CMOD_CRT_TCH_BCAST_Bm: switch (cm->chan_rate) { case RSL_CMOD_SP_GSM1: feature = BTS_FEAT_SPEECH_F_V1; @@ -825,6 +837,8 @@ int bts_supports_cm(const struct gsm_bts *bts, return 0; /* fall-through */ case RSL_CMOD_CRT_TCH_Lm: + case RSL_CMOD_CRT_TCH_GROUP_Lm: + case RSL_CMOD_CRT_TCH_BCAST_Lm: switch (cm->chan_rate) { case RSL_CMOD_SP_GSM1: feature = BTS_FEAT_SPEECH_H_V1;