fixeria has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-bts/+/33651 )
Change subject: osmo-bts-trx: implement TCH/F2.4 support for CSD
......................................................................
osmo-bts-trx: implement TCH/F2.4 support for CSD
Change-Id: I31c59a78a362986b0cd1bc6650c325ee9f206519
Depends: libosmocore.git I4685376c8deb04db670684c9ebf685ad6fc989fa
Related: OS#1572
---
M src/common/bts.c
M src/osmo-bts-trx/sched_lchan_tchf.c
2 files changed, 17 insertions(+), 20 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/51/33651/1
diff --git a/src/common/bts.c b/src/common/bts.c
index 5616fdd..2c308d5 100644
--- a/src/common/bts.c
+++ b/src/common/bts.c
@@ -843,18 +843,7 @@
{
switch (bts->variant) {
case BTS_OSMO_TRX:
- switch (cm->chan_rate) {
- case RSL_CMOD_CSD_T_2400:
- case RSL_CMOD_CSD_T_1200:
- case RSL_CMOD_CSD_T_600:
- case RSL_CMOD_CSD_T_1200_75:
- /* TODO: osmo-bts-trx does not support TCH/F2.4 */
- if (cm->chan_rt == RSL_CMOD_CRT_TCH_Bm)
- return 0;
- /* fall-through */
- default:
- return 1;
- }
+ return 1;
default:
return 0;
}
diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c
index 38117e1..165df53 100644
--- a/src/osmo-bts-trx/sched_lchan_tchf.c
+++ b/src/osmo-bts-trx/sched_lchan_tchf.c
@@ -267,16 +267,16 @@
&n_errors, &n_bits_total);
meas_avg_mode = SCHED_MEAS_AVG_M_S24N22;
break;
-#if 0
- /* TODO: CSD (TCH/F2.4): 3.6 kbit/s radio interface rate */
+ /* CSD (TCH/F2.4): 3.6 kbit/s radio interface rate */
case GSM48_CMODE_DATA_3k6:
/* TCH/F2.4 employs the same interleaving as TCH/FS (8 bursts),
* so FACCH/F *does* steal TCH/F2.4 frames completely. */
+ if (decode_fr_facch(l1ts, bi) == GSM_MACBLOCK_LEN)
+ return 0; /* TODO: emit BFI */
rc = gsm0503_tch_fr24_decode(&tch_data[0], BUFTAIL8(bursts_p),
&n_errors, &n_bits_total);
meas_avg_mode = SCHED_MEAS_AVG_M_S8N8;
break;
-#endif
/* CSD (TCH/F14.4): 14.5 kbit/s radio interface rate */
case GSM48_CMODE_DATA_14k5:
/* FACCH/F does not steal TCH/F14.4 frames, but only disturbs some bits */
@@ -476,9 +476,8 @@
len = 4 * 60;
break;
case GSM48_CMODE_DATA_3k6: /* TCH/[FH]2.4 */
- /* FIXME: TCH/F2.4 is not supported */
if (br->chan == TRXC_TCHF)
- goto inval_mode2; /* 2 * 36 */
+ len = 2 * 36;
else
len = 4 * 36;
break;
@@ -596,8 +595,7 @@
if (msg_facch != NULL)
gsm0503_tch_fr_facch_encode(BUFPOS(bursts_p, 0), msgb_l2(msg_facch));
break;
-#if 0
- /* TODO: CSD (TCH/F2.4): 3.6 kbit/s radio interface rate */
+ /* CSD (TCH/F2.4): 3.6 kbit/s radio interface rate */
case GSM48_CMODE_DATA_3k6:
/* FACCH/F does steal a TCH/F2.4 frame completely */
if (msg == msg_facch)
@@ -605,7 +603,6 @@
else
gsm0503_tch_fr24_encode(BUFPOS(bursts_p, 0), msgb_l2(msg_tch));
break;
-#endif
/* CSD (TCH/F14.4): 14.5 kbit/s radio interface rate */
case GSM48_CMODE_DATA_14k5:
gsm0503_tch_fr144_encode(BUFPOS(bursts_p, 0), msgb_l2(msg_tch));
--
To view, visit
https://gerrit.osmocom.org/c/osmo-bts/+/33651
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I31c59a78a362986b0cd1bc6650c325ee9f206519
Gerrit-Change-Number: 33651
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: newchange