gsm_04_12.h: Add beginning of structs for SMS CB
authorHolger Hans Peter Freyther <zecke@selfish.org>
Tue, 20 Jul 2010 21:02:33 +0000 (05:02 +0800)
committerHolger Hans Peter Freyther <zecke@selfish.org>
Tue, 20 Jul 2010 21:02:33 +0000 (05:02 +0800)
I am trying to understand the RSL and GSM 04.12
spec to implement CBS for OpenBSC...

include/osmocore/protocol/Makefile.am
include/osmocore/protocol/gsm_04_12.h [new file with mode: 0644]

index 557950e..5df9fe7 100644 (file)
@@ -1,3 +1,4 @@
-osmocore_proto_HEADERS = gsm_04_08.h gsm_04_11.h gsm_04_80.h gsm_08_58.h gsm_12_21.h gsm_08_08.h
+osmocore_proto_HEADERS = gsm_04_08.h gsm_04_11.h gsm_04_80.h gsm_08_58.h \
+                        gsm_12_21.h gsm_08_08.h gsm_04_12.h
 
 osmocore_protodir = $(includedir)/osmocore/protocol
diff --git a/include/osmocore/protocol/gsm_04_12.h b/include/osmocore/protocol/gsm_04_12.h
new file mode 100644 (file)
index 0000000..bd9e088
--- /dev/null
@@ -0,0 +1,31 @@
+#ifndef PROTO_GSM_04_12_H
+#define PROTO_GSM_04_12_H
+
+#include <stdint.h>
+
+/* GSM TS 04.12 definitions for Short Message Service Cell Broadcast */
+
+#define GSM412_SEQ_FST_BLOCK           0x0
+#define GSM412_SEQ_SND_BLOCK           0x1
+#define GSM412_SEQ_TRD_BLOCK           0x2
+#define GSM412_SEQ_FTH_BLOCK           0x3
+#define GSM412_SEQ_FST_SCHED_BLOCK     0x8
+#define GSM413_SEQ_NULL_MSG            0xf
+
+struct gsm412_block_type {
+       uint8_t seq_nr : 4,
+               lb : 1,
+               lpd : 2,
+               spare : 1;
+} __attribute__((packed));
+
+struct gsm413_sched_msg {
+       uint8_t beg_slot_nr : 6,
+               type : 2;
+       uint8_t end_slot_nr : 6,
+               spare1 : 1, spare2: 1;
+       uint8_t cbsms_msg_map[6];
+       uint8_t data[0];
+} __attribute__((packed));
+
+#endif