aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmo-bts/dtx_dl_amr_fsm.h
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2016-10-03 17:37:45 +0200
committerHarald Welte <laforge@gnumonks.org>2016-10-13 06:58:06 +0000
commitbabd05661d13b12234e848acf9c4bff909ef05f4 (patch)
tree656168076a94b5a430d2b0c1d856011e3b4c6a4d /include/osmo-bts/dtx_dl_amr_fsm.h
parentc09e5a44c3c1c2882339fe8822f373b1e12839ae (diff)
DTX DL: use FSM for AMR
Use dedicated FSM to handle all DTX DL related events: - add explicit checks if DTX DL is enabled (fixes regression for non-DTX setup introduced in 654175f33bd412671e3ef8cdd65c0689d10f278c) - fix handling of AMR CMI for SPEECH frames - add FSM for DTX DL - sync with corresponding changes in OpenBSC's - handle FACCH-related DTX ONSET events This affects both lc15 and sysmobts and requires corresponding change in OpenBSC (Change-Id: Idac8609faf9b5ced818fde899ccfc6ed0c42e8fd). Change-Id: I74a0b42cb34d525b8a70d264135e82994ca70d31
Diffstat (limited to 'include/osmo-bts/dtx_dl_amr_fsm.h')
-rw-r--r--include/osmo-bts/dtx_dl_amr_fsm.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/include/osmo-bts/dtx_dl_amr_fsm.h b/include/osmo-bts/dtx_dl_amr_fsm.h
new file mode 100644
index 00000000..8b195953
--- /dev/null
+++ b/include/osmo-bts/dtx_dl_amr_fsm.h
@@ -0,0 +1,35 @@
+#pragma once
+
+#include <osmocom/core/fsm.h>
+#include <osmocom/core/utils.h>
+#include <osmocom/core/logging.h>
+
+/* DTX DL AMR FSM */
+
+#define X(s) (1 << (s))
+
+enum dtx_dl_amr_fsm_states {
+ ST_VOICE,
+ ST_SID_F1,
+ ST_SID_F2,
+ ST_F1_INH,
+ ST_U_INH,
+ ST_SID_U,
+ ST_ONSET_V,
+ ST_ONSET_F,
+ ST_FACCH_V,
+ ST_FACCH,
+};
+
+enum dtx_dl_amr_fsm_events {
+ E_VOICE,
+ E_ONSET,
+ E_FACCH,
+ E_COMPL,
+ E_INHIB,
+ E_SID_F,
+ E_SID_U,
+};
+
+extern const struct value_string dtx_dl_amr_fsm_event_names[];
+extern struct osmo_fsm dtx_dl_amr_fsm;