Review at  https://gerrit.osmocom.org/3087

Add missing BSSGP cause values

Add values from 3GPP TS 48.018

Change-Id: Ie39a6c91a46d179392d861805a106743a07c6fb0
---
M include/osmocom/gprs/protocol/gsm_08_18.h
M src/gb/gprs_bssgp_util.c
2 files changed, 114 insertions(+), 40 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/3087/1

diff --git a/include/osmocom/gprs/protocol/gsm_08_18.h 
b/include/osmocom/gprs/protocol/gsm_08_18.h
index 3179455..af6caf3 100644
--- a/include/osmocom/gprs/protocol/gsm_08_18.h
+++ b/include/osmocom/gprs/protocol/gsm_08_18.h
@@ -120,24 +120,61 @@
 
 /*! 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 78a11a3..4553da8 100644
--- a/src/gb/gprs_bssgp_util.c
+++ b/src/gb/gprs_bssgp_util.c
@@ -39,26 +39,63 @@
 
 /* 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 },
 };
 

-- 
To view, visit https://gerrit.osmocom.org/3087
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie39a6c91a46d179392d861805a106743a07c6fb0
Gerrit-PatchSet: 1
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Owner: Max <[email protected]>

Reply via email to