libosmogsm 1.13.1.1-afb4 Osmocom GSM library

Data Structures | Macros | Enumerations | Functions | Variables
gsm_04_08_gprs.h File Reference
`#include <stdint.h>`
`#include <stdbool.h>`
`#include <osmocom/gsm/protocol/gsm_04_08.h>`
`#include <osmocom/crypt/gprs_cipher.h>`
`#include <osmocom/core/endian.h>`

Go to the source code of this file.

## Data Structures
struct | gsm48_ra_upd_ack
struct | gsm48_attach_ack
struct | gsm48_auth_ciph_req
struct | gsm48_auth_ciph_resp
struct | gsm48_act_pdp_ctx_req
struct | gsm48_pdp_address
struct | gsm48_qos

## Macros
#define | GSM48_MT_GMM_ATTACH_REQ 0x01
#define | GSM48_MT_GMM_ATTACH_ACK 0x02
#define | GSM48_MT_GMM_ATTACH_COMPL 0x03
#define | GSM48_MT_GMM_ATTACH_REJ 0x04
#define | GSM48_MT_GMM_DETACH_REQ 0x05
#define | GSM48_MT_GMM_DETACH_ACK 0x06
#define | GSM48_MT_GMM_RA_UPD_REQ 0x08
#define | GSM48_MT_GMM_RA_UPD_ACK 0x09
#define | GSM48_MT_GMM_RA_UPD_COMPL 0x0a
#define | GSM48_MT_GMM_RA_UPD_REJ 0x0b
#define | GSM48_MT_GMM_PTMSI_REALL_CMD 0x10
#define | GSM48_MT_GMM_PTMSI_REALL_COMPL 0x11
#define | GSM48_MT_GMM_AUTH_CIPH_REQ 0x12
#define | GSM48_MT_GMM_AUTH_CIPH_RESP 0x13
#define | GSM48_MT_GMM_AUTH_CIPH_REJ 0x14
#define | GSM48_MT_GMM_AUTH_CIPH_FAIL 0x1C
#define | GSM48_MT_GMM_ID_REQ 0x15
#define | GSM48_MT_GMM_ID_RESP 0x16
#define | GSM48_MT_GMM_STATUS 0x20
#define | GSM48_MT_GMM_INFO 0x21
#define | GSM48_MT_GSM_ACT_PDP_REQ 0x41
#define | GSM48_MT_GSM_ACT_PDP_ACK 0x42
#define | GSM48_MT_GSM_ACT_PDP_REJ 0x43
#define | GSM48_MT_GSM_REQ_PDP_ACT 0x44
#define | GSM48_MT_GSM_REQ_PDP_ACT_REJ 0x45
#define | GSM48_MT_GSM_DEACT_PDP_REQ 0x46
#define | GSM48_MT_GSM_DEACT_PDP_ACK 0x47
#define | GSM48_MT_GSM_ACT_AA_PDP_REQ 0x50
#define | GSM48_MT_GSM_ACT_AA_PDP_ACK 0x51
#define | GSM48_MT_GSM_ACT_AA_PDP_REJ 0x52
#define | GSM48_MT_GSM_DEACT_AA_PDP_REQ 0x53
#define | GSM48_MT_GSM_DEACT_AA_PDP_ACK 0x54
#define | GSM48_MT_GSM_STATUS 0x55
#define | GPRS_ATT_T_ATTACH 1
#define | GPRS_ATT_T_ATT_WHILE_IMSI 2
#define | GPRS_ATT_T_COMBINED 3
#define | GPRS_DET_T_MO_GPRS 1
#define | GPRS_DET_T_MO_IMSI 2
#define | GPRS_DET_T_MO_COMBINED 3
#define | GPRS_DET_T_MT_REATT_REQ 1
#define | GPRS_DET_T_MT_REATT_NOTREQ 2
#define | GPRS_DET_T_MT_IMSI 3
#define | GPRS_UPD_T_RA 0
#define | GPRS_UPD_T_RA_LA 1
#define | GPRS_UPD_T_RA_LA_IMSI_ATT 2
#define | GPRS_UPD_T_PERIODIC 3
#define | GSM48_MT_GMM_SERVICE_REQ 0x0c
#define | GSM48_MT_GMM_SERVICE_ACK 0x0d
#define | GSM48_MT_GMM_SERVICE_REJ 0x0e
#define | GPRS_TMR_UNIT_MASK (7 << 5)
#define | GPRS_TMR_FACT_MASK ((1 << 5)-1)

