diff options
-rw-r--r-- | include/osmocom/gsm/protocol/gsm_04_08.h | 1 | ||||
-rw-r--r-- | include/osmocom/gsm/protocol/gsm_04_08_gprs.h | 12 | ||||
-rw-r--r-- | src/gsm/gsm_04_08_gprs.c | 10 |
3 files changed, 22 insertions, 1 deletions
diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h index 0c2fcf28..074c2589 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08.h +++ b/include/osmocom/gsm/protocol/gsm_04_08.h @@ -1272,6 +1272,7 @@ void gsm48_set_dtx(struct gsm48_cell_options *op, enum gsm48_dtx_mode full, /* Additional MM elements */ #define GSM48_IE_LOCATION_AREA 0x13 +#define GSM48_IE_AUTN 0x20 #define GSM48_IE_PRIORITY_LEV 0x80 #define GSM48_IE_FOLLOW_ON_PROC 0xa1 #define GSM48_IE_CTS_PERMISSION 0xa2 diff --git a/include/osmocom/gsm/protocol/gsm_04_08_gprs.h b/include/osmocom/gsm/protocol/gsm_04_08_gprs.h index f35d11b6..e0e887fa 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08_gprs.h +++ b/include/osmocom/gsm/protocol/gsm_04_08_gprs.h @@ -22,6 +22,7 @@ #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 @@ -79,6 +80,9 @@ enum gsm48_gprs_ie_mm { GSM48_IE_GMM_IMEISV = 0x23, /* 10.5.1.4 */ GSM48_IE_GMM_CAUSE = 0x25, /* 10.5.5.14 */ GSM48_IE_GMM_DRX_PARAM = 0x27, /* 10.5.5.6 */ + GSM48_IE_GMM_AUTN = 0x28, /* 10.5.3.1.1 */ + GSM48_IE_GMM_AUTH_RES_EXT = 0x29, /* 10.5.3.2.1 */ + GSM48_IE_GMM_AUTH_FAIL_PAR = 0x30, /* 10.5.3.2.2 */ GSM48_IE_GMM_MS_NET_CAPA = 0x31, /* 10.5.5.12 */ GSM48_IE_GMM_PDP_CTX_STATUS = 0x32, /* 10.5.7.1 */ GSM48_IE_GMM_PS_LCS_CAPA = 0x33, /* 10.5.5.22 */ @@ -160,6 +164,7 @@ struct gsm48_act_pdp_ctx_req { 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, @@ -169,9 +174,16 @@ enum gsm48_gmm_cause { 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, diff --git a/src/gsm/gsm_04_08_gprs.c b/src/gsm/gsm_04_08_gprs.c index 6ce94159..5c00ea00 100644 --- a/src/gsm/gsm_04_08_gprs.c +++ b/src/gsm/gsm_04_08_gprs.c @@ -1,4 +1,4 @@ -/* (C) 2009-2010 by Harald Welte <laforge@gnumonks.org> +/* (C) 2009-2016 by Harald Welte <laforge@gnumonks.org> * (C) 2010 by On-Waves * (C) 2014-2015 by Sysmocom s.f.m.c. GmbH * @@ -30,6 +30,7 @@ const struct value_string gsm48_gmm_cause_names_[] = { { GMM_CAUSE_IMSI_UNKNOWN, "IMSI unknown in HLR" }, { GMM_CAUSE_ILLEGAL_MS, "Illegal MS" }, + { GMM_CAUSE_IMEI_NOT_ACCEPTED, "IMEI not accepted" }, { GMM_CAUSE_ILLEGAL_ME, "Illegal ME" }, { GMM_CAUSE_GPRS_NOTALLOWED, "GPRS services not allowed" }, { GMM_CAUSE_GPRS_OTHER_NOTALLOWED, @@ -43,9 +44,16 @@ const struct value_string gsm48_gmm_cause_names_[] = { "Roaming not allowed in this location area" }, { GMM_CAUSE_NO_GPRS_PLMN, "GPRS services not allowed in this PLMN" }, + { GMM_CAUSE_NO_SUIT_CELL_IN_LA, "No suitable cell in LA" }, { GMM_CAUSE_MSC_TEMP_NOTREACH, "MSC temporarily not reachable" }, { GMM_CAUSE_NET_FAIL, "Network failure" }, + { GMM_CAUSE_MAC_FAIL, "MAC failure" }, + { GMM_CAUSE_SYNC_FAIL, "SYNC failure" }, { GMM_CAUSE_CONGESTION, "Congestion" }, + { GMM_CAUSE_GSM_AUTH_UNACCEPT, "GSM authentication unacceptable" }, + { GMM_CAUSE_NOT_AUTH_FOR_CSG, "Not authorized for this CSG" }, + { GMM_CAUSE_SMS_VIA_GPRS_IN_RA, "SMS provided via GPRS in this RA" }, + { GMM_CAUSE_NO_PDP_ACTIVATED, "No PDP context activated" }, { GMM_CAUSE_SEM_INCORR_MSG, "Semantically incorrect message" }, { GMM_CAUSE_INV_MAND_INFO, "Invalid mandatory information" }, { GMM_CAUSE_MSGT_NOTEXIST_NOTIMPL, |