diff options
author | Harald Welte <laforge@gnumonks.org> | 2019-06-14 19:31:30 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2019-07-20 12:11:28 +0200 |
commit | 3f27f71b5f510b98a285d55fbd86939e218a0fdd (patch) | |
tree | cbd503dd358911aa295abf52c396c7b573ab04cd | |
parent | f72155a3a42d74a0367ecde504ff394ad22374de (diff) |
Add Cell Broadcast related definitions from 3GPP TS 23.041
Change-Id: I1e2c62cb9047648907c91b99f764f6caba8f4493
-rw-r--r-- | include/Makefile.am | 1 | ||||
-rw-r--r-- | include/osmocom/gsm/protocol/gsm_23_041.h | 89 |
2 files changed, 90 insertions, 0 deletions
diff --git a/include/Makefile.am b/include/Makefile.am index 7835fab8..a82d6ac4 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -123,6 +123,7 @@ nobase_include_HEADERS = \ osmocom/gsm/protocol/gsm_09_02.h \ osmocom/gsm/protocol/gsm_12_21.h \ osmocom/gsm/protocol/gsm_23_003.h \ + osmocom/gsm/protocol/gsm_23_041.h \ osmocom/gsm/protocol/gsm_29_118.h \ osmocom/gsm/protocol/gsm_44_318.h \ osmocom/gsm/protocol/gsm_48_049.h \ diff --git a/include/osmocom/gsm/protocol/gsm_23_041.h b/include/osmocom/gsm/protocol/gsm_23_041.h new file mode 100644 index 00000000..c75c0883 --- /dev/null +++ b/include/osmocom/gsm/protocol/gsm_23_041.h @@ -0,0 +1,89 @@ +#pragma once + +/* Section 9.4.1.2: GSM Message Format */ +struct gsm23041_msg_param_gsm { + uint16_t serial_nr; + uint16_t message_id; + uint8_t dcs; + struct { +#if OSMO_IS_LITTLE_ENDIAN + uint8_t num_pages:4, + page_nr:4; +#else + uint8_t page_nr:4, + num_pages:4; +#endif + } page_param; + uint8_t content[0]; +} __attribute__ ((packed)); + +/* Section 9.4.1.2.2 Message Identifier */ +enum { + /* 0 - 999: Allocated by GSM AD.26 */ + CBS_MSGID_LCS_EOTD_ASSIST = 1000, + CBS_MSGID_LCS_DGPS_CORRECTION = 1001, + CBS_MSGID_LCS_GPS_EPHEM_CLOCK = 1002, + CBS_MSGID_LCS_GPS_ALMANAC_OTHER = 1003, + /* 1004 - 4095: RFU */ + /* 4096 - 4223: clear text SIM data download */ + /* 4224 - 4351: secured SIM data download */ + CBS_MSGID_ETWS_EARTHQUAKE = 4352, + CBS_MSGID_ETWS_TSUNAMI = 4353, + CBS_MSGID_ETWS_EARTHQUAKE_TSUNAMI = 4354, + CBS_MSGID_ETWS_TEST = 4355, + CBS_MSGID_ETWS_OTHER = 4356, + /* 4357 - 4359: ETWS RFU */ + /* 4360 - 4369: RFU */ + CBS_MSGID_CMAS_PRESIDENTIAL = 4370, + CBS_MSGID_CMAS_EXTREME_IMMEDIATE_OBSERVED = 4371, + CBS_MSGID_CMAS_EXTREME_IMMEDIATE_LIKELY = 4372, + CBS_MSGID_CMAS_EXTREME_EXPECTED_OBSERVED = 4373, + CBS_MSGID_CMAS_EXTREME_EXPECTED_LIKELY = 4374, + CBS_MSGID_CMAS_SEVERE_IMMEDIATE_OBSERVED = 4375, + CBS_MSGID_CMAS_SEVERE_IMMEDIATE_LIKELY = 4376, + CBS_MSGID_CMAS_SEVERE_EXPECTED_OBSERVED = 4377, + CBS_MSGID_CMAS_SEVERE_EXPECTED_LIKELY = 4378, + CBS_MSGID_CMAS_AMBER = 4379, + CBS_MSGID_CMAS_MONTHLY_TEST = 4380, + CBS_MSGID_CMAS_EXERCISE = 4381, + CBS_MSGID_CMAS_OPERATOR_DEFINED = 4382, + CBS_MSGID_CMAS_PRESIDENTIAL_ADDL = 4383, + CBS_MSGID_CMAS_EXTREME_IMMEDIATE_OBSERVED_ADDL = 4384, + CBS_MSGID_CMAS_EXTREME_IMMEDIATE_LIKELY_ADDL = 4385, + CBS_MSGID_CMAS_EXTREME_EXPECTED_OBSERVED_ADDL = 4386, + CBS_MSGID_CMAS_EXTREME_EXPECTED_LIKELY_ADDL = 4387, + CBS_MSGID_CMAS_SEVERE_IMMEDIATE_OBSERVED_ADDL = 4388, + CBS_MSGID_CMAS_SEVERE_IMMEDIATE_LIKELY_ADDL = 4389, + CBS_MSGID_CMAS_SEVERE_EXPECTED_OBSERVED_ADDL = 4390, + CBS_MSGID_CMAS_SEVERE_EXPECTED_LIKELY_ADDL = 4391, + CBS_MSGID_CMAS_AMBER_ADDL = 4392, + CBS_MSGID_CMAS_MONTHLY_TEST_ADDL = 4393, + CBS_MSGID_CMAS_EXERCISE_ADDL = 4394, + CBS_MSGID_CMAS_OPERATOR_DEFINED_ADDL = 4395, + /* 4396 - 4399: RFU CMAS / EU-Alert */ + /* 4400 - 6399: RFU PWS */ + CBS_MSGID_EU_INFO_LOCAL_LANG = 6400, + /* 6491 - 40959: RFU */ + /* 40960 - 45055: PLMN operator specific range */ + /* 45056 - 61439: PLMN operator specific range RFU */ + /* 61440 - 65534: PLMN operator specific range */ + CBS_MSGID_RESERVED = 65535 +}; + +/* Section 9.4.1.3.2 ETWS Primary Notification Message Parameter */ +struct gsm23041_etws_primary_gsm { + uint16_t serial_nr; + uint16_t message_id; + uint16_t warning_type; + uint8_t warning_sec_info[50]; +} __attribute__ ((packed)); + + +/* Section 9.4.2.2 UMTS Message Parameter */ +struct gsm23041_msg_param_umts { + uint8_t msg_type; /* as per TS 25.324 */ + uint16_t message_id; + uint16_t serial_nr; + uint8_t dcs; + uint8_t content[0]; +} __attribute__ ((packed)); |