|
|
|
@@ -17,6 +17,7 @@
|
|
|
|
|
#include "mm-modem-helpers.h"
|
|
|
|
|
#include "mm-enums-types.h"
|
|
|
|
|
#include "mm-errors-types.h"
|
|
|
|
|
#include "mm-error-helpers.h"
|
|
|
|
|
#include "mm-log-object.h"
|
|
|
|
|
|
|
|
|
|
#include <string.h>
|
|
|
|
@@ -235,200 +236,80 @@ mbim_pin_type_from_mm_modem_3gpp_facility (MMModem3gppFacility facility)
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
static const MMMobileEquipmentError mbim_nw_errors[] = {
|
|
|
|
|
[MBIM_NW_ERROR_IMSI_UNKNOWN_IN_HLR] = MM_MOBILE_EQUIPMENT_ERROR_IMSI_UNKNOWN_IN_HSS,
|
|
|
|
|
[MBIM_NW_ERROR_ILLEGAL_MS] = MM_MOBILE_EQUIPMENT_ERROR_ILLEGAL_UE,
|
|
|
|
|
[MBIM_NW_ERROR_IMSI_UNKNOWN_IN_VLR] = MM_MOBILE_EQUIPMENT_ERROR_IMSI_UNKNOWN_IN_VLR,
|
|
|
|
|
[MBIM_NW_ERROR_ILLEGAL_ME] = MM_MOBILE_EQUIPMENT_ERROR_ILLEGAL_ME,
|
|
|
|
|
[MBIM_NW_ERROR_GPRS_NOT_ALLOWED] = MM_MOBILE_EQUIPMENT_ERROR_PS_SERVICES_NOT_ALLOWED,
|
|
|
|
|
[MBIM_NW_ERROR_GPRS_AND_NON_GPRS_NOT_ALLOWED] = MM_MOBILE_EQUIPMENT_ERROR_PS_AND_NON_PS_SERVICES_NOT_ALLOWED,
|
|
|
|
|
[MBIM_NW_ERROR_PLMN_NOT_ALLOWED] = MM_MOBILE_EQUIPMENT_ERROR_PLMN_NOT_ALLOWED,
|
|
|
|
|
[MBIM_NW_ERROR_LOCATION_AREA_NOT_ALLOWED] = MM_MOBILE_EQUIPMENT_ERROR_AREA_NOT_ALLOWED,
|
|
|
|
|
[MBIM_NW_ERROR_ROAMING_NOT_ALLOWED_IN_LOCATION_AREA] = MM_MOBILE_EQUIPMENT_ERROR_ROAMING_NOT_ALLOWED_IN_AREA,
|
|
|
|
|
[MBIM_NW_ERROR_GPRS_NOT_ALLOWED_IN_PLMN] = MM_MOBILE_EQUIPMENT_ERROR_PS_SERVICES_NOT_ALLOWED_IN_PLMN,
|
|
|
|
|
[MBIM_NW_ERROR_NO_CELLS_IN_LOCATION_AREA] = MM_MOBILE_EQUIPMENT_ERROR_NO_CELLS_IN_AREA,
|
|
|
|
|
[MBIM_NW_ERROR_NETWORK_FAILURE] = MM_MOBILE_EQUIPMENT_ERROR_NETWORK_FAILURE_ATTACH,
|
|
|
|
|
[MBIM_NW_ERROR_CONGESTION] = MM_MOBILE_EQUIPMENT_ERROR_CONGESTION,
|
|
|
|
|
[MBIM_NW_ERROR_GSM_AUTHENTICATION_UNACCEPTABLE] = MM_MOBILE_EQUIPMENT_ERROR_USER_AUTHENTICATION_FAILED,
|
|
|
|
|
[MBIM_NW_ERROR_NOT_AUTHORIZED_FOR_CSG] = MM_MOBILE_EQUIPMENT_ERROR_NOT_AUTHORIZED_FOR_CSG,
|
|
|
|
|
[MBIM_NW_ERROR_INSUFFICIENT_RESOURCES] = MM_MOBILE_EQUIPMENT_ERROR_INSUFFICIENT_RESOURCES,
|
|
|
|
|
[MBIM_NW_ERROR_MISSING_OR_UNKNOWN_APN] = MM_MOBILE_EQUIPMENT_ERROR_MISSING_OR_UNKNOWN_APN,
|
|
|
|
|
[MBIM_NW_ERROR_UNKNOWN_PDP_ADDRESS_OR_TYPE] = MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN_PDP_ADDRESS_OR_TYPE,
|
|
|
|
|
[MBIM_NW_ERROR_USER_AUTHENTICATION_FAILED] = MM_MOBILE_EQUIPMENT_ERROR_USER_AUTHENTICATION_FAILED,
|
|
|
|
|
[MBIM_NW_ERROR_ACTIVATION_REJECTED_BY_GGSN_OR_GW] = MM_MOBILE_EQUIPMENT_ERROR_ACTIVATION_REJECTED_BY_GGSN_OR_GW,
|
|
|
|
|
[MBIM_NW_ERROR_ACTIVATION_REJECTED_UNSPECIFIED] = MM_MOBILE_EQUIPMENT_ERROR_ACTIVATION_REJECTED_UNSPECIFIED,
|
|
|
|
|
[MBIM_NW_ERROR_SERVICE_OPTION_NOT_SUPPORTED] = MM_MOBILE_EQUIPMENT_ERROR_SERVICE_OPTION_NOT_SUPPORTED,
|
|
|
|
|
[MBIM_NW_ERROR_REQUESTED_SERVICE_OPTION_NOT_SUBSCRIBED] = MM_MOBILE_EQUIPMENT_ERROR_SERVICE_OPTION_NOT_SUBSCRIBED,
|
|
|
|
|
[MBIM_NW_ERROR_SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER] = MM_MOBILE_EQUIPMENT_ERROR_SERVICE_OPTION_OUT_OF_ORDER,
|
|
|
|
|
[MBIM_NW_ERROR_MAXIMUM_NUMBER_OF_PDP_CONTEXTS_REACHED] = MM_MOBILE_EQUIPMENT_ERROR_MAXIMUM_NUMBER_OF_BEARERS_REACHED,
|
|
|
|
|
[MBIM_NW_ERROR_REQUESTED_APN_NOT_SUPPORTED_IN_CURRENT_RAT_AND_PLMN] = MM_MOBILE_EQUIPMENT_ERROR_REQUESTED_APN_NOT_SUPPORTED,
|
|
|
|
|
[MBIM_NW_ERROR_SEMANTICALLY_INCORRECT_MESSAGE] = MM_MOBILE_EQUIPMENT_ERROR_SEMANTICALLY_INCORRECT_MESSAGE,
|
|
|
|
|
[MBIM_NW_ERROR_PROTOCOL_ERROR_UNSPECIFIED] = MM_MOBILE_EQUIPMENT_ERROR_UNSPECIFIED_PROTOCOL_ERROR,
|
|
|
|
|
[MBIM_NW_ERROR_IMEI_NOT_ACCEPTED] = MM_MOBILE_EQUIPMENT_ERROR_IMEI_NOT_ACCEPTED,
|
|
|
|
|
[MBIM_NW_ERROR_MS_IDENTITY_NOT_DERIVED_BY_NETWORK] = MM_MOBILE_EQUIPMENT_ERROR_UE_IDENTITY_NOT_DERIVED_FROM_NETWORK,
|
|
|
|
|
[MBIM_NW_ERROR_IMPLICITLY_DETACHED] = MM_MOBILE_EQUIPMENT_ERROR_IMPLICITLY_DETACHED,
|
|
|
|
|
[MBIM_NW_ERROR_MSC_TEMPORARILY_NOT_REACHABLE] = MM_MOBILE_EQUIPMENT_ERROR_MSC_TEMPORARILY_NOT_REACHABLE,
|
|
|
|
|
[MBIM_NW_ERROR_NO_PDP_CONTEXT_ACTIVATED] = MM_MOBILE_EQUIPMENT_ERROR_NO_BEARER_ACTIVATED,
|
|
|
|
|
[MBIM_NW_ERROR_PDP_TYPE_IPV4_ONLY_ALLOWED] = MM_MOBILE_EQUIPMENT_ERROR_IPV4_ONLY_ALLOWED,
|
|
|
|
|
[MBIM_NW_ERROR_PDP_TYPE_IPV6_ONLY_ALLOWED] = MM_MOBILE_EQUIPMENT_ERROR_IPV6_ONLY_ALLOWED,
|
|
|
|
|
[MBIM_NW_ERROR_INVALID_MANDATORY_INFORMATION] = MM_MOBILE_EQUIPMENT_ERROR_INVALID_MANDATORY_INFORMATION,
|
|
|
|
|
[MBIM_NW_ERROR_MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED] = MM_MOBILE_EQUIPMENT_ERROR_MESSAGE_TYPE_NOT_IMPLEMENTED,
|
|
|
|
|
[MBIM_NW_ERROR_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE] = MM_MOBILE_EQUIPMENT_ERROR_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE,
|
|
|
|
|
[MBIM_NW_ERROR_INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED] = MM_MOBILE_EQUIPMENT_ERROR_IE_NOT_IMPLEMENTED,
|
|
|
|
|
[MBIM_NW_ERROR_CONDITIONAL_IE_ERROR] = MM_MOBILE_EQUIPMENT_ERROR_CONDITIONAL_IE_ERROR,
|
|
|
|
|
[MBIM_NW_ERROR_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE] = MM_MOBILE_EQUIPMENT_ERROR_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE,
|
|
|
|
|
[MBIM_NW_ERROR_APN_RESTRICTION_VALUE_INCOMPATIBLE_WITH_ACTIVE_PDP_CONTEXT] = MM_MOBILE_EQUIPMENT_ERROR_APN_RESTRICTION_INCOMPATIBLE,
|
|
|
|
|
[MBIM_NW_ERROR_MULTIPLE_ACCESSES_TO_A_PDN_CONNECTION_NOT_ALLOWED] = MM_MOBILE_EQUIPMENT_ERROR_MULTIPLE_ACCESS_TO_PDN_CONNECTION_NOT_ALLOWED,
|
|
|
|
|
[MBIM_NW_ERROR_UNKNOWN] = MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN,
|
|
|
|
|
/* known unmapped errors */
|
|
|
|
|
/* MBIM_NW_ERROR_MAC_FAILURE */
|
|
|
|
|
/* MBIM_NW_ERROR_SYNCH_FAILURE */
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
GError *
|
|
|
|
|
mm_mobile_equipment_error_from_mbim_nw_error (MbimNwError nw_error)
|
|
|
|
|
mm_mobile_equipment_error_from_mbim_nw_error (MbimNwError nw_error,
|
|
|
|
|
gpointer log_object)
|
|
|
|
|
{
|
|
|
|
|
const gchar *msg;
|
|
|
|
|
MMMobileEquipmentError error_code;
|
|
|
|
|
const gchar *msg;
|
|
|
|
|
|
|
|
|
|
switch (nw_error) {
|
|
|
|
|
case MBIM_NW_ERROR_IMSI_UNKNOWN_IN_HLR:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_IMSI_UNKNOWN_IN_HSS,
|
|
|
|
|
"IMSI unknown in HLR");
|
|
|
|
|
case MBIM_NW_ERROR_ILLEGAL_MS:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_ILLEGAL_UE,
|
|
|
|
|
"Illegal UE/MS");
|
|
|
|
|
case MBIM_NW_ERROR_IMSI_UNKNOWN_IN_VLR:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_IMSI_UNKNOWN_IN_VLR,
|
|
|
|
|
"IMSI unknown in VLR");
|
|
|
|
|
case MBIM_NW_ERROR_ILLEGAL_ME:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_ILLEGAL_ME,
|
|
|
|
|
"Illegal ME");
|
|
|
|
|
case MBIM_NW_ERROR_GPRS_NOT_ALLOWED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_PS_SERVICES_NOT_ALLOWED,
|
|
|
|
|
"PS services not allowed");
|
|
|
|
|
case MBIM_NW_ERROR_GPRS_AND_NON_GPRS_NOT_ALLOWED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_PS_AND_NON_PS_SERVICES_NOT_ALLOWED,
|
|
|
|
|
"PS and non-PS services not allowed");
|
|
|
|
|
case MBIM_NW_ERROR_PLMN_NOT_ALLOWED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_PLMN_NOT_ALLOWED,
|
|
|
|
|
"PLMN not allowed");
|
|
|
|
|
case MBIM_NW_ERROR_LOCATION_AREA_NOT_ALLOWED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_AREA_NOT_ALLOWED,
|
|
|
|
|
"Location/tracking area not allowed");
|
|
|
|
|
case MBIM_NW_ERROR_ROAMING_NOT_ALLOWED_IN_LOCATION_AREA:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_ROAMING_NOT_ALLOWED_IN_AREA,
|
|
|
|
|
"Roaming not allowed in location/tracking area");
|
|
|
|
|
case MBIM_NW_ERROR_GPRS_NOT_ALLOWED_IN_PLMN:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_PS_SERVICES_NOT_ALLOWED_IN_PLMN,
|
|
|
|
|
"PS services not allowed in PLMN");
|
|
|
|
|
case MBIM_NW_ERROR_NO_CELLS_IN_LOCATION_AREA:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_NO_CELLS_IN_AREA,
|
|
|
|
|
"No cells in location/tracking area");
|
|
|
|
|
case MBIM_NW_ERROR_NETWORK_FAILURE:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_NETWORK_FAILURE_ATTACH,
|
|
|
|
|
"Network failure");
|
|
|
|
|
case MBIM_NW_ERROR_CONGESTION:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_CONGESTION,
|
|
|
|
|
"Congestion");
|
|
|
|
|
case MBIM_NW_ERROR_GSM_AUTHENTICATION_UNACCEPTABLE:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_USER_AUTHENTICATION_FAILED,
|
|
|
|
|
"GSM authentication unacceptable");
|
|
|
|
|
case MBIM_NW_ERROR_NOT_AUTHORIZED_FOR_CSG:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_NOT_AUTHORIZED_FOR_CSG,
|
|
|
|
|
"Not authorized for this CSG");
|
|
|
|
|
case MBIM_NW_ERROR_INSUFFICIENT_RESOURCES:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_INSUFFICIENT_RESOURCES,
|
|
|
|
|
"Insufficient resources");
|
|
|
|
|
case MBIM_NW_ERROR_MISSING_OR_UNKNOWN_APN:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_MISSING_OR_UNKNOWN_APN,
|
|
|
|
|
"Missing or unknown APN");
|
|
|
|
|
case MBIM_NW_ERROR_UNKNOWN_PDP_ADDRESS_OR_TYPE:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN_PDP_ADDRESS_OR_TYPE,
|
|
|
|
|
"Unknown PDP address or type");
|
|
|
|
|
case MBIM_NW_ERROR_USER_AUTHENTICATION_FAILED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_USER_AUTHENTICATION_FAILED,
|
|
|
|
|
"User authentication failed");
|
|
|
|
|
case MBIM_NW_ERROR_ACTIVATION_REJECTED_BY_GGSN_OR_GW:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_ACTIVATION_REJECTED_BY_GGSN_OR_GW,
|
|
|
|
|
"Activation rejected by GGSN or GW");
|
|
|
|
|
case MBIM_NW_ERROR_ACTIVATION_REJECTED_UNSPECIFIED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_ACTIVATION_REJECTED_UNSPECIFIED,
|
|
|
|
|
"Activation rejected; unspecified");
|
|
|
|
|
case MBIM_NW_ERROR_SERVICE_OPTION_NOT_SUPPORTED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_SERVICE_OPTION_NOT_SUPPORTED,
|
|
|
|
|
"Service option not supported");
|
|
|
|
|
case MBIM_NW_ERROR_REQUESTED_SERVICE_OPTION_NOT_SUBSCRIBED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_SERVICE_OPTION_NOT_SUBSCRIBED,
|
|
|
|
|
"Requested service option not subscribed");
|
|
|
|
|
case MBIM_NW_ERROR_SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_SERVICE_OPTION_OUT_OF_ORDER,
|
|
|
|
|
"Service option temporarily out of order");
|
|
|
|
|
case MBIM_NW_ERROR_MAXIMUM_NUMBER_OF_PDP_CONTEXTS_REACHED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_MAXIMUM_NUMBER_OF_BEARERS_REACHED,
|
|
|
|
|
"Maximum number of PDP contexts reached");
|
|
|
|
|
case MBIM_NW_ERROR_REQUESTED_APN_NOT_SUPPORTED_IN_CURRENT_RAT_AND_PLMN:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_REQUESTED_APN_NOT_SUPPORTED,
|
|
|
|
|
"Requested APN not supported");
|
|
|
|
|
/* convert to mobile equipment error */
|
|
|
|
|
error_code = mbim_nw_errors[nw_error];
|
|
|
|
|
if (error_code)
|
|
|
|
|
return mm_mobile_equipment_error_for_code (error_code, log_object);
|
|
|
|
|
|
|
|
|
|
case MBIM_NW_ERROR_SEMANTICALLY_INCORRECT_MESSAGE:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_SEMANTICALLY_INCORRECT_MESSAGE,
|
|
|
|
|
"Semantically incorrect message");
|
|
|
|
|
|
|
|
|
|
case MBIM_NW_ERROR_PROTOCOL_ERROR_UNSPECIFIED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_UNSPECIFIED_PROTOCOL_ERROR,
|
|
|
|
|
"Unspecified protocol error");
|
|
|
|
|
|
|
|
|
|
case MBIM_NW_ERROR_IMEI_NOT_ACCEPTED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_IMEI_NOT_ACCEPTED,
|
|
|
|
|
"IMEI not accepted");
|
|
|
|
|
case MBIM_NW_ERROR_MS_IDENTITY_NOT_DERIVED_BY_NETWORK:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_UE_IDENTITY_NOT_DERIVED_FROM_NETWORK,
|
|
|
|
|
"UE identity not derived from network");
|
|
|
|
|
case MBIM_NW_ERROR_IMPLICITLY_DETACHED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_IMPLICITLY_DETACHED,
|
|
|
|
|
"Implicitly detached");
|
|
|
|
|
case MBIM_NW_ERROR_MSC_TEMPORARILY_NOT_REACHABLE:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_MSC_TEMPORARILY_NOT_REACHABLE,
|
|
|
|
|
"MSC temporarily not reachable");
|
|
|
|
|
case MBIM_NW_ERROR_NO_PDP_CONTEXT_ACTIVATED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_NO_BEARER_ACTIVATED,
|
|
|
|
|
"No bearer activated");
|
|
|
|
|
case MBIM_NW_ERROR_PDP_TYPE_IPV4_ONLY_ALLOWED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_IPV4_ONLY_ALLOWED,
|
|
|
|
|
"IPv4 only allowed");
|
|
|
|
|
case MBIM_NW_ERROR_PDP_TYPE_IPV6_ONLY_ALLOWED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_IPV6_ONLY_ALLOWED,
|
|
|
|
|
"IPv6 only allowed");
|
|
|
|
|
case MBIM_NW_ERROR_INVALID_MANDATORY_INFORMATION:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_INVALID_MANDATORY_INFORMATION,
|
|
|
|
|
"Invalid mandatory information");
|
|
|
|
|
case MBIM_NW_ERROR_MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_MESSAGE_TYPE_NOT_IMPLEMENTED,
|
|
|
|
|
"Message type nonexistent or not implemented");
|
|
|
|
|
case MBIM_NW_ERROR_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE,
|
|
|
|
|
"Message type not compatible with protocol state");
|
|
|
|
|
case MBIM_NW_ERROR_INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_IE_NOT_IMPLEMENTED,
|
|
|
|
|
"Information element nonexistent or not implemented");
|
|
|
|
|
case MBIM_NW_ERROR_CONDITIONAL_IE_ERROR:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_CONDITIONAL_IE_ERROR,
|
|
|
|
|
"Conditional IE error");
|
|
|
|
|
case MBIM_NW_ERROR_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE,
|
|
|
|
|
"Message not compatible with protocol state");
|
|
|
|
|
case MBIM_NW_ERROR_APN_RESTRICTION_VALUE_INCOMPATIBLE_WITH_ACTIVE_PDP_CONTEXT:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_APN_RESTRICTION_INCOMPATIBLE,
|
|
|
|
|
"APN restriction incompatible with active bearer");
|
|
|
|
|
case MBIM_NW_ERROR_MULTIPLE_ACCESSES_TO_A_PDN_CONNECTION_NOT_ALLOWED:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_MULTIPLE_ACCESS_TO_PDN_CONNECTION_NOT_ALLOWED,
|
|
|
|
|
"Multiple accesses to PDN connection not allowed");
|
|
|
|
|
case MBIM_NW_ERROR_UNKNOWN:
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN,
|
|
|
|
|
"Unknown error");
|
|
|
|
|
case MBIM_NW_ERROR_MAC_FAILURE:
|
|
|
|
|
case MBIM_NW_ERROR_SYNCH_FAILURE:
|
|
|
|
|
default:
|
|
|
|
|
msg = mbim_nw_error_get_string (nw_error);
|
|
|
|
|
/* provide a nicer error message on unmapped errors */
|
|
|
|
|
msg = mbim_nw_error_get_string (nw_error);
|
|
|
|
|
if (msg)
|
|
|
|
|
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN,
|
|
|
|
|
"Unsupported error (%u): %s",
|
|
|
|
|
nw_error, msg ? msg : "unknown");
|
|
|
|
|
}
|
|
|
|
|
nw_error, msg);
|
|
|
|
|
|
|
|
|
|
/* fallback */
|
|
|
|
|
return g_error_new_literal (MM_MOBILE_EQUIPMENT_ERROR,
|
|
|
|
|
MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN,
|
|
|
|
|
"Unknown error");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|