libosmogsm
UNKNOWN
Osmocom GSM library
Toggle main menu visibility
Loading...
Searching...
No Matches
gsm_03_41.h
Go to the documentation of this file.
1
3
4
#pragma once
5
6
#include <stdint.h>
7
8
#include <
osmocom/core/endian.h
>
9
#include <
osmocom/gsm/protocol/gsm_04_12.h
>
10
11
#ifndef OSMO_IS_LITTLE_ENDIAN
12
#define OSMO_IS_LITTLE_ENDIAN 0
13
#endif
14
15
#define GSM341_MAX_PAYLOAD (GSM412_MSG_LEN-sizeof(struct gsm341_ms_message))
16
#define GSM341_MAX_CHARS (GSM341_MAX_PAYLOAD*8/7)
17
#define GSM341_7BIT_PADDING '\r'
18
19
/* Chapter 9.3.2 */
20
struct
gsm341_ms_message
{
21
struct
{
22
#if OSMO_IS_LITTLE_ENDIAN
23
uint8_t code_hi:6;
24
uint8_t gs:2;
25
uint8_t update:4;
26
uint8_t code_lo:4;
27
#elif OSMO_IS_BIG_ENDIAN
28
/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianness.py) */
29
uint8_t gs:2, code_hi:6;
30
uint8_t code_lo:4, update:4;
31
#endif
32
}
serial
;
33
uint16_t
msg_id
;
34
struct
{
35
#if OSMO_IS_LITTLE_ENDIAN
36
uint8_t language:4;
37
uint8_t group:4;
38
#elif OSMO_IS_BIG_ENDIAN
39
/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianness.py) */
40
uint8_t group:4, language:4;
41
#endif
42
}
dcs
;
43
struct
{
44
#if OSMO_IS_LITTLE_ENDIAN
45
uint8_t total:4;
46
uint8_t current:4;
47
#elif OSMO_IS_BIG_ENDIAN
48
/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianness.py) */
49
uint8_t current:4, total:4;
50
#endif
51
}
page
;
52
uint8_t
data
[0];
53
}
__attribute__
((packed));
54
55
/* Chapter 9.4.1.3 */
56
struct
gsm341_etws_message
{
57
struct
{
58
#if OSMO_IS_LITTLE_ENDIAN
59
uint8_t code_hi:4;
60
uint8_t popup:1;
61
uint8_t alert:1;
62
uint8_t gs:2;
63
uint8_t update:4;
64
uint8_t code_lo:4;
65
#elif OSMO_IS_BIG_ENDIAN
66
/* auto-generated from the little endian part above (libosmocore/contrib/struct_endianness.py) */
67
uint8_t gs:2, alert:1, popup:1, code_hi:4;
68
uint8_t code_lo:4, update:4;
69
#endif
70
}
serial
;
71
uint16_t
msg_id
;
72
uint16_t
warning_type
;
73
uint8_t
data
[0];
74
}
__attribute__
((packed));
75
76
#define GSM341_MSG_CODE(ms) ((ms)->serial.code_lo | ((ms)->serial.code_hi << 4))
77
78
/* Section 9.3.2.1 - Geographical Scope */
79
#define GSM341_GS_CELL_WIDE_IMMED 0
80
#define GSM341_GS_PLMN_WIDE 1
81
#define GSM341_GS_LA_WIDE 2
82
#define GSM341_GS_CELL_WIDE 3
83
84
/* Section 9.4.1.2.2 */
85
#define GSM341_MSGID_EOTD_ASSISTANCE 0x03E8
86
#define GSM341_MSGID_DGPS_CORRECTION 0x03E9
87
#define GSM341_MSGID_DGPS_EPH_CLOCK_COR 0x03EA
88
#define GSM341_MSGID_GPS_ALMANAC_OTHER 0x03EB
89
#define GSM341_MSGID_ETWS_EARTHQUAKE 0x1100
90
#define GSM341_MSGID_ETWS_TSUNAMI 0x1101
91
#define GSM341_MSGID_ETWS_QUAKE_AND_TSUNAMI 0x1102
92
#define GSM341_MSGID_ETWS_TEST 0x1103
93
#define GSM341_MSGID_ETWS_OTHER 0x1104
94
#define GSM341_MSGID_ETWS_CMAS_PRESIDENTIAL 0x1112
95
#define GSM341_MSGID_ETWS_CMAS_EXTREME_IMM_OBSERVED 0x1113
96
#define GSM341_MSGID_ETWS_CMAS_EXTREME_IMM_LIKELY 0x1114
97
#define GSM341_MSGID_ETWS_CMAS_EXTREME_EXP_OBSERVED 0x1115
98
#define GSM341_MSGID_ETWS_CMAS_EXTREME_EXP_LIKELY 0x1116
99
#define GSM341_MSGID_ETWS_CMAS_SEVERE_IMM_OBSERVED 0x1117
100
#define GSM341_MSGID_ETWS_CMAS_SEVERE_IMM_LIKELY 0x1118
101
#define GSM341_MSGID_ETWS_CMAS_SEVERE_EXP_OBSERVED 0x1119
102
#define GSM341_MSGID_ETWS_CMAS_SEVERE_EXP_LIKELY 0x111A
103
#define GSM341_MSGID_ETWS_CMAS_AMBER 0x111B
104
#define GSM341_MSGID_ETWS_CMAS_MONTHLY_TEST 0x111C
105
#define GSM341_MSGID_ETWS_CMAS_EXERCISE 0x111D
106
#define GSM341_MSGID_ETWS_CMAS_OPERATOR_DEFINED 0x111E
107
#define GSM341_MSGID_ETWS_CMAS_PRESIDENTIAL_AL 0x111F
108
#define GSM341_MSGID_ETWS_CMAS_EXTREME_IMM_OBSERVED_AL 0x1120
109
#define GSM341_MSGID_ETWS_CMAS_EXTREME_IMM_LIKELY_AL 0x1121
110
#define GSM341_MSGID_ETWS_CMAS_EXTREME_EXP_OBSERVED_AL 0x1122
111
#define GSM341_MSGID_ETWS_CMAS_EXTREME_EXP_LIKELY_AL 0x1123
112
#define GSM341_MSGID_ETWS_CMAS_SEVERE_IMM_OBSERVED_AL 0x1124
113
#define GSM341_MSGID_ETWS_CMAS_SEVERE_IMM_LIKELY_AL 0x1125
114
#define GSM341_MSGID_ETWS_CMAS_SEVERE_EXP_OBSERVED_AL 0x1126
115
#define GSM341_MSGID_ETWS_CMAS_SEVERE_EXP_LIKELY_AL 0x1127
116
#define GSM341_MSGID_ETWS_CMAS_AMBER_AL 0x1128
117
#define GSM341_MSGID_ETWS_CMAS_MONTHLY_TEST_AL 0x1129
118
#define GSM341_MSGID_ETWS_CMAS_EXERCISE_AL 0x112A
119
#define GSM341_MSGID_ETWS_CMAS_OPERATOR_DEFINED_AL 0x112B
120
#define GSM341_MSGID_ETWS_EU_INFO_LOCAL_LANGUAGE 0x1900
endian.h
__attribute__
enum gsmtap_um_voice_type __attribute__
dcs
struct @276300002044271352363363026061211175212364360373 dcs
Definition
gsm_23_041.h:3
page
struct @007313124024132076333230020027052167344114221073 page
serial
struct @165267230374200162260143272120332077041354036333 serial
gsm_04_12.h
GSM TS 04.12 definitions for Short Message Service Cell Broadcast.
gsm341_etws_message
Definition
gsm_03_41.h:56
gsm341_etws_message::msg_id
uint16_t msg_id
Definition
gsm_03_41.h:71
gsm341_etws_message::warning_type
uint16_t warning_type
Definition
gsm_03_41.h:72
gsm341_etws_message::data
uint8_t data[0]
Definition
gsm_03_41.h:73
gsm341_ms_message
Definition
gsm_03_41.h:20
gsm341_ms_message::data
uint8_t data[0]
Definition
gsm_03_41.h:52
gsm341_ms_message::msg_id
uint16_t msg_id
Definition
gsm_03_41.h:33
include
osmocom
gsm
protocol
gsm_03_41.h
Generated by
1.17.0