libosmogsm 1.9.0.192-1c24
Osmocom GSM library
gsm_04_08.h File Reference

GSM TS 04.08 definitions. More...

#include <stdint.h>
#include <stdbool.h>
#include <osmocom/core/utils.h>
#include <osmocom/core/endian.h>
#include <osmocom/gsm/gsm_utils.h>

Go to the source code of this file.

Data Structures

struct  gsm48_classmark1
 
struct  gsm48_classmark2
 
struct  gsm48_classmark3
 
struct  osmo_gsm48_classmark
 
struct  gsm48_range_1024
 
struct  gsm48_range_512
 
struct  gsm48_range_256
 
struct  gsm48_range_128
 
struct  gsm48_var_bit
 
struct  gsm48_chan_desc
 
struct  gsm48_meas_res
 
struct  gsm48_multi_rate_conf
 
struct  gsm48_power_cmd
 
struct  gsm48_rach_control
 
struct  gsm48_req_ref
 
struct  gsm48_start_time
 
struct  gsm48_sync_ind
 
struct  gsm48_chan_mode_modify
 
struct  gsm48_ass_cmd
 
struct  gsm48_frq_redef
 
struct  gsm48_gprs_susp_req
 
struct  gsm48_cell_desc
 
struct  gsm48_ho_cmd
 
struct  gsm48_imm_ass
 
struct  gsm48_pag_resp
 
struct  gsm48_loc_area_id
 
struct  gsm48_auth_req
 
struct  gsm48_auth_resp
 
struct  gsm48_loc_upd_req
 
struct  gsm48_hdr
 
struct  gsm48_hdr_sh
 
struct  gsm48_system_information_type_header
 
struct  gsm48_cell_sel_par
 
struct  gsm48_control_channel_descr
 
struct  gsm48_cell_options
 
struct  gsm48_service_request
 
struct  gsm48_system_information_type_1
 
struct  gsm48_system_information_type_2
 
struct  gsm48_system_information_type_2bis
 
struct  gsm48_system_information_type_2ter
 
struct  gsm48_system_information_type_2quater
 
struct  gsm48_system_information_type_3
 
struct  gsm48_system_information_type_4
 
struct  gsm48_system_information_type_5
 
struct  gsm48_system_information_type_5bis
 
struct  gsm48_system_information_type_5ter
 
struct  gsm48_system_information_type_6
 
struct  gsm48_system_information_type_10
 
struct  gsm0408_vgcs_ul_grant
 
struct  gsm48_system_information_type_13
 
struct  gsm48_imsi_detach_ind
 
struct  gsm48_add_ass
 
struct  gsm48_ass_cpl
 
struct  gsm48_ass_fail
 
struct  gsm48_ho_cpl
 
struct  gsm48_ho_fail
 
struct  gsm48_chan_rel
 
struct  gsm48_cip_mode_cmd
 
struct  gsm48_cm_change
 
struct  gsm48_imm_ass_ext
 
struct  gsm48_imm_ass_rej
 
struct  gsm48_notification_nch
 
struct  gsm48_paging1
 
struct  gsm48_paging2
 
struct  gsm48_paging3
 
struct  gsm48_pag_rsp
 
struct  gsm48_rr_status
 
struct  gsm48_talker_indication
 
struct  gsm48_uplink_release
 
struct  gsm48_ra_id
 

Macros

#define GSM48_PDISC_GROUP_CC   0x00
 
#define GSM48_PDISC_BCAST_CC   0x01
 
#define GSM48_PDISC_PDSS1   0x02 /* 04.07 only */
 
#define GSM48_PDISC_CC   0x03
 
#define GSM48_PDISC_PDSS2   0x04 /* 04.07 only */
 
#define GSM48_PDISC_GTTP   0x04 /* 24.007 only */
 
#define GSM48_PDISC_MM   0x05
 
#define GSM48_PDISC_RR   0x06
 
#define GSM48_PDISC_MM_GPRS   0x08
 
#define GSM48_PDISC_SMS   0x09
 
#define GSM48_PDISC_SM_GPRS   0x0a
 
#define GSM48_PDISC_NC_SS   0x0b
 
#define GSM48_PDISC_LOC   0x0c
 
#define GSM48_PDISC_EXTEND   0x0e
 
#define GSM48_PDISC_TEST   0x0f /* as per 11.10, 04.14 */
 
#define GSM48_PDISC_MASK   0x0f
 
#define GSM48_PDISC_SH_RR   0
 
#define GSM48_TA_INVALID   220
 
#define gsm48_hdr_msg_type   gsm48_hdr_msg_type_r99
 
#define GSM48_MT_RR_INIT_REQ   0x3c
 
#define GSM48_MT_RR_ADD_ASS   0x3b
 
#define GSM48_MT_RR_IMM_ASS   0x3f
 
#define GSM48_MT_RR_IMM_ASS_EXT   0x39
 
#define GSM48_MT_RR_IMM_ASS_REJ   0x3a
 
#define GSM48_MT_RR_DTM_ASS_FAIL   0x48
 
#define GSM48_MT_RR_DTM_REJECT   0x49
 
#define GSM48_MT_RR_DTM_REQUEST   0x4A
 
#define GSM48_MT_RR_PACKET_ASS   0x4B
 
#define GSM48_MT_RR_CIPH_M_CMD   0x35
 
#define GSM48_MT_RR_CIPH_M_COMPL   0x32
 
#define GSM48_MT_RR_CFG_CHG_CMD   0x30
 
#define GSM48_MT_RR_CFG_CHG_ACK   0x31
 
#define GSM48_MT_RR_CFG_CHG_REJ   0x33
 
#define GSM48_MT_RR_ASS_CMD   0x2e
 
#define GSM48_MT_RR_ASS_COMPL   0x29
 
#define GSM48_MT_RR_ASS_FAIL   0x2f
 
#define GSM48_MT_RR_HANDO_CMD   0x2b
 
#define GSM48_MT_RR_HANDO_COMPL   0x2c
 
#define GSM48_MT_RR_HANDO_FAIL   0x28
 
#define GSM48_MT_RR_HANDO_INFO   0x2d
 
#define GSM48_MT_RR_HANDO_INFO   0x2d
 
#define GSM48_MT_RR_DTM_ASS_CMD   0x4c
 
#define GSM48_MT_RR_CELL_CHG_ORDER   0x08
 
#define GSM48_MT_RR_PDCH_ASS_CMD   0x23
 
#define GSM48_MT_RR_CHAN_REL   0x0d
 
#define GSM48_MT_RR_PART_REL   0x0a
 
#define GSM48_MT_RR_PART_REL_COMP   0x0f
 
#define GSM48_MT_RR_PAG_REQ_1   0x21
 
#define GSM48_MT_RR_PAG_REQ_2   0x22
 
#define GSM48_MT_RR_PAG_REQ_3   0x24
 
#define GSM48_MT_RR_PAG_RESP   0x27
 
#define GSM48_MT_RR_NOTIF_NCH   0x20
 
#define GSM48_MT_RR_NOTIF_FACCH   0x25 /* (Reserved) */
 
#define GSM48_MT_RR_NOTIF_RESP   0x26
 
#define GSM48_MT_RR_PACKET_NOTIF   0x4e
 
#define GSM48_MT_RR_UTRAN_CLSM_CHG   0x60
 
#define GSM48_MT_RR_CDMA2K_CLSM_CHG   0x62
 
#define GSM48_MT_RR_IS_TO_UTRAN_HANDO   0x63
 
#define GSM48_MT_RR_IS_TO_CDMA2K_HANDO   0x64
 
#define GSM48_MT_RR_SYSINFO_8   0x18
 
#define GSM48_MT_RR_SYSINFO_1   0x19
 
#define GSM48_MT_RR_SYSINFO_2   0x1a
 
#define GSM48_MT_RR_SYSINFO_3   0x1b
 
#define GSM48_MT_RR_SYSINFO_4   0x1c
 
#define GSM48_MT_RR_SYSINFO_5   0x1d
 
#define GSM48_MT_RR_SYSINFO_6   0x1e
 
#define GSM48_MT_RR_SYSINFO_7   0x1f
 
#define GSM48_MT_RR_SYSINFO_2bis   0x02
 
#define GSM48_MT_RR_SYSINFO_2ter   0x03
 
#define GSM48_MT_RR_SYSINFO_2quater   0x07
 
#define GSM48_MT_RR_SYSINFO_5bis   0x05
 
#define GSM48_MT_RR_SYSINFO_5ter   0x06
 
#define GSM48_MT_RR_SYSINFO_9   0x04
 
#define GSM48_MT_RR_SYSINFO_13   0x00
 
#define GSM48_MT_RR_SYSINFO_16   0x3d
 
#define GSM48_MT_RR_SYSINFO_17   0x3e
 
#define GSM48_MT_RR_SYSINFO_18   0x40
 
#define GSM48_MT_RR_SYSINFO_19   0x41
 
#define GSM48_MT_RR_SYSINFO_20   0x42
 
#define GSM48_MT_RR_CHAN_MODE_MODIF   0x10
 
#define GSM48_MT_RR_STATUS   0x12
 
#define GSM48_MT_RR_CHAN_MODE_MODIF_ACK   0x17
 
#define GSM48_MT_RR_FREQ_REDEF   0x14
 
#define GSM48_MT_RR_MEAS_REP   0x15
 
#define GSM48_MT_RR_CLSM_CHG   0x16
 
#define GSM48_MT_RR_CLSM_ENQ   0x13
 
#define GSM48_MT_RR_EXT_MEAS_REP   0x36
 
#define GSM48_MT_RR_EXT_MEAS_REP_ORD   0x37
 
#define GSM48_MT_RR_GPRS_SUSP_REQ   0x34
 
#define GSM48_MT_RR_DTM_INFO   0x4d
 
#define GSM48_MT_RR_VGCS_UPL_GRANT   0x09
 
#define GSM48_MT_RR_UPLINK_RELEASE   0x0e
 
#define GSM48_MT_RR_UPLINK_FREE   0x0c
 
#define GSM48_MT_RR_UPLINK_BUSY   0x2a
 
#define GSM48_MT_RR_TALKER_IND   0x11
 
#define GSM48_MT_RR_APP_INFO   0x38
 
#define GSM48_MT_RR_SH_SI10   0x0
 
#define GSM48_MT_RR_SH_FACCH   0x1
 
#define GSM48_MT_RR_SH_UL_FREE   0x2
 
#define GSM48_MT_RR_SH_MEAS_REP   0x4
 
#define GSM48_MT_RR_SH_MEAS_INFO   0x5
 
#define GSM48_MT_RR_SH_VGCS_RECON   0x6
 
#define GSM48_MT_RR_SH_VGCS_RECON2   0x7
 
#define GSM48_MT_RR_SH_VGCS_INFO   0x8
 
#define GSM48_MT_RR_SH_VGCS_SMS   0x9
 
#define GSM48_MT_RR_SH_SI10bis   0xA
 
#define GSM48_MT_RR_SH_SI10ter   0xB
 
#define GSM48_MT_RR_SH_VGCS_NEIGH   0xC
 
#define GSM48_MT_RR_SH_APP_DATA   0xD
 
#define GSM48_MT_MM_IMSI_DETACH_IND   0x01
 
#define GSM48_MT_MM_LOC_UPD_ACCEPT   0x02
 
#define GSM48_MT_MM_LOC_UPD_REJECT   0x04
 
#define GSM48_MT_MM_LOC_UPD_REQUEST   0x08
 
#define GSM48_MT_MM_AUTH_REJ   0x11
 
#define GSM48_MT_MM_AUTH_REQ   0x12
 
#define GSM48_MT_MM_AUTH_RESP   0x14
 
#define GSM48_MT_MM_AUTH_FAIL   0x1c
 
#define GSM48_MT_MM_ID_REQ   0x18
 
#define GSM48_MT_MM_ID_RESP   0x19
 
#define GSM48_MT_MM_TMSI_REALL_CMD   0x1a
 
#define GSM48_MT_MM_TMSI_REALL_COMPL   0x1b
 
#define GSM48_MT_MM_CM_SERV_ACC   0x21
 
#define GSM48_MT_MM_CM_SERV_REJ   0x22
 
#define GSM48_MT_MM_CM_SERV_ABORT   0x23
 
#define GSM48_MT_MM_CM_SERV_REQ   0x24
 
#define GSM48_MT_MM_CM_SERV_PROMPT   0x25
 
#define GSM48_MT_MM_CM_REEST_REQ   0x28
 
#define GSM48_MT_MM_ABORT   0x29
 
#define GSM48_MT_MM_NULL   0x30
 
#define GSM48_MT_MM_STATUS   0x31
 
#define GSM48_MT_MM_INFO   0x32
 
#define GSM48_MT_CC_ALERTING   0x01
 
#define GSM48_MT_CC_CALL_CONF   0x08
 
#define GSM48_MT_CC_CALL_PROC   0x02
 
#define GSM48_MT_CC_CONNECT   0x07
 
#define GSM48_MT_CC_CONNECT_ACK   0x0f
 
#define GSM48_MT_CC_EMERG_SETUP   0x0e
 
#define GSM48_MT_CC_PROGRESS   0x03
 
#define GSM48_MT_CC_ESTAB   0x04
 
#define GSM48_MT_CC_ESTAB_CONF   0x06
 
#define GSM48_MT_CC_RECALL   0x0b
 
#define GSM48_MT_CC_START_CC   0x09
 
#define GSM48_MT_CC_SETUP   0x05
 
#define GSM48_MT_CC_MODIFY   0x17
 
#define GSM48_MT_CC_MODIFY_COMPL   0x1f
 
#define GSM48_MT_CC_MODIFY_REJECT   0x13
 
#define GSM48_MT_CC_USER_INFO   0x10
 
#define GSM48_MT_CC_HOLD   0x18
 
#define GSM48_MT_CC_HOLD_ACK   0x19
 
#define GSM48_MT_CC_HOLD_REJ   0x1a
 
#define GSM48_MT_CC_RETR   0x1c
 
#define GSM48_MT_CC_RETR_ACK   0x1d
 
#define GSM48_MT_CC_RETR_REJ   0x1e
 
#define GSM48_MT_CC_DISCONNECT   0x25
 
#define GSM48_MT_CC_RELEASE   0x2d
 
#define GSM48_MT_CC_RELEASE_COMPL   0x2a
 
#define GSM48_MT_CC_CONG_CTRL   0x39
 
#define GSM48_MT_CC_NOTIFY   0x3e
 
#define GSM48_MT_CC_STATUS   0x3d
 
#define GSM48_MT_CC_STATUS_ENQ   0x34
 
#define GSM48_MT_CC_START_DTMF   0x35
 
#define GSM48_MT_CC_STOP_DTMF   0x31
 
#define GSM48_MT_CC_STOP_DTMF_ACK   0x32
 
#define GSM48_MT_CC_START_DTMF_ACK   0x36
 
#define GSM48_MT_CC_START_DTMF_REJ   0x37
 
