[PATCH] libosmocore[master]: Add missing BSSGP cause values

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Max gerrit-no-reply at lists.osmocom.org
Thu Jun 29 18:30:31 UTC 2017


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 <msuraev at sysmocom.de>



More information about the gerrit-log mailing list