falconia has uploaded this change for review.

View Change

bts-{lc15,oc2g,sysmo}: support EFR in repeat_last_sid()

The function repeat_last_sid() is implemented in the common part,
but is only used by osmo-bts-{lc15,oc2g,sysmo} models. These BTS
models call this function when they are looking to see if a
previously cached SID frame needs to retransmitted on the DL
because it is that time according to the SACCH multiframe.
Out of non-AMR codecs, this function previously supported only
FR1 and HR1, but failed to support EFR. Fix that omission.

Change-Id: Iebcd28e65af889254740757eed9c579392eb1c33
---
M src/common/msg_utils.c
1 file changed, 21 insertions(+), 6 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/82/32182/1
diff --git a/src/common/msg_utils.c b/src/common/msg_utils.c
index bd2c4b7..dc4aaa7 100644
--- a/src/common/msg_utils.c
+++ b/src/common/msg_utils.c
@@ -387,8 +387,10 @@
return fn_chk(lchan->nr ? h1 : h0, fn,
lchan->nr ? ARRAY_SIZE(h1) :
ARRAY_SIZE(h0));
- }
- return false;
+ } else if (lchan->tch_mode == GSM48_CMODE_SPEECH_EFR) {
+ return fn_chk(f, fn, ARRAY_SIZE(f));
+ } else
+ return false;
}

/*! \brief Check if DTX DL AMR is enabled for a given lchan (it have proper type,
@@ -466,10 +468,6 @@
*/
uint8_t repeat_last_sid(struct gsm_lchan *lchan, uint8_t *dst, uint32_t fn)
{
- /* FIXME: add EFR support */
- if (lchan->tch_mode == GSM48_CMODE_SPEECH_EFR)
- return 0;
-
if (lchan->tch_mode != GSM48_CMODE_SPEECH_AMR) {
if (dtx_sched_optional(lchan, fn))
return 0;

To view, visit change 32182. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: Iebcd28e65af889254740757eed9c579392eb1c33
Gerrit-Change-Number: 32182
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon@freecalypso.org>
Gerrit-MessageType: newchange