#define GSM48_MT_CC_FACILITY   0x3a
 
#define GSM48_PM_MASK   0x03
 
#define GSM48_PM_NORMAL   0x00
 
#define GSM48_PM_EXTENDED   0x01
 
#define GSM48_PM_REORG   0x02
 
#define GSM48_PM_SAME   0x03
 
#define GSM48_LUPD_NORMAL   0x0
 
#define GSM48_LUPD_PERIODIC   0x1
 
#define GSM48_LUPD_IMSI_ATT   0x2
 
#define GSM48_LUPD_RESERVED   0x3
 
#define GSM_MI_TYPE_MASK   0x07
 
#define GSM_MI_TYPE_NONE   0x00
 
#define GSM_MI_TYPE_IMSI   0x01
 
#define GSM_MI_TYPE_IMEI   0x02
 
#define GSM_MI_TYPE_IMEISV   0x03
 
#define GSM_MI_TYPE_TMSI   0x04
 
#define GSM_MI_ODD   0x08
 
#define GSM48_IE_MOBILE_ID   0x17 /* 10.5.1.4 */
 
#define GSM48_IE_NAME_LONG   0x43 /* 10.5.3.5a */
 
#define GSM48_IE_NAME_SHORT   0x45 /* 10.5.3.5a */
 
#define GSM48_IE_UTC   0x46 /* 10.5.3.8 */
 
#define GSM48_IE_NET_TIME_TZ   0x47 /* 10.5.3.9 */
 
#define GSM48_IE_LSA_IDENT   0x48 /* 10.5.3.11 */
 
#define GSM48_IE_NET_DST   0x49 /* 10.5.3.12 [24.008] */
 
#define GSM48_IE_BEARER_CAP   0x04 /* 10.5.4.5 */
 
#define GSM48_IE_CAUSE   0x08 /* 10.5.4.11 */
 
#define GSM48_IE_CC_CAP   0x15 /* 10.5.4.5a */
 
#define GSM48_IE_ALERT   0x19 /* 10.5.4.26 */
 
#define GSM48_IE_FACILITY   0x1c /* 10.5.4.15 */
 
#define GSM48_IE_PROGR_IND   0x1e /* 10.5.4.21 */
 
#define GSM48_IE_AUX_STATUS   0x24 /* 10.5.4.4 */
 
#define GSM48_IE_NOTIFY   0x27 /* 10.5.4.20 */
 
#define GSM48_IE_KPD_FACILITY   0x2c /* 10.5.4.17 */
 
#define GSM48_IE_SIGNAL   0x34 /* 10.5.4.23 */
 
#define GSM48_IE_CONN_BCD   0x4c /* 10.5.4.13 */
 
#define GSM48_IE_CONN_SUB   0x4d /* 10.5.4.14 */
 
#define GSM48_IE_CALLING_BCD   0x5c /* 10.5.4.9 */
 
#define GSM48_IE_CALLING_SUB   0x5d /* 10.5.4.10 */
 
#define GSM48_IE_CALLED_BCD   0x5e /* 10.5.4.7 */
 
#define GSM48_IE_CALLED_SUB   0x6d /* 10.5.4.8 */
 
#define GSM48_IE_REDIR_BCD   0x74 /* 10.5.4.21a */
 
#define GSM48_IE_REDIR_SUB   0x75 /* 10.5.4.21b */
 
#define GSM48_IE_LOWL_COMPAT   0x7c /* 10.5.4.18 */
 
#define GSM48_IE_HIGHL_COMPAT   0x7d /* 10.5.4.16 */
 
#define GSM48_IE_USER_USER   0x7e /* 10.5.4.25 */
 
#define GSM48_IE_SS_VERS   0x7f /* 10.5.4.24 */
 
#define GSM48_IE_MORE_DATA   0xa0 /* 10.5.4.19 */
 
#define GSM48_IE_CLIR_SUPP   0xa1 /* 10.5.4.11a */
 
#define GSM48_IE_CLIR_INVOC   0xa2 /* 10.5.4.11b */
 
#define GSM48_IE_REV_C_SETUP   0xa3 /* 10.5.4.22a */
 
#define GSM48_IE_REPEAT_CIR   0xd1 /* 10.5.4.22 */
 
#define GSM48_IE_REPEAT_SEQ   0xd3 /* 10.5.4.22 */
 
#define GSM48_CAUSE_CS_GSM   0x60
 
#define GSM48_IE_VGCS_TARGET   0x01
 
#define GSM48_IE_FRQSHORT_AFTER   0x02
 
#define GSM48_IE_MUL_RATE_CFG   0x03 /* 10.5.2.21aa */
 
#define GSM48_IE_FREQ_L_AFTER   0x05
 
#define GSM48_IE_GROUP_CIP_SEQ_HO   0x08 /* HO = Half Octet Tag */
 
#define GSM48_IE_CIP_MODE_SET_HO   0x09 /* HO = Half Octet Tag */
 
#define GSM48_IE_GPRS_RESUMPT_HO   0xc0 /* HO = Half Octet Tag */
 
#define GSM48_IE_SYNC_IND_HO   0x0d /* HO = Half Octet Tag */
 
#define GSM48_IE_MSLOT_DESC   0x10
 
#define GSM48_IE_CHANMODE_2   0x11
 
#define GSM48_IE_FRQSHORT_BEFORE   0x12
 
#define GSM48_IE_CHANMODE_3   0x13
 
#define GSM48_IE_CHANMODE_4   0x14
 
#define GSM48_IE_CHANMODE_5   0x15
 
#define GSM48_IE_CHANMODE_6   0x16
 
#define GSM48_IE_CHANMODE_7   0x17
 
#define GSM48_IE_CHANMODE_8   0x18
 
#define GSM48_IE_CHANDESC_2   0x64
 
#define GSM48_IE_MA_AFTER   0x72
 
#define GSM48_IE_START_TIME   0x7c
 
#define GSM48_IE_FREQ_L_BEFORE   0x19
 
#define GSM48_IE_CH_DESC_1_BEFORE   0x1c
 
#define GSM48_IE_CH_DESC_2_BEFORE   0x1d
 
#define GSM48_IE_F_CH_SEQ_BEFORE   0x1e
 
#define GSM48_IE_CLASSMARK3   0x20
 
#define GSM48_IE_MA_BEFORE   0x21
 
#define GSM48_IE_RR_PACKET_UL   0x22
 
#define GSM48_IE_RR_PACKET_DL   0x23
 
#define GSM48_IE_CELL_CH_DESC   0x62
 
#define GSM48_IE_CHANMODE_1   0x63
 
#define GSM48_IE_CHDES_2_AFTER   0x64
 
#define GSM48_IE_MODE_SEC_CH   0x66
 
#define GSM48_IE_F_CH_SEQ_AFTER   0x69
 
#define GSM48_IE_EXTENDED_TSC_SET   0x6d
 
#define GSM48_IE_MA_AFTER   0x72
 
#define GSM48_IE_BA_RANGE   0x73
 
#define GSM48_IE_GROUP_CHDES   0x74
 
#define GSM48_IE_BA_LIST_PREF   0x75
 
#define GSM48_IE_MOB_OVSERV_DIF   0x77
 
#define GSM48_IE_CELL_SEL_IND_AFTER_REL   0x77 /* 44.018 Section 9.1.7 */
 
#define GSM48_IE_REALTIME_DIFF   0x7b
 
#define GSM48_IE_START_TIME   0x7c
 
#define GSM48_IE_INDIVIDUAL_PRIORITIES   0x7c /* 44.018 Section 9.1.7 */
 
#define GSM48_IE_TIMING_ADVANCE   0x7d
 
#define GSM48_IE_GROUP_CIP_SEQ   0x80 /* DEPRECATED, use GSM48_IE_GROUP_CIP_SEQ_HO instead */
 
#define GSM48_IE_CIP_MODE_SET   0x90 /* DEPRECATED, use GSM48_IE_CIP_MODE_SET_HO instead */
 
#define GSM48_IE_GPRS_RESUMPT   0xc0 /* DEPRECATED, use GSM48_IE_GPRS_RESUMPT_HO instead */
 
#define GSM48_IE_SYNC_IND   0xd0 /* DEPRECATED, use GSM48_IE_SYNC_IND_HO instead */
 
#define GSM48_IE_CBCH_CHAN_DESC   0x64
 
#define GSM48_IE_CBCH_MOB_AL   0x72
 
#define GSM48_IE_PRIORITY_LEV_HO   0x08 /* HO = Half Octet Tag */
 
#define GSM48_IE_LOCATION_AREA   0x13
 
#define GSM48_IE_AUTN   0x20
 
#define GSM48_IE_AUTH_RES_EXT   0x21
 
#define GSM48_IE_AUTS   0x22
 
#define GSM48_IE_PRIORITY_LEV   0x80 /* DEPRECATED, use GSM48_IE_PRIORITY_LEV_HO instead */
 
#define GSM48_IE_FOLLOW_ON_PROC   0xa1
 
#define GSM48_IE_CTS_PERMISSION   0xa2
 
#define GSM48_T301   180, 0
 
#define GSM48_T303   30, 0
 
#define GSM48_T305   30, 0
 
#define GSM48_T306   30, 0
 
#define GSM48_T308   10, 0 /* no spec default */
 
#define GSM48_T310   30, 0 /* no spec default */
 
#define GSM48_T313   30, 0 /* no spec default */
 
#define GSM48_T323   30, 0
 
#define GSM48_T331   30, 0 /* no spec default */
 
#define GSM48_T333   30, 0 /* no spec default */
 
#define GSM48_T334   25, 0 /* min 15s */
 
#define GSM48_T338   30, 0 /* no spec default */
 
#define GSM48_T303_MS   30, 0
 
#define GSM48_T305_MS   30, 0
 
#define GSM48_T308_MS   30, 0
 
#define GSM48_T310_MS   30, 0
 
#define GSM48_T313_MS   30, 0
 
#define GSM48_T323_MS   30, 0
 
#define GSM48_T332_MS   30, 0
 
#define GSM48_T335_MS   30, 0
 
#define GSM_CSTATE_NULL   0
 
#define GSM_CSTATE_INITIATED   1
 
#define GSM_CSTATE_MM_CONNECTION_PEND   2 /* see 10.5.4.6 */
 
#define GSM_CSTATE_MO_CALL_PROC   3
 
#define GSM_CSTATE_CALL_DELIVERED   4
 
#define GSM_CSTATE_CALL_PRESENT   6
 
#define GSM_CSTATE_CALL_RECEIVED   7
 
#define GSM_CSTATE_CONNECT_REQUEST   8
 
#define GSM_CSTATE_MO_TERM_CALL_CONF   9
 
#define GSM_CSTATE_ACTIVE   10
 
#define GSM_CSTATE_DISCONNECT_REQ   12
 
#define GSM_CSTATE_DISCONNECT_IND   12
 
#define GSM_CSTATE_RELEASE_REQ   19
 
#define GSM_CSTATE_MO_ORIG_MODIFY   26
 
#define GSM_CSTATE_MO_TERM_MODIFY   27
 
#define GSM_CSTATE_CONNECT_IND   28
 
#define SBIT(a)   (1 << a)
 
#define ALL_STATES   0xffffffff
 
#define GSM_LAC_RESERVED_DETACHED   0x0
 
#define GSM_LAC_RESERVED_ALL_BTS   0xfffe
 
#define GSM48_TMSI_LEN   5
 
#define GSM48_MID_TMSI_LEN   (GSM48_TMSI_LEN + 2)
 
#define GSM48_MI_SIZE   32
 
#define GSM48_CELL_CHAN_DESC_SIZE   16
 
#define GSM_MACBLOCK_LEN   23
 
#define GSM_MACBLOCK_PADDING   0x2b
 

Enumerations

enum  gsm48_chan_mode {
  GSM48_CMODE_SIGN = 0x00 ,
  GSM48_CMODE_SPEECH_V1 = 0x01 ,
  GSM48_CMODE_SPEECH_EFR = 0x21 ,
  GSM48_CMODE_SPEECH_AMR = 0x41 ,
  GSM48_CMODE_SPEECH_V4 = 0x81 ,
  GSM48_CMODE_SPEECH_V5 = 0x82 ,
  GSM48_CMODE_SPEECH_V6 = 0x83 ,
  GSM48_CMODE_DATA_43k5_14k5 = 0x61 ,
  GSM48_CMODE_DATA_29k0_14k5 = 0x62 ,
  GSM48_CMODE_DATA_43k5_29k0 = 0x64 ,
  GSM48_CMODE_DATA_14k5_43k5 = 0x67 ,
  GSM48_CMODE_DATA_14k5_29k0 = 0x65 ,
  GSM48_CMODE_DATA_29k0_43k5 = 0x66 ,
  GSM48_CMODE_DATA_43k5 = 0x27 ,
  GSM48_CMODE_DATA_32k0 = 0x63 ,
  GSM48_CMODE_DATA_29k0 = 0x43 ,
  GSM48_CMODE_DATA_14k5 = 0x0f ,
  GSM48_CMODE_DATA_12k0 = 0x03 ,
  GSM48_CMODE_DATA_6k0 = 0x0b ,
  GSM48_CMODE_DATA_3k6 = 0x13 ,
  GSM48_CMODE_SPEECH_V1_VAMOS = 0xc1 ,
  GSM48_CMODE_SPEECH_V2_VAMOS = 0xc2 ,
  GSM48_CMODE_SPEECH_V3_VAMOS = 0xc3 ,
  GSM48_CMODE_SPEECH_V5_VAMOS = 0xc5
}
 10.5.2.6 Channel Mode value More...
 
enum  gsm48_dtx_mode {
  GSM48_DTX_MAY_BE_USED ,
  GSM48_DTX_SHALL_BE_USED ,
  GSM48_DTX_SHALL_NOT_BE_USED
}
 
enum  osmo_cm_service_type {
  GSM48_CMSERV_MO_CALL_PACKET = 1 ,
  GSM48_CMSERV_EMERGENCY = 2 ,
  GSM48_CMSERV_SMS = 4 ,
  GSM48_CMSERV_SUP_SERV = 8 ,
  GSM48_CMSERV_VGCS = 9 ,
  GSM48_CMSERV_VBS = 10 ,
  GSM48_CMSERV_LOC_SERV = 11 ,
  GSM48_CMSERV_MAX_VAL = GSM48_CMSERV_LOC_SERV
}
 
enum  gsm48_progress_desc {
  GSM48_PROGR_NOT_E2E = 0x00 ,
  GSM48_PROGR_DEST_NOT_PLMN = 0x02 ,
  GSM48_PROGR_ORIG_NOT_PLMN = 0x03 ,
  GSM48_PROGR_RETURNED = 0x04 ,
  GSM48_PROGR_IN_BAND_AVAIL = 0x08 ,
  GSM48_PROGR_CALL_E2E = 0x20 ,
  GSM48_PROGR_QUEUEING = 0x40
}
 
