aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2016-10-25 20:22:16 +0200
committerHarald Welte <laforge@gnumonks.org>2016-10-28 09:25:47 +0000
commit1b76a03cddcfb52c1ebd5a6f0d990128058a516c (patch)
treeb75b5e29883a3a57c777c873899c710b639cb897
parent8c53c59bfb1bc16347a60d5e15113c70d289ac93 (diff)
DTX DL: Add FACCH cache
When DL DTX is active and silent period is in progress dtx.cache is populated by SID UPDATE message which about to be scheduled next. If at that moment FACCH message arrives (which have higher priority) we have to send ONSET message to L1 but we can't invalidate cache with SID UPDATE as it will be used for SID FIRST message to resume silent period after FACCH transmission is over (provided there were no incoming voice in between). Hence the necessity for separate buffer to store content of FACCH message while we're sending ONSET to L1 while keeping SID UPDATE cached. Change-Id: I316e81af893b24766bf259baaed7a0be75a11694 Related: OS#1801
-rw-r--r--openbsc/include/openbsc/gsm_data_shared.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/gsm_data_shared.h b/openbsc/include/openbsc/gsm_data_shared.h
index 487a3f397..4472310e3 100644
--- a/openbsc/include/openbsc/gsm_data_shared.h
+++ b/openbsc/include/openbsc/gsm_data_shared.h
@@ -300,7 +300,10 @@ struct gsm_lchan {
struct amr_multirate_conf amr_mr;
struct {
struct osmo_fsm_inst *dl_amr_fsm;
+ /* TCH cache */
uint8_t cache[20];
+ /* FACCH cache */
+ uint8_t facch[GSM_MACBLOCK_LEN];
uint8_t len;
uint32_t fn;
bool is_update;