summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/layer1/l23_api.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/target/firmware/layer1/l23_api.c')
-rw-r--r--src/target/firmware/layer1/l23_api.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/target/firmware/layer1/l23_api.c b/src/target/firmware/layer1/l23_api.c
index e46ca09d..404a2f98 100644
--- a/src/target/firmware/layer1/l23_api.c
+++ b/src/target/firmware/layer1/l23_api.c
@@ -97,6 +97,11 @@ static uint32_t chan_nr2mf_task_mask(uint8_t chan_nr, uint8_t neigh_mode)
lch_idx = cbits & 0x7;
master_task = MF_TASK_SDCCH8_0 + lch_idx;
multiframe = MF51;
+ } else if ((cbits & 0x1e) == 0x18) {
+ /* Osmocom specific extension for CBCH */
+ master_task = (cbits & 0x01) ? /* 0b1100T */
+ MF_TASK_SDCCH4_CBCH : MF_TASK_SDCCH8_CBCH;
+ multiframe = MF51;
#if 0
} else if (cbits == 0x10) {
/* FIXME: when to do extended BCCH? */
@@ -136,7 +141,12 @@ static int chan_nr2dchan_type(uint8_t chan_nr)
return GSM_DCHAN_SDCCH_4;
} else if ((cbits & 0x18) == 0x08) {
return GSM_DCHAN_SDCCH_8;
+ } else if ((cbits & 0x1e) == 0x18) {
+ /* Osmocom-specific extension for CBCH */
+ return (cbits & 0x01) ? /* 0b1100T */
+ GSM_DCHAN_SDCCH_8_CBCH : GSM_DCHAN_SDCCH_4_CBCH;
}
+
return GSM_DCHAN_UNKNOWN;
}