aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMychaela N. Falconia <falcon@freecalypso.org>2023-03-28 15:45:31 +0000
committerlaforge <laforge@osmocom.org>2023-03-29 11:59:28 +0000
commite1e204fae39937dbb73ecd32035e31ad4668cfeb (patch)
treed4f7e51244f25bf5d3745047051292779dbc6332
parentac23ce2e03f09a3fae72e2d2f28d8d4b092543af (diff)
trx: detect UL SID in EFR just like in FR
The TCH/F Rx code in osmo-bts-trx uses osmo_fr_check_sid() to detect when the MS sends SID, and passes the flag to lchan_set_marker(). However, equivalent logic was missing for EFR, as until recently there was no EFR SID check function in libosmocodec. Now that we have osmo_efr_check_sid(), use it. Change-Id: Ib043e00dbf92145c2a6c32f6365517244472a922
-rw-r--r--TODO-RELEASE1
-rw-r--r--src/osmo-bts-trx/sched_lchan_tchf.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/TODO-RELEASE b/TODO-RELEASE
index 1833716a..88ad00d1 100644
--- a/TODO-RELEASE
+++ b/TODO-RELEASE
@@ -7,4 +7,5 @@
# If any interfaces have been added since the last public release: c:r:a + 1.
# If any interfaces have been removed or changed since the last public release: c:r:0.
#library what description / commit summary line
+libosmocodec >1.8.0 osmo_efr_check_sid() new function
libosmogsm >1.8.0 <osmocom/gsm/protocol/gsm_44_060.h> added
diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c b/src/osmo-bts-trx/sched_lchan_tchf.c
index eff0f63a..256125b8 100644
--- a/src/osmo-bts-trx/sched_lchan_tchf.c
+++ b/src/osmo-bts-trx/sched_lchan_tchf.c
@@ -150,6 +150,8 @@ int rx_tchf_fn(struct l1sched_ts *l1ts, const struct trx_ul_burst_ind *bi)
break;
case GSM48_CMODE_SPEECH_EFR: /* EFR */
rc = gsm0503_tch_fr_decode(tch_data, *bursts_p, 1, 1, &n_errors, &n_bits_total);
+ if (rc == GSM_EFR_BYTES) /* only for valid *speech* frames */
+ lchan_set_marker(osmo_efr_check_sid(tch_data, rc), lchan); /* DTXu */
break;
case GSM48_CMODE_SPEECH_AMR: /* AMR */
/* the first FN 0,8,17 defines that CMI is included in frame,