aboutsummaryrefslogtreecommitdiff
path: root/src/mm-modem-helpers-mbim.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2021-05-11 23:12:57 +0200
committerAleksander Morgado <aleksander@aleksander.es>2021-05-22 22:58:37 +0000
commit8da8fd0248fa619709aa2a17b1717e7981b641d0 (patch)
tree5644b03618a5de870f7c54a13e6830c5b1d4b59d /src/mm-modem-helpers-mbim.c
parentd1bd0a297103b426e3ec3afe310f1471c6c6dbae (diff)
api: update MMMobileEquipmentError enum values
Update the list of mobile equipment error codes according to v17.1.0 of 3GPP TS 27.007 (March 2021). A lot of the enum values that were prefixed with the 'GPRS_' keyword have now been flagged as deprecated, and a new enum name given to the corresponding value. The deprecated symbol names are kept in the compat support to avoid breaking API/ABI.
Diffstat (limited to 'src/mm-modem-helpers-mbim.c')
-rw-r--r--src/mm-modem-helpers-mbim.c124
1 files changed, 86 insertions, 38 deletions
diff --git a/src/mm-modem-helpers-mbim.c b/src/mm-modem-helpers-mbim.c
index be9cd886..d01f4c38 100644
--- a/src/mm-modem-helpers-mbim.c
+++ b/src/mm-modem-helpers-mbim.c
@@ -243,141 +243,189 @@ mm_mobile_equipment_error_from_mbim_nw_error (MbimNwError nw_error)
switch (nw_error) {
case MBIM_NW_ERROR_IMSI_UNKNOWN_IN_HLR:
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_IMSI_UNKNOWN_IN_HLR,
+ 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_GPRS_ILLEGAL_MS,
- "Illegal MS");
+ 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_GPRS_IMSI_UNKNOWN_IN_VLR,
+ 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_GPRS_ILLEGAL_ME,
+ 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_GPRS_SERVICE_NOT_ALLOWED,
- "GPRS not allowed");
+ 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_GPRS_SERVICE_NOT_ALLOWED,
- "GPRS and non-GPRS not allowed");
+ 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_GPRS_PLMN_NOT_ALLOWED,
+ 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_GPRS_LOCATION_NOT_ALLOWED,
- "Location area not allowed");
+ 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_GPRS_ROAMING_NOT_ALLOWED,
- "Roaming not allowed in location area");
+ 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_GPRS_SERVICE_NOT_ALLOWED,
- "GPRS not allowed in PLMN");
+ 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_GPRS_NO_CELLS_IN_LOCATION_AREA,
- "No cells in location area");
+ 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_GPRS_NETWORK_FAILURE,
+ 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_GPRS_CONGESTION,
+ 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_GPRS_USER_AUTHENTICATION_FAILED,
+ 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_GPRS_USER_AUTHENTICATION_FAILED,
+ 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_GPRS_INSUFFICIENT_RESOURCES,
+ 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_GPRS_MISSING_OR_UNKNOWN_APN,
+ 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_GPRS_UNKNOWN_PDP_ADDRESS_OR_TYPE,
+ 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_GPRS_USER_AUTHENTICATION_FAILED,
+ 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_GPRS_ACTIVATION_REJECTED_BY_GGSN_OR_GW,
+ 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_GPRS_ACTIVATION_REJECTED_UNSPECIFIED,
+ 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_GPRS_SERVICE_OPTION_NOT_SUPPORTED,
+ 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_GPRS_SERVICE_OPTION_NOT_SUBSCRIBED,
+ 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_GPRS_SERVICE_OPTION_OUT_OF_ORDER,
+ 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_GPRS_MAXIMUM_NUMBER_OF_PDP_CONTEXTS_REACHED,
+ 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_GPRS_REQUESTED_APN_NOT_SUPPORTED,
+ MM_MOBILE_EQUIPMENT_ERROR_REQUESTED_APN_NOT_SUPPORTED,
"Requested APN not supported");
case MBIM_NW_ERROR_SEMANTICALLY_INCORRECT_MESSAGE:
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_SEMANTICALLY_INCORRECT_MESSAGE,
+ 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_GPRS_UNSPECIFIED_PROTOCOL_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:
- case MBIM_NW_ERROR_MAC_FAILURE:
- case MBIM_NW_ERROR_SYNCH_FAILURE:
+ 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);
return g_error_new (MM_MOBILE_EQUIPMENT_ERROR,
- MM_MOBILE_EQUIPMENT_ERROR_GPRS_UNKNOWN,
+ MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN,
"Unsupported error (%u): %s",
nw_error, msg ? msg : "unknown");
}