enum  gsm48_signal_val {
  GSM48_SIGNAL_DIALTONE = 0x00 ,
  GSM48_SIGNAL_RINGBACK = 0x01 ,
  GSM48_SIGNAL_INTERCEPT = 0x02 ,
  GSM48_SIGNAL_NET_CONG = 0x03 ,
  GSM48_SIGNAL_BUSY = 0x04 ,
  GSM48_SIGNAL_CONFIRM = 0x05 ,
  GSM48_SIGNAL_ANSWER = 0x06 ,
  GSM48_SIGNAL_CALL_WAIT = 0x07 ,
  GSM48_SIGNAL_OFF_HOOK = 0x08 ,
  GSM48_SIGNAL_OFF = 0x3f ,
  GSM48_SIGNAL_ALERT_OFF = 0x4f
}
 
enum  gsm48_cause_coding {
  GSM48_CAUSE_CODING_CCITT_Q931 = 0x00 ,
  GSM48_CAUSE_CODING_RESERVED = 0x01 ,
  GSM48_CAUSE_CODING_NATIONAL = 0x02 ,
  GSM48_CAUSE_CODING_GSM = 0x03
}
 
enum  gsm48_cause_loc {
  GSM48_CAUSE_LOC_USER = 0x00 ,
  GSM48_CAUSE_LOC_PRN_S_LU = 0x01 ,
  GSM48_CAUSE_LOC_PUN_S_LU = 0x02 ,
  GSM48_CAUSE_LOC_TRANS_NET = 0x03 ,
  GSM48_CAUSE_LOC_PUN_S_RU = 0x04 ,
  GSM48_CAUSE_LOC_PRN_S_RU = 0x05 ,
  GSM48_CAUSE_LOC_INN_NET = 0x07 ,
  GSM48_CAUSE_LOC_NET_BEYOND = 0x0a
}
 
enum  gsm48_rr_cause {
  GSM48_RR_CAUSE_NORMAL = 0x00 ,
  GSM48_RR_CAUSE_ABNORMAL_UNSPEC = 0x01 ,
  GSM48_RR_CAUSE_ABNORMAL_UNACCT = 0x02 ,
  GSM48_RR_CAUSE_ABNORMAL_TIMER = 0x03 ,
  GSM48_RR_CAUSE_ABNORMAL_NOACT = 0x04 ,
  GSM48_RR_CAUSE_PREMPTIVE_REL = 0x05 ,
  GSM48_RR_CAUSE_UTRAN_CFG_UNK = 0x06 ,
  GSM48_RR_CAUSE_HNDOVER_IMP = 0x08 ,
  GSM48_RR_CAUSE_CHAN_MODE_UNACCT = 0x09 ,
  GSM48_RR_CAUSE_FREQ_NOT_IMPL = 0x0a ,
  GSM48_RR_CAUSE_LEAVE_GROUP_CA = 0x0b ,
  GSM48_RR_CAUSE_LOW_LEVEL_FAIL = 0x0c ,
  GSM48_RR_CAUSE_CALL_CLEARED = 0x41 ,
  GSM48_RR_CAUSE_SEMANT_INCORR = 0x5f ,
  GSM48_RR_CAUSE_INVALID_MAND_INF = 0x60 ,
  GSM48_RR_CAUSE_MSG_TYPE_N = 0x61 ,
  GSM48_RR_CAUSE_MSG_TYPE_N_COMPAT = 0x62 ,
  GSM48_RR_CAUSE_COND_IE_ERROR = 0x64 ,
  GSM48_RR_CAUSE_NO_CELL_ALLOC_A = 0x65 ,
  GSM48_RR_CAUSE_PROT_ERROR_UNSPC = 0x6f
}
 
enum  gsm48_cc_cause {
  GSM48_CC_CAUSE_UNASSIGNED_NR = 1 ,
  GSM48_CC_CAUSE_NO_ROUTE = 3 ,
  GSM48_CC_CAUSE_CHAN_UNACCEPT = 6 ,
  GSM48_CC_CAUSE_OP_DET_BARRING = 8 ,
  GSM48_CC_CAUSE_NORM_CALL_CLEAR = 16 ,
  GSM48_CC_CAUSE_USER_BUSY = 17 ,
  GSM48_CC_CAUSE_USER_NOTRESPOND = 18 ,
  GSM48_CC_CAUSE_USER_ALERTING_NA = 19 ,
  GSM48_CC_CAUSE_CALL_REJECTED = 21 ,
  GSM48_CC_CAUSE_NUMBER_CHANGED = 22 ,
  GSM48_CC_CAUSE_PRE_EMPTION = 25 ,
  GSM48_CC_CAUSE_NONSE_USER_CLR = 26 ,
  GSM48_CC_CAUSE_DEST_OOO = 27 ,
  GSM48_CC_CAUSE_INV_NR_FORMAT = 28 ,
  GSM48_CC_CAUSE_FACILITY_REJ = 29 ,
  GSM48_CC_CAUSE_RESP_STATUS_INQ = 30 ,
  GSM48_CC_CAUSE_NORMAL_UNSPEC = 31 ,
  GSM48_CC_CAUSE_NO_CIRCUIT_CHAN = 34 ,
  GSM48_CC_CAUSE_NETWORK_OOO = 38 ,
  GSM48_CC_CAUSE_TEMP_FAILURE = 41 ,
  GSM48_CC_CAUSE_SWITCH_CONG = 42 ,
  GSM48_CC_CAUSE_ACC_INF_DISCARD = 43 ,
  GSM48_CC_CAUSE_REQ_CHAN_UNAVAIL = 44 ,
  GSM48_CC_CAUSE_RESOURCE_UNAVAIL = 47 ,
  GSM48_CC_CAUSE_QOS_UNAVAIL = 49 ,
  GSM48_CC_CAUSE_REQ_FAC_NOT_SUBSC = 50 ,
  GSM48_CC_CAUSE_INC_BARRED_CUG = 55 ,
  GSM48_CC_CAUSE_BEARER_CAP_UNAUTH = 57 ,
  GSM48_CC_CAUSE_BEARER_CA_UNAVAIL = 58 ,
  GSM48_CC_CAUSE_SERV_OPT_UNAVAIL = 63 ,
  GSM48_CC_CAUSE_BEARERSERV_UNIMPL = 65 ,
  GSM48_CC_CAUSE_ACM_GE_ACM_MAX = 68 ,
  GSM48_CC_CAUSE_REQ_FAC_NOTIMPL = 69 ,
  GSM48_CC_CAUSE_RESTR_BCAP_AVAIL = 70 ,
  GSM48_CC_CAUSE_SERV_OPT_UNIMPL = 79 ,
  GSM48_CC_CAUSE_INVAL_TRANS_ID = 81 ,
  GSM48_CC_CAUSE_USER_NOT_IN_CUG = 87 ,
  GSM48_CC_CAUSE_INCOMPAT_DEST = 88 ,
  GSM48_CC_CAUSE_INVAL_TRANS_NET = 91 ,
  GSM48_CC_CAUSE_SEMANTIC_INCORR = 95 ,
  GSM48_CC_CAUSE_INVAL_MAND_INF = 96 ,
  GSM48_CC_CAUSE_MSGTYPE_NOTEXIST = 97 ,
  GSM48_CC_CAUSE_MSGTYPE_INCOMPAT = 98 ,
  GSM48_CC_CAUSE_IE_NOTEXIST = 99 ,
  GSM48_CC_CAUSE_COND_IE_ERR = 100 ,
  GSM48_CC_CAUSE_MSG_INCOMP_STATE = 101 ,
  GSM48_CC_CAUSE_RECOVERY_TIMER = 102 ,
  GSM48_CC_CAUSE_PROTO_ERR = 111 ,
  GSM48_CC_CAUSE_INTERWORKING = 127
}
 
enum  gsm48_reject_value {
  GSM48_REJECT_IMSI_UNKNOWN_IN_HLR = 2 ,
  GSM48_REJECT_ILLEGAL_MS = 3 ,
  GSM48_REJECT_IMSI_UNKNOWN_IN_VLR = 4 ,
  GSM48_REJECT_IMEI_NOT_ACCEPTED = 5 ,
  GSM48_REJECT_ILLEGAL_ME = 6 ,
  GSM48_REJECT_PLMN_NOT_ALLOWED = 11 ,
  GSM48_REJECT_LOC_NOT_ALLOWED = 12 ,
  GSM48_REJECT_ROAMING_NOT_ALLOWED = 13 ,
  GSM48_REJECT_NETWORK_FAILURE = 17 ,
  GSM48_REJECT_SYNCH_FAILURE = 21 ,
  GSM48_REJECT_CONGESTION = 22 ,
  GSM48_REJECT_SRV_OPT_NOT_SUPPORTED = 32 ,
  GSM48_REJECT_RQD_SRV_OPT_NOT_SUPPORTED = 33 ,
  GSM48_REJECT_SRV_OPT_TMP_OUT_OF_ORDER = 34 ,
  GSM48_REJECT_CALL_CAN_NOT_BE_IDENTIFIED = 38 ,
  GSM48_REJECT_INCORRECT_MESSAGE = 95 ,
  GSM48_REJECT_INVALID_MANDANTORY_INF = 96 ,
  GSM48_REJECT_MSG_TYPE_NOT_IMPLEMENTED = 97 ,
  GSM48_REJECT_MSG_TYPE_NOT_COMPATIBLE = 98 ,
  GSM48_REJECT_INF_ELEME_NOT_IMPLEMENTED = 99 ,
  GSM48_REJECT_CONDTIONAL_IE_ERROR = 100 ,
  GSM48_REJECT_MSG_NOT_COMPATIBLE = 101 ,
  GSM48_REJECT_PROTOCOL_ERROR = 111 ,
  GSM48_REJECT_GPRS_NOT_ALLOWED = 7 ,
  GSM48_REJECT_SERVICES_NOT_ALLOWED = 8 ,
  GSM48_REJECT_MS_IDENTITY_NOT_DERVIVABLE = 9 ,
  GSM48_REJECT_IMPLICITLY_DETACHED = 10 ,
  GSM48_REJECT_GPRS_NOT_ALLOWED_IN_PLMN = 14 ,
  GSM48_REJECT_MSC_TMP_NOT_REACHABLE = 16
}
 
enum  chreq_type {
  CHREQ_T_EMERG_CALL ,
  CHREQ_T_CALL_REEST_TCH_F ,
  CHREQ_T_CALL_REEST_TCH_H ,
  CHREQ_T_CALL_REEST_TCH_H_DBL ,
  CHREQ_T_SDCCH ,
  CHREQ_T_TCH_F ,
  CHREQ_T_VOICE_CALL_TCH_H ,
  CHREQ_T_DATA_CALL_TCH_H ,
  CHREQ_T_LOCATION_UPD ,
  CHREQ_T_PAG_R_ANY_NECI0 ,
  CHREQ_T_PAG_R_ANY_NECI1 ,
  CHREQ_T_PAG_R_TCH_F ,
  CHREQ_T_PAG_R_TCH_FH ,
  CHREQ_T_LMU ,
  CHREQ_T_RESERVED_SDCCH ,
  CHREQ_T_RESERVED_IGNORE ,
  CHREQ_T_PDCH_ONE_PHASE ,
  CHREQ_T_PDCH_TWO_PHASE ,
  _NUM_CHREQ_T
}
 
enum  gsm48_bcap_itcap {
  GSM48_BCAP_ITCAP_SPEECH = 0 ,
  GSM48_BCAP_ITCAP_UNR_DIG_INF = 1 ,
  GSM48_BCAP_ITCAP_3k1_AUDIO = 2 ,
  GSM48_BCAP_ITCAP_FAX_G3 = 3 ,
  GSM48_BCAP_ITCAP_OTHER = 5 ,
  GSM48_BCAP_ITCAP_RESERVED = 7
}
 
enum  gsm48_bcap_tmod {
  GSM48_BCAP_TMOD_CIRCUIT = 0 ,
  GSM48_BCAP_TMOD_PACKET = 1
}
 
enum  gsm48_bcap_coding { GSM48_BCAP_CODING_GSM_STD = 0 }
 
enum  gsm48_bcap_rrq {
  GSM48_BCAP_RRQ_FR_ONLY = 1 ,
  GSM48_BCAP_RRQ_DUAL_HR = 2 ,
  GSM48_BCAP_RRQ_DUAL_FR = 3
}
 
enum  gsm48_bcap_ra {
  GSM48_BCAP_RA_NONE = 0 ,
  GSM48_BCAP_RA_V110_X30 = 1 ,
  GSM48_BCAP_RA_X31 = 2 ,
  GSM48_BCAP_RA_OTHER = 3
}
 
enum  gsm48_bcap_sig_access {
  GSM48_BCAP_SA_I440_I450 = 1 ,
  GSM48_BCAP_SA_X21 = 2 ,
  GSM48_BCAP_SA_X28_DP_IN = 3 ,
  GSM48_BCAP_SA_X28_DP_UN = 4 ,
  GSM48_BCAP_SA_X28_NDP = 5 ,
  GSM48_BCAP_SA_X32 = 6
}
 
enum  gsm48_bcap_user_rate {
  GSM48_BCAP_UR_300 = 1 ,
  GSM48_BCAP_UR_1200 = 2 ,
  GSM48_BCAP_UR_2400 = 3 ,
  GSM48_BCAP_UR_4800 = 4 ,
  GSM48_BCAP_UR_9600 = 5 ,
  GSM48_BCAP_UR_12000 = 6 ,
  GSM48_BCAP_UR_1200_75 = 7
}
 
enum  gsm48_bcap_parity {
  GSM48_BCAP_PAR_ODD = 0 ,
  GSM48_BCAP_PAR_EVEN = 2 ,
  GSM48_BCAP_PAR_NONE = 3 ,
  GSM48_BCAP_PAR_ZERO = 4 ,
  GSM48_BCAP_PAR_ONE = 5
}
 
enum  gsm48_bcap_interm_rate {
  GSM48_BCAP_IR_8k = 2 ,
  GSM48_BCAP_IR_16k = 3
}
 
enum  gsm48_bcap_transp {
  GSM48_BCAP_TR_TRANSP = 0 ,
  GSM48_BCAP_TR_RLP = 1 ,
  GSM48_BCAP_TR_TR_PREF = 2 ,
  GSM48_BCAP_TR_RLP_PREF = 3
}
 
enum  gsm48_bcap_modem_type {
  GSM48_BCAP_MT_NONE = 0 ,
  GSM48_BCAP_MT_V21 = 1 ,
  GSM48_BCAP_MT_V22 = 2 ,
  GSM48_BCAP_MT_V22bis = 3 ,
  GSM48_BCAP_MT_V23 = 4 ,
  GSM48_BCAP_MT_V26ter = 5 ,
  GSM48_BCAP_MT_V32 = 6 ,
  GSM48_BCAP_MT_UNDEF = 7 ,
  GSM48_BCAP_MT_AUTO_1 = 8
}
 
enum  gsm48_bcap_other_modem_type {
  GSM48_BCAP_OTHER_MT_NONE = 0 ,
  GSM48_BCAP_OTHER_MT_V34 = 2
}
 Table 10.5.112/3GPP TS 24.008: Other modem type (octet 6d) More...
 