## Enumerations
enum | gsm48_gprs_ie_mm { GSM48_IE_GMM_CIPH_CKSN = 0x08 , GSM48_IE_GMM_TMSI_STATUS = 0x09 , GSM48_IE_GMM_MS_NET_FEAT_SUP = 0x0c , GSM48_IE_GMM_DEVICE_PROP = 0x0d , GSM48_IE_GMM_PTMSI_TYPE = 0x0e , GSM48_IE_GMM_ADD_UPDATE_TYPE = 0x0f , GSM48_IE_GMM_TMSI_BASED_NRI_C = 0x10 , GSM48_IE_GMM_MS_CLASSMARK2 = 0x11 , GSM48_IE_GMM_OLD_LAI = 0x14 , GSM48_IE_GMM_TIMER_READY = 0x17 , GSM48_IE_GMM_ALLOC_PTMSI = 0x18 , GSM48_IE_GMM_PTMSI_SIG = 0x19 , GSM48_IE_GMM_ADD_IDENTITY = 0x1a , GSM48_IE_GMM_RAI2 = 0x1b , GSM48_IE_GMM_MS_CLASSMARK3 = 0x20 , GSM48_IE_GMM_AUTH_RAND = 0x21 , GSM48_IE_GMM_AUTH_SRES = 0x22 , GSM48_IE_GMM_IMEISV = 0x23 , GSM48_IE_GMM_CAUSE = 0x25 , GSM48_IE_GMM_RX_NPDU_NUM_LIST = 0x26 , GSM48_IE_GMM_DRX_PARAM = 0x27 , GSM48_IE_GMM_AUTN = 0x28 , GSM48_IE_GMM_AUTH_RES_EXT = 0x29 , GSM48_IE_GMM_TIMER_T3302 = 0x2A , GSM48_IE_GMM_AUTH_FAIL_PAR = 0x30 , GSM48_IE_GMM_MS_NET_CAPA = 0x31 , GSM48_IE_GMM_PDP_CTX_STATUS = 0x32 , GSM48_IE_GMM_PS_LCS_CAPA = 0x33 , GSM48_IE_GMM_GMM_MBMS_CTX_ST = 0x35 , GSM48_IE_GMM_TIMER_T3312_EXT = 0x39 , GSM48_IE_GMM_TIMER_T3346 = 0x3A , GSM48_IE_GMM_SUPP_CODEC_LIST = 0x40 , GSM48_IE_GMM_UE_NET_CAP = 0x58 , GSM48_IE_GMM_VD_PREF_UE_USAGE = 0x5d , GMM48_IE_GMM_TIMER_T3324 = 0x6a , GSM48_IE_GMM_EXT_DRX_PARAMS = 0x6e , GSM48_IE_GMM_NET_FEAT_SUPPORT = 0xB0 }
enum | gsm48_gprs_ie_sm { GSM48_IE_GSM_RADIO_PRIO = 0x08 , GSM48_IE_GSM_DEV_PROP = 0x0C , GSM48_IE_GSM_APN = 0x28 , GSM48_IE_GSM_PROTO_CONF_OPT = 0x27 , GSM48_IE_GSM_PDP_ADDR = 0x2b , GSM48_IE_GSM_AA_TMR = 0x29 , GSM48_IE_GSM_QOS = 0x30 , GSM48_IE_GSM_TFT = 0x31 , GSM48_IE_GSM_LLC_SAPI = 0x32 , GSM48_IE_GSM_MBIFOM_CONT = 0x33 , GSM48_IE_GSM_PFI = 0x34 , GSM48_IE_GSM_NAME_FULL = 0x43 , GSM48_IE_GSM_NAME_SHORT = 0x45 , GSM48_IE_GSM_TIMEZONE = 0x46 , GSM48_IE_GSM_UTC_AND_TZ = 0x47 , GSM48_IE_GSM_LSA_ID = 0x48 , GSM48_IE_GSM_EXT_QOS = 0x5C , GSM48_IE_GSM_EXT_PROTO_CONF_OPT = 0x7B , OSMO_IE_GSM_CHARG_CHAR = 0xfc , OSMO_IE_GSM_REQ_QOS = 0xfd , OSMO_IE_GSM_REQ_PDP_ADDR = 0xfe , OSMO_IE_GSM_SUB_QOS = 0xff }
enum | gsm48_gprs_tmr_unit { GPRS_TMR_2SECONDS = 0 << 5 , GPRS_TMR_MINUTE = 1 << 5 , GPRS_TMR_6MINUTE = 2 << 5 , GPRS_TMR_DEACTIVATED = 7 << 5 }
enum | gsm48_gmm_cause { GMM_CAUSE_IMSI_UNKNOWN = 0x02 , GMM_CAUSE_ILLEGAL_MS = 0x03 , GMM_CAUSE_IMEI_NOT_ACCEPTED = 0x05 , GMM_CAUSE_ILLEGAL_ME = 0x06 , GMM_CAUSE_GPRS_NOTALLOWED = 0x07 , GMM_CAUSE_GPRS_OTHER_NOTALLOWED = 0x08 , GMM_CAUSE_MS_ID_NOT_DERIVED = 0x09 , GMM_CAUSE_IMPL_DETACHED = 0x0a , GMM_CAUSE_PLMN_NOTALLOWED = 0x0b , GMM_CAUSE_LA_NOTALLOWED = 0x0c , GMM_CAUSE_ROAMING_NOTALLOWED = 0x0d , GMM_CAUSE_NO_GPRS_PLMN = 0x0e , GMM_CAUSE_NO_SUIT_CELL_IN_LA = 0x0f , GMM_CAUSE_MSC_TEMP_NOTREACH = 0x10 , GMM_CAUSE_NET_FAIL = 0x11 , GMM_CAUSE_MAC_FAIL = 0x14 , GMM_CAUSE_SYNC_FAIL = 0x15 , GMM_CAUSE_CONGESTION = 0x16 , GMM_CAUSE_GSM_AUTH_UNACCEPT = 0x17 , GMM_CAUSE_NOT_AUTH_FOR_CSG = 0x19 , GMM_CAUSE_SMS_VIA_GPRS_IN_RA = 0x1c , GMM_CAUSE_NO_PDP_ACTIVATED = 0x28 , GMM_CAUSE_SEM_INCORR_MSG = 0x5f , GMM_CAUSE_INV_MAND_INFO = 0x60 , GMM_CAUSE_MSGT_NOTEXIST_NOTIMPL = 0x61 , GMM_CAUSE_MSGT_INCOMP_P_STATE = 0x62 , GMM_CAUSE_IE_NOTEXIST_NOTIMPL = 0x63 , GMM_CAUSE_COND_IE_ERR = 0x64 , GMM_CAUSE_MSG_INCOMP_P_STATE = 0x65 , GMM_CAUSE_PROTO_ERR_UNSPEC = 0x6f }
enum | gsm48_gsm_cause { GSM_CAUSE_OPER_DET_BARR = 0x08 , GSM_CAUSE_MBMS_CAP_INSUF = 0x18 , GSM_CAUSE_LLC_SNDCP_FAIL = 0x19 , GSM_CAUSE_INSUFF_RSRC = 0x1a , GSM_CAUSE_MISSING_APN = 0x1b , GSM_CAUSE_UNKNOWN_PDP = 0x1c , GSM_CAUSE_AUTH_FAILED = 0x1d , GSM_CAUSE_ACT_REJ_GGSN = 0x1e , GSM_CAUSE_ACT_REJ_UNSPEC = 0x1f , GSM_CAUSE_SERV_OPT_NOTSUPP = 0x20 , GSM_CAUSE_REQ_SERV_OPT_NOTSUB = 0x21 , GSM_CAUSE_SERV_OPT_TEMP_OOO = 0x22 , GSM_CAUSE_NSAPI_IN_USE = 0x23 , GSM_CAUSE_DEACT_REGULAR = 0x24 , GSM_CAUSE_QOS_NOT_ACCEPTED = 0x25 , GSM_CAUSE_NET_FAIL = 0x26 , GSM_CAUSE_REACT_RQD = 0x27 , GSM_CAUSE_FEATURE_NOTSUPP = 0x28 , GSM_CAUSE_INVALID_TRANS_ID = 0x51 , GSM_CAUSE_SEM_INCORR_MSG = 0x5f , GSM_CAUSE_INV_MAND_INFO = 0x60 , GSM_CAUSE_MSGT_NOTEXIST_NOTIMPL = 0x61 , GSM_CAUSE_MSGT_INCOMP_P_STATE = 0x62 , GSM_CAUSE_IE_NOTEXIST_NOTIMPL = 0x63 , GSM_CAUSE_COND_IE_ERR = 0x64 , GSM_CAUSE_MSG_INCOMP_P_STATE = 0x65 , GSM_CAUSE_PROTO_ERR_UNSPEC = 0x6f }
enum | gsm48_pdp_state { PDP_S_INACTIVE , PDP_S_ACTIVE_PENDING , PDP_S_ACTIVE , PDP_S_INACTIVE_PENDING , PDP_S_MODIFY_PENDING }
enum | gsm48_pdp_type_org { PDP_TYPE_ORG_ETSI = 0x00 , PDP_TYPE_ORG_IETF = 0x01 , PDP_TYPE_ORG_EMPTY = 0x0f }
enum | gsm48_pdp_type_nr { PDP_TYPE_N_ETSI_RESERVED = 0x00 , PDP_TYPE_N_ETSI_PPP = 0x01 , PDP_TYPE_N_IETF_IPv4 = 0x21 , PDP_TYPE_N_IETF_IPv6 = 0x57 , PDP_TYPE_N_IETF_IPv4v6 = 0x8D }
enum | gsm48_qos_reliab_class { GSM48_QOS_RC_LLC_ACK_RLC_ACK_DATA_PROT = 2 , GSM48_QOS_RC_LLC_UN_RLC_ACK_DATA_PROT = 3 , GSM48_QOS_RC_LLC_UN_RLC_UN_PROT_DATA = 4 , GSM48_QOS_RC_LLC_UN_RLC_UN_DATA_UN = 5 }
enum | gsm48_qos_preced_class { GSM48_QOS_PC_HIGH = 1 , GSM48_QOS_PC_NORMAL = 2 , GSM48_QOS_PC_LOW = 3 }
enum | gsm48_qos_peak_tput { GSM48_QOS_PEAK_TPUT_1000bps = 1 , GSM48_QOS_PEAK_TPUT_2000bps = 2 , GSM48_QOS_PEAK_TPUT_4000bps = 3 , GSM48_QOS_PEAK_TPUT_8000bps = 4 , GSM48_QOS_PEAK_TPUT_16000bps = 5 , GSM48_QOS_PEAK_TPUT_32000bps = 6 , GSM48_QOS_PEAK_TPUT_64000bps = 7 , GSM48_QOS_PEAK_TPUT_128000bps = 8 , GSM48_QOS_PEAK_TPUT_256000bps = 9 }
enum | gsm48_qos_mean_tput { GSM48_QOS_MEAN_TPUT_100bph = 1 , GSM48_QOS_MEAN_TPUT_200bph = 2 , GSM48_QOS_MEAN_TPUT_500bph = 3 , GSM48_QOS_MEAN_TPUT_1000bph = 4 , GSM48_QOS_MEAN_TPUT_2000bph = 5 , GSM48_QOS_MEAN_TPUT_5000bph = 6 , GSM48_QOS_MEAN_TPUT_10000bph = 7 , GSM48_QOS_MEAN_TPUT_20000bph = 8 , GSM48_QOS_MEAN_TPUT_50000bph = 9 , GSM48_QOS_MEAN_TPUT_100kbph = 10 , GSM48_QOS_MEAN_TPUT_200kbph = 11 , GSM48_QOS_MEAN_TPUT_500kbph = 0xc , GSM48_QOS_MEAN_TPUT_1Mbph = 0xd , GSM48_QOS_MEAN_TPUT_2Mbph = 0xe , GSM48_QOS_MEAN_TPUT_5Mbph = 0xf , GSM48_QOS_MEAN_TPUT_10Mbph = 0x10 , GSM48_QOS_MEAN_TPUT_20Mbph = 0x11 , GSM48_QOS_MEAN_TPUT_50Mbph = 0x12 , GSM48_QOS_MEAN_TPUT_BEST_EFFORT = 0x1f }
enum | gsm48_qos_err_sdu { GSM48_QOS_ERRSDU_NODETECT = 1 , GSM48_QOS_ERRSDU_YES = 2 , GSM48_QOS_ERRSDU_NO = 3 }
enum | gsm48_qos_deliv_order { GSM48_QOS_DO_ORDERED = 1 , GSM48_QOS_DO_UNORDERED = 2 }
enum | gsm48_qos_traf_class { GSM48_QOS_TC_CONVERSATIONAL = 1 , GSM48_QOS_TC_STREAMING = 2 , GSM48_QOS_TC_INTERACTIVE = 3 , GSM48_QOS_TC_BACKGROUND = 4 }
enum | gsm48_qos_max_sdu_size { GSM48_QOS_MAXSDU_1502 = 0x97 , GSM48_QOS_MAXSDU_1510 = 0x98 , GSM48_QOS_MAXSDU_1520 = 0x99 }
enum | gsm48_qos_max_bitrate { GSM48_QOS_MBRATE_1k = 0x01 , GSM48_QOS_MBRATE_63k = 0x3f , GSM48_QOS_MBRATE_64k = 0x40 , GSM48_QOS_MBRATE_568k = 0x7f , GSM48_QOS_MBRATE_576k = 0x80 , GSM48_QOS_MBRATE_8640k = 0xfe , GSM48_QOS_MBRATE_0k = 0xff }
enum | gsm48_qos_resid_ber { GSM48_QOS_RBER_5e_2 = 0x01 , GSM48_QOS_RBER_1e_2 = 0x02 , GSM48_QOS_RBER_5e_3 = 0x03 , GSM48_QOS_RBER_4e_3 = 0x04 , GSM48_QOS_RBER_1e_3 = 0x05 , GSM48_QOS_RBER_1e_4 = 0x06 , GSM48_QOS_RBER_1e_5 = 0x07 , GSM48_QOS_RBER_1e_6 = 0x08 , GSM48_QOS_RBER_6e_8 = 0x09 }
enum | gsm48_qos_sdu_err { GSM48_QOS_SERR_1e_2 = 0x01 , GSM48_QOS_SERR_7e_2 = 0x02 , GSM48_QOS_SERR_1e_3 = 0x03 , GSM48_QOS_SERR_1e_4 = 0x04 , GSM48_QOS_SERR_1e_5 = 0x05 , GSM48_QOS_SERR_1e_6 = 0x06 , GSM48_QOS_SERR_1e_1 = 0x07 }
enum | gsm48_gmm_service_type { GPRS_SERVICE_T_SIGNALLING = 0x00 , GPRS_SERVICE_T_DATA = 0x01 , GPRS_SERVICE_T_PAGING_RESP = 0x02 , GPRS_SERVICE_T_MBMS_MC_SERV = 0x03 , GPRS_SERVICE_T_MBMS_BC_SERV = 0x04 }
enum | gsm48_ptsmi_type { PTMSI_TYPE_NATIVE = 0x00 , PTMSI_TYPE_MAPPED = 0x01 }

