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>`

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_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_TIMER_READY = 0x17,
GSM48_IE_GMM_ALLOC_PTMSI = 0x18,
GSM48_IE_GMM_PTMSI_SIG = 0x19,
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_DRX_PARAM = 0x27,
GSM48_IE_GMM_AUTN = 0x28,
GSM48_IE_GMM_AUTH_RES_EXT = 0x29,
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
}

enum

gsm48_gprs_ie_sm {
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_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,
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 }
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 }
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 }

## 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_ie_mm | __attribute__
uint8_t | upd_result
uint8_t | force_stby
uint8_t | ra_upd_timer
struct gsm48_ra_id | ra_id
uint8_t | data [0]
uint8_t | att_result
uint8_t | radio_prio
uint8_t | imeisv_req
uint8_t | ciph_alg
uint8_t | ac_ref_nr
uint8_t | spare
uint8_t | req_nsapi
uint8_t | req_llc_sapi
const struct value_string * | gsm48_gmm_cause_names
const struct value_string * | gsm48_gsm_cause_names
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_TIMER_READY |
GSM48_IE_GMM_ALLOC_PTMSI |
GSM48_IE_GMM_PTMSI_SIG |
GSM48_IE_GMM_AUTH_RAND |
GSM48_IE_GMM_AUTH_SRES |
GSM48_IE_GMM_IMEISV |
GSM48_IE_GMM_CAUSE |
GSM48_IE_GMM_DRX_PARAM |
GSM48_IE_GMM_AUTN |
GSM48_IE_GMM_AUTH_RES_EXT |
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_gprs_ie_sm

enum gsm48_gprs_ie_sm

Enumerator
GSM48_IE_GSM_APN |
GSM48_IE_GSM_PROTO_CONF_OPT |
GSM48_IE_GSM_PDP_ADDR |
GSM48_IE_GSM_AA_TMR |
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 |
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 |

## gsm48_pdp_type_org

enum gsm48_pdp_type_org

Enumerator
PDP_TYPE_ORG_ETSI |
PDP_TYPE_ORG_IETF |

## 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 |

## Function Documentation

## __attribute__()

struct gsm48_ra_upd_ack __attribute__ | ( | (packed) |  | ) |

## Variable Documentation

## __attribute__

enum gsm48_gmm_cause __attribute__

## ac_ref_nr

uint8_t ac_ref_nr

## att_result

uint8_t att_result

## ciph_alg

uint8_t ciph_alg

## data

uint8_t data[0]

## force_stby

uint8_t force_stby

## imeisv_req

uint8_t imeisv_req

## ra_id

struct gsm48_ra_id ra_id

## ra_upd_timer

uint8_t ra_upd_timer

## radio_prio

uint8_t radio_prio

## req_llc_sapi

uint8_t req_llc_sapi

## req_nsapi

uint8_t req_nsapi

## spare

uint8_t spare

## upd_result

uint8_t upd_result