diff options
Diffstat (limited to 'src/mm-modem-helpers-qmi.c')
-rw-r--r-- | src/mm-modem-helpers-qmi.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/mm-modem-helpers-qmi.c b/src/mm-modem-helpers-qmi.c index 52ccfc87..373e6d18 100644 --- a/src/mm-modem-helpers-qmi.c +++ b/src/mm-modem-helpers-qmi.c @@ -2140,6 +2140,65 @@ mm_modem_registration_state_from_qmi_system_info (QmiMessageNasGetSystemInfoOutp /*****************************************************************************/ +static const MMNetworkError qmi_mm_nw_errors[] = { + [QMI_NAS_REJECT_CAUSE_NONE] = MM_NETWORK_ERROR_NONE, + [QMI_NAS_REJECT_CAUSE_IMSI_UNKNOWN_IN_HLR] = MM_NETWORK_ERROR_IMSI_UNKNOWN_IN_HLR, + [QMI_NAS_REJECT_CAUSE_ILLEGAL_UE] = MM_NETWORK_ERROR_ILLEGAL_MS, + [QMI_NAS_REJECT_CAUSE_IMSI_UNKNOWN_IN_VLR] = MM_NETWORK_ERROR_IMSI_UNKNOWN_IN_VLR, + [QMI_NAS_REJECT_CAUSE_IMEI_NOT_ACCEPTED] = MM_NETWORK_ERROR_IMEI_NOT_ACCEPTED, + [QMI_NAS_REJECT_CAUSE_ILLEGAL_ME] = MM_NETWORK_ERROR_ILLEGAL_ME, + [QMI_NAS_REJECT_CAUSE_PS_SERVICES_NOT_ALLOWED] = MM_NETWORK_ERROR_GPRS_NOT_ALLOWED, + [QMI_NAS_REJECT_CAUSE_PS_AND_NON_PS_SERVICES_NOT_ALLOWED] = MM_NETWORK_ERROR_GPRS_AND_NON_GPRS_NOT_ALLOWED, + [QMI_NAS_REJECT_CAUSE_UE_IDENTITY_NOT_DERIVED_BY_NETWORK] = MM_NETWORK_ERROR_MS_IDENTITY_NOT_DERIVED_BY_NETWORK, + [QMI_NAS_REJECT_CAUSE_IMPLICITLY_DETACHED] = MM_NETWORK_ERROR_IMPLICITLY_DETACHED, + [QMI_NAS_REJECT_CAUSE_PLMN_NOT_ALLOWED] = MM_NETWORK_ERROR_PLMN_NOT_ALLOWED, + [QMI_NAS_REJECT_CAUSE_LOCATION_AREA_NOT_ALLOWED] = MM_NETWORK_ERROR_LOCATION_AREA_NOT_ALLOWED, + [QMI_NAS_REJECT_CAUSE_ROAMING_IN_LOCATION_AREA_NOT_ALLOWED] = MM_NETWORK_ERROR_ROAMING_NOT_ALLOWED_IN_LOCATION_AREA, + [QMI_NAS_REJECT_CAUSE_PS_SERVICES_IN_LOCATION_AREA_NOT_ALLOWED] = MM_NETWORK_ERROR_GPRS_NOT_ALLOWED_IN_PLMN, + [QMI_NAS_REJECT_CAUSE_NO_SUITABLE_CELLS_IN_LOCATION_AREA] = MM_NETWORK_ERROR_NO_CELLS_IN_LOCATION_AREA, + [QMI_NAS_REJECT_CAUSE_MSC_TEMPORARILY_NOT_REACHABLE] = MM_NETWORK_ERROR_MSC_TEMPORARILY_NOT_REACHABLE, + [QMI_NAS_REJECT_CAUSE_NETWORK_FAILURE] = MM_NETWORK_ERROR_NETWORK_FAILURE, + [QMI_NAS_REJECT_CAUSE_CS_DOMAIN_NOT_AVAILABLE] = MM_NETWORK_ERROR_CS_DOMAIN_NOT_AVAILABLE, + [QMI_NAS_REJECT_CAUSE_ESM_FAILURE] = MM_NETWORK_ERROR_ESM_FAILURE, + [QMI_NAS_REJECT_CAUSE_MAC_FAILURE] = MM_NETWORK_ERROR_MAC_FAILURE, + [QMI_NAS_REJECT_CAUSE_SYNCH_FAILURE] = MM_NETWORK_ERROR_SYNCH_FAILURE, + [QMI_NAS_REJECT_CAUSE_CONGESTION] = MM_NETWORK_ERROR_CONGESTION, + [QMI_NAS_REJECT_CAUSE_CSG_NOT_AUTHORIZED] = MM_NETWORK_ERROR_NOT_AUTHORIZED_FOR_CSG, + [QMI_NAS_REJECT_CAUSE_NON_EPS_AUTHENTICATION_UNACCEPTABLE] = MM_NETWORK_ERROR_GSM_AUTHENTICATION_UNACCEPTABLE, + [QMI_NAS_REJECT_CAUSE_REDIRECTION_TO_5GCN_REQUIRED] = MM_NETWORK_ERROR_REDIRECTION_TO_5GCN_REQUIRED, + [QMI_NAS_REJECT_CAUSE_SERVICE_OPTION_NOT_SUPPORTED] = MM_NETWORK_ERROR_SERVICE_OPTION_NOT_SUPPORTED, + [QMI_NAS_REJECT_CAUSE_REQUESTED_SERVICE_OPTION_NOT_SUBSCRIBED] = MM_NETWORK_ERROR_REQUESTED_SERVICE_OPTION_NOT_SUBSCRIBED, + [QMI_NAS_REJECT_CAUSE_SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER] = MM_NETWORK_ERROR_SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER, + [QMI_NAS_REJECT_CAUSE_REQUESTED_SERVICE_OPTION_NOT_AUTHORIZED] = MM_NETWORK_ERROR_REQUESTED_SERVICE_OPTION_NOT_AUTHORIZED, + [QMI_NAS_REJECT_CAUSE_CALL_CANNOT_BE_IDENTIFIED] = MM_NETWORK_ERROR_CALL_CANNOT_BE_IDENTIFIED, + [QMI_NAS_REJECT_CAUSE_CS_SERVICE_TEMPORARILY_NOT_AVAILABLE] = MM_NETWORK_ERROR_CS_SERVICE_TEMPORARILY_NOT_AVAILABLE, + [QMI_NAS_REJECT_CAUSE_NO_EPS_BEARER_CONTEXT_ACTIVATED] = MM_NETWORK_ERROR_NO_PDP_CONTEXT_ACTIVATED, + [QMI_NAS_REJECT_CAUSE_SEVERE_NETWORK_FAILURE] = MM_NETWORK_ERROR_SYNTACTICAL_ERROR_IN_THE_TFT_OPERATION, + [QMI_NAS_REJECT_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE] = MM_NETWORK_ERROR_SEMANTICALLY_INCORRECT_MESSAGE, + [QMI_NAS_REJECT_CAUSE_INVALID_MANDATORY_INFORMATION] = MM_NETWORK_ERROR_INVALID_MANDATORY_INFORMATION, + [QMI_NAS_REJECT_CAUSE_MESSAGE_TYPE_NON_EXISTENT] = MM_NETWORK_ERROR_MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED, + [QMI_NAS_REJECT_CAUSE_MESSAGE_TYPE_NOT_COMPATIBLE] = MM_NETWORK_ERROR_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE, + [QMI_NAS_REJECT_CAUSE_INFORMATION_ELEMENT_NON_EXISTENT] = MM_NETWORK_ERROR_INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED, + [QMI_NAS_REJECT_CAUSE_CONDITIONAL_INFORMATION_ELEMENT_ERROR] = MM_NETWORK_ERROR_CONDITIONAL_IE_ERROR, + [QMI_NAS_REJECT_CAUSE_MESSAGE_NOT_COMPATIBLE] = MM_NETWORK_ERROR_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE, + [QMI_NAS_REJECT_CAUSE_UNSPECIFIED_PROTOCOL_ERROR] = MM_NETWORK_ERROR_PROTOCOL_ERROR_UNSPECIFIED, +}; + + +MMNetworkError +mm_modem_nw_error_from_qmi_nw_error (QmiNasRejectCause nw_error) +{ + if (nw_error < G_N_ELEMENTS (qmi_mm_nw_errors)) { + /* convert to nw error */ + return qmi_mm_nw_errors[nw_error]; + } + + /* fallback */ + return MM_NETWORK_ERROR_UNKNOWN; +} + +/*****************************************************************************/ + QmiWmsStorageType mm_sms_storage_to_qmi_storage_type (MMSmsStorage storage) { |