aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2017-06-29 19:27:24 +0200
committerHarald Welte <laforge@gnumonks.org>2017-07-01 07:40:09 +0000
commit4aaa8abcab71a7257e20c96aa03d4f675b29c57e (patch)
tree5d36e424ec332f49d127ebd974fbfe8ed2c4c033
parent411402b4dfa984d11fb14095f56e00dc2c03e6ce (diff)
Add missing BSSGP cause values
Add values from 3GPP TS 48.018 Change-Id: Ie39a6c91a46d179392d861805a106743a07c6fb0
-rw-r--r--include/osmocom/gprs/protocol/gsm_08_18.h77
-rw-r--r--src/gb/gprs_bssgp_util.c77
2 files changed, 114 insertions, 40 deletions
diff --git a/include/osmocom/gprs/protocol/gsm_08_18.h b/include/osmocom/gprs/protocol/gsm_08_18.h
index 31794551..af6caf32 100644
--- a/include/osmocom/gprs/protocol/gsm_08_18.h
+++ b/include/osmocom/gprs/protocol/gsm_08_18.h
@@ -120,24 +120,61 @@ enum bssgp_iei_type {
/*! Cause coding (Section 11.3.8 / Table 11.10) */
enum gprs_bssgp_cause {
- BSSGP_CAUSE_PROC_OVERLOAD = 0x00,
- BSSGP_CAUSE_EQUIP_FAIL = 0x01,
- BSSGP_CAUSE_TRASIT_NET_FAIL = 0x02,
- BSSGP_CAUSE_CAPA_GREATER_0KPBS = 0x03,
- BSSGP_CAUSE_UNKNOWN_MS = 0x04,
- BSSGP_CAUSE_UNKNOWN_BVCI = 0x05,
- BSSGP_CAUSE_CELL_TRAF_CONG = 0x06,
- BSSGP_CAUSE_SGSN_CONG = 0x07,
- BSSGP_CAUSE_OML_INTERV = 0x08,
- BSSGP_CAUSE_BVCI_BLOCKED = 0x09,
- BSSGP_CAUSE_PFC_CREATE_FAIL = 0x0a,
- BSSGP_CAUSE_SEM_INCORR_PDU = 0x20,
- BSSGP_CAUSE_INV_MAND_INF = 0x21,
- BSSGP_CAUSE_MISSING_MAND_IE = 0x22,
- BSSGP_CAUSE_MISSING_COND_IE = 0x23,
- BSSGP_CAUSE_UNEXP_COND_IE = 0x24,
- BSSGP_CAUSE_COND_IE_ERR = 0x25,
- BSSGP_CAUSE_PDU_INCOMP_STATE = 0x26,
- BSSGP_CAUSE_PROTO_ERR_UNSPEC = 0x27,
- BSSGP_CAUSE_PDU_INCOMP_FEAT = 0x28,
+ BSSGP_CAUSE_PROC_OVERLOAD = 0x00,
+ BSSGP_CAUSE_EQUIP_FAIL = 0x01,
+ BSSGP_CAUSE_TRASIT_NET_FAIL = 0x02,
+ BSSGP_CAUSE_CAPA_GREATER_0KPBS = 0x03,
+ BSSGP_CAUSE_UNKNOWN_MS = 0x04,
+ BSSGP_CAUSE_UNKNOWN_BVCI = 0x05,
+ BSSGP_CAUSE_CELL_TRAF_CONG = 0x06,
+ BSSGP_CAUSE_SGSN_CONG = 0x07,
+ BSSGP_CAUSE_OML_INTERV = 0x08,
+ BSSGP_CAUSE_BVCI_BLOCKED = 0x09,
+ BSSGP_CAUSE_PFC_CREATE_FAIL = 0x0a,
+ BSSGP_CAUSE_PFC_PREEMPTED = 0x0b,
+ BSSGP_CAUSE_ABQP_NOT_SUPP = 0x0c,
+ BSSGP_CAUSE_SEM_INCORR_PDU = 0x20,
+ BSSGP_CAUSE_INV_MAND_INF = 0x21,
+ BSSGP_CAUSE_MISSING_MAND_IE = 0x22,
+ BSSGP_CAUSE_MISSING_COND_IE = 0x23,
+ BSSGP_CAUSE_UNEXP_COND_IE = 0x24,
+ BSSGP_CAUSE_COND_IE_ERR = 0x25,
+ BSSGP_CAUSE_PDU_INCOMP_STATE = 0x26,
+ BSSGP_CAUSE_PROTO_ERR_UNSPEC = 0x27,
+ BSSGP_CAUSE_PDU_INCOMP_FEAT = 0x28,
+ BSSGP_CAUSE_REQ_INFO_NOT_AVAIL = 0x29,
+ BSSGP_CAUSE_UNKN_DST = 0x2a,
+ BSSGP_CAUSE_UNKN_RIM_AI = 0x2b,
+ BSSGP_CAUSE_INVAL_CONT_UI = 0x2c,
+ BSSGP_CAUSE_PFC_QUEUE = 0x2d,
+ BSSGP_CAUSE_PFC_CREATED = 0x2e,
+ BSSGP_CAUSE_T12_EXPIRY = 0x2f,
+ BSSGP_CAUSE_MS_UNDER_PS_HO = 0x30,
+ BSSGP_CAUSE_UL_QUALITY = 0x31,
+ BSSGP_CAUSE_UL_STRENGTH = 0x32,
+ BSSGP_CAUSE_DL_QUALITY = 0x33,
+ BSSGP_CAUSE_DL_STRENGTH = 0x34,
+ BSSGP_CAUSE_DISTANCE = 0x35,
+ BSSGP_CAUSE_BETTER_CELL = 0x36,
+ BSSGP_CAUSE_TRAFFIC = 0x37,
+ BSSGP_CAUSE_MS_RADIO_LOSS = 0x38,
+ BSSGP_CAUSE_MS_BACK_OLD_CHAN = 0x39,
+ BSSGP_CAUSE_T13_EXPIRY = 0x3a,
+ BSSGP_CAUSE_T14_EXPIRY = 0x3b,
+ BSSGP_CAUSE_NOT_ALL_PFC = 0x3c,
+ BSSGP_CAUSE_CS = 0x3d,
+ BSSGP_CAUSE_REQ_ALG_NOT_SUPP = 0x3e,
+ BSSGP_CAUSE_RELOC_FAIL = 0x3f,
+ BSSGP_CAUSE_DIR_RETRY = 0x40,
+ BSSGP_CAUSE_TIME_CRIT_RELOC = 0x41,
+ BSSGP_CAUSE_PS_HO_TARG_NA = 0x42,
+ BSSGP_CAUSE_PS_HO_TARG_NOT_SUPP = 0x43,
+ BSSGP_CAUSE_PUESBINE = 0x44,
+ BSSGP_CAUSE_DTM_HO_NO_CS_RES = 0x45,
+ BSSGP_CAUSE_DTM_HO_PS_ALLOC_FAIL = 0x46,
+ BSSGP_CAUSE_DTM_HO_T24_EXPIRY = 0x47,
+ BSSGP_CAUSE_DTM_HO_INVAL_CS_IND = 0x48,
+ BSSGP_CAUSE_DTM_HO_T23_EXPIRY = 0x49,
+ BSSGP_CAUSE_DTM_HO_MSC_ERR = 0x4a,
+ BSSGP_CAUSE_INVAL_CSG_CELL = 0x4b,
};
diff --git a/src/gb/gprs_bssgp_util.c b/src/gb/gprs_bssgp_util.c
index 78a11a36..4553da84 100644
--- a/src/gb/gprs_bssgp_util.c
+++ b/src/gb/gprs_bssgp_util.c
@@ -39,26 +39,63 @@ struct gprs_ns_inst *bssgp_nsi;
/* Chapter 11.3.9 / Table 11.10: Cause coding */
static const struct value_string bssgp_cause_strings[] = {
- { BSSGP_CAUSE_PROC_OVERLOAD, "Processor overload" },
- { BSSGP_CAUSE_EQUIP_FAIL, "Equipment Failure" },
- { BSSGP_CAUSE_TRASIT_NET_FAIL, "Transit netowkr service failure" },
- { BSSGP_CAUSE_CAPA_GREATER_0KPBS,"Transmission capacity modified" },
- { BSSGP_CAUSE_UNKNOWN_MS, "Unknown MS" },
- { BSSGP_CAUSE_UNKNOWN_BVCI, "Unknown BVCI" },
- { BSSGP_CAUSE_CELL_TRAF_CONG, "Cell traffic congestion" },
- { BSSGP_CAUSE_SGSN_CONG, "SGSN congestion" },
- { BSSGP_CAUSE_OML_INTERV, "O&M intervention" },
- { BSSGP_CAUSE_BVCI_BLOCKED, "BVCI blocked" },
- { BSSGP_CAUSE_PFC_CREATE_FAIL, "PFC create failure" },
- { BSSGP_CAUSE_SEM_INCORR_PDU, "Semantically incorrect PDU" },
- { BSSGP_CAUSE_INV_MAND_INF, "Invalid mandatory information" },
- { BSSGP_CAUSE_MISSING_MAND_IE, "Missing mandatory IE" },
- { BSSGP_CAUSE_MISSING_COND_IE, "Missing conditional IE" },
- { BSSGP_CAUSE_UNEXP_COND_IE, "Unexpected conditional IE" },
- { BSSGP_CAUSE_COND_IE_ERR, "Conditional IE error" },
- { BSSGP_CAUSE_PDU_INCOMP_STATE, "PDU incompatible with protocol state" },
- { BSSGP_CAUSE_PROTO_ERR_UNSPEC, "Protocol error - unspecified" },
- { BSSGP_CAUSE_PDU_INCOMP_FEAT, "PDU not compatible with feature set" },
+ { BSSGP_CAUSE_PROC_OVERLOAD, "Processor overload" },
+ { BSSGP_CAUSE_EQUIP_FAIL, "Equipment Failure" },
+ { BSSGP_CAUSE_TRASIT_NET_FAIL, "Transit netowkr service failure" },
+ { BSSGP_CAUSE_CAPA_GREATER_0KPBS, "Transmission capacity modified" },
+ { BSSGP_CAUSE_UNKNOWN_MS, "Unknown MS" },
+ { BSSGP_CAUSE_UNKNOWN_BVCI, "Unknown BVCI" },
+ { BSSGP_CAUSE_CELL_TRAF_CONG, "Cell traffic congestion" },
+ { BSSGP_CAUSE_SGSN_CONG, "SGSN congestion" },
+ { BSSGP_CAUSE_OML_INTERV, "O&M intervention" },
+ { BSSGP_CAUSE_BVCI_BLOCKED, "BVCI blocked" },
+ { BSSGP_CAUSE_PFC_CREATE_FAIL, "PFC create failure" },
+ { BSSGP_CAUSE_PFC_PREEMPTED, "PFC preempted" },
+ { BSSGP_CAUSE_ABQP_NOT_SUPP, "ABQP no more supported" },
+ { BSSGP_CAUSE_SEM_INCORR_PDU, "Semantically incorrect PDU" },
+ { BSSGP_CAUSE_INV_MAND_INF, "Invalid mandatory information" },
+ { BSSGP_CAUSE_MISSING_MAND_IE, "Missing mandatory IE" },
+ { BSSGP_CAUSE_MISSING_COND_IE, "Missing conditional IE" },
+ { BSSGP_CAUSE_UNEXP_COND_IE, "Unexpected conditional IE" },
+ { BSSGP_CAUSE_COND_IE_ERR, "Conditional IE error" },
+ { BSSGP_CAUSE_PDU_INCOMP_STATE, "PDU incompatible with protocol state" },
+ { BSSGP_CAUSE_PROTO_ERR_UNSPEC, "Protocol error - unspecified" },
+ { BSSGP_CAUSE_PDU_INCOMP_FEAT, "PDU not compatible with feature set" },
+ { BSSGP_CAUSE_REQ_INFO_NOT_AVAIL, "Requested Information not available" },
+ { BSSGP_CAUSE_UNKN_DST , "Unknown Destination address" },
+ { BSSGP_CAUSE_UNKN_RIM_AI, "Unknown RIM Application Identity or RIM application disabled" },
+ { BSSGP_CAUSE_INVAL_CONT_UI, "Invalid Container Unit Information" },
+ { BSSGP_CAUSE_PFC_QUEUE, "PFC queuing" },
+ { BSSGP_CAUSE_PFC_CREATED, "PFC created successfully" },
+ { BSSGP_CAUSE_T12_EXPIRY, "T12 expiry" },
+ { BSSGP_CAUSE_MS_UNDER_PS_HO, "MS under PS Handover treatment" },
+ { BSSGP_CAUSE_UL_QUALITY, "Uplink quality" },
+ { BSSGP_CAUSE_UL_STRENGTH, "Uplink strength" },
+ { BSSGP_CAUSE_DL_QUALITY, "Downlink quality" },
+ { BSSGP_CAUSE_DL_STRENGTH, "Downlink strength" },
+ { BSSGP_CAUSE_DISTANCE, "Distance" },
+ { BSSGP_CAUSE_BETTER_CELL, "Better cell" },
+ { BSSGP_CAUSE_TRAFFIC, "Traffic" },
+ { BSSGP_CAUSE_MS_RADIO_LOSS, "Radio contact lost with MS" },
+ { BSSGP_CAUSE_MS_BACK_OLD_CHAN, "MS back on old channel" },
+ { BSSGP_CAUSE_T13_EXPIRY, "T13 expiry" },
+ { BSSGP_CAUSE_T14_EXPIRY, "T14 expiry" },
+ { BSSGP_CAUSE_NOT_ALL_PFC, "Not all requested PFCs created" },
+ { BSSGP_CAUSE_CS, "CS cause" },
+ { BSSGP_CAUSE_REQ_ALG_NOT_SUPP, "Requested ciphering and/or integrity protection algorithms not supported" },
+ { BSSGP_CAUSE_RELOC_FAIL, "Relocation failure in target system" },
+ { BSSGP_CAUSE_DIR_RETRY , "Directed Retry" },
+ { BSSGP_CAUSE_TIME_CRIT_RELOC , "Time critical relocation" },
+ { BSSGP_CAUSE_PS_HO_TARG_NA , "PS Handover Target not allowed" },
+ { BSSGP_CAUSE_PS_HO_TARG_NOT_SUPP, "PS Handover not Supported in Target BSS or Target System" },
+ { BSSGP_CAUSE_PUESBINE, "Incoming relocation not supported due to PUESBINE feature" },
+ { BSSGP_CAUSE_DTM_HO_NO_CS_RES, "DTM Handover - No CS resource" },
+ { BSSGP_CAUSE_DTM_HO_PS_ALLOC_FAIL, "DTM Handover - PS Allocation failure" },
+ { BSSGP_CAUSE_DTM_HO_T24_EXPIRY, "DTM Handover - T24 expiry" },
+ { BSSGP_CAUSE_DTM_HO_INVAL_CS_IND, "DTM Handover - Invalid CS Indication IE" },
+ { BSSGP_CAUSE_DTM_HO_T23_EXPIRY, "DTM Handover - T23 expiry" },
+ { BSSGP_CAUSE_DTM_HO_MSC_ERR, "DTM Handover - MSC Error" },
+ { BSSGP_CAUSE_INVAL_CSG_CELL, "Invalid CSG cell" },
{ 0, NULL },
};