enum  gsm48_bcap_fixed_net_user_rate {
  GSM48_BCAP_FNUR_NONE = 0 ,
  GSM48_BCAP_FNUR_X1_V110_9600 = 1 ,
  GSM48_BCAP_FNUR_X1_V110_14400 = 2 ,
  GSM48_BCAP_FNUR_X1_V110_19200 = 3 ,
  GSM48_BCAP_FNUR_X1_V110_28800 = 4 ,
  GSM48_BCAP_FNUR_X1_V110_38400 = 5 ,
  GSM48_BCAP_FNUR_X1_V110_48000 = 6 ,
  GSM48_BCAP_FNUR_X1_V110_56000 = 7 ,
  GSM48_BCAP_FNUR_BT_64000 = 8 ,
  GSM48_BCAP_FNUR_BT_33600 = 9 ,
  GSM48_BCAP_FNUR_I460_32000 = 10 ,
  GSM48_BCAP_FNUR_V34_31200 = 11
}
 Table 10.5.112/3GPP TS 24.008: Fixed network user rate (octet 6d) More...
 
enum  gsm48_bcap_speech_ver {
  GSM48_BCAP_SV_FR = 0 ,
  GSM48_BCAP_SV_HR = 1 ,
  GSM48_BCAP_SV_EFR = 2 ,
  GSM48_BCAP_SV_AMR_F = 4 ,
  GSM48_BCAP_SV_AMR_H = 5 ,
  GSM48_BCAP_SV_AMR_OFW = 6 ,
  GSM48_BCAP_SV_AMR_OHW = 7 ,
  GSM48_BCAP_SV_AMR_FW = 8 ,
  GSM48_BCAP_SV_AMR_OH = 11
}
 GSM 04.08 Bearer Capability: Speech Version Indication (See also 3GPP TS 24.008, Table 10.5.103 and 3GPP TS 26.103, Table 4.1 "Support of Codec Types in Radio Access Technologies") More...
 
enum  gsm48_type_of_number {
  GSM48_TON_UNKNOWN = 0 ,
  GSM48_TON_INTERNATIONAL = 1 ,
  GSM48_TON_NATIONAL = 2 ,
  GSM48_TON_NET_SPEC = 3 ,
  GSM48_TON_SHORT_CODE = 4
}
 
enum  gsm48_numbering_plan {
  GSM48_NPI_UNKNOWN = 0 ,
  GSM48_NPI_ISDN_E164 = 1 ,
  GSM48_NPI_DATA_X121 = 3 ,
  GSM48_NPI_TELEX_F69 = 4 ,
  GSM48_NPI_NATIONAL = 8 ,
  GSM48_NPI_PRIVATE = 9 ,
  GSM48_NPI_CTS = 11
}
 

Functions

struct gsm48_classmark1 __attribute__ ((packed))
 
bool osmo_gsm48_classmark_is_r99 (const struct osmo_gsm48_classmark *cm)
 Return true if any of Classmark 1 or Classmark 2 are present and indicate R99 capability. More...
 
bool osmo_gsm48_classmark1_is_r99 (const struct gsm48_classmark1 *cm1)
 
bool osmo_gsm48_classmark2_is_r99 (const struct gsm48_classmark2 *cm2, uint8_t cm2_len)
 
int osmo_gsm48_classmark_supports_a5 (const struct osmo_gsm48_classmark *cm, uint8_t a5)
 Determine if the given Classmark (1/2/3) value permits a given A5/n cipher. More...
 
const char * osmo_gsm48_classmark_a5_name (const struct osmo_gsm48_classmark *cm)
 Return a string representation of A5 cipher algorithms indicated by Classmark 1, 2 and 3. More...
 
char * osmo_gsm48_classmark_a5_name_buf (char *buf, size_t buf_len, const struct osmo_gsm48_classmark *cm)
 Return a string representation of A5 cipher algorithms indicated by Classmark 1, 2 and 3. More...
 
char * osmo_gsm48_classmark_a5_name_c (const void *ctx, const struct osmo_gsm48_classmark *cm)
 Return a string representation of A5 cipher algorithms indicated by Classmark 1, 2 and 3. More...
 
void osmo_gsm48_classmark_update (struct osmo_gsm48_classmark *dst, const struct osmo_gsm48_classmark *src)
 Overwrite dst with the Classmark information present in src. More...
 
int8_t osmo_gsm48_rfpowercap2powerclass (enum gsm_band band, uint8_t rf_power_cap)
 Decode power class from Classmark1/2 RF power capability field. More...
 
static bool gsm48_meas_res_is_valid (const struct gsm48_meas_res *mr)
 Check if the given mr contains valid measurement results. More...
 
static void gsm48_barr_acc (struct gsm48_rach_control *rach_control, unsigned int acc)
 
static void gsm48_allow_acc (struct gsm48_rach_control *rach_control, unsigned int acc)
 
static bool gsm48_acc_is_barred (struct gsm48_rach_control *rach_control, unsigned int acc)
 
static const char * gsm48_chan_mode_name (enum gsm48_chan_mode val)
 
static const char * gsm48_pdisc_name (uint8_t val)
 
bool gsm48_hdr_gmm_cipherable (const struct gsm48_hdr *hdr)
 Checks is particular message is cipherable in A/Gb mode according to 3GPP TS 24.008 ยง 4.7.1.2. More...
 
static uint8_t gsm48_hdr_pdisc (const struct gsm48_hdr *hdr)
 
static uint8_t gsm48_hdr_trans_id (const struct gsm48_hdr *hdr)
 
static bool gsm48_ta_is_valid (uint8_t ta)
 Check if TA is valid according to 3GPP TS 44.018 ยง 10.5.2.40. More...
 
static uint8_t gsm48_hdr_trans_id_flip_ti (const struct gsm48_hdr *hdr)
 
static uint8_t gsm48_hdr_trans_id_no_ti (const struct gsm48_hdr *hdr)
 
static uint8_t gsm48_hdr_msg_type_r98 (const struct gsm48_hdr *hdr)
 
static uint8_t gsm48_hdr_msg_type_r99 (const struct gsm48_hdr *hdr)
 
void gsm48_set_dtx (struct gsm48_cell_options *op, enum gsm48_dtx_mode full, enum gsm48_dtx_mode half, bool is_bcch)
 Set DTX mode in Cell Options IE (3GPP TS 44.018) More...
 
const char * gsm48_pdisc_msgtype_name (uint8_t pdisc, uint8_t msg_type)
 Compose a string naming the message type for given protocol, in a static buffer. More...
 
char * gsm48_pdisc_msgtype_name_buf (char *buf, size_t buf_len, uint8_t pdisc, uint8_t msg_type)
 Compose a string naming the message type for given protocol, in a caller-provided buffer. More...
 
char * gsm48_pdisc_msgtype_name_c (const void *ctx, uint8_t pdisc, uint8_t msg_type)
 Compose a string naming the message type for given protocol, in a dynamically-allocated buffer. More...
 
static const char * osmo_cm_service_type_name (enum osmo_cm_service_type val)
 
static const char * osmo_lu_type_name (uint8_t lu_type)
 
static const char * gsm48_cc_cause_name (enum gsm48_cc_cause val)
 
static const char * gsm48_reject_value_name (enum gsm48_reject_value val)
 

Variables

struct gsm48_classmark3 __attribute__
 
uint8_t chan_nr
 
struct gsm48_chan_desc chan_desc
 
uint8_t mode
 
const struct value_string gsm48_chan_mode_names []
 
uint8_t power_command
 
uint8_t data [0]
 
uint8_t mob_alloc_len
 
uint8_t mob_alloc [0]
 
uint32_t tlli
 
uint8_t ra_id [6]
 
uint8_t cause
 
uint8_t options [0]
 
struct gsm48_cell_desc cell_desc
 
uint8_t ho_ref
 
uint8_t l2_plen
 
uint8_t proto_discr
 
uint8_t msg_type
 
uint8_t page_mode
 
struct gsm48_req_ref req_ref
 
uint8_t timing_advance
 
uint8_t digits [3]
 
uint16_t lac
 
uint8_t sres [4]
 
struct gsm48_system_information_type_header header
 
uint8_t cell_channel_description [16]
 
struct gsm48_rach_control rach_control
 
uint8_t rest_octets [0]
 
uint8_t bcch_frequency_list [16]
 
uint8_t ncc_permitted
 
uint8_t ext_bcch_frequency_list [16]
 
uint16_t cell_identity
 
struct gsm48_loc_area_id lai
 
struct gsm48_control_channel_descr control_channel_desc
 
struct gsm48_cell_options cell_options
 
struct gsm48_cell_sel_par cell_sel_par
 
struct gsm48_hdr hdr
 
uint8_t ta
 
struct gsm48_classmark1 classmark1
 
uint8_t mi_len
 
uint8_t mi [0]
 
uint8_t rr_cause
 
uint8_t cm2_len
 
struct gsm48_classmark2 cm2
 
struct gsm48_chan_desc chan_desc1
 
struct gsm48_req_ref req_ref1
 
uint8_t timing_advance1
 
struct gsm48_chan_desc chan_desc2
 
struct gsm48_req_ref req_ref2
 
uint8_t timing_advance2
 
uint8_t wait_ind1
 
uint8_t wait_ind2
 
struct gsm48_req_ref req_ref3
 
uint8_t wait_ind3
 
struct gsm48_req_ref req_ref4
 
uint8_t wait_ind4
 
uint8_t rest [0]
 
const struct value_string gsm48_pdisc_names []
 TS 04.08 Protocol Descriptor names. More...
 
const struct value_string gsm48_rr_msgtype_names []
 TS 04.08 RR Message Type names. More...
 
const struct value_string gsm48_mm_msgtype_names []
 TS 04.08 MM Message Type names. More...
 
const struct value_string gsm48_cc_msgtype_names []
 TS 04.08 CC Message Type names. More...
 
const struct value_string osmo_cm_service_type_names []
 
const struct value_string osmo_lu_type_names []
 
const struct value_string gsm48_cc_cause_names []
 TS 04.08 10.5..4.11 Call Control Cause Values. More...
 
const struct value_string gsm48_reject_value_names []
 
uint8_t rac
 

Detailed Description

GSM TS 04.08 definitions.

Macro Definition Documentation

◆ ALL_STATES

#define ALL_STATES   0xffffffff

◆ GSM48_CAUSE_CS_GSM

#define GSM48_CAUSE_CS_GSM   0x60

◆ GSM48_CELL_CHAN_DESC_SIZE

#define GSM48_CELL_CHAN_DESC_SIZE   16

◆ gsm48_hdr_msg_type

#define gsm48_hdr_msg_type   gsm48_hdr_msg_type_r99

◆ GSM48_IE_ALERT

#define GSM48_IE_ALERT   0x19 /* 10.5.4.26 */

◆ GSM48_IE_AUTH_RES_EXT

#define GSM48_IE_AUTH_RES_EXT   0x21

◆ GSM48_IE_AUTN

#define GSM48_IE_AUTN   0x20

◆ GSM48_IE_AUTS

#define GSM48_IE_AUTS   0x22

◆ GSM48_IE_AUX_STATUS

#define GSM48_IE_AUX_STATUS   0x24 /* 10.5.4.4 */

◆ GSM48_IE_BA_LIST_PREF

#define GSM48_IE_BA_LIST_PREF   0x75

◆ GSM48_IE_BA_RANGE

#define GSM48_IE_BA_RANGE   0x73

◆ GSM48_IE_BEARER_CAP

#define GSM48_IE_BEARER_CAP   0x04 /* 10.5.4.5 */

◆ GSM48_IE_CALLED_BCD

#define GSM48_IE_CALLED_BCD   0x5e /* 10.5.4.7 */

◆ GSM48_IE_CALLED_SUB

#define GSM48_IE_CALLED_SUB   0x6d /* 10.5.4.8 */

◆ GSM48_IE_CALLING_BCD

#define GSM48_IE_CALLING_BCD   0x5c /* 10.5.4.9 */

◆ GSM48_IE_CALLING_SUB

#define GSM48_IE_CALLING_SUB   0x5d /* 10.5.4.10 */

◆ GSM48_IE_CAUSE

#define GSM48_IE_CAUSE   0x08 /* 10.5.4.11 */

◆ GSM48_IE_CBCH_CHAN_DESC

#define GSM48_IE_CBCH_CHAN_DESC   0x64

◆ GSM48_IE_CBCH_MOB_AL

#define GSM48_IE_CBCH_MOB_AL   0x72

◆ GSM48_IE_CC_CAP

#define GSM48_IE_CC_CAP   0x15 /* 10.5.4.5a */

◆ GSM48_IE_CELL_CH_DESC

#define GSM48_IE_CELL_CH_DESC   0x62

◆ GSM48_IE_CELL_SEL_IND_AFTER_REL

#define GSM48_IE_CELL_SEL_IND_AFTER_REL   0x77 /* 44.018 Section 9.1.7 */

◆ GSM48_IE_CH_DESC_1_BEFORE

#define GSM48_IE_CH_DESC_1_BEFORE   0x1c

◆ GSM48_IE_CH_DESC_2_BEFORE

#define GSM48_IE_CH_DESC_2_BEFORE   0x1d

◆ GSM48_IE_CHANDESC_2

#define GSM48_IE_CHANDESC_2   0x64

◆ GSM48_IE_CHANMODE_1

#define GSM48_IE_CHANMODE_1   0x63

◆ GSM48_IE_CHANMODE_2

#define GSM48_IE_CHANMODE_2   0x11

◆ GSM48_IE_CHANMODE_3

#define GSM48_IE_CHANMODE_3   0x13

◆ GSM48_IE_CHANMODE_4

#define GSM48_IE_CHANMODE_4   0x14

◆ GSM48_IE_CHANMODE_5

#define GSM48_IE_CHANMODE_5   0x15

◆ GSM48_IE_CHANMODE_6

#define GSM48_IE_CHANMODE_6   0x16

◆ GSM48_IE_CHANMODE_7

#define GSM48_IE_CHANMODE_7   0x17

◆ GSM48_IE_CHANMODE_8

#define GSM48_IE_CHANMODE_8   0x18

◆ GSM48_IE_CHDES_2_AFTER

#define GSM48_IE_CHDES_2_AFTER   0x64

◆ GSM48_IE_CIP_MODE_SET

#define GSM48_IE_CIP_MODE_SET   0x90 /* DEPRECATED, use GSM48_IE_CIP_MODE_SET_HO instead */

◆ GSM48_IE_CIP_MODE_SET_HO

#define GSM48_IE_CIP_MODE_SET_HO   0x09 /* HO = Half Octet Tag */

◆ GSM48_IE_CLASSMARK3

#define GSM48_IE_CLASSMARK3   0x20

◆ GSM48_IE_CLIR_INVOC

#define GSM48_IE_CLIR_INVOC   0xa2 /* 10.5.4.11b */