## Functions
struct gsm48_ra_upd_ack | __attribute__ ((packed))
bool | gprs_ms_net_cap_gea_supported (const uint8_t *ms_net_cap, uint8_t cap_len, enum gprs_ciph_algo gea)
| Check if MS supports particular version of GEA by inspecting MS network capability IE specified in 3GPP TS 24.008. More...

## Variables
const struct value_string * | gprs_att_t_strs
const struct value_string | gprs_msgt_gmm_names []
| String names of GMM message types. More...
const struct value_string * | gprs_det_t_mo_strs
const struct value_string * | gprs_det_t_mt_strs
const struct value_string * | gprs_upd_t_strs
enum gsm48_gprs_tmr_unit | __attribute__
uint8_t | req_nsapi
uint8_t | req_llc_sapi
uint8_t | data [0]
const struct value_string * | gsm48_gmm_cause_names
const struct value_string * | gsm48_gsm_cause_names
uint32_t | v4
uint8_t | v6 [16]
uint8_t | type
const struct value_string * | gprs_service_t_strs

## Macro Definition Documentation

## ◆ GPRS_ATT_T_ATT_WHILE_IMSI

#define GPRS_ATT_T_ATT_WHILE_IMSI 2

## ◆ GPRS_ATT_T_ATTACH

