diff options
| author | Max <msuraev@sysmocom.de> | 2017-06-29 19:27:24 +0200 | 
|---|---|---|
| committer | Harald Welte <laforge@gnumonks.org> | 2017-07-01 07:40:09 +0000 | 
| commit | 4aaa8abcab71a7257e20c96aa03d4f675b29c57e (patch) | |
| tree | 5d36e424ec332f49d127ebd974fbfe8ed2c4c033 | |
| parent | 411402b4dfa984d11fb14095f56e00dc2c03e6ce (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.h | 77 | ||||
| -rw-r--r-- | src/gb/gprs_bssgp_util.c | 77 | 
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 },  }; | 
