Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 1 | /* From GSM08.08 / 3GPP TS 48.008 version 11.7.0 Release 11 */ |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 2 | |
Sylvain Munaut | 12ba778 | 2014-06-16 10:13:40 +0200 | [diff] [blame] | 3 | #pragma once |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 4 | |
| 5 | #include <stdlib.h> |
| 6 | |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 7 | /* |
| 8 | * this is from GSM 03.03 CGI but is copied in GSM 08.08 |
| 9 | * in § 3.2.2.27 for Cell Identifier List |
| 10 | */ |
| 11 | enum CELL_IDENT { |
| 12 | CELL_IDENT_WHOLE_GLOBAL = 0, |
| 13 | CELL_IDENT_LAC_AND_CI = 1, |
| 14 | CELL_IDENT_CI = 2, |
| 15 | CELL_IDENT_NO_CELL = 3, |
| 16 | CELL_IDENT_LAI_AND_LAC = 4, |
| 17 | CELL_IDENT_LAC = 5, |
| 18 | CELL_IDENT_BSS = 6, |
| 19 | CELL_IDENT_UTRAN_PLMN_LAC_RNC = 8, |
| 20 | CELL_IDENT_UTRAN_RNC = 9, |
| 21 | CELL_IDENT_UTRAN_LAC_RNC = 10, |
| 22 | }; |
| 23 | |
| 24 | |
| 25 | /* GSM 08.06 § 6.3 */ |
| 26 | enum BSSAP_MSG_TYPE { |
| 27 | BSSAP_MSG_BSS_MANAGEMENT = 0x0, |
| 28 | BSSAP_MSG_DTAP = 0x1, |
| 29 | }; |
| 30 | |
| 31 | struct bssmap_header { |
Sylvain Munaut | a074ec4 | 2010-04-28 10:05:29 +0200 | [diff] [blame] | 32 | uint8_t type; |
| 33 | uint8_t length; |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 34 | } __attribute__((packed)); |
| 35 | |
| 36 | struct dtap_header { |
Sylvain Munaut | a074ec4 | 2010-04-28 10:05:29 +0200 | [diff] [blame] | 37 | uint8_t type; |
| 38 | uint8_t link_id; |
| 39 | uint8_t length; |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 40 | } __attribute__((packed)); |
| 41 | |
| 42 | |
| 43 | enum BSS_MAP_MSG_TYPE { |
| 44 | BSS_MAP_MSG_RESERVED_0 = 0, |
| 45 | |
| 46 | /* ASSIGNMENT MESSAGES */ |
| 47 | BSS_MAP_MSG_ASSIGMENT_RQST = 1, |
| 48 | BSS_MAP_MSG_ASSIGMENT_COMPLETE = 2, |
| 49 | BSS_MAP_MSG_ASSIGMENT_FAILURE = 3, |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 50 | BSS_MAP_MSG_CHAN_MOD_RQST = 8, |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 51 | |
| 52 | /* HANDOVER MESSAGES */ |
| 53 | BSS_MAP_MSG_HANDOVER_RQST = 16, |
| 54 | BSS_MAP_MSG_HANDOVER_REQUIRED = 17, |
| 55 | BSS_MAP_MSG_HANDOVER_RQST_ACKNOWLEDGE= 18, |
| 56 | BSS_MAP_MSG_HANDOVER_CMD = 19, |
| 57 | BSS_MAP_MSG_HANDOVER_COMPLETE = 20, |
| 58 | BSS_MAP_MSG_HANDOVER_SUCCEEDED = 21, |
| 59 | BSS_MAP_MSG_HANDOVER_FAILURE = 22, |
| 60 | BSS_MAP_MSG_HANDOVER_PERFORMED = 23, |
| 61 | BSS_MAP_MSG_HANDOVER_CANDIDATE_ENQUIRE = 24, |
| 62 | BSS_MAP_MSG_HANDOVER_CANDIDATE_RESPONSE = 25, |
| 63 | BSS_MAP_MSG_HANDOVER_REQUIRED_REJECT = 26, |
| 64 | BSS_MAP_MSG_HANDOVER_DETECT = 27, |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 65 | BSS_MAP_MSG_INT_HANDOVER_REQUIRED = 0x70, |
| 66 | BSS_MAP_MSG_INT_HANDOVER_REQUIRED_REJ = 0x71, |
| 67 | BSS_MAP_MSG_INT_HANDOVER_CMD = 0x72, |
| 68 | BSS_MAP_MSG_INT_HANDOVER_ENQUIRY = 0x73, |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 69 | |
| 70 | /* RELEASE MESSAGES */ |
| 71 | BSS_MAP_MSG_CLEAR_CMD = 32, |
| 72 | BSS_MAP_MSG_CLEAR_COMPLETE = 33, |
| 73 | BSS_MAP_MSG_CLEAR_RQST = 34, |
| 74 | BSS_MAP_MSG_RESERVED_1 = 35, |
| 75 | BSS_MAP_MSG_RESERVED_2 = 36, |
| 76 | BSS_MAP_MSG_SAPI_N_REJECT = 37, |
| 77 | BSS_MAP_MSG_CONFUSION = 38, |
| 78 | |
| 79 | /* OTHER CONNECTION RELATED MESSAGES */ |
| 80 | BSS_MAP_MSG_SUSPEND = 40, |
| 81 | BSS_MAP_MSG_RESUME = 41, |
| 82 | BSS_MAP_MSG_CONNECTION_ORIENTED_INFORMATION = 42, |
| 83 | BSS_MAP_MSG_PERFORM_LOCATION_RQST = 43, |
| 84 | BSS_MAP_MSG_LSA_INFORMATION = 44, |
| 85 | BSS_MAP_MSG_PERFORM_LOCATION_RESPONSE = 45, |
| 86 | BSS_MAP_MSG_PERFORM_LOCATION_ABORT = 46, |
| 87 | BSS_MAP_MSG_COMMON_ID = 47, |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 88 | BSS_MAP_MSG_REROUTE_CMD = 0x78, |
| 89 | BSS_MAP_MSG_REROUTE_COMPLETE = 0x79, |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 90 | |
| 91 | /* GENERAL MESSAGES */ |
| 92 | BSS_MAP_MSG_RESET = 48, |
| 93 | BSS_MAP_MSG_RESET_ACKNOWLEDGE = 49, |
| 94 | BSS_MAP_MSG_OVERLOAD = 50, |
| 95 | BSS_MAP_MSG_RESERVED_3 = 51, |
| 96 | BSS_MAP_MSG_RESET_CIRCUIT = 52, |
| 97 | BSS_MAP_MSG_RESET_CIRCUIT_ACKNOWLEDGE = 53, |
| 98 | BSS_MAP_MSG_MSC_INVOKE_TRACE = 54, |
| 99 | BSS_MAP_MSG_BSS_INVOKE_TRACE = 55, |
| 100 | BSS_MAP_MSG_CONNECTIONLESS_INFORMATION = 58, |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 101 | BSS_MAP_MSG_RESET_IP_RSRC = 0x3d, |
| 102 | BSS_MAP_MSG_RESET_IP_RSRC_ACK = 0x3e, |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 103 | |
| 104 | /* TERRESTRIAL RESOURCE MESSAGES */ |
| 105 | BSS_MAP_MSG_BLOCK = 64, |
| 106 | BSS_MAP_MSG_BLOCKING_ACKNOWLEDGE = 65, |
| 107 | BSS_MAP_MSG_UNBLOCK = 66, |
| 108 | BSS_MAP_MSG_UNBLOCKING_ACKNOWLEDGE = 67, |
| 109 | BSS_MAP_MSG_CIRCUIT_GROUP_BLOCK = 68, |
| 110 | BSS_MAP_MSG_CIRCUIT_GROUP_BLOCKING_ACKNOWLEDGE = 69, |
| 111 | BSS_MAP_MSG_CIRCUIT_GROUP_UNBLOCK = 70, |
| 112 | BSS_MAP_MSG_CIRCUIT_GROUP_UNBLOCKING_ACKNOWLEDGE = 71, |
| 113 | BSS_MAP_MSG_UNEQUIPPED_CIRCUIT = 72, |
| 114 | BSS_MAP_MSG_CHANGE_CIRCUIT = 78, |
| 115 | BSS_MAP_MSG_CHANGE_CIRCUIT_ACKNOWLEDGE = 79, |
| 116 | |
| 117 | /* RADIO RESOURCE MESSAGES */ |
| 118 | BSS_MAP_MSG_RESOURCE_RQST = 80, |
| 119 | BSS_MAP_MSG_RESOURCE_INDICATION = 81, |
| 120 | BSS_MAP_MSG_PAGING = 82, |
| 121 | BSS_MAP_MSG_CIPHER_MODE_CMD = 83, |
| 122 | BSS_MAP_MSG_CLASSMARK_UPDATE = 84, |
| 123 | BSS_MAP_MSG_CIPHER_MODE_COMPLETE = 85, |
| 124 | BSS_MAP_MSG_QUEUING_INDICATION = 86, |
| 125 | BSS_MAP_MSG_COMPLETE_LAYER_3 = 87, |
| 126 | BSS_MAP_MSG_CLASSMARK_RQST = 88, |
| 127 | BSS_MAP_MSG_CIPHER_MODE_REJECT = 89, |
| 128 | BSS_MAP_MSG_LOAD_INDICATION = 90, |
| 129 | |
| 130 | /* VGCS/VBS */ |
| 131 | BSS_MAP_MSG_VGCS_VBS_SETUP = 4, |
| 132 | BSS_MAP_MSG_VGCS_VBS_SETUP_ACK = 5, |
| 133 | BSS_MAP_MSG_VGCS_VBS_SETUP_REFUSE = 6, |
| 134 | BSS_MAP_MSG_VGCS_VBS_ASSIGNMENT_RQST = 7, |
| 135 | BSS_MAP_MSG_VGCS_VBS_ASSIGNMENT_RESULT = 28, |
| 136 | BSS_MAP_MSG_VGCS_VBS_ASSIGNMENT_FAILURE = 29, |
| 137 | BSS_MAP_MSG_VGCS_VBS_QUEUING_INDICATION = 30, |
| 138 | BSS_MAP_MSG_UPLINK_RQST = 31, |
| 139 | BSS_MAP_MSG_UPLINK_RQST_ACKNOWLEDGE = 39, |
| 140 | BSS_MAP_MSG_UPLINK_RQST_CONFIRMATION = 73, |
| 141 | BSS_MAP_MSG_UPLINK_RELEASE_INDICATION = 74, |
| 142 | BSS_MAP_MSG_UPLINK_REJECT_CMD = 75, |
| 143 | BSS_MAP_MSG_UPLINK_RELEASE_CMD = 76, |
| 144 | BSS_MAP_MSG_UPLINK_SEIZED_CMD = 77, |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 145 | BSS_MAP_MSG_VGCS_ADDL_INFO = 0x60, |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 146 | BSS_MAP_MSG_NOTIFICATION_DATA = 0x62, |
| 147 | BSS_MAP_MSG_UPLINK_APP_DATA = 0x63, |
| 148 | |
| 149 | /* LOCAL SWITCHING */ |
| 150 | BSS_MAP_MSG_LCLS_CONNECT_CTRL = 0x74, |
| 151 | BSS_MAP_MSG_LCLS_CONNECT_CTRL_ACK = 0x75, |
| 152 | BSS_MAP_MSG_LCLS_NOTIFICATION = 0x76, |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 153 | }; |
| 154 | |
| 155 | enum GSM0808_IE_CODING { |
| 156 | GSM0808_IE_CIRCUIT_IDENTITY_CODE = 1, |
| 157 | GSM0808_IE_RESERVED_0 = 2, |
| 158 | GSM0808_IE_RESOURCE_AVAILABLE = 3, |
| 159 | GSM0808_IE_CAUSE = 4, |
| 160 | GSM0808_IE_CELL_IDENTIFIER = 5, |
| 161 | GSM0808_IE_PRIORITY = 6, |
| 162 | GSM0808_IE_LAYER_3_HEADER_INFORMATION = 7, |
| 163 | GSM0808_IE_IMSI = 8, |
| 164 | GSM0808_IE_TMSI = 9, |
| 165 | GSM0808_IE_ENCRYPTION_INFORMATION = 10, |
| 166 | GSM0808_IE_CHANNEL_TYPE = 11, |
| 167 | GSM0808_IE_PERIODICITY = 12, |
| 168 | GSM0808_IE_EXTENDED_RESOURCE_INDICATOR = 13, |
| 169 | GSM0808_IE_NUMBER_OF_MSS = 14, |
| 170 | GSM0808_IE_RESERVED_1 = 15, |
| 171 | GSM0808_IE_RESERVED_2 = 16, |
| 172 | GSM0808_IE_RESERVED_3 = 17, |
| 173 | GSM0808_IE_CLASSMARK_INFORMATION_T2 = 18, |
| 174 | GSM0808_IE_CLASSMARK_INFORMATION_T3 = 19, |
| 175 | GSM0808_IE_INTERFERENCE_BAND_TO_USE = 20, |
| 176 | GSM0808_IE_RR_CAUSE = 21, |
| 177 | GSM0808_IE_RESERVED_4 = 22, |
| 178 | GSM0808_IE_LAYER_3_INFORMATION = 23, |
| 179 | GSM0808_IE_DLCI = 24, |
| 180 | GSM0808_IE_DOWNLINK_DTX_FLAG = 25, |
| 181 | GSM0808_IE_CELL_IDENTIFIER_LIST = 26, |
| 182 | GSM0808_IE_RESPONSE_RQST = 27, |
| 183 | GSM0808_IE_RESOURCE_INDICATION_METHOD = 28, |
| 184 | GSM0808_IE_CLASSMARK_INFORMATION_TYPE_1 = 29, |
| 185 | GSM0808_IE_CIRCUIT_IDENTITY_CODE_LIST = 30, |
| 186 | GSM0808_IE_DIAGNOSTIC = 31, |
| 187 | GSM0808_IE_LAYER_3_MESSAGE_CONTENTS = 32, |
| 188 | GSM0808_IE_CHOSEN_CHANNEL = 33, |
| 189 | GSM0808_IE_TOTAL_RESOURCE_ACCESSIBLE = 34, |
| 190 | GSM0808_IE_CIPHER_RESPONSE_MODE = 35, |
| 191 | GSM0808_IE_CHANNEL_NEEDED = 36, |
| 192 | GSM0808_IE_TRACE_TYPE = 37, |
| 193 | GSM0808_IE_TRIGGERID = 38, |
| 194 | GSM0808_IE_TRACE_REFERENCE = 39, |
| 195 | GSM0808_IE_TRANSACTIONID = 40, |
| 196 | GSM0808_IE_MOBILE_IDENTITY = 41, |
| 197 | GSM0808_IE_OMCID = 42, |
| 198 | GSM0808_IE_FORWARD_INDICATOR = 43, |
| 199 | GSM0808_IE_CHOSEN_ENCR_ALG = 44, |
| 200 | GSM0808_IE_CIRCUIT_POOL = 45, |
| 201 | GSM0808_IE_CIRCUIT_POOL_LIST = 46, |
| 202 | GSM0808_IE_TIME_INDICATION = 47, |
| 203 | GSM0808_IE_RESOURCE_SITUATION = 48, |
| 204 | GSM0808_IE_CURRENT_CHANNEL_TYPE_1 = 49, |
| 205 | GSM0808_IE_QUEUEING_INDICATOR = 50, |
| 206 | GSM0808_IE_SPEECH_VERSION = 64, |
| 207 | GSM0808_IE_ASSIGNMENT_REQUIREMENT = 51, |
| 208 | GSM0808_IE_TALKER_FLAG = 53, |
| 209 | GSM0808_IE_CONNECTION_RELEASE_RQSTED = 54, |
| 210 | GSM0808_IE_GROUP_CALL_REFERENCE = 55, |
| 211 | GSM0808_IE_EMLPP_PRIORITY = 56, |
| 212 | GSM0808_IE_CONFIG_EVO_INDI = 57, |
| 213 | GSM0808_IE_OLD_BSS_TO_NEW_BSS_INFORMATION = 58, |
| 214 | GSM0808_IE_LSA_IDENTIFIER = 59, |
| 215 | GSM0808_IE_LSA_IDENTIFIER_LIST = 60, |
| 216 | GSM0808_IE_LSA_INFORMATION = 61, |
| 217 | GSM0808_IE_LCS_QOS = 62, |
| 218 | GSM0808_IE_LSA_ACCESS_CTRL_SUPPR = 63, |
| 219 | GSM0808_IE_LCS_PRIORITY = 67, |
| 220 | GSM0808_IE_LOCATION_TYPE = 68, |
| 221 | GSM0808_IE_LOCATION_ESTIMATE = 69, |
| 222 | GSM0808_IE_POSITIONING_DATA = 70, |
| 223 | GSM0808_IE_LCS_CAUSE = 71, |
| 224 | GSM0808_IE_LCS_CLIENT_TYPE = 72, |
| 225 | GSM0808_IE_APDU = 73, |
| 226 | GSM0808_IE_NETWORK_ELEMENT_IDENTITY = 74, |
| 227 | GSM0808_IE_GPS_ASSISTANCE_DATA = 75, |
| 228 | GSM0808_IE_DECIPHERING_KEYS = 76, |
| 229 | GSM0808_IE_RETURN_ERROR_RQST = 77, |
| 230 | GSM0808_IE_RETURN_ERROR_CAUSE = 78, |
| 231 | GSM0808_IE_SEGMENTATION = 79, |
| 232 | GSM0808_IE_SERVICE_HANDOVER = 80, |
| 233 | GSM0808_IE_SOURCE_RNC_TO_TARGET_RNC_TRANSPARENT_UMTS = 81, |
| 234 | GSM0808_IE_SOURCE_RNC_TO_TARGET_RNC_TRANSPARENT_CDMA2000= 82, |
| 235 | GSM0808_IE_RESERVED_5 = 65, |
| 236 | GSM0808_IE_RESERVED_6 = 66, |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 237 | GSM0808_IE_GERAN_CLASSMARK = 0x53, |
| 238 | GSM0808_IE_GERAN_BSC_CONTAINER = 0x54, |
| 239 | GSM0808_IE_NEW_BSS_TO_OLD_BSS_INFO = 0x61, |
| 240 | GSM0800_IE_INTER_SYSTEM_INFO = 0x63, |
| 241 | GSM0808_IE_SNA_ACCESS_INFO = 0x64, |
| 242 | GSM0808_IE_VSTK_RAND_INFO = 0x65, |
| 243 | GSM0808_IE_VSTK_INFO = 0x66, |
| 244 | GSM0808_IE_PAGING_INFO = 0x67, |
| 245 | GSM0808_IE_IMEI = 0x68, |
| 246 | GSM0808_IE_VELOCITY_ESTIMATE = 0x55, |
| 247 | GSM0808_IE_VGCS_FEATURE_FLAGS = 0x69, |
| 248 | GSM0808_IE_TALKER_PRIORITY = 0x6a, |
| 249 | GSM0808_IE_EMERGENCY_SET_INDICATION = 0x6b, |
| 250 | GSM0808_IE_TALKER_IDENTITY = 0x6c, |
| 251 | GSM0808_IE_CELL_ID_LIST_SEGMENT = 0x6d, |
Harald Welte | 92107df | 2014-06-21 23:16:20 +0200 | [diff] [blame] | 252 | GSM0808_IE_SMS_TO_VGCS = 0x6e, |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 253 | GSM0808_IE_VGCS_TALKER_MODE = 0x6f, |
| 254 | GSM0808_IE_VGCS_VBS_CELL_STATUS = 0x70, |
| 255 | GSM0808_IE_CELL_ID_LIST_SEG_EST_CELLS = 0x71, |
| 256 | GSM0808_IE_CELL_ID_LIST_SEG_CELLS_TBE = 0x72, |
| 257 | GSM0808_IE_CELL_ID_LIST_SEG_REL_CELLS = 0x73, |
| 258 | GSM0808_IE_CELL_ID_LIST_SEG_NE_CELLS = 0x74, |
| 259 | GSM0808_IE_GANSS_ASSISTANCE_DATA = 0x75, |
| 260 | GSM0808_IE_GANSS_POSITIONING_DATA = 0x76, |
| 261 | GSM0808_IE_GANSS_LOCATION_TYPE = 0x77, |
| 262 | GSM0808_IE_APP_DATA = 0x78, |
| 263 | GSM0808_IE_DATA_IDENTITY = 0x79, |
| 264 | GSM0808_IE_APP_DATA_INFO = 0x7a, |
| 265 | GSM0808_IE_MSISDN = 0x7b, |
| 266 | GSM0808_IE_AOIP_TRASP_ADDR = 0x7c, |
| 267 | GSM0808_IE_SPEECH_CODEC_LIST = 0x7d, |
| 268 | GSM0808_IE_SPEECH_CODEC = 0x7e, |
| 269 | GSM0808_IE_CALL_ID = 0x7f, |
| 270 | GSM0808_IE_CALL_ID_LIST = 0x80, |
| 271 | GSM0808_IE_A_IF_SEL_FOR_RESET = 0x81, |
| 272 | GSM0808_IE_KC_128 = 0x83, |
| 273 | GSM0808_IE_CSG_IDENTIFIER = 0x84, |
| 274 | GSM0808_IE_REDIR_ATTEMPT_FLAG = 0x85, |
| 275 | GSM0808_IE_REROUTE_REJ_CAUSE = 0x86, |
| 276 | GSM0808_IE_SEND_SEQ_NUM = 0x87, |
| 277 | GSM0808_IE_REROUTE_COMPL_OUTCOME = 0x88, |
| 278 | GSM0808_IE_GLOBAL_CALL_REF = 0x89, |
| 279 | GSM0808_IE_LCLS_CONFIG = 0x8a, |
| 280 | GSM0808_IE_LCLS_CONN_STATUS_CTRL = 0x8b, |
Harald Welte | 92107df | 2014-06-21 23:16:20 +0200 | [diff] [blame] | 281 | GSM0808_IE_LCLS_CORR_NOT_NEEDED = 0x8c, |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 282 | GSM0808_IE_LCLS_BSS_STATUS = 0x8d, |
| 283 | GSM0808_IE_LCLS_BREAK_REQ = 0x8e, |
| 284 | GSM0808_IE_CSFB_INDICATION = 0x8f, |
| 285 | GSM0808_IE_CS_TO_PS_SRVCC = 0x90, |
| 286 | GSM0808_IE_SRC_ENB_TO_TGT_ENB_TRANSP = 0x91, |
| 287 | GSM0808_IE_CS_TO_PS_SRVCC_IND = 0x92, |
| 288 | GSM0808_IE_CN_TO_MS_TRANSP_INFO = 0x93, |
| 289 | GSM0808_IE_SELECTED_PLMN_ID = 0x94, |
| 290 | GSM0808_IE_LAST_USED_EUTRAN_PLMN_ID = 0x95, |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 291 | }; |
| 292 | |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 293 | /* GSM 08.08 3.2.2.5 Cause */ |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 294 | enum gsm0808_cause { |
| 295 | GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE = 0, |
| 296 | GSM0808_CAUSE_RADIO_INTERFACE_FAILURE = 1, |
| 297 | GSM0808_CAUSE_UPLINK_QUALITY = 2, |
| 298 | GSM0808_CAUSE_UPLINK_STRENGTH = 3, |
| 299 | GSM0808_CAUSE_DOWNLINK_QUALITY = 4, |
| 300 | GSM0808_CAUSE_DOWNLINK_STRENGTH = 5, |
| 301 | GSM0808_CAUSE_DISTANCE = 6, |
| 302 | GSM0808_CAUSE_O_AND_M_INTERVENTION = 7, |
| 303 | GSM0808_CAUSE_RESPONSE_TO_MSC_INVOCATION = 8, |
| 304 | GSM0808_CAUSE_CALL_CONTROL = 9, |
| 305 | GSM0808_CAUSE_RADIO_INTERFACE_FAILURE_REVERSION = 10, |
| 306 | GSM0808_CAUSE_HANDOVER_SUCCESSFUL = 11, |
| 307 | GSM0808_CAUSE_BETTER_CELL = 12, |
| 308 | GSM0808_CAUSE_DIRECTED_RETRY = 13, |
| 309 | GSM0808_CAUSE_JOINED_GROUP_CALL_CHANNEL = 14, |
| 310 | GSM0808_CAUSE_TRAFFIC = 15, |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 311 | GSM0808_CAUSE_REDUCE_LOAD_IN_SERVING_CELL = 0x10, |
| 312 | GSM0808_CAUSE_TRAFFIC_LOAD_IN_TGT_HIGHER_THAN_IN_SRC_CELL = 0x11, |
| 313 | GSM0808_CAUSE_RELOCATION_TRIGGERED = 0x12, |
| 314 | GSM0808_CAUSE_REQUSTED_OPT_NOT_AUTHORISED = 0x14, |
| 315 | GSM0808_CAUSE_ALT_CHAN_CONFIG_REQUESTED = 0x15, |
| 316 | GSM0808_CAUSE_RESP_TO_INT_HO_ENQ_MSG = 0x16, |
| 317 | GSM0808_CAUSE_INT_HO_ENQUIRY_REJECT = 0x17, |
| 318 | GSM0808_CAUSE_REDUNDANCY_LEVEL_NOT_ADEQUATE = 0x18, |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 319 | GSM0808_CAUSE_EQUIPMENT_FAILURE = 32, |
| 320 | GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE = 33, |
| 321 | GSM0808_CAUSE_RQSTED_TERRESTRIAL_RESOURCE_UNAVAILABLE = 34, |
| 322 | GSM0808_CAUSE_CCCH_OVERLOAD = 35, |
| 323 | GSM0808_CAUSE_PROCESSOR_OVERLOAD = 36, |
| 324 | GSM0808_CAUSE_BSS_NOT_EQUIPPED = 37, |
| 325 | GSM0808_CAUSE_MS_NOT_EQUIPPED = 38, |
| 326 | GSM0808_CAUSE_INVALID_CELL = 39, |
| 327 | GSM0808_CAUSE_TRAFFIC_LOAD = 40, |
| 328 | GSM0808_CAUSE_PREEMPTION = 41, |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 329 | GSM0808_CAUSE_DTM_HO_SGSN_FAILURE = 0x2a, |
| 330 | GSM0808_CAUSE_DTM_HO_PS_ALLOC_FAILURE = 0x2b, |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 331 | GSM0808_CAUSE_RQSTED_TRANSCODING_RATE_ADAPTION_UNAVAILABLE = 48, |
| 332 | GSM0808_CAUSE_CIRCUIT_POOL_MISMATCH = 49, |
| 333 | GSM0808_CAUSE_SWITCH_CIRCUIT_POOL = 50, |
| 334 | GSM0808_CAUSE_RQSTED_SPEECH_VERSION_UNAVAILABLE = 51, |
| 335 | GSM0808_CAUSE_LSA_NOT_ALLOWED = 52, |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 336 | GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_UNAVAIL = 0x35, |
| 337 | GSM0808_CAUSE_REQ_A_IF_TYPE_UNAVAIL = 0x36, |
| 338 | GSM0808_CAUSE_INVALID_CSG_CELL = 0x37, |
| 339 | GSM0808_CAUSE_REQ_REDUND_LEVEL_NOT_AVAIL = 0x3f, |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 340 | GSM0808_CAUSE_CIPHERING_ALGORITHM_NOT_SUPPORTED = 64, |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 341 | GSM0808_CAUSE_GERAN_IU_MODE_FAILURE = 0x41, |
| 342 | GSM0808_CAUSE_INC_RELOC_NOT_SUPP_DT_PUESBINE_FEATURE = 0x42, |
| 343 | GSM0808_CAUSE_ACCESS_RESTRICTED_DUE_TO_SHARED_NETWORKS = 0x43, |
| 344 | GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_NOT_SUPP = 0x44, |
| 345 | GSM0808_CAUSE_REQ_A_IF_TYPE_NOT_SUPP = 0x45, |
| 346 | GSM0808_CAUSE_REQ_REDUND_LVL_NOT_SUPP = 0x46, |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 347 | GSM0808_CAUSE_TERRESTRIAL_CIRCUIT_ALREADY_ALLOCATED = 80, |
| 348 | GSM0808_CAUSE_INVALID_MESSAGE_CONTENTS = 81, |
| 349 | GSM0808_CAUSE_INFORMATION_ELEMENT_OR_FIELD_MISSING = 82, |
| 350 | GSM0808_CAUSE_INCORRECT_VALUE = 83, |
| 351 | GSM0808_CAUSE_UNKNOWN_MESSAGE_TYPE = 84, |
| 352 | GSM0808_CAUSE_UNKNOWN_INFORMATION_ELEMENT = 85, |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 353 | GSM0808_CAUSE_DTM_HO_INVALID_PS_IND = 0x56, |
| 354 | GSM0808_CAUSE_CALL_ID_ALREADY_ALLOC = 0x57, |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 355 | GSM0808_CAUSE_PROTOCOL_ERROR_BETWEEN_BSS_AND_MSC = 96, |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 356 | GSM0808_CAUSE_VGCS_VBS_CALL_NON_EXISTANT = 0x61, |
| 357 | GSM0808_CAUSE_DTM_HO_TIMER_EXPIRY = 0x62, |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 358 | }; |
| 359 | |
| 360 | /* GSM 08.08 3.2.2.11 Channel Type */ |
| 361 | enum gsm0808_chan_indicator { |
| 362 | GSM0808_CHAN_SPEECH = 1, |
| 363 | GSM0808_CHAN_DATA = 2, |
| 364 | GSM0808_CHAN_SIGN = 3, |
| 365 | }; |
| 366 | |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 367 | /* GSM 08.08 3.2.2.11 Channel Type */ |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 368 | enum gsm0808_chan_rate_type_data { |
| 369 | GSM0808_DATA_FULL_BM = 0x8, |
| 370 | GSM0808_DATA_HALF_LM = 0x9, |
| 371 | GSM0808_DATA_FULL_RPREF = 0xa, |
| 372 | GSM0808_DATA_HALF_PREF = 0xb, |
| 373 | GSM0808_DATA_FULL_PREF_NO_CHANGE = 0x1a, |
| 374 | GSM0808_DATA_HALF_PREF_NO_CHANGE = 0x1b, |
| 375 | GSM0808_DATA_MULTI_MASK = 0x20, |
| 376 | GSM0808_DATA_MULTI_MASK_NO_CHANGE = 0x30, |
| 377 | }; |
| 378 | |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 379 | /* GSM 08.08 3.2.2.11 Channel Type */ |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 380 | enum gsm0808_chan_rate_type_speech { |
| 381 | GSM0808_SPEECH_FULL_BM = 0x8, |
| 382 | GSM0808_SPEECH_HALF_LM = 0x9, |
| 383 | GSM0808_SPEECH_FULL_PREF= 0xa, |
| 384 | GSM0808_SPEECH_HALF_PREF= 0xb, |
| 385 | GSM0808_SPEECH_FULL_PREF_NO_CHANGE = 0x1a, |
| 386 | GSM0808_SPEECH_HALF_PREF_NO_CHANGE = 0x1b, |
| 387 | GSM0808_SPEECH_PERM = 0xf, |
| 388 | GSM0808_SPEECH_PERM_NO_CHANGE = 0x1f, |
| 389 | }; |
| 390 | |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 391 | /* GSM 08.08 3.2.2.11 Channel Type */ |
Holger Hans Peter Freyther | ebaed74 | 2010-04-15 03:14:51 +0200 | [diff] [blame] | 392 | enum gsm0808_permitted_speech { |
| 393 | GSM0808_PERM_FR1 = 0x01, |
| 394 | GSM0808_PERM_FR2 = 0x11, |
| 395 | GSM0808_PERM_FR3 = 0x21, |
| 396 | GSM0808_PERM_HR1 = GSM0808_PERM_FR1 | 0x4, |
| 397 | GSM0808_PERM_HR2 = GSM0808_PERM_FR2 | 0x4, |
| 398 | GSM0808_PERM_HR3 = GSM0808_PERM_FR3 | 0x4, |
| 399 | }; |
Harald Welte | c8585cf | 2014-06-21 22:28:12 +0200 | [diff] [blame] | 400 | |
| 401 | /* GSM 08.08 3.2.2.44 Chosen Encryption Algorithm */ |
| 402 | enum gsm0808_chosen_enc_alg { |
| 403 | GSM0808_ALG_ID_A5_0 = 0x01, |
| 404 | GSM0808_ALG_ID_A5_1 = 0x02, |
| 405 | GSM0808_ALG_ID_A5_2 = 0x03, |
| 406 | GSM0808_ALG_ID_A5_3 = 0x04, |
| 407 | GSM0808_ALG_ID_A5_4 = 0x05, |
| 408 | GSM0808_ALG_ID_A5_5 = 0x06, |
| 409 | GSM0808_ALG_ID_A5_6 = 0x07, |
| 410 | GSM0808_ALG_ID_A5_7 = 0x08, |
| 411 | }; |
| 412 | |
| 413 | /* GSM 08.08 3.2.2.85 Paging Information */ |
| 414 | enum gsm0808_paging_info { |
| 415 | GSM0808_PAGINF_FOR_MT_CALL = 0x00, |
| 416 | GSM0808_PAGINF_FOR_SMS = 0x01, |
| 417 | GSM0808_PAGINF_FOR_USSD = 0x02, |
| 418 | }; |