diff options
| author | Philipp Maier <pmaier@sysmocom.de> | 2018-03-29 12:55:26 +0200 | 
|---|---|---|
| committer | Philipp Maier <pmaier@sysmocom.de> | 2018-03-29 15:00:41 +0200 | 
| commit | dbb7659208533966940f2a4b622983163a7ee3d0 (patch) | |
| tree | 13c2dc27b5a9aedddd2151c568b7e232964771d6 /src | |
| parent | 3d8b47fc5cbaf37fc86ace23a69c2f99910a0192 (diff) | |
gsm0808: Add value strings for BSSMAP cause codes
libosmocore has no value strings for BSSMAP cause codes yet.
- Add value strings for BSSMAP cause codes and a function
  to retrieve them
Change-Id: I313dd8d7b06374e1e35ddc18b7a42562d9e25d45
Related: OS#1609
Diffstat (limited to 'src')
| -rw-r--r-- | src/gsm/gsm0808.c | 73 | ||||
| -rw-r--r-- | src/gsm/libosmogsm.map | 1 | 
2 files changed, 74 insertions, 0 deletions
| diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 3003284b..27ea035c 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -906,4 +906,77 @@ const struct value_string gsm0808_speech_codec_type_names[] = {  	{ 0, NULL }  }; +static const struct value_string gsm0808_cause_names[] = { +	{ GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE, "RADIO INTERFACE MESSAGE FAILURE" }, +	{ GSM0808_CAUSE_RADIO_INTERFACE_FAILURE, "RADIO INTERFACE FAILURE" }, +	{ GSM0808_CAUSE_UPLINK_QUALITY, "UPLINK QUALITY" }, +	{ GSM0808_CAUSE_UPLINK_STRENGTH, "UPLINK STRENGTH" }, +	{ GSM0808_CAUSE_DOWNLINK_QUALITY, "DOWNLINK QUALITY" }, +	{ GSM0808_CAUSE_DOWNLINK_STRENGTH, "DOWNLINK STRENGTH" }, +	{ GSM0808_CAUSE_DISTANCE, "DISTANCE" }, +	{ GSM0808_CAUSE_O_AND_M_INTERVENTION, "O AND M INTERVENTION" }, +	{ GSM0808_CAUSE_RESPONSE_TO_MSC_INVOCATION, "RESPONSE TO MSC INVOCATION" }, +	{ GSM0808_CAUSE_CALL_CONTROL, "CALL CONTROL" }, +	{ GSM0808_CAUSE_RADIO_INTERFACE_FAILURE_REVERSION, "RADIO INTERFACE FAILURE REVERSION" }, +	{ GSM0808_CAUSE_HANDOVER_SUCCESSFUL, "HANDOVER SUCCESSFUL" }, +	{ GSM0808_CAUSE_BETTER_CELL, "BETTER CELL" }, +	{ GSM0808_CAUSE_DIRECTED_RETRY, "DIRECTED RETRY" }, +	{ GSM0808_CAUSE_JOINED_GROUP_CALL_CHANNEL, "JOINED GROUP CALL CHANNEL" }, +	{ GSM0808_CAUSE_TRAFFIC, "TRAFFIC" }, +	{ GSM0808_CAUSE_REDUCE_LOAD_IN_SERVING_CELL, "REDUCE LOAD IN SERVING CELL" }, +	{ GSM0808_CAUSE_TRAFFIC_LOAD_IN_TGT_HIGHER_THAN_IN_SRC_CELL, "TRAFFIC LOAD IN TGT HIGHER THAN IN SRC CELL" }, +	{ GSM0808_CAUSE_RELOCATION_TRIGGERED, "RELOCATION TRIGGERED" }, +	{ GSM0808_CAUSE_REQUSTED_OPT_NOT_AUTHORISED, "REQUSTED OPT NOT AUTHORISED" }, +	{ GSM0808_CAUSE_ALT_CHAN_CONFIG_REQUESTED, "ALT CHAN CONFIG REQUESTED" }, +	{ GSM0808_CAUSE_RESP_TO_INT_HO_ENQ_MSG, "RESP TO INT HO ENQ MSG" }, +	{ GSM0808_CAUSE_INT_HO_ENQUIRY_REJECT, "INT HO ENQUIRY REJECT" }, +	{ GSM0808_CAUSE_REDUNDANCY_LEVEL_NOT_ADEQUATE, "REDUNDANCY LEVEL NOT ADEQUATE" }, +	{ GSM0808_CAUSE_EQUIPMENT_FAILURE, "EQUIPMENT FAILURE" }, +	{ GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, "NO RADIO RESOURCE AVAILABLE" }, +	{ GSM0808_CAUSE_RQSTED_TERRESTRIAL_RESOURCE_UNAVAILABLE, "RQSTED TERRESTRIAL RESOURCE UNAVAILABLE" }, +	{ GSM0808_CAUSE_CCCH_OVERLOAD, "CCCH OVERLOAD" }, +	{ GSM0808_CAUSE_PROCESSOR_OVERLOAD, "PROCESSOR OVERLOAD" }, +	{ GSM0808_CAUSE_BSS_NOT_EQUIPPED, "BSS NOT EQUIPPED" }, +	{ GSM0808_CAUSE_MS_NOT_EQUIPPED, "MS NOT EQUIPPED" }, +	{ GSM0808_CAUSE_INVALID_CELL, "INVALID CELL" }, +	{ GSM0808_CAUSE_TRAFFIC_LOAD, "TRAFFIC LOAD" }, +	{ GSM0808_CAUSE_PREEMPTION, "PREEMPTION" }, +	{ GSM0808_CAUSE_DTM_HO_SGSN_FAILURE, "DTM HO SGSN FAILURE" }, +	{ GSM0808_CAUSE_DTM_HO_PS_ALLOC_FAILURE, "DTM HO PS ALLOC FAILURE" }, +	{ GSM0808_CAUSE_RQSTED_TRANSCODING_RATE_ADAPTION_UNAVAILABLE, "RQSTED TRANSCODING RATE ADAPTION UNAVAILABLE" }, +	{ GSM0808_CAUSE_CIRCUIT_POOL_MISMATCH, "CIRCUIT POOL MISMATCH" }, +	{ GSM0808_CAUSE_SWITCH_CIRCUIT_POOL, "SWITCH CIRCUIT POOL" }, +	{ GSM0808_CAUSE_RQSTED_SPEECH_VERSION_UNAVAILABLE, "RQSTED SPEECH VERSION UNAVAILABLE" }, +	{ GSM0808_CAUSE_LSA_NOT_ALLOWED, "LSA NOT ALLOWED" }, +	{ GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_UNAVAIL, "REQ CODEC TYPE OR CONFIG UNAVAIL" }, +	{ GSM0808_CAUSE_REQ_A_IF_TYPE_UNAVAIL, "REQ A IF TYPE UNAVAIL" }, +	{ GSM0808_CAUSE_INVALID_CSG_CELL, "INVALID CSG CELL" }, +	{ GSM0808_CAUSE_REQ_REDUND_LEVEL_NOT_AVAIL, "REQ REDUND LEVEL NOT AVAIL" }, +	{ GSM0808_CAUSE_CIPHERING_ALGORITHM_NOT_SUPPORTED, "CIPHERING ALGORITHM NOT SUPPORTED" }, +	{ GSM0808_CAUSE_GERAN_IU_MODE_FAILURE, "GERAN IU MODE FAILURE" }, +	{ GSM0808_CAUSE_INC_RELOC_NOT_SUPP_DT_PUESBINE_FEATURE, "INC RELOC NOT SUPP DT PUESBINE FEATURE" }, +	{ GSM0808_CAUSE_ACCESS_RESTRICTED_DUE_TO_SHARED_NETWORKS, "ACCESS RESTRICTED DUE TO SHARED NETWORKS" }, +	{ GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_NOT_SUPP, "REQ CODEC TYPE OR CONFIG NOT SUPP" }, +	{ GSM0808_CAUSE_REQ_A_IF_TYPE_NOT_SUPP, "REQ A IF TYPE NOT SUPP" }, +	{ GSM0808_CAUSE_REQ_REDUND_LVL_NOT_SUPP, "REQ REDUND LVL NOT SUPP" }, +	{ GSM0808_CAUSE_TERRESTRIAL_CIRCUIT_ALREADY_ALLOCATED, "TERRESTRIAL CIRCUIT ALREADY ALLOCATED" }, +	{ GSM0808_CAUSE_INVALID_MESSAGE_CONTENTS, "INVALID MESSAGE CONTENTS" }, +	{ GSM0808_CAUSE_INFORMATION_ELEMENT_OR_FIELD_MISSING, "INFORMATION ELEMENT OR FIELD MISSING" }, +	{ GSM0808_CAUSE_INCORRECT_VALUE, "INCORRECT VALUE" }, +	{ GSM0808_CAUSE_UNKNOWN_MESSAGE_TYPE, "UNKNOWN MESSAGE TYPE" }, +	{ GSM0808_CAUSE_UNKNOWN_INFORMATION_ELEMENT, "UNKNOWN INFORMATION ELEMENT" }, +	{ GSM0808_CAUSE_DTM_HO_INVALID_PS_IND, "DTM HO INVALID PS IND" }, +	{ GSM0808_CAUSE_CALL_ID_ALREADY_ALLOC, "CALL ID ALREADY ALLOC" }, +	{ GSM0808_CAUSE_PROTOCOL_ERROR_BETWEEN_BSS_AND_MSC, "PROTOCOL ERROR BETWEEN BSS AND MSC" }, +	{ GSM0808_CAUSE_VGCS_VBS_CALL_NON_EXISTANT, "VGCS VBS CALL NON EXISTANT" }, +	{ GSM0808_CAUSE_DTM_HO_TIMER_EXPIRY, "DTM HO TIMER EXPIRY" }, +	{ 0, NULL } +}; + +/*! Return string name of BSSMAP Cause name */ +const char *gsm0808_cause_name(uint8_t cause) +{ +	return get_value_string(gsm0808_cause_names, cause); +} +  /*! @} */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index fd077041..dd4722e3 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -139,6 +139,7 @@ gsm0503_mcs9;  gsm0808_att_tlvdef;  gsm0808_bssap_name;  gsm0808_bssmap_name; +gsm0808_cause_name;  gsm0808_create_ass;  gsm0808_create_assignment_completed;  gsm0808_create_ass_compl; | 