#define GPRS_ATT_T_ATTACH 1

## ◆ GPRS_ATT_T_COMBINED

#define GPRS_ATT_T_COMBINED 3

## ◆ GPRS_DET_T_MO_COMBINED

#define GPRS_DET_T_MO_COMBINED 3

## ◆ GPRS_DET_T_MO_GPRS

#define GPRS_DET_T_MO_GPRS 1

## ◆ GPRS_DET_T_MO_IMSI

#define GPRS_DET_T_MO_IMSI 2

## ◆ GPRS_DET_T_MT_IMSI

#define GPRS_DET_T_MT_IMSI 3

## ◆ GPRS_DET_T_MT_REATT_NOTREQ

#define GPRS_DET_T_MT_REATT_NOTREQ 2

## ◆ GPRS_DET_T_MT_REATT_REQ

#define GPRS_DET_T_MT_REATT_REQ 1

## ◆ GPRS_TMR_FACT_MASK

#define GPRS_TMR_FACT_MASK ((1 << 5)-1)

## ◆ GPRS_TMR_UNIT_MASK

#define GPRS_TMR_UNIT_MASK (7 << 5)

## ◆ GPRS_UPD_T_PERIODIC

#define GPRS_UPD_T_PERIODIC 3

## ◆ GPRS_UPD_T_RA