◆ GSM48_IE_CLIR_SUPP

#define GSM48_IE_CLIR_SUPP   0xa1 /* 10.5.4.11a */

◆ GSM48_IE_CONN_BCD

#define GSM48_IE_CONN_BCD   0x4c /* 10.5.4.13 */

◆ GSM48_IE_CONN_SUB

#define GSM48_IE_CONN_SUB   0x4d /* 10.5.4.14 */

◆ GSM48_IE_CTS_PERMISSION

#define GSM48_IE_CTS_PERMISSION   0xa2

◆ GSM48_IE_EXTENDED_TSC_SET

#define GSM48_IE_EXTENDED_TSC_SET   0x6d

◆ GSM48_IE_F_CH_SEQ_AFTER

#define GSM48_IE_F_CH_SEQ_AFTER   0x69

◆ GSM48_IE_F_CH_SEQ_BEFORE

#define GSM48_IE_F_CH_SEQ_BEFORE   0x1e

◆ GSM48_IE_FACILITY

#define GSM48_IE_FACILITY   0x1c /* 10.5.4.15 */

◆ GSM48_IE_FOLLOW_ON_PROC

#define GSM48_IE_FOLLOW_ON_PROC   0xa1

◆ GSM48_IE_FREQ_L_AFTER

#define GSM48_IE_FREQ_L_AFTER   0x05

◆ GSM48_IE_FREQ_L_BEFORE

#define GSM48_IE_FREQ_L_BEFORE   0x19

◆ GSM48_IE_FRQSHORT_AFTER

#define GSM48_IE_FRQSHORT_AFTER   0x02

◆ GSM48_IE_FRQSHORT_BEFORE

#define GSM48_IE_FRQSHORT_BEFORE   0x12

◆ GSM48_IE_GPRS_RESUMPT

#define GSM48_IE_GPRS_RESUMPT   0xc0 /* DEPRECATED, use GSM48_IE_GPRS_RESUMPT_HO instead */

◆ GSM48_IE_GPRS_RESUMPT_HO

#define GSM48_IE_GPRS_RESUMPT_HO   0xc0 /* HO = Half Octet Tag */

◆ GSM48_IE_GROUP_CHDES

#define GSM48_IE_GROUP_CHDES   0x74

◆ GSM48_IE_GROUP_CIP_SEQ

#define GSM48_IE_GROUP_CIP_SEQ   0x80 /* DEPRECATED, use GSM48_IE_GROUP_CIP_SEQ_HO instead */

◆ GSM48_IE_GROUP_CIP_SEQ_HO

#define GSM48_IE_GROUP_CIP_SEQ_HO   0x08 /* HO = Half Octet Tag */

◆ GSM48_IE_HIGHL_COMPAT

#define GSM48_IE_HIGHL_COMPAT   0x7d /* 10.5.4.16 */

◆ GSM48_IE_INDIVIDUAL_PRIORITIES

#define GSM48_IE_INDIVIDUAL_PRIORITIES   0x7c /* 44.018 Section 9.1.7 */

◆ GSM48_IE_KPD_FACILITY

#define GSM48_IE_KPD_FACILITY   0x2c /* 10.5.4.17 */

◆ GSM48_IE_LOCATION_AREA

#define GSM48_IE_LOCATION_AREA   0x13

◆ GSM48_IE_LOWL_COMPAT

#define GSM48_IE_LOWL_COMPAT   0x7c /* 10.5.4.18 */

◆ GSM48_IE_LSA_IDENT

#define GSM48_IE_LSA_IDENT   0x48 /* 10.5.3.11 */

◆ GSM48_IE_MA_AFTER [1/2]

#define GSM48_IE_MA_AFTER   0x72

◆ GSM48_IE_MA_AFTER [2/2]

#define GSM48_IE_MA_AFTER   0x72

◆ GSM48_IE_MA_BEFORE

#define GSM48_IE_MA_BEFORE   0x21

◆ GSM48_IE_MOB_OVSERV_DIF

#define GSM48_IE_MOB_OVSERV_DIF   0x77

◆ GSM48_IE_MOBILE_ID

#define GSM48_IE_MOBILE_ID   0x17 /* 10.5.1.4 */

◆ GSM48_IE_MODE_SEC_CH

#define GSM48_IE_MODE_SEC_CH   0x66

◆ GSM48_IE_MORE_DATA

#define GSM48_IE_MORE_DATA   0xa0 /* 10.5.4.19 */

◆ GSM48_IE_MSLOT_DESC

#define GSM48_IE_MSLOT_DESC   0x10

◆ GSM48_IE_MUL_RATE_CFG

#define GSM48_IE_MUL_RATE_CFG   0x03 /* 10.5.2.21aa */

◆ GSM48_IE_NAME_LONG

#define GSM48_IE_NAME_LONG   0x43 /* 10.5.3.5a */

◆ GSM48_IE_NAME_SHORT

#define GSM48_IE_NAME_SHORT   0x45 /* 10.5.3.5a */

◆ GSM48_IE_NET_DST

#define GSM48_IE_NET_DST   0x49 /* 10.5.3.12 [24.008] */

◆ GSM48_IE_NET_TIME_TZ

#define GSM48_IE_NET_TIME_TZ   0x47 /* 10.5.3.9 */

◆ GSM48_IE_NOTIFY

#define GSM48_IE_NOTIFY   0x27 /* 10.5.4.20 */

◆ GSM48_IE_PRIORITY_LEV

#define GSM48_IE_PRIORITY_LEV   0x80 /* DEPRECATED, use GSM48_IE_PRIORITY_LEV_HO instead */

◆ GSM48_IE_PRIORITY_LEV_HO

#define GSM48_IE_PRIORITY_LEV_HO   0x08 /* HO = Half Octet Tag */

◆ GSM48_IE_PROGR_IND

#define GSM48_IE_PROGR_IND   0x1e /* 10.5.4.21 */

◆ GSM48_IE_REALTIME_DIFF

#define GSM48_IE_REALTIME_DIFF   0x7b

◆ GSM48_IE_REDIR_BCD

#define GSM48_IE_REDIR_BCD   0x74 /* 10.5.4.21a */

◆ GSM48_IE_REDIR_SUB

#define GSM48_IE_REDIR_SUB   0x75 /* 10.5.4.21b */

◆ GSM48_IE_REPEAT_CIR

#define GSM48_IE_REPEAT_CIR   0xd1 /* 10.5.4.22 */

◆ GSM48_IE_REPEAT_SEQ

#define GSM48_IE_REPEAT_SEQ   0xd3 /* 10.5.4.22 */

◆ GSM48_IE_REV_C_SETUP

#define GSM48_IE_REV_C_SETUP   0xa3 /* 10.5.4.22a */

◆ GSM48_IE_RR_PACKET_DL

#define GSM48_IE_RR_PACKET_DL   0x23

◆ GSM48_IE_RR_PACKET_UL

#define GSM48_IE_RR_PACKET_UL   0x22

◆ GSM48_IE_SIGNAL

#define GSM48_IE_SIGNAL   0x34 /* 10.5.4.23 */

◆ GSM48_IE_SS_VERS

#define GSM48_IE_SS_VERS   0x7f /* 10.5.4.24 */

◆ GSM48_IE_START_TIME [1/2]

#define GSM48_IE_START_TIME   0x7c

◆ GSM48_IE_START_TIME [2/2]

#define GSM48_IE_START_TIME   0x7c

◆ GSM48_IE_SYNC_IND

#define GSM48_IE_SYNC_IND   0xd0 /* DEPRECATED, use GSM48_IE_SYNC_IND_HO instead */

◆ GSM48_IE_SYNC_IND_HO

#define GSM48_IE_SYNC_IND_HO   0x0d /* HO = Half Octet Tag */

◆ GSM48_IE_TIMING_ADVANCE

#define GSM48_IE_TIMING_ADVANCE   0x7d

◆ GSM48_IE_USER_USER

#define GSM48_IE_USER_USER   0x7e /* 10.5.4.25 */

◆ GSM48_IE_UTC

#define GSM48_IE_UTC   0x46 /* 10.5.3.8 */

◆ GSM48_IE_VGCS_TARGET

#define GSM48_IE_VGCS_TARGET   0x01

◆ GSM48_LUPD_IMSI_ATT

#define GSM48_LUPD_IMSI_ATT   0x2

◆ GSM48_LUPD_NORMAL

#define GSM48_LUPD_NORMAL   0x0

◆ GSM48_LUPD_PERIODIC

#define GSM48_LUPD_PERIODIC   0x1

◆ GSM48_LUPD_RESERVED

#define GSM48_LUPD_RESERVED   0x3

◆ GSM48_MI_SIZE

#define GSM48_MI_SIZE   32

◆ GSM48_MID_TMSI_LEN

#define GSM48_MID_TMSI_LEN   (GSM48_TMSI_LEN + 2)

◆ GSM48_MT_CC_ALERTING

#define GSM48_MT_CC_ALERTING   0x01

◆ GSM48_MT_CC_CALL_CONF

#define GSM48_MT_CC_CALL_CONF   0x08

◆ GSM48_MT_CC_CALL_PROC

#define GSM48_MT_CC_CALL_PROC   0x02

◆ GSM48_MT_CC_CONG_CTRL

#define GSM48_MT_CC_CONG_CTRL   0x39

◆ GSM48_MT_CC_CONNECT

#define GSM48_MT_CC_CONNECT   0x07

◆ GSM48_MT_CC_CONNECT_ACK

#define GSM48_MT_CC_CONNECT_ACK   0x0f

◆ GSM48_MT_CC_DISCONNECT

#define GSM48_MT_CC_DISCONNECT   0x25

◆ GSM48_MT_CC_EMERG_SETUP

#define GSM48_MT_CC_EMERG_SETUP   0x0e

◆ GSM48_MT_CC_ESTAB

#define GSM48_MT_CC_ESTAB   0x04

◆ GSM48_MT_CC_ESTAB_CONF

#define GSM48_MT_CC_ESTAB_CONF   0x06

◆ GSM48_MT_CC_FACILITY

#define GSM48_MT_CC_FACILITY   0x3a

◆ GSM48_MT_CC_HOLD

#define GSM48_MT_CC_HOLD   0x18

◆ GSM48_MT_CC_HOLD_ACK

#define GSM48_MT_CC_HOLD_ACK   0x19

◆ GSM48_MT_CC_HOLD_REJ

#define GSM48_MT_CC_HOLD_REJ   0x1a

◆ GSM48_MT_CC_MODIFY

#define GSM48_MT_CC_MODIFY   0x17

◆ GSM48_MT_CC_MODIFY_COMPL

#define GSM48_MT_CC_MODIFY_COMPL   0x1f

◆ GSM48_MT_CC_MODIFY_REJECT

#define GSM48_MT_CC_MODIFY_REJECT   0x13

◆ GSM48_MT_CC_NOTIFY

#define GSM48_MT_CC_NOTIFY   0x3e

◆ GSM48_MT_CC_PROGRESS

#define GSM48_MT_CC_PROGRESS   0x03

◆ GSM48_MT_CC_RECALL

#define GSM48_MT_CC_RECALL   0x0b

◆ GSM48_MT_CC_RELEASE

#define GSM48_MT_CC_RELEASE   0x2d

◆ GSM48_MT_CC_RELEASE_COMPL

#define GSM48_MT_CC_RELEASE_COMPL   0x2a

◆ GSM48_MT_CC_RETR

#define GSM48_MT_CC_RETR   0x1c

◆ GSM48_MT_CC_RETR_ACK

#define GSM48_MT_CC_RETR_ACK   0x1d

◆ GSM48_MT_CC_RETR_REJ

#define GSM48_MT_CC_RETR_REJ   0x1e

◆ GSM48_MT_CC_SETUP

#define GSM48_MT_CC_SETUP   0x05

◆ GSM48_MT_CC_START_CC

#define GSM48_MT_CC_START_CC   0x09

◆ GSM48_MT_CC_START_DTMF

#define GSM48_MT_CC_START_DTMF   0x35

◆ GSM48_MT_CC_START_DTMF_ACK

#define GSM48_MT_CC_START_DTMF_ACK   0x36

◆ GSM48_MT_CC_START_DTMF_REJ

#define GSM48_MT_CC_START_DTMF_REJ   0x37

◆ GSM48_MT_CC_STATUS

#define GSM48_MT_CC_STATUS   0x3d

◆ GSM48_MT_CC_STATUS_ENQ

#define GSM48_MT_CC_STATUS_ENQ   0x34

◆ GSM48_MT_CC_STOP_DTMF

#define GSM48_MT_CC_STOP_DTMF   0x31

◆ GSM48_MT_CC_STOP_DTMF_ACK

#define GSM48_MT_CC_STOP_DTMF_ACK   0x32

◆ GSM48_MT_CC_USER_INFO

#define GSM48_MT_CC_USER_INFO   0x10

◆ GSM48_MT_MM_ABORT

#define GSM48_MT_MM_ABORT   0x29

◆ GSM48_MT_MM_AUTH_FAIL

#define GSM48_MT_MM_AUTH_FAIL   0x1c

◆ GSM48_MT_MM_AUTH_REJ

#define GSM48_MT_MM_AUTH_REJ   0x11

◆ GSM48_MT_MM_AUTH_REQ

#define GSM48_MT_MM_AUTH_REQ   0x12

◆ GSM48_MT_MM_AUTH_RESP

#define GSM48_MT_MM_AUTH_RESP   0x14

◆ GSM48_MT_MM_CM_REEST_REQ

#define GSM48_MT_MM_CM_REEST_REQ   0x28

◆ GSM48_MT_MM_CM_SERV_ABORT

#define GSM48_MT_MM_CM_SERV_ABORT   0x23

◆ GSM48_MT_MM_CM_SERV_ACC

#define GSM48_MT_MM_CM_SERV_ACC   0x21

◆ GSM48_MT_MM_CM_SERV_PROMPT

#define GSM48_MT_MM_CM_SERV_PROMPT   0x25

◆ GSM48_MT_MM_CM_SERV_REJ

#define GSM48_MT_MM_CM_SERV_REJ   0x22

◆ GSM48_MT_MM_CM_SERV_REQ

#define GSM48_MT_MM_CM_SERV_REQ   0x24

◆ GSM48_MT_MM_ID_REQ

#define GSM48_MT_MM_ID_REQ   0x18

◆ GSM48_MT_MM_ID_RESP

#define GSM48_MT_MM_ID_RESP   0x19

◆ GSM48_MT_MM_IMSI_DETACH_IND

#define GSM48_MT_MM_IMSI_DETACH_IND   0x01

◆ GSM48_MT_MM_INFO

#define GSM48_MT_MM_INFO   0x32

◆ GSM48_MT_MM_LOC_UPD_ACCEPT

#define GSM48_MT_MM_LOC_UPD_ACCEPT   0x02

◆ GSM48_MT_MM_LOC_UPD_REJECT

#define GSM48_MT_MM_LOC_UPD_REJECT   0x04

