aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/measurement.c
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2023-09-30 06:37:10 +0700
committerfixeria <vyanitskiy@sysmocom.de>2023-10-04 09:18:11 +0000
commit695080745c8062e8b488df26ce1059ec4b33b8b2 (patch)
treefa58e000902f4553cb0cf5d0661744db5c7061df /src/common/measurement.c
parentfe005cb76e38e4ebaa4e91e29ec7f4c4ef7b8ce7 (diff)
meas: lchan_meas_sub_num_expected(): handle CSD modes
Diffstat (limited to 'src/common/measurement.c')
-rw-r--r--src/common/measurement.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/common/measurement.c b/src/common/measurement.c
index 96598bf0..19bff714 100644
--- a/src/common/measurement.c
+++ b/src/common/measurement.c
@@ -434,6 +434,9 @@ static int lchan_meas_sub_num_expected(const struct gsm_lchan *lchan)
switch (pchan) {
case GSM_PCHAN_TCH_F:
+ if (lchan->rsl_cmode == RSL_CMOD_SPD_DATA)
+ return 1 + 1; /* 1 x SACCH + 1 x FACCH */
+ /* else: signalling or speech */
switch (lchan->tch_mode) {
case GSM48_CMODE_SIGN: /* TCH/F sign: DTX *is* permitted */
case GSM48_CMODE_SPEECH_V1: /* TCH/FS */
@@ -450,6 +453,9 @@ static int lchan_meas_sub_num_expected(const struct gsm_lchan *lchan)
return -1; /* at least 1 x SACCH + M x TCH (variable) */
}
case GSM_PCHAN_TCH_H:
+ if (lchan->rsl_cmode == RSL_CMOD_SPD_DATA)
+ return 1 + 2; /* 1 x SACCH + 2 x FACCH */
+ /* else: signalling or speech */
switch (lchan->tch_mode) {
case GSM48_CMODE_SIGN: /* TCH/H sign: DTX *is not* permitted */
return 1 + 12; /* 1 x SACCH + 12 x TCH */