#define GPRS_UPD_T_RA 0

## ◆ GPRS_UPD_T_RA_LA

#define GPRS_UPD_T_RA_LA 1

## ◆ GPRS_UPD_T_RA_LA_IMSI_ATT

#define GPRS_UPD_T_RA_LA_IMSI_ATT 2

## ◆ GSM48_MT_GMM_ATTACH_ACK

#define GSM48_MT_GMM_ATTACH_ACK 0x02

## ◆ GSM48_MT_GMM_ATTACH_COMPL

#define GSM48_MT_GMM_ATTACH_COMPL 0x03

## ◆ GSM48_MT_GMM_ATTACH_REJ

#define GSM48_MT_GMM_ATTACH_REJ 0x04

## ◆ GSM48_MT_GMM_ATTACH_REQ

#define GSM48_MT_GMM_ATTACH_REQ 0x01

## ◆ GSM48_MT_GMM_AUTH_CIPH_FAIL

#define GSM48_MT_GMM_AUTH_CIPH_FAIL 0x1C

## ◆ GSM48_MT_GMM_AUTH_CIPH_REJ

#define GSM48_MT_GMM_AUTH_CIPH_REJ 0x14

## ◆ GSM48_MT_GMM_AUTH_CIPH_REQ

#define GSM48_MT_GMM_AUTH_CIPH_REQ 0x12

## ◆ GSM48_MT_GMM_AUTH_CIPH_RESP

#define GSM48_MT_GMM_AUTH_CIPH_RESP 0x13

## ◆ GSM48_MT_GMM_DETACH_ACK

#define GSM48_MT_GMM_DETACH_ACK 0x06

## ◆ GSM48_MT_GMM_DETACH_REQ

#define GSM48_MT_GMM_DETACH_REQ 0x05

## ◆ GSM48_MT_GMM_ID_REQ

#define GSM48_MT_GMM_ID_REQ 0x15

## ◆ GSM48_MT_GMM_ID_RESP

#define GSM48_MT_GMM_ID_RESP 0x16

## ◆ GSM48_MT_GMM_INFO

#define GSM48_MT_GMM_INFO 0x21

## ◆ GSM48_MT_GMM_PTMSI_REALL_CMD

#define GSM48_MT_GMM_PTMSI_REALL_CMD 0x10

## ◆ GSM48_MT_GMM_PTMSI_REALL_COMPL

#define GSM48_MT_GMM_PTMSI_REALL_COMPL 0x11

## ◆ GSM48_MT_GMM_RA_UPD_ACK

#define GSM48_MT_GMM_RA_UPD_ACK 0x09

## ◆ GSM48_MT_GMM_RA_UPD_COMPL

#define GSM48_MT_GMM_RA_UPD_COMPL 0x0a

## ◆ GSM48_MT_GMM_RA_UPD_REJ

#define GSM48_MT_GMM_RA_UPD_REJ 0x0b

## ◆ GSM48_MT_GMM_RA_UPD_REQ

#define GSM48_MT_GMM_RA_UPD_REQ 0x08

## ◆ GSM48_MT_GMM_SERVICE_ACK

#define GSM48_MT_GMM_SERVICE_ACK 0x0d

## ◆ GSM48_MT_GMM_SERVICE_REJ

#define GSM48_MT_GMM_SERVICE_REJ 0x0e

## ◆ GSM48_MT_GMM_SERVICE_REQ

#define GSM48_MT_GMM_SERVICE_REQ 0x0c

## ◆ GSM48_MT_GMM_STATUS

#define GSM48_MT_GMM_STATUS 0x20

## ◆ GSM48_MT_GSM_ACT_AA_PDP_ACK

#define GSM48_MT_GSM_ACT_AA_PDP_ACK 0x51

## ◆ GSM48_MT_GSM_ACT_AA_PDP_REJ

#define GSM48_MT_GSM_ACT_AA_PDP_REJ 0x52

## ◆ GSM48_MT_GSM_ACT_AA_PDP_REQ

#define GSM48_MT_GSM_ACT_AA_PDP_REQ 0x50

## ◆ GSM48_MT_GSM_ACT_PDP_ACK

#define GSM48_MT_GSM_ACT_PDP_ACK 0x42

## ◆ GSM48_MT_GSM_ACT_PDP_REJ

#define GSM48_MT_GSM_ACT_PDP_REJ 0x43

## ◆ GSM48_MT_GSM_ACT_PDP_REQ

#define GSM48_MT_GSM_ACT_PDP_REQ 0x41

## ◆ GSM48_MT_GSM_DEACT_AA_PDP_ACK