◆ GSM48_MT_MM_LOC_UPD_REQUEST

#define GSM48_MT_MM_LOC_UPD_REQUEST   0x08

◆ GSM48_MT_MM_NULL

#define GSM48_MT_MM_NULL   0x30

◆ GSM48_MT_MM_STATUS

#define GSM48_MT_MM_STATUS   0x31

◆ GSM48_MT_MM_TMSI_REALL_CMD

#define GSM48_MT_MM_TMSI_REALL_CMD   0x1a

◆ GSM48_MT_MM_TMSI_REALL_COMPL

#define GSM48_MT_MM_TMSI_REALL_COMPL   0x1b

◆ GSM48_MT_RR_ADD_ASS

#define GSM48_MT_RR_ADD_ASS   0x3b

◆ GSM48_MT_RR_APP_INFO

#define GSM48_MT_RR_APP_INFO   0x38

◆ GSM48_MT_RR_ASS_CMD

#define GSM48_MT_RR_ASS_CMD   0x2e

◆ GSM48_MT_RR_ASS_COMPL

#define GSM48_MT_RR_ASS_COMPL   0x29

◆ GSM48_MT_RR_ASS_FAIL

#define GSM48_MT_RR_ASS_FAIL   0x2f

◆ GSM48_MT_RR_CDMA2K_CLSM_CHG

#define GSM48_MT_RR_CDMA2K_CLSM_CHG   0x62

◆ GSM48_MT_RR_CELL_CHG_ORDER

#define GSM48_MT_RR_CELL_CHG_ORDER   0x08

◆ GSM48_MT_RR_CFG_CHG_ACK

#define GSM48_MT_RR_CFG_CHG_ACK   0x31

◆ GSM48_MT_RR_CFG_CHG_CMD

#define GSM48_MT_RR_CFG_CHG_CMD   0x30

◆ GSM48_MT_RR_CFG_CHG_REJ

#define GSM48_MT_RR_CFG_CHG_REJ   0x33

◆ GSM48_MT_RR_CHAN_MODE_MODIF

#define GSM48_MT_RR_CHAN_MODE_MODIF   0x10

◆ GSM48_MT_RR_CHAN_MODE_MODIF_ACK

#define GSM48_MT_RR_CHAN_MODE_MODIF_ACK   0x17

◆ GSM48_MT_RR_CHAN_REL

#define GSM48_MT_RR_CHAN_REL   0x0d

◆ GSM48_MT_RR_CIPH_M_CMD

#define GSM48_MT_RR_CIPH_M_CMD   0x35

◆ GSM48_MT_RR_CIPH_M_COMPL

#define GSM48_MT_RR_CIPH_M_COMPL   0x32

◆ GSM48_MT_RR_CLSM_CHG

#define GSM48_MT_RR_CLSM_CHG   0x16

◆ GSM48_MT_RR_CLSM_ENQ

#define GSM48_MT_RR_CLSM_ENQ   0x13

◆ GSM48_MT_RR_DTM_ASS_CMD

#define GSM48_MT_RR_DTM_ASS_CMD   0x4c

◆ GSM48_MT_RR_DTM_ASS_FAIL

#define GSM48_MT_RR_DTM_ASS_FAIL   0x48

◆ GSM48_MT_RR_DTM_INFO

#define GSM48_MT_RR_DTM_INFO   0x4d

◆ GSM48_MT_RR_DTM_REJECT

#define GSM48_MT_RR_DTM_REJECT   0x49

◆ GSM48_MT_RR_DTM_REQUEST

#define GSM48_MT_RR_DTM_REQUEST   0x4A

◆ GSM48_MT_RR_EXT_MEAS_REP

#define GSM48_MT_RR_EXT_MEAS_REP   0x36

◆ GSM48_MT_RR_EXT_MEAS_REP_ORD

#define GSM48_MT_RR_EXT_MEAS_REP_ORD   0x37

◆ GSM48_MT_RR_FREQ_REDEF

#define GSM48_MT_RR_FREQ_REDEF   0x14

◆ GSM48_MT_RR_GPRS_SUSP_REQ

#define GSM48_MT_RR_GPRS_SUSP_REQ   0x34

◆ GSM48_MT_RR_HANDO_CMD

#define GSM48_MT_RR_HANDO_CMD   0x2b

◆ GSM48_MT_RR_HANDO_COMPL

#define GSM48_MT_RR_HANDO_COMPL   0x2c

◆ GSM48_MT_RR_HANDO_FAIL

#define GSM48_MT_RR_HANDO_FAIL   0x28

◆ GSM48_MT_RR_HANDO_INFO [1/2]

#define GSM48_MT_RR_HANDO_INFO   0x2d

◆ GSM48_MT_RR_HANDO_INFO [2/2]

#define GSM48_MT_RR_HANDO_INFO   0x2d

◆ GSM48_MT_RR_IMM_ASS

#define GSM48_MT_RR_IMM_ASS   0x3f

◆ GSM48_MT_RR_IMM_ASS_EXT

#define GSM48_MT_RR_IMM_ASS_EXT   0x39

◆ GSM48_MT_RR_IMM_ASS_REJ

#define GSM48_MT_RR_IMM_ASS_REJ   0x3a

◆ GSM48_MT_RR_INIT_REQ

#define GSM48_MT_RR_INIT_REQ   0x3c

◆ GSM48_MT_RR_IS_TO_CDMA2K_HANDO

#define GSM48_MT_RR_IS_TO_CDMA2K_HANDO   0x64

◆ GSM48_MT_RR_IS_TO_UTRAN_HANDO

#define GSM48_MT_RR_IS_TO_UTRAN_HANDO   0x63

◆ GSM48_MT_RR_MEAS_REP

#define GSM48_MT_RR_MEAS_REP   0x15

◆ GSM48_MT_RR_NOTIF_FACCH

#define GSM48_MT_RR_NOTIF_FACCH   0x25 /* (Reserved) */

◆ GSM48_MT_RR_NOTIF_NCH

#define GSM48_MT_RR_NOTIF_NCH   0x20

◆ GSM48_MT_RR_NOTIF_RESP

#define GSM48_MT_RR_NOTIF_RESP   0x26

◆ GSM48_MT_RR_PACKET_ASS

#define GSM48_MT_RR_PACKET_ASS   0x4B

◆ GSM48_MT_RR_PACKET_NOTIF

#define GSM48_MT_RR_PACKET_NOTIF   0x4e

◆ GSM48_MT_RR_PAG_REQ_1

#define GSM48_MT_RR_PAG_REQ_1   0x21

◆ GSM48_MT_RR_PAG_REQ_2

#define GSM48_MT_RR_PAG_REQ_2   0x22

◆ GSM48_MT_RR_PAG_REQ_3

#define GSM48_MT_RR_PAG_REQ_3   0x24

◆ GSM48_MT_RR_PAG_RESP

#define GSM48_MT_RR_PAG_RESP   0x27

◆ GSM48_MT_RR_PART_REL

#define GSM48_MT_RR_PART_REL   0x0a

◆ GSM48_MT_RR_PART_REL_COMP

#define GSM48_MT_RR_PART_REL_COMP   0x0f

◆ GSM48_MT_RR_PDCH_ASS_CMD

#define GSM48_MT_RR_PDCH_ASS_CMD   0x23

◆ GSM48_MT_RR_SH_APP_DATA

#define GSM48_MT_RR_SH_APP_DATA   0xD

◆ GSM48_MT_RR_SH_FACCH

#define GSM48_MT_RR_SH_FACCH   0x1

◆ GSM48_MT_RR_SH_MEAS_INFO

#define GSM48_MT_RR_SH_MEAS_INFO   0x5

◆ GSM48_MT_RR_SH_MEAS_REP

#define GSM48_MT_RR_SH_MEAS_REP   0x4

◆ GSM48_MT_RR_SH_SI10

#define GSM48_MT_RR_SH_SI10   0x0

◆ GSM48_MT_RR_SH_SI10bis

#define GSM48_MT_RR_SH_SI10bis   0xA

◆ GSM48_MT_RR_SH_SI10ter

#define GSM48_MT_RR_SH_SI10ter   0xB

◆ GSM48_MT_RR_SH_UL_FREE

#define GSM48_MT_RR_SH_UL_FREE   0x2

◆ GSM48_MT_RR_SH_VGCS_INFO

#define GSM48_MT_RR_SH_VGCS_INFO   0x8

◆ GSM48_MT_RR_SH_VGCS_NEIGH

#define GSM48_MT_RR_SH_VGCS_NEIGH   0xC

◆ GSM48_MT_RR_SH_VGCS_RECON

#define GSM48_MT_RR_SH_VGCS_RECON   0x6

◆ GSM48_MT_RR_SH_VGCS_RECON2

#define GSM48_MT_RR_SH_VGCS_RECON2   0x7

◆ GSM48_MT_RR_SH_VGCS_SMS

#define GSM48_MT_RR_SH_VGCS_SMS   0x9

◆ GSM48_MT_RR_STATUS

#define GSM48_MT_RR_STATUS   0x12

◆ GSM48_MT_RR_SYSINFO_1

#define GSM48_MT_RR_SYSINFO_1   0x19

◆ GSM48_MT_RR_SYSINFO_13

#define GSM48_MT_RR_SYSINFO_13   0x00

◆ GSM48_MT_RR_SYSINFO_16

#define GSM48_MT_RR_SYSINFO_16   0x3d

◆ GSM48_MT_RR_SYSINFO_17

#define GSM48_MT_RR_SYSINFO_17   0x3e

◆ GSM48_MT_RR_SYSINFO_18

#define GSM48_MT_RR_SYSINFO_18   0x40

◆ GSM48_MT_RR_SYSINFO_19

#define GSM48_MT_RR_SYSINFO_19   0x41

◆ GSM48_MT_RR_SYSINFO_2

#define GSM48_MT_RR_SYSINFO_2   0x1a

◆ GSM48_MT_RR_SYSINFO_20

#define GSM48_MT_RR_SYSINFO_20   0x42

◆ GSM48_MT_RR_SYSINFO_2bis

#define GSM48_MT_RR_SYSINFO_2bis   0x02

◆ GSM48_MT_RR_SYSINFO_2quater

#define GSM48_MT_RR_SYSINFO_2quater   0x07

◆ GSM48_MT_RR_SYSINFO_2ter

#define GSM48_MT_RR_SYSINFO_2ter   0x03

◆ GSM48_MT_RR_SYSINFO_3

#define GSM48_MT_RR_SYSINFO_3   0x1b

◆ GSM48_MT_RR_SYSINFO_4

#define GSM48_MT_RR_SYSINFO_4   0x1c

◆ GSM48_MT_RR_SYSINFO_5

#define GSM48_MT_RR_SYSINFO_5   0x1d

◆ GSM48_MT_RR_SYSINFO_5bis

#define GSM48_MT_RR_SYSINFO_5bis   0x05

◆ GSM48_MT_RR_SYSINFO_5ter

#define GSM48_MT_RR_SYSINFO_5ter   0x06

◆ GSM48_MT_RR_SYSINFO_6

#define GSM48_MT_RR_SYSINFO_6   0x1e

◆ GSM48_MT_RR_SYSINFO_7

#define GSM48_MT_RR_SYSINFO_7   0x1f

◆ GSM48_MT_RR_SYSINFO_8

#define GSM48_MT_RR_SYSINFO_8   0x18

◆ GSM48_MT_RR_SYSINFO_9

#define GSM48_MT_RR_SYSINFO_9   0x04

◆ GSM48_MT_RR_TALKER_IND

#define GSM48_MT_RR_TALKER_IND   0x11

◆ GSM48_MT_RR_UPLINK_BUSY

#define GSM48_MT_RR_UPLINK_BUSY   0x2a

◆ GSM48_MT_RR_UPLINK_FREE

#define GSM48_MT_RR_UPLINK_FREE   0x0c

◆ GSM48_MT_RR_UPLINK_RELEASE

#define GSM48_MT_RR_UPLINK_RELEASE   0x0e

◆ GSM48_MT_RR_UTRAN_CLSM_CHG

#define GSM48_MT_RR_UTRAN_CLSM_CHG   0x60

◆ GSM48_MT_RR_VGCS_UPL_GRANT

#define GSM48_MT_RR_VGCS_UPL_GRANT   0x09

◆ GSM48_PDISC_BCAST_CC

#define GSM48_PDISC_BCAST_CC   0x01

◆ GSM48_PDISC_CC

#define GSM48_PDISC_CC   0x03

◆ GSM48_PDISC_EXTEND

#define GSM48_PDISC_EXTEND   0x0e

◆ GSM48_PDISC_GROUP_CC

#define GSM48_PDISC_GROUP_CC   0x00

◆ GSM48_PDISC_GTTP

#define GSM48_PDISC_GTTP   0x04 /* 24.007 only */

◆ GSM48_PDISC_LOC

#define GSM48_PDISC_LOC   0x0c

◆ GSM48_PDISC_MASK

#define GSM48_PDISC_MASK   0x0f

◆ GSM48_PDISC_MM

#define GSM48_PDISC_MM   0x05

◆ GSM48_PDISC_MM_GPRS

#define GSM48_PDISC_MM_GPRS   0x08

◆ GSM48_PDISC_NC_SS

#define GSM48_PDISC_NC_SS   0x0b

◆ GSM48_PDISC_PDSS1

#define GSM48_PDISC_PDSS1   0x02 /* 04.07 only */

◆ GSM48_PDISC_PDSS2

#define GSM48_PDISC_PDSS2   0x04 /* 04.07 only */

◆ GSM48_PDISC_RR

#define GSM48_PDISC_RR   0x06

◆ GSM48_PDISC_SH_RR

#define GSM48_PDISC_SH_RR   0

◆ GSM48_PDISC_SM_GPRS

#define GSM48_PDISC_SM_GPRS   0x0a

◆ GSM48_PDISC_SMS

#define GSM48_PDISC_SMS   0x09

◆ GSM48_PDISC_TEST

#define GSM48_PDISC_TEST   0x0f /* as per 11.10, 04.14 */

◆ GSM48_PM_EXTENDED

#define GSM48_PM_EXTENDED   0x01

◆ GSM48_PM_MASK

#define GSM48_PM_MASK   0x03

◆ GSM48_PM_NORMAL

#define GSM48_PM_NORMAL   0x00

◆ GSM48_PM_REORG

#define GSM48_PM_REORG   0x02

◆ GSM48_PM_SAME

#define GSM48_PM_SAME   0x03

◆ GSM48_T301

#define GSM48_T301   180, 0

◆ GSM48_T303

#define GSM48_T303   30, 0

◆ GSM48_T303_MS

#define GSM48_T303_MS   30, 0

◆ GSM48_T305

#define GSM48_T305   30, 0

◆ GSM48_T305_MS

#define GSM48_T305_MS   30, 0

◆ GSM48_T306

#define GSM48_T306   30, 0

◆ GSM48_T308

#define GSM48_T308   10, 0 /* no spec default */

◆ GSM48_T308_MS

#define GSM48_T308_MS   30, 0

