Loading...
Searching...
No Matches
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.

## Variables

const struct value_string * | gprs_att_t_strs
const struct value_string | gprs_msgt_gmm_names []
| String names of GMM message types.
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]

Referenced by decode_auth_info(), decode_pdp_address(), decode_pdp_info(), osmo_gsup_decode(), and osmo_gsup_decode_an_apdu().

## [union]

union { ... } etsi

## [union]

union { ... } ietf

## req_llc_sapi

uint8_t req_llc_sapi

## req_nsapi

uint8_t req_nsapi

## type

uint8_t type

## v4

uint32_t v4

## v6

uint8_t v6