#define GSM48_MT_GSM_DEACT_AA_PDP_ACK 0x54

## ◆ GSM48_MT_GSM_DEACT_AA_PDP_REQ

#define GSM48_MT_GSM_DEACT_AA_PDP_REQ 0x53

## ◆ GSM48_MT_GSM_DEACT_PDP_ACK

#define GSM48_MT_GSM_DEACT_PDP_ACK 0x47

## ◆ GSM48_MT_GSM_DEACT_PDP_REQ

#define GSM48_MT_GSM_DEACT_PDP_REQ 0x46

## ◆ GSM48_MT_GSM_REQ_PDP_ACT

#define GSM48_MT_GSM_REQ_PDP_ACT 0x44

## ◆ GSM48_MT_GSM_REQ_PDP_ACT_REJ

#define GSM48_MT_GSM_REQ_PDP_ACT_REJ 0x45

## ◆ GSM48_MT_GSM_STATUS

#define GSM48_MT_GSM_STATUS 0x55

## Enumeration Type Documentation

## ◆ gsm48_gmm_cause

enum gsm48_gmm_cause

Enumerator
GMM_CAUSE_IMSI_UNKNOWN |
GMM_CAUSE_ILLEGAL_MS |
GMM_CAUSE_IMEI_NOT_ACCEPTED |
GMM_CAUSE_ILLEGAL_ME |
GMM_CAUSE_GPRS_NOTALLOWED |
GMM_CAUSE_GPRS_OTHER_NOTALLOWED |
GMM_CAUSE_MS_ID_NOT_DERIVED |
GMM_CAUSE_IMPL_DETACHED |
GMM_CAUSE_PLMN_NOTALLOWED |
GMM_CAUSE_LA_NOTALLOWED |
GMM_CAUSE_ROAMING_NOTALLOWED |
GMM_CAUSE_NO_GPRS_PLMN |
GMM_CAUSE_NO_SUIT_CELL_IN_LA |
GMM_CAUSE_MSC_TEMP_NOTREACH |
GMM_CAUSE_NET_FAIL |
GMM_CAUSE_MAC_FAIL |
GMM_CAUSE_SYNC_FAIL |
GMM_CAUSE_CONGESTION |
GMM_CAUSE_GSM_AUTH_UNACCEPT |
GMM_CAUSE_NOT_AUTH_FOR_CSG |
GMM_CAUSE_SMS_VIA_GPRS_IN_RA |
GMM_CAUSE_NO_PDP_ACTIVATED |
GMM_CAUSE_SEM_INCORR_MSG |
GMM_CAUSE_INV_MAND_INFO |
GMM_CAUSE_MSGT_NOTEXIST_NOTIMPL |
GMM_CAUSE_MSGT_INCOMP_P_STATE |
GMM_CAUSE_IE_NOTEXIST_NOTIMPL |
GMM_CAUSE_COND_IE_ERR |
GMM_CAUSE_MSG_INCOMP_P_STATE |
GMM_CAUSE_PROTO_ERR_UNSPEC |

## ◆ gsm48_gmm_service_type

enum gsm48_gmm_service_type

Enumerator
GPRS_SERVICE_T_SIGNALLING |
GPRS_SERVICE_T_DATA |
GPRS_SERVICE_T_PAGING_RESP |
GPRS_SERVICE_T_MBMS_MC_SERV |
GPRS_SERVICE_T_MBMS_BC_SERV |

## ◆ gsm48_gprs_ie_mm

enum gsm48_gprs_ie_mm

Enumerator
GSM48_IE_GMM_CIPH_CKSN |
GSM48_IE_GMM_TMSI_STATUS |
GSM48_IE_GMM_MS_NET_FEAT_SUP |
GSM48_IE_GMM_DEVICE_PROP |
GSM48_IE_GMM_PTMSI_TYPE |
GSM48_IE_GMM_ADD_UPDATE_TYPE |
GSM48_IE_GMM_TMSI_BASED_NRI_C |
GSM48_IE_GMM_MS_CLASSMARK2 |
GSM48_IE_GMM_OLD_LAI |
GSM48_IE_GMM_TIMER_READY |
GSM48_IE_GMM_ALLOC_PTMSI |
GSM48_IE_GMM_PTMSI_SIG |
GSM48_IE_GMM_ADD_IDENTITY |
GSM48_IE_GMM_RAI2 |
GSM48_IE_GMM_MS_CLASSMARK3 |
GSM48_IE_GMM_AUTH_RAND |
GSM48_IE_GMM_AUTH_SRES |
GSM48_IE_GMM_IMEISV |
GSM48_IE_GMM_CAUSE |
GSM48_IE_GMM_RX_NPDU_NUM_LIST |
GSM48_IE_GMM_DRX_PARAM |
GSM48_IE_GMM_AUTN |
GSM48_IE_GMM_AUTH_RES_EXT |
GSM48_IE_GMM_TIMER_T3302 |
GSM48_IE_GMM_AUTH_FAIL_PAR |
GSM48_IE_GMM_MS_NET_CAPA |
GSM48_IE_GMM_PDP_CTX_STATUS |
GSM48_IE_GMM_PS_LCS_CAPA |
GSM48_IE_GMM_GMM_MBMS_CTX_ST |
GSM48_IE_GMM_TIMER_T3312_EXT |
GSM48_IE_GMM_TIMER_T3346 |
GSM48_IE_GMM_SUPP_CODEC_LIST |
GSM48_IE_GMM_UE_NET_CAP |
GSM48_IE_GMM_VD_PREF_UE_USAGE |
GMM48_IE_GMM_TIMER_T3324 |
GSM48_IE_GMM_EXT_DRX_PARAMS |
GSM48_IE_GMM_NET_FEAT_SUPPORT |

