diff options
-rw-r--r-- | include/osmocom/gsm/protocol/gsm_08_08.h | 120 |
1 files changed, 119 insertions, 1 deletions
diff --git a/include/osmocom/gsm/protocol/gsm_08_08.h b/include/osmocom/gsm/protocol/gsm_08_08.h index bf408eb6..6ddab5dc 100644 --- a/include/osmocom/gsm/protocol/gsm_08_08.h +++ b/include/osmocom/gsm/protocol/gsm_08_08.h @@ -1,4 +1,4 @@ -/* From GSM08.08 */ +/* From GSM08.08 / 3GPP TS 48.008 version 11.7.0 Release 11 */ #pragma once @@ -47,6 +47,7 @@ enum BSS_MAP_MSG_TYPE { BSS_MAP_MSG_ASSIGMENT_RQST = 1, BSS_MAP_MSG_ASSIGMENT_COMPLETE = 2, BSS_MAP_MSG_ASSIGMENT_FAILURE = 3, + BSS_MAP_MSG_CHAN_MOD_RQST = 8, /* HANDOVER MESSAGES */ BSS_MAP_MSG_HANDOVER_RQST = 16, @@ -61,6 +62,10 @@ enum BSS_MAP_MSG_TYPE { BSS_MAP_MSG_HANDOVER_CANDIDATE_RESPONSE = 25, BSS_MAP_MSG_HANDOVER_REQUIRED_REJECT = 26, BSS_MAP_MSG_HANDOVER_DETECT = 27, + BSS_MAP_MSG_INT_HANDOVER_REQUIRED = 0x70, + BSS_MAP_MSG_INT_HANDOVER_REQUIRED_REJ = 0x71, + BSS_MAP_MSG_INT_HANDOVER_CMD = 0x72, + BSS_MAP_MSG_INT_HANDOVER_ENQUIRY = 0x73, /* RELEASE MESSAGES */ BSS_MAP_MSG_CLEAR_CMD = 32, @@ -80,6 +85,8 @@ enum BSS_MAP_MSG_TYPE { BSS_MAP_MSG_PERFORM_LOCATION_RESPONSE = 45, BSS_MAP_MSG_PERFORM_LOCATION_ABORT = 46, BSS_MAP_MSG_COMMON_ID = 47, + BSS_MAP_MSG_REROUTE_CMD = 0x78, + BSS_MAP_MSG_REROUTE_COMPLETE = 0x79, /* GENERAL MESSAGES */ BSS_MAP_MSG_RESET = 48, @@ -91,6 +98,8 @@ enum BSS_MAP_MSG_TYPE { BSS_MAP_MSG_MSC_INVOKE_TRACE = 54, BSS_MAP_MSG_BSS_INVOKE_TRACE = 55, BSS_MAP_MSG_CONNECTIONLESS_INFORMATION = 58, + BSS_MAP_MSG_RESET_IP_RSRC = 0x3d, + BSS_MAP_MSG_RESET_IP_RSRC_ACK = 0x3e, /* TERRESTRIAL RESOURCE MESSAGES */ BSS_MAP_MSG_BLOCK = 64, @@ -133,6 +142,15 @@ enum BSS_MAP_MSG_TYPE { BSS_MAP_MSG_UPLINK_REJECT_CMD = 75, BSS_MAP_MSG_UPLINK_RELEASE_CMD = 76, BSS_MAP_MSG_UPLINK_SEIZED_CMD = 77, + BSS_MAP_MSG_VGCS_ADDL_INFO = 0x60, + + BSS_MAP_MSG_NOTIFICATION_DATA = 0x62, + BSS_MAP_MSG_UPLINK_APP_DATA = 0x63, + + /* LOCAL SWITCHING */ + BSS_MAP_MSG_LCLS_CONNECT_CTRL = 0x74, + BSS_MAP_MSG_LCLS_CONNECT_CTRL_ACK = 0x75, + BSS_MAP_MSG_LCLS_NOTIFICATION = 0x76, }; enum GSM0808_IE_CODING { @@ -217,8 +235,62 @@ enum GSM0808_IE_CODING { GSM0808_IE_SOURCE_RNC_TO_TARGET_RNC_TRANSPARENT_CDMA2000= 82, GSM0808_IE_RESERVED_5 = 65, GSM0808_IE_RESERVED_6 = 66, + GSM0808_IE_GERAN_CLASSMARK = 0x53, + GSM0808_IE_GERAN_BSC_CONTAINER = 0x54, + GSM0808_IE_NEW_BSS_TO_OLD_BSS_INFO = 0x61, + GSM0800_IE_INTER_SYSTEM_INFO = 0x63, + GSM0808_IE_SNA_ACCESS_INFO = 0x64, + GSM0808_IE_VSTK_RAND_INFO = 0x65, + GSM0808_IE_VSTK_INFO = 0x66, + GSM0808_IE_PAGING_INFO = 0x67, + GSM0808_IE_IMEI = 0x68, + GSM0808_IE_VELOCITY_ESTIMATE = 0x55, + GSM0808_IE_VGCS_FEATURE_FLAGS = 0x69, + GSM0808_IE_TALKER_PRIORITY = 0x6a, + GSM0808_IE_EMERGENCY_SET_INDICATION = 0x6b, + GSM0808_IE_TALKER_IDENTITY = 0x6c, + GSM0808_IE_CELL_ID_LIST_SEGMENT = 0x6d, + GSM0808_IE_VGCS_TALKER_MODE = 0x6f, + GSM0808_IE_VGCS_VBS_CELL_STATUS = 0x70, + GSM0808_IE_CELL_ID_LIST_SEG_EST_CELLS = 0x71, + GSM0808_IE_CELL_ID_LIST_SEG_CELLS_TBE = 0x72, + GSM0808_IE_CELL_ID_LIST_SEG_REL_CELLS = 0x73, + GSM0808_IE_CELL_ID_LIST_SEG_NE_CELLS = 0x74, + GSM0808_IE_GANSS_ASSISTANCE_DATA = 0x75, + GSM0808_IE_GANSS_POSITIONING_DATA = 0x76, + GSM0808_IE_GANSS_LOCATION_TYPE = 0x77, + GSM0808_IE_APP_DATA = 0x78, + GSM0808_IE_DATA_IDENTITY = 0x79, + GSM0808_IE_APP_DATA_INFO = 0x7a, + GSM0808_IE_MSISDN = 0x7b, + GSM0808_IE_AOIP_TRASP_ADDR = 0x7c, + GSM0808_IE_SPEECH_CODEC_LIST = 0x7d, + GSM0808_IE_SPEECH_CODEC = 0x7e, + GSM0808_IE_CALL_ID = 0x7f, + GSM0808_IE_CALL_ID_LIST = 0x80, + GSM0808_IE_A_IF_SEL_FOR_RESET = 0x81, + GSM0808_IE_KC_128 = 0x83, + GSM0808_IE_CSG_IDENTIFIER = 0x84, + GSM0808_IE_REDIR_ATTEMPT_FLAG = 0x85, + GSM0808_IE_REROUTE_REJ_CAUSE = 0x86, + GSM0808_IE_SEND_SEQ_NUM = 0x87, + GSM0808_IE_REROUTE_COMPL_OUTCOME = 0x88, + GSM0808_IE_GLOBAL_CALL_REF = 0x89, + GSM0808_IE_LCLS_CONFIG = 0x8a, + GSM0808_IE_LCLS_CONN_STATUS_CTRL = 0x8b, + GSM0808_IE_LCLS_CORR_NOT_NEEDEDL = 0x8c, + GSM0808_IE_LCLS_BSS_STATUS = 0x8d, + GSM0808_IE_LCLS_BREAK_REQ = 0x8e, + GSM0808_IE_CSFB_INDICATION = 0x8f, + GSM0808_IE_CS_TO_PS_SRVCC = 0x90, + GSM0808_IE_SRC_ENB_TO_TGT_ENB_TRANSP = 0x91, + GSM0808_IE_CS_TO_PS_SRVCC_IND = 0x92, + GSM0808_IE_CN_TO_MS_TRANSP_INFO = 0x93, + GSM0808_IE_SELECTED_PLMN_ID = 0x94, + GSM0808_IE_LAST_USED_EUTRAN_PLMN_ID = 0x95, }; +/* GSM 08.08 3.2.2.5 Cause */ enum gsm0808_cause { GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE = 0, GSM0808_CAUSE_RADIO_INTERFACE_FAILURE = 1, @@ -236,6 +308,14 @@ enum gsm0808_cause { GSM0808_CAUSE_DIRECTED_RETRY = 13, GSM0808_CAUSE_JOINED_GROUP_CALL_CHANNEL = 14, GSM0808_CAUSE_TRAFFIC = 15, + GSM0808_CAUSE_REDUCE_LOAD_IN_SERVING_CELL = 0x10, + GSM0808_CAUSE_TRAFFIC_LOAD_IN_TGT_HIGHER_THAN_IN_SRC_CELL = 0x11, + GSM0808_CAUSE_RELOCATION_TRIGGERED = 0x12, + GSM0808_CAUSE_REQUSTED_OPT_NOT_AUTHORISED = 0x14, + GSM0808_CAUSE_ALT_CHAN_CONFIG_REQUESTED = 0x15, + GSM0808_CAUSE_RESP_TO_INT_HO_ENQ_MSG = 0x16, + GSM0808_CAUSE_INT_HO_ENQUIRY_REJECT = 0x17, + GSM0808_CAUSE_REDUNDANCY_LEVEL_NOT_ADEQUATE = 0x18, GSM0808_CAUSE_EQUIPMENT_FAILURE = 32, GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE = 33, GSM0808_CAUSE_RQSTED_TERRESTRIAL_RESOURCE_UNAVAILABLE = 34, @@ -246,19 +326,35 @@ enum gsm0808_cause { GSM0808_CAUSE_INVALID_CELL = 39, GSM0808_CAUSE_TRAFFIC_LOAD = 40, GSM0808_CAUSE_PREEMPTION = 41, + GSM0808_CAUSE_DTM_HO_SGSN_FAILURE = 0x2a, + GSM0808_CAUSE_DTM_HO_PS_ALLOC_FAILURE = 0x2b, GSM0808_CAUSE_RQSTED_TRANSCODING_RATE_ADAPTION_UNAVAILABLE = 48, GSM0808_CAUSE_CIRCUIT_POOL_MISMATCH = 49, GSM0808_CAUSE_SWITCH_CIRCUIT_POOL = 50, GSM0808_CAUSE_RQSTED_SPEECH_VERSION_UNAVAILABLE = 51, GSM0808_CAUSE_LSA_NOT_ALLOWED = 52, + GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_UNAVAIL = 0x35, + GSM0808_CAUSE_REQ_A_IF_TYPE_UNAVAIL = 0x36, + GSM0808_CAUSE_INVALID_CSG_CELL = 0x37, + GSM0808_CAUSE_REQ_REDUND_LEVEL_NOT_AVAIL = 0x3f, GSM0808_CAUSE_CIPHERING_ALGORITHM_NOT_SUPPORTED = 64, + GSM0808_CAUSE_GERAN_IU_MODE_FAILURE = 0x41, + GSM0808_CAUSE_INC_RELOC_NOT_SUPP_DT_PUESBINE_FEATURE = 0x42, + GSM0808_CAUSE_ACCESS_RESTRICTED_DUE_TO_SHARED_NETWORKS = 0x43, + GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_NOT_SUPP = 0x44, + GSM0808_CAUSE_REQ_A_IF_TYPE_NOT_SUPP = 0x45, + GSM0808_CAUSE_REQ_REDUND_LVL_NOT_SUPP = 0x46, GSM0808_CAUSE_TERRESTRIAL_CIRCUIT_ALREADY_ALLOCATED = 80, GSM0808_CAUSE_INVALID_MESSAGE_CONTENTS = 81, GSM0808_CAUSE_INFORMATION_ELEMENT_OR_FIELD_MISSING = 82, GSM0808_CAUSE_INCORRECT_VALUE = 83, GSM0808_CAUSE_UNKNOWN_MESSAGE_TYPE = 84, GSM0808_CAUSE_UNKNOWN_INFORMATION_ELEMENT = 85, + GSM0808_CAUSE_DTM_HO_INVALID_PS_IND = 0x56, + GSM0808_CAUSE_CALL_ID_ALREADY_ALLOC = 0x57, GSM0808_CAUSE_PROTOCOL_ERROR_BETWEEN_BSS_AND_MSC = 96, + GSM0808_CAUSE_VGCS_VBS_CALL_NON_EXISTANT = 0x61, + GSM0808_CAUSE_DTM_HO_TIMER_EXPIRY = 0x62, }; /* GSM 08.08 3.2.2.11 Channel Type */ @@ -268,6 +364,7 @@ enum gsm0808_chan_indicator { GSM0808_CHAN_SIGN = 3, }; +/* GSM 08.08 3.2.2.11 Channel Type */ enum gsm0808_chan_rate_type_data { GSM0808_DATA_FULL_BM = 0x8, GSM0808_DATA_HALF_LM = 0x9, @@ -279,6 +376,7 @@ enum gsm0808_chan_rate_type_data { GSM0808_DATA_MULTI_MASK_NO_CHANGE = 0x30, }; +/* GSM 08.08 3.2.2.11 Channel Type */ enum gsm0808_chan_rate_type_speech { GSM0808_SPEECH_FULL_BM = 0x8, GSM0808_SPEECH_HALF_LM = 0x9, @@ -290,6 +388,7 @@ enum gsm0808_chan_rate_type_speech { GSM0808_SPEECH_PERM_NO_CHANGE = 0x1f, }; +/* GSM 08.08 3.2.2.11 Channel Type */ enum gsm0808_permitted_speech { GSM0808_PERM_FR1 = 0x01, GSM0808_PERM_FR2 = 0x11, @@ -298,3 +397,22 @@ enum gsm0808_permitted_speech { GSM0808_PERM_HR2 = GSM0808_PERM_FR2 | 0x4, GSM0808_PERM_HR3 = GSM0808_PERM_FR3 | 0x4, }; + +/* GSM 08.08 3.2.2.44 Chosen Encryption Algorithm */ +enum gsm0808_chosen_enc_alg { + GSM0808_ALG_ID_A5_0 = 0x01, + GSM0808_ALG_ID_A5_1 = 0x02, + GSM0808_ALG_ID_A5_2 = 0x03, + GSM0808_ALG_ID_A5_3 = 0x04, + GSM0808_ALG_ID_A5_4 = 0x05, + GSM0808_ALG_ID_A5_5 = 0x06, + GSM0808_ALG_ID_A5_6 = 0x07, + GSM0808_ALG_ID_A5_7 = 0x08, +}; + +/* GSM 08.08 3.2.2.85 Paging Information */ +enum gsm0808_paging_info { + GSM0808_PAGINF_FOR_MT_CALL = 0x00, + GSM0808_PAGINF_FOR_SMS = 0x01, + GSM0808_PAGINF_FOR_USSD = 0x02, +}; |