◆ GSM48_T310

#define GSM48_T310   30, 0 /* no spec default */

◆ GSM48_T310_MS

#define GSM48_T310_MS   30, 0

◆ GSM48_T313

#define GSM48_T313   30, 0 /* no spec default */

◆ GSM48_T313_MS

#define GSM48_T313_MS   30, 0

◆ GSM48_T323

#define GSM48_T323   30, 0

◆ GSM48_T323_MS

#define GSM48_T323_MS   30, 0

◆ GSM48_T331

#define GSM48_T331   30, 0 /* no spec default */

◆ GSM48_T332_MS

#define GSM48_T332_MS   30, 0

◆ GSM48_T333

#define GSM48_T333   30, 0 /* no spec default */

◆ GSM48_T334

#define GSM48_T334   25, 0 /* min 15s */

◆ GSM48_T335_MS

#define GSM48_T335_MS   30, 0

◆ GSM48_T338

#define GSM48_T338   30, 0 /* no spec default */

◆ GSM48_TA_INVALID

#define GSM48_TA_INVALID   220

◆ GSM48_TMSI_LEN

#define GSM48_TMSI_LEN   5

◆ GSM_CSTATE_ACTIVE

#define GSM_CSTATE_ACTIVE   10

◆ GSM_CSTATE_CALL_DELIVERED

#define GSM_CSTATE_CALL_DELIVERED   4

◆ GSM_CSTATE_CALL_PRESENT

#define GSM_CSTATE_CALL_PRESENT   6

◆ GSM_CSTATE_CALL_RECEIVED

#define GSM_CSTATE_CALL_RECEIVED   7

◆ GSM_CSTATE_CONNECT_IND

#define GSM_CSTATE_CONNECT_IND   28

◆ GSM_CSTATE_CONNECT_REQUEST

#define GSM_CSTATE_CONNECT_REQUEST   8

◆ GSM_CSTATE_DISCONNECT_IND

#define GSM_CSTATE_DISCONNECT_IND   12

◆ GSM_CSTATE_DISCONNECT_REQ

#define GSM_CSTATE_DISCONNECT_REQ   12

◆ GSM_CSTATE_INITIATED

#define GSM_CSTATE_INITIATED   1

◆ GSM_CSTATE_MM_CONNECTION_PEND

#define GSM_CSTATE_MM_CONNECTION_PEND   2 /* see 10.5.4.6 */

◆ GSM_CSTATE_MO_CALL_PROC

#define GSM_CSTATE_MO_CALL_PROC   3

◆ GSM_CSTATE_MO_ORIG_MODIFY

#define GSM_CSTATE_MO_ORIG_MODIFY   26

◆ GSM_CSTATE_MO_TERM_CALL_CONF

#define GSM_CSTATE_MO_TERM_CALL_CONF   9

◆ GSM_CSTATE_MO_TERM_MODIFY

#define GSM_CSTATE_MO_TERM_MODIFY   27

◆ GSM_CSTATE_NULL

#define GSM_CSTATE_NULL   0

◆ GSM_CSTATE_RELEASE_REQ

#define GSM_CSTATE_RELEASE_REQ   19

◆ GSM_LAC_RESERVED_ALL_BTS

#define GSM_LAC_RESERVED_ALL_BTS   0xfffe

◆ GSM_LAC_RESERVED_DETACHED

#define GSM_LAC_RESERVED_DETACHED   0x0

◆ GSM_MACBLOCK_LEN

#define GSM_MACBLOCK_LEN   23

◆ GSM_MACBLOCK_PADDING

#define GSM_MACBLOCK_PADDING   0x2b

◆ GSM_MI_ODD

#define GSM_MI_ODD   0x08

◆ GSM_MI_TYPE_IMEI

#define GSM_MI_TYPE_IMEI   0x02

◆ GSM_MI_TYPE_IMEISV

#define GSM_MI_TYPE_IMEISV   0x03

◆ GSM_MI_TYPE_IMSI

#define GSM_MI_TYPE_IMSI   0x01

◆ GSM_MI_TYPE_MASK

#define GSM_MI_TYPE_MASK   0x07

◆ GSM_MI_TYPE_NONE

#define GSM_MI_TYPE_NONE   0x00

◆ GSM_MI_TYPE_TMSI

#define GSM_MI_TYPE_TMSI   0x04

◆ SBIT

#define SBIT (   a)    (1 << a)

Enumeration Type Documentation

◆ chreq_type

enum chreq_type
Enumerator
CHREQ_T_EMERG_CALL 
CHREQ_T_CALL_REEST_TCH_F 
CHREQ_T_CALL_REEST_TCH_H 
CHREQ_T_CALL_REEST_TCH_H_DBL 
CHREQ_T_SDCCH 
CHREQ_T_TCH_F 
CHREQ_T_VOICE_CALL_TCH_H 
CHREQ_T_DATA_CALL_TCH_H 
CHREQ_T_LOCATION_UPD 
CHREQ_T_PAG_R_ANY_NECI0 
CHREQ_T_PAG_R_ANY_NECI1 
CHREQ_T_PAG_R_TCH_F 
CHREQ_T_PAG_R_TCH_FH 
CHREQ_T_LMU 
CHREQ_T_RESERVED_SDCCH 
CHREQ_T_RESERVED_IGNORE 
CHREQ_T_PDCH_ONE_PHASE 
CHREQ_T_PDCH_TWO_PHASE 
_NUM_CHREQ_T 

◆ gsm48_bcap_coding

Enumerator
GSM48_BCAP_CODING_GSM_STD 

◆ gsm48_bcap_fixed_net_user_rate

Table 10.5.112/3GPP TS 24.008: Fixed network user rate (octet 6d)

Enumerator
GSM48_BCAP_FNUR_NONE 

FNUR not applicable / No meaning associated.

GSM48_BCAP_FNUR_X1_V110_9600 

9.6 kbit/s (according to ITU-T Rec.

X.1 and V.110)

GSM48_BCAP_FNUR_X1_V110_14400 

14.4 kbit/s (according to ITU-T Rec.

X.1 and V.110)

GSM48_BCAP_FNUR_X1_V110_19200 

19.2 kbit/s (according to ITU-T Rec.

X.1 and V.110)

GSM48_BCAP_FNUR_X1_V110_28800 

28.8 kbit/s (according to ITU-T Rec.

X.1 and V.110)

GSM48_BCAP_FNUR_X1_V110_38400 

38.4 kbit/s (according to ITU-T Rec.

X.1 and V.110)

GSM48_BCAP_FNUR_X1_V110_48000 

48.0 kbit/s (according to ITU-T Rec.

X.1 and V.110)

GSM48_BCAP_FNUR_X1_V110_56000 

56.0 kbit/s (according to ITU-T Rec.

X.1 and V.110)

GSM48_BCAP_FNUR_BT_64000 

64.0 kbit/s bit transparent

GSM48_BCAP_FNUR_BT_33600 

33.6 kbit/s bit transparent

GSM48_BCAP_FNUR_I460_32000 

32.0 kbit/s (according to ITU-T Rec.

I.460)

GSM48_BCAP_FNUR_V34_31200 

31.2 kbit/s (according to ITU-T Rec.

V.34)

◆ gsm48_bcap_interm_rate

Enumerator
GSM48_BCAP_IR_8k 
GSM48_BCAP_IR_16k 

◆ gsm48_bcap_itcap

Enumerator
GSM48_BCAP_ITCAP_SPEECH 
GSM48_BCAP_ITCAP_UNR_DIG_INF 
GSM48_BCAP_ITCAP_3k1_AUDIO 
GSM48_BCAP_ITCAP_FAX_G3 
GSM48_BCAP_ITCAP_OTHER 
GSM48_BCAP_ITCAP_RESERVED 

◆ gsm48_bcap_modem_type

Enumerator
GSM48_BCAP_MT_NONE 
GSM48_BCAP_MT_V21 
GSM48_BCAP_MT_V22 
GSM48_BCAP_MT_V22bis 
GSM48_BCAP_MT_V23 
GSM48_BCAP_MT_V26ter 
GSM48_BCAP_MT_V32 
GSM48_BCAP_MT_UNDEF 
GSM48_BCAP_MT_AUTO_1 

◆ gsm48_bcap_other_modem_type

Table 10.5.112/3GPP TS 24.008: Other modem type (octet 6d)

Enumerator
GSM48_BCAP_OTHER_MT_NONE 

No other modem type specified.

GSM48_BCAP_OTHER_MT_V34 

According to ITU-T Rec.

V.34

◆ gsm48_bcap_parity

Enumerator
GSM48_BCAP_PAR_ODD 
GSM48_BCAP_PAR_EVEN 
GSM48_BCAP_PAR_NONE 
GSM48_BCAP_PAR_ZERO 
GSM48_BCAP_PAR_ONE 

◆ gsm48_bcap_ra

Enumerator
GSM48_BCAP_RA_NONE 
GSM48_BCAP_RA_V110_X30 
GSM48_BCAP_RA_X31 
GSM48_BCAP_RA_OTHER 

◆ gsm48_bcap_rrq

Enumerator
GSM48_BCAP_RRQ_FR_ONLY 
GSM48_BCAP_RRQ_DUAL_HR 
GSM48_BCAP_RRQ_DUAL_FR 

◆ gsm48_bcap_sig_access

Enumerator
GSM48_BCAP_SA_I440_I450 
GSM48_BCAP_SA_X21 
GSM48_BCAP_SA_X28_DP_IN 
GSM48_BCAP_SA_X28_DP_UN 
GSM48_BCAP_SA_X28_NDP 
GSM48_BCAP_SA_X32 

◆ gsm48_bcap_speech_ver

GSM 04.08 Bearer Capability: Speech Version Indication (See also 3GPP TS 24.008, Table 10.5.103 and 3GPP TS 26.103, Table 4.1 "Support of Codec Types in Radio Access Technologies")

Enumerator
GSM48_BCAP_SV_FR 

GSM FR V1 (GSM FR)

GSM48_BCAP_SV_HR 

GSM HR V1 (GSM HR)

GSM48_BCAP_SV_EFR 

GSM FR V2 (GSM EFR)

GSM48_BCAP_SV_AMR_F 

GSM FR V3 (FR AMR)

GSM48_BCAP_SV_AMR_H 

GSM HR V3 (HR_AMR)

GSM48_BCAP_SV_AMR_OFW 

GSM FR V4 (OFR AMR-WB)

GSM48_BCAP_SV_AMR_OHW 

GSM HR V4 (OHR AMR-WB)

GSM48_BCAP_SV_AMR_FW 

GSM FR V5 (FR AMR-WB)

GSM48_BCAP_SV_AMR_OH 

GSM HR V6 (OHR AMR)

◆ gsm48_bcap_tmod

Enumerator
GSM48_BCAP_TMOD_CIRCUIT 
GSM48_BCAP_TMOD_PACKET 

◆ gsm48_bcap_transp

Enumerator
GSM48_BCAP_TR_TRANSP 
GSM48_BCAP_TR_RLP 
GSM48_BCAP_TR_TR_PREF 
GSM48_BCAP_TR_RLP_PREF 

◆ gsm48_bcap_user_rate

Enumerator
GSM48_BCAP_UR_300 
GSM48_BCAP_UR_1200 
GSM48_BCAP_UR_2400 
GSM48_BCAP_UR_4800 
GSM48_BCAP_UR_9600 
GSM48_BCAP_UR_12000 
GSM48_BCAP_UR_1200_75 

◆ gsm48_cause_coding

Enumerator
GSM48_CAUSE_CODING_CCITT_Q931 
GSM48_CAUSE_CODING_RESERVED 
GSM48_CAUSE_CODING_NATIONAL 
GSM48_CAUSE_CODING_GSM 

◆ gsm48_cause_loc

Enumerator
GSM48_CAUSE_LOC_USER 
GSM48_CAUSE_LOC_PRN_S_LU 
GSM48_CAUSE_LOC_PUN_S_LU 
GSM48_CAUSE_LOC_TRANS_NET 
GSM48_CAUSE_LOC_PUN_S_RU 
GSM48_CAUSE_LOC_PRN_S_RU 
GSM48_CAUSE_LOC_INN_NET 
GSM48_CAUSE_LOC_NET_BEYOND 

◆ gsm48_cc_cause

Enumerator
GSM48_CC_CAUSE_UNASSIGNED_NR 
GSM48_CC_CAUSE_NO_ROUTE 
GSM48_CC_CAUSE_CHAN_UNACCEPT 
GSM48_CC_CAUSE_OP_DET_BARRING 
GSM48_CC_CAUSE_NORM_CALL_CLEAR 
GSM48_CC_CAUSE_USER_BUSY 
GSM48_CC_CAUSE_USER_NOTRESPOND 
GSM48_CC_CAUSE_USER_ALERTING_NA 
GSM48_CC_CAUSE_CALL_REJECTED 
GSM48_CC_CAUSE_NUMBER_CHANGED 
GSM48_CC_CAUSE_PRE_EMPTION 
GSM48_CC_CAUSE_NONSE_USER_CLR 
GSM48_CC_CAUSE_DEST_OOO 
GSM48_CC_CAUSE_INV_NR_FORMAT 
GSM48_CC_CAUSE_FACILITY_REJ 
GSM48_CC_CAUSE_RESP_STATUS_INQ 
GSM48_CC_CAUSE_NORMAL_UNSPEC 
GSM48_CC_CAUSE_NO_CIRCUIT_CHAN 
GSM48_CC_CAUSE_NETWORK_OOO 
GSM48_CC_CAUSE_TEMP_FAILURE 
GSM48_CC_CAUSE_SWITCH_CONG 
GSM48_CC_CAUSE_ACC_INF_DISCARD 
GSM48_CC_CAUSE_REQ_CHAN_UNAVAIL 
GSM48_CC_CAUSE_RESOURCE_UNAVAIL 
GSM48_CC_CAUSE_QOS_UNAVAIL 
GSM48_CC_CAUSE_REQ_FAC_NOT_SUBSC 
GSM48_CC_CAUSE_INC_BARRED_CUG 
GSM48_CC_CAUSE_BEARER_CAP_UNAUTH 
GSM48_CC_CAUSE_BEARER_CA_UNAVAIL 
GSM48_CC_CAUSE_SERV_OPT_UNAVAIL 
GSM48_CC_CAUSE_BEARERSERV_UNIMPL 
GSM48_CC_CAUSE_ACM_GE_ACM_MAX 
GSM48_CC_CAUSE_REQ_FAC_NOTIMPL 
GSM48_CC_CAUSE_RESTR_BCAP_AVAIL 
GSM48_CC_CAUSE_SERV_OPT_UNIMPL 
GSM48_CC_CAUSE_INVAL_TRANS_ID 
GSM48_CC_CAUSE_USER_NOT_IN_CUG 
GSM48_CC_CAUSE_INCOMPAT_DEST 
GSM48_CC_CAUSE_INVAL_TRANS_NET 
GSM48_CC_CAUSE_SEMANTIC_INCORR 
GSM48_CC_CAUSE_INVAL_MAND_INF 
GSM48_CC_CAUSE_MSGTYPE_NOTEXIST 
GSM48_CC_CAUSE_MSGTYPE_INCOMPAT 
GSM48_CC_CAUSE_IE_NOTEXIST 
GSM48_CC_CAUSE_COND_IE_ERR 
GSM48_CC_CAUSE_MSG_INCOMP_STATE 
GSM48_CC_CAUSE_RECOVERY_TIMER 
GSM48_CC_CAUSE_PROTO_ERR 
GSM48_CC_CAUSE_INTERWORKING 