## ◆ gsm48_gprs_ie_sm

enum gsm48_gprs_ie_sm

Enumerator
GSM48_IE_GSM_RADIO_PRIO |
GSM48_IE_GSM_DEV_PROP |
GSM48_IE_GSM_APN |
GSM48_IE_GSM_PROTO_CONF_OPT |
GSM48_IE_GSM_PDP_ADDR |
GSM48_IE_GSM_AA_TMR |
GSM48_IE_GSM_QOS |
GSM48_IE_GSM_TFT |
GSM48_IE_GSM_LLC_SAPI |
GSM48_IE_GSM_MBIFOM_CONT |
GSM48_IE_GSM_PFI |
GSM48_IE_GSM_NAME_FULL |
GSM48_IE_GSM_NAME_SHORT |
GSM48_IE_GSM_TIMEZONE |
GSM48_IE_GSM_UTC_AND_TZ |
GSM48_IE_GSM_LSA_ID |
GSM48_IE_GSM_EXT_QOS |
GSM48_IE_GSM_EXT_PROTO_CONF_OPT |
OSMO_IE_GSM_CHARG_CHAR |
OSMO_IE_GSM_REQ_QOS |
OSMO_IE_GSM_REQ_PDP_ADDR |
OSMO_IE_GSM_SUB_QOS |

## ◆ gsm48_gprs_tmr_unit

enum gsm48_gprs_tmr_unit

Enumerator
GPRS_TMR_2SECONDS |
GPRS_TMR_MINUTE |
GPRS_TMR_6MINUTE |
GPRS_TMR_DEACTIVATED |

## ◆ gsm48_gsm_cause

enum gsm48_gsm_cause

Enumerator
GSM_CAUSE_OPER_DET_BARR |
GSM_CAUSE_MBMS_CAP_INSUF |
GSM_CAUSE_LLC_SNDCP_FAIL |
GSM_CAUSE_INSUFF_RSRC |
GSM_CAUSE_MISSING_APN |
GSM_CAUSE_UNKNOWN_PDP |
GSM_CAUSE_AUTH_FAILED |
GSM_CAUSE_ACT_REJ_GGSN |
GSM_CAUSE_ACT_REJ_UNSPEC |
GSM_CAUSE_SERV_OPT_NOTSUPP |
GSM_CAUSE_REQ_SERV_OPT_NOTSUB |
GSM_CAUSE_SERV_OPT_TEMP_OOO |
GSM_CAUSE_NSAPI_IN_USE |
GSM_CAUSE_DEACT_REGULAR |
GSM_CAUSE_QOS_NOT_ACCEPTED |
GSM_CAUSE_NET_FAIL |
GSM_CAUSE_REACT_RQD |
GSM_CAUSE_FEATURE_NOTSUPP |
GSM_CAUSE_INVALID_TRANS_ID |
GSM_CAUSE_SEM_INCORR_MSG |
GSM_CAUSE_INV_MAND_INFO |
GSM_CAUSE_MSGT_NOTEXIST_NOTIMPL |
GSM_CAUSE_MSGT_INCOMP_P_STATE |
GSM_CAUSE_IE_NOTEXIST_NOTIMPL |
GSM_CAUSE_COND_IE_ERR |
GSM_CAUSE_MSG_INCOMP_P_STATE |
GSM_CAUSE_PROTO_ERR_UNSPEC |

## ◆ gsm48_pdp_state

enum gsm48_pdp_state

Enumerator
PDP_S_INACTIVE |
PDP_S_ACTIVE_PENDING |
PDP_S_ACTIVE |
PDP_S_INACTIVE_PENDING |
PDP_S_MODIFY_PENDING |

## ◆ gsm48_pdp_type_nr

enum gsm48_pdp_type_nr

Enumerator
PDP_TYPE_N_ETSI_RESERVED |
PDP_TYPE_N_ETSI_PPP |
PDP_TYPE_N_IETF_IPv4 |
PDP_TYPE_N_IETF_IPv6 |
PDP_TYPE_N_IETF_IPv4v6 |

## ◆ gsm48_pdp_type_org

enum gsm48_pdp_type_org

Enumerator
PDP_TYPE_ORG_ETSI |
PDP_TYPE_ORG_IETF |
PDP_TYPE_ORG_EMPTY |

## ◆ gsm48_ptsmi_type

enum gsm48_ptsmi_type

Enumerator
PTMSI_TYPE_NATIVE |
PTMSI_TYPE_MAPPED |

## ◆ gsm48_qos_deliv_order

enum gsm48_qos_deliv_order

Enumerator
GSM48_QOS_DO_ORDERED |
GSM48_QOS_DO_UNORDERED |

## ◆ gsm48_qos_err_sdu

enum gsm48_qos_err_sdu

Enumerator
GSM48_QOS_ERRSDU_NODETECT |
GSM48_QOS_ERRSDU_YES |
GSM48_QOS_ERRSDU_NO |

## ◆ gsm48_qos_max_bitrate

enum gsm48_qos_max_bitrate

