blob: e60c3243e66cc55938869a3833fe597360de1a59 [file] [log] [blame]
Harald Welte3f27f712019-06-14 19:31:30 +02001#pragma once
2
Neels Hofmeyr12f109b2020-05-14 17:28:57 +02003#include <osmocom/core/endian.h>
4
Harald Welte3f27f712019-06-14 19:31:30 +02005/* Section 9.4.1.2: GSM Message Format */
6struct gsm23041_msg_param_gsm {
7 uint16_t serial_nr;
8 uint16_t message_id;
9 uint8_t dcs;
10 struct {
11#if OSMO_IS_LITTLE_ENDIAN
12 uint8_t num_pages:4,
13 page_nr:4;
14#else
15 uint8_t page_nr:4,
16 num_pages:4;
17#endif
18 } page_param;
19 uint8_t content[0];
20} __attribute__ ((packed));
21
22/* Section 9.4.1.2.2 Message Identifier */
23enum {
24 /* 0 - 999: Allocated by GSM AD.26 */
25 CBS_MSGID_LCS_EOTD_ASSIST = 1000,
26 CBS_MSGID_LCS_DGPS_CORRECTION = 1001,
27 CBS_MSGID_LCS_GPS_EPHEM_CLOCK = 1002,
28 CBS_MSGID_LCS_GPS_ALMANAC_OTHER = 1003,
29 /* 1004 - 4095: RFU */
30 /* 4096 - 4223: clear text SIM data download */
31 /* 4224 - 4351: secured SIM data download */
32 CBS_MSGID_ETWS_EARTHQUAKE = 4352,
33 CBS_MSGID_ETWS_TSUNAMI = 4353,
34 CBS_MSGID_ETWS_EARTHQUAKE_TSUNAMI = 4354,
35 CBS_MSGID_ETWS_TEST = 4355,
36 CBS_MSGID_ETWS_OTHER = 4356,
37 /* 4357 - 4359: ETWS RFU */
38 /* 4360 - 4369: RFU */
39 CBS_MSGID_CMAS_PRESIDENTIAL = 4370,
40 CBS_MSGID_CMAS_EXTREME_IMMEDIATE_OBSERVED = 4371,
41 CBS_MSGID_CMAS_EXTREME_IMMEDIATE_LIKELY = 4372,
42 CBS_MSGID_CMAS_EXTREME_EXPECTED_OBSERVED = 4373,
43 CBS_MSGID_CMAS_EXTREME_EXPECTED_LIKELY = 4374,
44 CBS_MSGID_CMAS_SEVERE_IMMEDIATE_OBSERVED = 4375,
45 CBS_MSGID_CMAS_SEVERE_IMMEDIATE_LIKELY = 4376,
46 CBS_MSGID_CMAS_SEVERE_EXPECTED_OBSERVED = 4377,
47 CBS_MSGID_CMAS_SEVERE_EXPECTED_LIKELY = 4378,
48 CBS_MSGID_CMAS_AMBER = 4379,
49 CBS_MSGID_CMAS_MONTHLY_TEST = 4380,
50 CBS_MSGID_CMAS_EXERCISE = 4381,
51 CBS_MSGID_CMAS_OPERATOR_DEFINED = 4382,
52 CBS_MSGID_CMAS_PRESIDENTIAL_ADDL = 4383,
53 CBS_MSGID_CMAS_EXTREME_IMMEDIATE_OBSERVED_ADDL = 4384,
54 CBS_MSGID_CMAS_EXTREME_IMMEDIATE_LIKELY_ADDL = 4385,
55 CBS_MSGID_CMAS_EXTREME_EXPECTED_OBSERVED_ADDL = 4386,
56 CBS_MSGID_CMAS_EXTREME_EXPECTED_LIKELY_ADDL = 4387,
57 CBS_MSGID_CMAS_SEVERE_IMMEDIATE_OBSERVED_ADDL = 4388,
58 CBS_MSGID_CMAS_SEVERE_IMMEDIATE_LIKELY_ADDL = 4389,
59 CBS_MSGID_CMAS_SEVERE_EXPECTED_OBSERVED_ADDL = 4390,
60 CBS_MSGID_CMAS_SEVERE_EXPECTED_LIKELY_ADDL = 4391,
61 CBS_MSGID_CMAS_AMBER_ADDL = 4392,
62 CBS_MSGID_CMAS_MONTHLY_TEST_ADDL = 4393,
63 CBS_MSGID_CMAS_EXERCISE_ADDL = 4394,
64 CBS_MSGID_CMAS_OPERATOR_DEFINED_ADDL = 4395,
65 /* 4396 - 4399: RFU CMAS / EU-Alert */
66 /* 4400 - 6399: RFU PWS */
67 CBS_MSGID_EU_INFO_LOCAL_LANG = 6400,
68 /* 6491 - 40959: RFU */
69 /* 40960 - 45055: PLMN operator specific range */
70 /* 45056 - 61439: PLMN operator specific range RFU */
71 /* 61440 - 65534: PLMN operator specific range */
72 CBS_MSGID_RESERVED = 65535
73};
74
75/* Section 9.4.1.3.2 ETWS Primary Notification Message Parameter */
76struct gsm23041_etws_primary_gsm {
77 uint16_t serial_nr;
78 uint16_t message_id;
79 uint16_t warning_type;
80 uint8_t warning_sec_info[50];
81} __attribute__ ((packed));
82
83
84/* Section 9.4.2.2 UMTS Message Parameter */
85struct gsm23041_msg_param_umts {
86 uint8_t msg_type; /* as per TS 25.324 */
87 uint16_t message_id;
88 uint16_t serial_nr;
89 uint8_t dcs;
90 uint8_t content[0];
91} __attribute__ ((packed));