◆ gsm48_chan_mode

10.5.2.6 Channel Mode value

Enumerator
GSM48_CMODE_SIGN 

Signalling only (TCH/F or TCH/H)

GSM48_CMODE_SPEECH_V1 

Speech: FR (TCH/FS) or HR (TCH/HS)

GSM48_CMODE_SPEECH_EFR 

Speech: EFR (TCH/EFS)

a.k.a. V2

GSM48_CMODE_SPEECH_AMR 

Speech: AMR (TCH/AFS or TCH/AHS)

a.k.a. V3

GSM48_CMODE_SPEECH_V4 

Speech: OFR AMR-WB (O-TCH/WFS) or OHR AMR-WB (O-TCH/WHS)

GSM48_CMODE_SPEECH_V5 

Speech: FR AMR-WB (TCH/WFS)

GSM48_CMODE_SPEECH_V6 

Speech: OHR AMR (O-TCH/AHS)

GSM48_CMODE_DATA_43k5_14k5 
GSM48_CMODE_DATA_29k0_14k5 
GSM48_CMODE_DATA_43k5_29k0 
GSM48_CMODE_DATA_14k5_43k5 
GSM48_CMODE_DATA_14k5_29k0 
GSM48_CMODE_DATA_29k0_43k5 
GSM48_CMODE_DATA_43k5 

ECSD: 43.5 kbit/s radio interface rate, 43.2 kbit/s services (E-TCH/F43.2)

GSM48_CMODE_DATA_32k0 

ECSD: 32.0 kbit/s radio interface rate, 32.0 kbit/s services (E-TCH/F32.0)

GSM48_CMODE_DATA_29k0 

ECSD: 29.0 kbit/s radio interface rate, 28.8 kbit/s services (E-TCH/F28.8)

GSM48_CMODE_DATA_14k5 

CSD: 14.5 kbit/s radio interface rate, 14.4 kbit/s services (TCH/F14.4)

GSM48_CMODE_DATA_12k0 

CSD: 12.0 kbit/s radio interface rate, 9.6 kbit/s services (TCH/F9.6)

GSM48_CMODE_DATA_6k0 

CSD: 6.0 kbit/s radio interface rate, 4.8 kbit/s services (TCH/{F,H}4.8)

GSM48_CMODE_DATA_3k6 

CSD: 3.6 kbit/s radio interface rate, 2.4 kbit/s and less services (TCH/{F,H}2.4)

GSM48_CMODE_SPEECH_V1_VAMOS 

Same as GSM48_CMODE_SPEECH_V1, in VAMOS mode.

GSM48_CMODE_SPEECH_V2_VAMOS 

Same as GSM48_CMODE_SPEECH_EFR, in VAMOS mode.

GSM48_CMODE_SPEECH_V3_VAMOS 

Same as GSM48_CMODE_SPEECH_AMR, in VAMOS mode.

GSM48_CMODE_SPEECH_V5_VAMOS 

Speech: GSM48_CMODE_SPEECH_V5, in VAMOS mode.

◆ gsm48_dtx_mode

Enumerator
GSM48_DTX_MAY_BE_USED 
GSM48_DTX_SHALL_BE_USED 
GSM48_DTX_SHALL_NOT_BE_USED 

◆ gsm48_numbering_plan

Enumerator
GSM48_NPI_UNKNOWN 
GSM48_NPI_ISDN_E164 
GSM48_NPI_DATA_X121 
GSM48_NPI_TELEX_F69 
GSM48_NPI_NATIONAL 
GSM48_NPI_PRIVATE 
GSM48_NPI_CTS 

◆ gsm48_progress_desc

Enumerator
GSM48_PROGR_NOT_E2E 
GSM48_PROGR_DEST_NOT_PLMN 
GSM48_PROGR_ORIG_NOT_PLMN 
GSM48_PROGR_RETURNED 
GSM48_PROGR_IN_BAND_AVAIL 
GSM48_PROGR_CALL_E2E 
GSM48_PROGR_QUEUEING 

◆ gsm48_reject_value

Enumerator
GSM48_REJECT_IMSI_UNKNOWN_IN_HLR 
GSM48_REJECT_ILLEGAL_MS 
GSM48_REJECT_IMSI_UNKNOWN_IN_VLR 
GSM48_REJECT_IMEI_NOT_ACCEPTED 
GSM48_REJECT_ILLEGAL_ME 
GSM48_REJECT_PLMN_NOT_ALLOWED 
GSM48_REJECT_LOC_NOT_ALLOWED 
GSM48_REJECT_ROAMING_NOT_ALLOWED 
GSM48_REJECT_NETWORK_FAILURE 
GSM48_REJECT_SYNCH_FAILURE 
GSM48_REJECT_CONGESTION 
GSM48_REJECT_SRV_OPT_NOT_SUPPORTED 
GSM48_REJECT_RQD_SRV_OPT_NOT_SUPPORTED 
GSM48_REJECT_SRV_OPT_TMP_OUT_OF_ORDER 
GSM48_REJECT_CALL_CAN_NOT_BE_IDENTIFIED 
GSM48_REJECT_INCORRECT_MESSAGE 
GSM48_REJECT_INVALID_MANDANTORY_INF 
GSM48_REJECT_MSG_TYPE_NOT_IMPLEMENTED 
GSM48_REJECT_MSG_TYPE_NOT_COMPATIBLE 
GSM48_REJECT_INF_ELEME_NOT_IMPLEMENTED 
GSM48_REJECT_CONDTIONAL_IE_ERROR 
GSM48_REJECT_MSG_NOT_COMPATIBLE 
GSM48_REJECT_PROTOCOL_ERROR 
GSM48_REJECT_GPRS_NOT_ALLOWED 
GSM48_REJECT_SERVICES_NOT_ALLOWED 
GSM48_REJECT_MS_IDENTITY_NOT_DERVIVABLE 
GSM48_REJECT_IMPLICITLY_DETACHED 
GSM48_REJECT_GPRS_NOT_ALLOWED_IN_PLMN 
GSM48_REJECT_MSC_TMP_NOT_REACHABLE 

◆ gsm48_rr_cause

Enumerator
GSM48_RR_CAUSE_NORMAL 
GSM48_RR_CAUSE_ABNORMAL_UNSPEC 
GSM48_RR_CAUSE_ABNORMAL_UNACCT 
GSM48_RR_CAUSE_ABNORMAL_TIMER 
GSM48_RR_CAUSE_ABNORMAL_NOACT 
GSM48_RR_CAUSE_PREMPTIVE_REL 
GSM48_RR_CAUSE_UTRAN_CFG_UNK 
GSM48_RR_CAUSE_HNDOVER_IMP 
GSM48_RR_CAUSE_CHAN_MODE_UNACCT 
GSM48_RR_CAUSE_FREQ_NOT_IMPL 
GSM48_RR_CAUSE_LEAVE_GROUP_CA 
GSM48_RR_CAUSE_LOW_LEVEL_FAIL 
GSM48_RR_CAUSE_CALL_CLEARED 
GSM48_RR_CAUSE_SEMANT_INCORR 
GSM48_RR_CAUSE_INVALID_MAND_INF 
GSM48_RR_CAUSE_MSG_TYPE_N 
GSM48_RR_CAUSE_MSG_TYPE_N_COMPAT 
GSM48_RR_CAUSE_COND_IE_ERROR 
GSM48_RR_CAUSE_NO_CELL_ALLOC_A 
GSM48_RR_CAUSE_PROT_ERROR_UNSPC 

◆ gsm48_signal_val

Enumerator
GSM48_SIGNAL_DIALTONE 
GSM48_SIGNAL_RINGBACK 
GSM48_SIGNAL_INTERCEPT 
GSM48_SIGNAL_NET_CONG 
GSM48_SIGNAL_BUSY 
GSM48_SIGNAL_CONFIRM 
GSM48_SIGNAL_ANSWER 
GSM48_SIGNAL_CALL_WAIT 
GSM48_SIGNAL_OFF_HOOK 
GSM48_SIGNAL_OFF 
GSM48_SIGNAL_ALERT_OFF 

◆ gsm48_type_of_number

Enumerator
GSM48_TON_UNKNOWN 
GSM48_TON_INTERNATIONAL 
GSM48_TON_NATIONAL 
GSM48_TON_NET_SPEC 
GSM48_TON_SHORT_CODE 

◆ osmo_cm_service_type

Enumerator
GSM48_CMSERV_MO_CALL_PACKET 
GSM48_CMSERV_EMERGENCY 
GSM48_CMSERV_SMS 
GSM48_CMSERV_SUP_SERV 
GSM48_CMSERV_VGCS 
GSM48_CMSERV_VBS 
GSM48_CMSERV_LOC_SERV 
GSM48_CMSERV_MAX_VAL 

Function Documentation

◆ gsm48_acc_is_barred()

static bool gsm48_acc_is_barred ( struct gsm48_rach_control rach_control,
unsigned int  acc 
)
inlinestatic

References OSMO_ASSERT, and rach_control.

◆ gsm48_allow_acc()

static void gsm48_allow_acc ( struct gsm48_rach_control rach_control,
unsigned int  acc 
)
inlinestatic

References OSMO_ASSERT, and rach_control.

◆ gsm48_barr_acc()

static void gsm48_barr_acc ( struct gsm48_rach_control rach_control,
unsigned int  acc 
)
inlinestatic

References OSMO_ASSERT, and rach_control.

◆ gsm48_cc_cause_name()

static const char * gsm48_cc_cause_name ( enum gsm48_cc_cause  val)
inlinestatic

◆ gsm48_chan_mode_name()

static const char * gsm48_chan_mode_name ( enum gsm48_chan_mode  val)
inlinestatic

◆ gsm48_hdr_msg_type_r98()

static uint8_t gsm48_hdr_msg_type_r98 ( const struct gsm48_hdr hdr)
inlinestatic

◆ gsm48_hdr_msg_type_r99()

static uint8_t gsm48_hdr_msg_type_r99 ( const struct gsm48_hdr hdr)
inlinestatic

◆ gsm48_hdr_pdisc()

◆ gsm48_hdr_trans_id()

static uint8_t gsm48_hdr_trans_id ( const struct gsm48_hdr hdr)
inlinestatic

◆ gsm48_hdr_trans_id_flip_ti()

static uint8_t gsm48_hdr_trans_id_flip_ti ( const struct gsm48_hdr hdr)
inlinestatic

References gsm48_hdr_trans_id(), and hdr.

◆ gsm48_hdr_trans_id_no_ti()

static uint8_t gsm48_hdr_trans_id_no_ti ( const struct gsm48_hdr hdr)
inlinestatic

References gsm48_hdr_trans_id(), and hdr.

◆ gsm48_meas_res_is_valid()

static bool gsm48_meas_res_is_valid ( const struct gsm48_meas_res mr)
inlinestatic

Check if the given mr contains valid measurement results.

◆ gsm48_pdisc_name()

static const char * gsm48_pdisc_name ( uint8_t  val)
inlinestatic

◆ gsm48_reject_value_name()

static const char * gsm48_reject_value_name ( enum gsm48_reject_value  val)
inlinestatic

◆ gsm48_ta_is_valid()

static bool gsm48_ta_is_valid ( uint8_t  ta)
inlinestatic

Check if TA is valid according to 3GPP TS 44.018 ยง 10.5.2.40.

Parameters
[in]taTiming Advance value
Returns
true if ta is valid, false otherwise Note: Rules for GSM400 band are ignored as it's not implemented in practice.

References ta.

◆ osmo_cm_service_type_name()

static const char * osmo_cm_service_type_name ( enum osmo_cm_service_type  val)
inlinestatic

◆ osmo_lu_type_name()

static const char * osmo_lu_type_name ( uint8_t  lu_type)
inlinestatic

Variable Documentation

◆ __attribute__

enum gsm48_type_of_number __attribute__

◆ bcch_frequency_list

uint8_t bcch_frequency_list

◆ cause

◆ cell_channel_description

uint8_t cell_channel_description[16]

◆ cell_desc

struct gsm48_cell_desc cell_desc

◆ cell_identity

uint16_t cell_identity

◆ cell_options

struct gsm48_cell_options cell_options

◆ cell_sel_par

struct gsm48_cell_sel_par cell_sel_par

◆ chan_desc

◆ chan_desc1

struct gsm48_chan_desc chan_desc1

◆ chan_desc2

struct gsm48_chan_desc chan_desc2

◆ chan_nr

◆ classmark1

struct gsm48_classmark1 classmark1

◆ cm2

◆ cm2_len

◆ control_channel_desc

struct gsm48_control_channel_descr control_channel_desc

◆ data

uint8_t data[0]

◆ digits

uint8_t digits

◆ ext_bcch_frequency_list

uint8_t ext_bcch_frequency_list[16]

◆ hdr

◆ header

◆ ho_ref

uint8_t ho_ref

◆ l2_plen

uint8_t l2_plen

◆ lac

◆ lai

◆ mi

◆ mi_len

◆ mob_alloc

uint8_t mob_alloc

◆ mob_alloc_len

uint8_t mob_alloc_len

◆ mode

◆ msg_type

◆ ncc_permitted

uint8_t ncc_permitted

◆ options

uint8_t options[0]

◆ page_mode

uint8_t page_mode

◆ power_command

uint8_t power_command

◆ proto_discr

uint8_t proto_discr

◆ ra_id

◆ rac

uint8_t rac

◆ rach_control

◆ req_ref

struct gsm48_req_ref req_ref

Referenced by l2_ph_rach_ind().

◆ req_ref1

struct gsm48_req_ref req_ref1

◆ req_ref2

struct gsm48_req_ref req_ref2

◆ req_ref3

struct gsm48_req_ref req_ref3

◆ req_ref4

struct gsm48_req_ref req_ref4

◆ rest

uint8_t rest[0]

◆ rest_octets

uint8_t rest_octets

◆ rr_cause

◆ sres

uint8_t sres[4]

◆ ta

◆ timing_advance

uint8_t timing_advance

◆ timing_advance1

uint8_t timing_advance1

◆ timing_advance2

uint8_t timing_advance2

◆ tlli

uint32_t tlli

Referenced by gprs_tlli_type(), and gprs_tmsi2tlli().

◆ wait_ind1

uint8_t wait_ind1

◆ wait_ind2

uint8_t wait_ind2

◆ wait_ind3

uint8_t wait_ind3

◆ wait_ind4

uint8_t wait_ind4