summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2016-05-10 17:17:05 +0200
committerHolger Freyther <holger@freyther.de>2016-05-12 15:56:39 +0000
commitfe65fa7e36a400d362666e2c5bd0f289d45aa56a (patch)
tree315d126375c8ef493c955385c5de404ebdafef74 /include
parent3d79240fb41270d58f9c33508e11f0c215951cc9 (diff)
Set DTX in Cell Options
* rename field of struct gsm48_cell_options to better match the spec * add comments with spec references * add function for setting DTX in cell options struct * add necessary enum type Change-Id: I5a8924f57669c951b2e51b663d95f1d360062a54 Reviewed-on: https://gerrit.osmocom.org/39 Reviewed-by: Harald Welte <laforge@gnumonks.org> Tested-by: Jenkins Builder
Diffstat (limited to 'include')
-rw-r--r--include/osmocom/gsm/protocol/gsm_04_08.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h
index 3282bc16..4800b48b 100644
--- a/include/osmocom/gsm/protocol/gsm_04_08.h
+++ b/include/osmocom/gsm/protocol/gsm_04_08.h
@@ -1,6 +1,7 @@
#pragma once
#include <stdint.h>
+#include <stdbool.h>
#include <osmocom/core/utils.h>
@@ -469,11 +470,20 @@ struct gsm48_control_channel_descr {
uint8_t t3212;
} __attribute__ ((packed));
+enum gsm48_dtx_mode {
+ GSM48_DTX_MAY_BE_USED,
+ GSM48_DTX_SHALL_BE_USED,
+ GSM48_DTX_SHALL_NOT_BE_USED
+};
+
+/* Cell Options for SI6, SACCH (10.5.2.3a.2) or SI3, BCCH (Table 10.5.2.3.1),
+ 3GPP TS 44.018 */
struct gsm48_cell_options {
uint8_t radio_link_timeout:4,
dtx:2,
pwrc:1,
- spare:1;
+ /* either DN-IND or top bit of DTX IND */
+ d:1;
} __attribute__ ((packed));
/* Section 9.2.9 CM service request */
@@ -827,6 +837,9 @@ static inline uint8_t gsm48_hdr_msg_type_r99(const struct gsm48_hdr *hdr)
}
}
+void gsm48_set_dtx(struct gsm48_cell_options *op, enum gsm48_dtx_mode full,
+ enum gsm48_dtx_mode half, bool is_bcch);
+
#define gsm48_hdr_msg_type gsm48_hdr_msg_type_r99
/* Section 10.4 */