Enumerator
GSM48_QOS_MBRATE_1k |
GSM48_QOS_MBRATE_63k |
GSM48_QOS_MBRATE_64k |
GSM48_QOS_MBRATE_568k |
GSM48_QOS_MBRATE_576k |
GSM48_QOS_MBRATE_8640k |
GSM48_QOS_MBRATE_0k |

## ◆ gsm48_qos_max_sdu_size

enum gsm48_qos_max_sdu_size

Enumerator
GSM48_QOS_MAXSDU_1502 |
GSM48_QOS_MAXSDU_1510 |
GSM48_QOS_MAXSDU_1520 |

## ◆ gsm48_qos_mean_tput

enum gsm48_qos_mean_tput

Enumerator
GSM48_QOS_MEAN_TPUT_100bph |
GSM48_QOS_MEAN_TPUT_200bph |
GSM48_QOS_MEAN_TPUT_500bph |
GSM48_QOS_MEAN_TPUT_1000bph |
GSM48_QOS_MEAN_TPUT_2000bph |
GSM48_QOS_MEAN_TPUT_5000bph |
GSM48_QOS_MEAN_TPUT_10000bph |
GSM48_QOS_MEAN_TPUT_20000bph |
GSM48_QOS_MEAN_TPUT_50000bph |
GSM48_QOS_MEAN_TPUT_100kbph |
GSM48_QOS_MEAN_TPUT_200kbph |
GSM48_QOS_MEAN_TPUT_500kbph |
GSM48_QOS_MEAN_TPUT_1Mbph |
GSM48_QOS_MEAN_TPUT_2Mbph |
GSM48_QOS_MEAN_TPUT_5Mbph |
GSM48_QOS_MEAN_TPUT_10Mbph |
GSM48_QOS_MEAN_TPUT_20Mbph |
GSM48_QOS_MEAN_TPUT_50Mbph |
GSM48_QOS_MEAN_TPUT_BEST_EFFORT |

## ◆ gsm48_qos_peak_tput

enum gsm48_qos_peak_tput

Enumerator
GSM48_QOS_PEAK_TPUT_1000bps |
GSM48_QOS_PEAK_TPUT_2000bps |
GSM48_QOS_PEAK_TPUT_4000bps |
GSM48_QOS_PEAK_TPUT_8000bps |
GSM48_QOS_PEAK_TPUT_16000bps |
GSM48_QOS_PEAK_TPUT_32000bps |
GSM48_QOS_PEAK_TPUT_64000bps |
GSM48_QOS_PEAK_TPUT_128000bps |
GSM48_QOS_PEAK_TPUT_256000bps |

## ◆ gsm48_qos_preced_class

enum gsm48_qos_preced_class

Enumerator
GSM48_QOS_PC_HIGH |
GSM48_QOS_PC_NORMAL |
GSM48_QOS_PC_LOW |

## ◆ gsm48_qos_reliab_class

enum gsm48_qos_reliab_class

Enumerator
GSM48_QOS_RC_LLC_ACK_RLC_ACK_DATA_PROT |
GSM48_QOS_RC_LLC_UN_RLC_ACK_DATA_PROT |
GSM48_QOS_RC_LLC_UN_RLC_UN_PROT_DATA |
GSM48_QOS_RC_LLC_UN_RLC_UN_DATA_UN |

## ◆ gsm48_qos_resid_ber

enum gsm48_qos_resid_ber

Enumerator
GSM48_QOS_RBER_5e_2 |
GSM48_QOS_RBER_1e_2 |
GSM48_QOS_RBER_5e_3 |
GSM48_QOS_RBER_4e_3 |
GSM48_QOS_RBER_1e_3 |
GSM48_QOS_RBER_1e_4 |
GSM48_QOS_RBER_1e_5 |
GSM48_QOS_RBER_1e_6 |
GSM48_QOS_RBER_6e_8 |

## ◆ gsm48_qos_sdu_err

enum gsm48_qos_sdu_err

Enumerator
GSM48_QOS_SERR_1e_2 |
GSM48_QOS_SERR_7e_2 |
GSM48_QOS_SERR_1e_3 |
GSM48_QOS_SERR_1e_4 |
GSM48_QOS_SERR_1e_5 |
GSM48_QOS_SERR_1e_6 |
GSM48_QOS_SERR_1e_1 |

## ◆ gsm48_qos_traf_class

enum gsm48_qos_traf_class

Enumerator
GSM48_QOS_TC_CONVERSATIONAL |
GSM48_QOS_TC_STREAMING |
GSM48_QOS_TC_INTERACTIVE |
GSM48_QOS_TC_BACKGROUND |

## Variable Documentation

## ◆ __attribute__

enum gsm48_qos_reliab_class __attribute__

## ◆ data

uint8_t data[0]

## ◆

union { ... } etsi

## ◆

union { ... } ietf

## ◆ req_llc_sapi

uint8_t req_llc_sapi

## ◆ req_nsapi

uint8_t req_nsapi

## ◆ type

uint8_t type

Referenced by egprs_get_cps(), gprs_tmsi2tlli(), gsm0808_chosen_channel(), gsm0808_current_channel_type_1(), gsm0808_permitted_speech(), gsm340_gen_oa(), gsm411_smc_recv(), gsm411_smc_send(), gsm411_smr_recv(), gsm411_smr_send(), rsl_dec_chan_nr(), rsl_enc_chan_nr(), and tlv_encode_one().

## ◆ v4

uint32_t v4

## ◆ v6

uint8_t v6