1 /*
2  * Copyright (C) 2006 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package android.telephony;
17 
18 import android.annotation.NonNull;
19 import android.annotation.SystemApi;
20 import android.content.Context;
21 import android.os.PersistableBundle;
22 import android.telephony.Annotation.DataFailureCause;
23 
24 import com.android.internal.telephony.util.ArrayUtils;
25 
26 import java.util.Arrays;
27 import java.util.HashMap;
28 import java.util.HashSet;
29 import java.util.Map;
30 import java.util.Set;
31 
32 /**
33  * DataFailCause collects data connection failure causes code from different sources.
34  */
35 public final class DataFailCause {
36     /** There is no failure */
37     public static final int NONE = 0;
38 
39     // This series of errors as specified by the standards
40     // specified in ril.h
41     /** Operator determined barring. (no retry) */
42     public static final int OPERATOR_BARRED = 0x08;
43     /** NAS signalling. */
44     public static final int NAS_SIGNALLING = 0x0E;
45     /** Logical Link Control (LLC) Sub Network Dependent Convergence Protocol (SNDCP). */
46     public static final int LLC_SNDCP = 0x19;
47     /** Insufficient resources. */
48     public static final int INSUFFICIENT_RESOURCES = 0x1A;
49     /** Missing or unknown APN. */
50     public static final int MISSING_UNKNOWN_APN = 0x1B;              /* no retry */
51     /** Unknown Packet Data Protocol (PDP) address type. */
52     public static final int UNKNOWN_PDP_ADDRESS_TYPE = 0x1C;         /* no retry */
53     /** User authentication. */
54     public static final int USER_AUTHENTICATION = 0x1D;              /* no retry */
55     /** Activation rejected by Gateway GPRS Support Node (GGSN), Serving Gateway or PDN Gateway. */
56     public static final int ACTIVATION_REJECT_GGSN = 0x1E;           /* no retry */
57     /** Activation rejected, unspecified. */
58     public static final int ACTIVATION_REJECT_UNSPECIFIED = 0x1F;
59     /** Service option not supported. */
60     public static final int SERVICE_OPTION_NOT_SUPPORTED = 0x20;     /* no retry */
61     /** Requested service option not subscribed. */
62     public static final int SERVICE_OPTION_NOT_SUBSCRIBED = 0x21;    /* no retry */
63     /** Service option temporarily out of order. */
64     public static final int SERVICE_OPTION_OUT_OF_ORDER = 0x22;
65     /** The Network Service Access Point Identifier (NSAPI) is in use. */
66     public static final int NSAPI_IN_USE = 0x23;                     /* no retry */
67     /* possibly restart radio, based on config */
68     /** Regular deactivation. */
69     public static final int REGULAR_DEACTIVATION = 0x24;
70     /** Quality of service (QoS) is not accepted. */
71     public static final int QOS_NOT_ACCEPTED = 0x25;
72     /** Network Failure. */
73     public static final int NETWORK_FAILURE = 0x26;
74     /** Universal Mobile Telecommunications System (UMTS) reactivation request. */
75     public static final int UMTS_REACTIVATION_REQ = 0x27;
76     /** Feature not supported. */
77     public static final int FEATURE_NOT_SUPP = 0x28;
78     /** Semantic error in the Traffic flow templates (TFT) operation. */
79     public static final int TFT_SEMANTIC_ERROR = 0x29;
80     /** Syntactical error in the Traffic flow templates (TFT) operation. */
81     public static final int TFT_SYTAX_ERROR = 0x2A;
82     /** Unknown Packet Data Protocol (PDP) context. */
83     public static final int UNKNOWN_PDP_CONTEXT = 0x2B;
84     /** Semantic errors in packet filter. */
85     public static final int FILTER_SEMANTIC_ERROR = 0x2C;
86     /** Syntactical errors in packet filter(s). */
87     public static final int FILTER_SYTAX_ERROR = 0x2D;
88     /** Packet Data Protocol (PDP) without active traffic flow template (TFT). */
89     public static final int PDP_WITHOUT_ACTIVE_TFT = 0x2E;
90     /**
91      * UE requested to modify QoS parameters or the bearer control mode, which is not compatible
92      * with the selected bearer control mode.
93      */
94     public static final int ACTIVATION_REJECTED_BCM_VIOLATION = 0x30;
95     /** Packet Data Protocol (PDP) type IPv4 only allowed. */
96     public static final int ONLY_IPV4_ALLOWED = 0x32;                /* no retry */
97     /** Packet Data Protocol (PDP) type IPv6 only allowed. */
98     public static final int ONLY_IPV6_ALLOWED = 0x33;                /* no retry */
99     /** Single address bearers only allowed. */
100     public static final int ONLY_SINGLE_BEARER_ALLOWED = 0x34;
101     /** EPS Session Management (ESM) information is not received. */
102     public static final int ESM_INFO_NOT_RECEIVED = 0x35;
103     /** PDN connection does not exist. */
104     public static final int PDN_CONN_DOES_NOT_EXIST = 0x36;
105     /** Multiple connections to a same PDN is not allowed. */
106     public static final int MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 0x37;
107     /**
108      * Network has already initiated the activation, modification, or deactivation of bearer
109      * resources that was requested by the UE.
110      */
111     public static final int COLLISION_WITH_NETWORK_INITIATED_REQUEST = 0x38;
112     /**
113      * Network supports IPv4v6 PDP type only. Non-IP type is not allowed. In LTE mode of operation,
114      * this is a PDN throttling cause code, meaning the UE may throttle further requests to the
115      * same APN.
116      */
117     public static final int ONLY_IPV4V6_ALLOWED = 0x39;
118     /**
119      * Network supports non-IP PDP type only. IPv4, IPv6 and IPv4v6 is not allowed. In LTE mode of
120      * operation, this is a PDN throttling cause code, meaning the UE can throttle further requests
121      * to the same APN.
122      */
123     public static final int ONLY_NON_IP_ALLOWED = 0x3A;
124     /** QCI (QoS Class Identifier) indicated in the UE request cannot be supported. */
125     public static final int UNSUPPORTED_QCI_VALUE = 0x3B;
126     /** Procedure requested by the UE was rejected because the bearer handling is not supported. */
127     public static final int BEARER_HANDLING_NOT_SUPPORTED = 0x3C;
128     /**
129      * This cause is used to report a service or option not available event only when no other
130      * cause in the service or option not available class applies.
131      * @hide // TODO: Unhide in U.
132      */
133     public static final int SERVICE_OR_OPTION_NOT_AVAILABLE = 0x3F;
134     /** Max number of Packet Data Protocol (PDP) context reached. */
135     public static final int ACTIVE_PDP_CONTEXT_MAX_NUMBER_REACHED = 0x41;
136     /** Unsupported APN in current public land mobile network (PLMN). */
137     public static final int UNSUPPORTED_APN_IN_CURRENT_PLMN = 0x42;
138     /** Invalid transaction id. */
139     public static final int INVALID_TRANSACTION_ID = 0x51;
140     /** Incorrect message semantic. */
141     public static final int MESSAGE_INCORRECT_SEMANTIC = 0x5F;
142     /** Invalid mandatory information. */
143     public static final int INVALID_MANDATORY_INFO = 0x60;
144     /** Unsupported message type. */
145     public static final int MESSAGE_TYPE_UNSUPPORTED = 0x61;
146     /** Message type uncompatible. */
147     public static final int MSG_TYPE_NONCOMPATIBLE_STATE = 0x62;
148     /** Unknown info element. */
149     public static final int UNKNOWN_INFO_ELEMENT = 0x63;
150     /** Conditional Information Element (IE) error. */
151     public static final int CONDITIONAL_IE_ERROR = 0x64;
152     /** Message and protocol state uncompatible. */
153     public static final int MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE = 0x65;
154     /** Protocol errors. */
155     public static final int PROTOCOL_ERRORS = 0x6F;                  /* no retry */
156     /** APN type conflict. */
157     public static final int APN_TYPE_CONFLICT = 0x70;
158     /** Invalid Proxy-Call Session Control Function (P-CSCF) address. */
159     public static final int INVALID_PCSCF_ADDR = 0x71;
160     /** Internal data call preempt by high priority APN. */
161     public static final int INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN = 0x72;
162     /** EPS (Evolved Packet System) Mobility Management (EMM) access barred. */
163     public static final int EMM_ACCESS_BARRED = 0x73;
164     /** Emergency interface only. */
165     public static final int EMERGENCY_IFACE_ONLY = 0x74;
166     /** Interface mismatch. */
167     public static final int IFACE_MISMATCH = 0x75;
168     /** Companion interface in use. */
169     public static final int COMPANION_IFACE_IN_USE = 0x76;
170     /** IP address mismatch. */
171     public static final int IP_ADDRESS_MISMATCH = 0x77;
172     public static final int IFACE_AND_POL_FAMILY_MISMATCH = 0x78;
173     /** EPS (Evolved Packet System) Mobility Management (EMM) access barred infinity retry. **/
174     public static final int EMM_ACCESS_BARRED_INFINITE_RETRY = 0x79;
175     /** Authentication failure on emergency call. */
176     public static final int AUTH_FAILURE_ON_EMERGENCY_CALL = 0x7A;
177     /** Not receiving a DNS address that was mandatory. */
178     public static final int INVALID_DNS_ADDR = 0x7B;
179     /** Not receiving either a PCSCF or a DNS address, one of them being mandatory. */
180     public static final int INVALID_PCSCF_OR_DNS_ADDRESS = 0x7C;
181     /** Emergency call bring up on a different ePDG. */
182     public static final int CALL_PREEMPT_BY_EMERGENCY_APN = 0x7F;
183     /** UE performs a detach or disconnect PDN action based on TE requirements. */
184     public static final int UE_INITIATED_DETACH_OR_DISCONNECT = 0x80;
185 
186     /** Reason unspecified for foreign agent rejected MIP (Mobile IP) registration. */
187     public static final int MIP_FA_REASON_UNSPECIFIED = 0x7D0;
188     /** Foreign agent administratively prohibited MIP (Mobile IP) registration. */
189     public static final int MIP_FA_ADMIN_PROHIBITED = 0x7D1;
190     /** Foreign agent rejected MIP (Mobile IP) registration because of insufficient resources. */
191     public static final int MIP_FA_INSUFFICIENT_RESOURCES = 0x7D2;
192     /**
193      * Foreign agent rejected MIP (Mobile IP) registration because of MN-AAA authenticator was
194      * wrong.
195      */
196     public static final int MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE = 0x7D3;
197     /**
198      * Foreign agent rejected MIP (Mobile IP) registration because of home agent authentication
199      * failure.
200      */
201     public static final int MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE = 0x7D4;
202     /**
203      * Foreign agent rejected MIP (Mobile IP) registration because of requested lifetime was too
204      * long.
205      */
206     public static final int MIP_FA_REQUESTED_LIFETIME_TOO_LONG = 0x7D5;
207     /** Foreign agent rejected MIP (Mobile IP) registration because of malformed request. */
208     public static final int MIP_FA_MALFORMED_REQUEST = 0x7D6;
209     /** Foreign agent rejected MIP (Mobile IP) registration because of malformed reply. */
210     public static final int MIP_FA_MALFORMED_REPLY = 0x7D7;
211     /**
212      * Foreign agent rejected MIP (Mobile IP) registration because of requested encapsulation was
213      * unavailable.
214      */
215     public static final int MIP_FA_ENCAPSULATION_UNAVAILABLE = 0x7D8;
216     /**
217      * Foreign agent rejected MIP (Mobile IP) registration of VJ Header Compression was
218      * unavailable.
219      */
220     public static final int MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE = 0x7D9;
221     /**
222      * Foreign agent rejected MIP (Mobile IP) registration because of reverse tunnel was
223      * unavailable.
224      */
225     public static final int MIP_FA_REVERSE_TUNNEL_UNAVAILABLE = 0x7DA;
226     /**
227      * Foreign agent rejected MIP (Mobile IP) registration because of reverse tunnel was mandatory
228      * but not requested by device.
229      */
230     public static final int MIP_FA_REVERSE_TUNNEL_IS_MANDATORY = 0x7DB;
231     /**
232      * Foreign agent rejected MIP (Mobile IP) registration because of delivery style was not
233      * supported.
234      */
235     public static final int MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED = 0x7DC;
236     /**
237      * Foreign agent rejected MIP (Mobile IP) registration because of missing NAI (Network Access
238      * Identifier).
239      */
240     public static final int MIP_FA_MISSING_NAI = 0x7DD;
241     /** Foreign agent rejected MIP (Mobile IP) registration because of missing Home Agent. */
242     public static final int MIP_FA_MISSING_HOME_AGENT = 0x7DE;
243     /** Foreign agent rejected MIP (Mobile IP) registration because of missing Home Address. */
244     public static final int MIP_FA_MISSING_HOME_ADDRESS = 0x7DF;
245     /** Foreign agent rejected MIP (Mobile IP) registration because of unknown challenge. */
246     public static final int MIP_FA_UNKNOWN_CHALLENGE = 0x7E0;
247     /** Foreign agent rejected MIP (Mobile IP) registration because of missing challenge. */
248     public static final int MIP_FA_MISSING_CHALLENGE = 0x7E1;
249     /** Foreign agent rejected MIP (Mobile IP) registration because of stale challenge. */
250     public static final int MIP_FA_STALE_CHALLENGE = 0x7E2;
251     /** Reason unspecified for home agent rejected MIP (Mobile IP) registration. */
252     public static final int MIP_HA_REASON_UNSPECIFIED = 0x7E3;
253     /** Home agent administratively prohibited MIP (Mobile IP) registration. */
254     public static final int MIP_HA_ADMIN_PROHIBITED = 0x7E4;
255     /** Home agent rejected MIP (Mobile IP) registration because of insufficient resources. */
256     public static final int MIP_HA_INSUFFICIENT_RESOURCES = 0x7E5;
257     /**
258      * Home agent rejected MIP (Mobile IP) registration because of MN-HA authenticator was
259      * wrong.
260      */
261     public static final int MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE = 0x7E6;
262     /**
263      * Home agent rejected MIP (Mobile IP) registration because of foreign agent authentication
264      * failure.
265      */
266     public static final int MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE = 0x7E7;
267     /** Home agent rejected MIP (Mobile IP) registration because of registration id mismatch. */
268     public static final int MIP_HA_REGISTRATION_ID_MISMATCH = 0x7E8;
269     /** Home agent rejected MIP (Mobile IP) registration because of malformed request. */
270     public static final int MIP_HA_MALFORMED_REQUEST = 0x7E9;
271     /** Home agent rejected MIP (Mobile IP) registration because of unknown home agent address. */
272     public static final int MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS = 0x7EA;
273     /**
274      * Home agent rejected MIP (Mobile IP) registration because of reverse tunnel was
275      * unavailable.
276      */
277     public static final int MIP_HA_REVERSE_TUNNEL_UNAVAILABLE = 0x7EB;
278     /**
279      * Home agent rejected MIP (Mobile IP) registration because of reverse tunnel is mandatory but
280      * not requested by device.
281      */
282     public static final int MIP_HA_REVERSE_TUNNEL_IS_MANDATORY = 0x7EC;
283     /** Home agent rejected MIP (Mobile IP) registration because of encapsulation unavailable. */
284     public static final int MIP_HA_ENCAPSULATION_UNAVAILABLE = 0x7ED;
285     /** Tearing down is in progress. */
286     public static final int CLOSE_IN_PROGRESS = 0x7EE;
287     /** Brought down by the network. */
288     public static final int NETWORK_INITIATED_TERMINATION = 0x7EF;
289     /** Another application in modem preempts the data call. */
290     public static final int MODEM_APP_PREEMPTED = 0x7F0;
291     /**
292      * IPV4 PDN is in throttled state due to network providing only IPV6 address during the
293      * previous VSNCP bringup (subs_limited_to_v6).
294      */
295     public static final int PDN_IPV4_CALL_DISALLOWED = 0x7F1;
296     /** IPV4 PDN is in throttled state due to previous VSNCP bringup failure(s). */
297     public static final int PDN_IPV4_CALL_THROTTLED = 0x7F2;
298     /**
299      * IPV6 PDN is in throttled state due to network providing only IPV4 address during the
300      * previous VSNCP bringup (subs_limited_to_v4).
301      */
302     public static final int PDN_IPV6_CALL_DISALLOWED = 0x7F3;
303     /** IPV6 PDN is in throttled state due to previous VSNCP bringup failure(s). */
304     public static final int PDN_IPV6_CALL_THROTTLED = 0x7F4;
305     /** Modem restart. */
306     public static final int MODEM_RESTART = 0x7F5;
307     /** PDP PPP calls are not supported. */
308     public static final int PDP_PPP_NOT_SUPPORTED = 0x7F6;
309     /** RAT on which the data call is attempted/connected is no longer the preferred RAT. */
310     public static final int UNPREFERRED_RAT = 0x7F7;
311     /** Physical link is in the process of cleanup. */
312     public static final int PHYSICAL_LINK_CLOSE_IN_PROGRESS = 0x7F8;
313     /** Interface bring up is attempted for an APN that is yet to be handed over to target RAT. */
314     public static final int APN_PENDING_HANDOVER = 0x7F9;
315     /** APN bearer type in the profile does not match preferred network mode. */
316     public static final int PROFILE_BEARER_INCOMPATIBLE = 0x7FA;
317     /** Card was refreshed or removed. */
318     public static final int SIM_CARD_CHANGED = 0x7FB;
319     /** Device is going into lower power mode or powering down. */
320     public static final int LOW_POWER_MODE_OR_POWERING_DOWN = 0x7FC;
321     /** APN has been disabled. */
322     public static final int APN_DISABLED = 0x7FD;
323     /** Maximum PPP inactivity timer expired. */
324     public static final int MAX_PPP_INACTIVITY_TIMER_EXPIRED = 0x7FE;
325     /** IPv6 address transfer failed. */
326     public static final int IPV6_ADDRESS_TRANSFER_FAILED = 0x7FF;
327     /** Target RAT swap failed. */
328     public static final int TRAT_SWAP_FAILED = 0x800;
329     /** Device falls back from eHRPD to HRPD. */
330     public static final int EHRPD_TO_HRPD_FALLBACK = 0x801;
331     /**
332      * UE is in MIP-only configuration but the MIP configuration fails on call bring up due to
333      * incorrect provisioning.
334      */
335     public static final int MIP_CONFIG_FAILURE = 0x802;
336     /**
337      * PDN inactivity timer expired due to no data transmission in a configurable duration of time.
338      */
339     public static final int PDN_INACTIVITY_TIMER_EXPIRED = 0x803;
340     /**
341      * IPv4 data call bring up is rejected because the UE already maintains the allotted maximum
342      * number of IPv4 data connections.
343      */
344     public static final int MAX_IPV4_CONNECTIONS = 0x804;
345     /**
346      * IPv6 data call bring up is rejected because the UE already maintains the allotted maximum
347      * number of IPv6 data connections.
348      */
349     public static final int MAX_IPV6_CONNECTIONS = 0x805;
350     /**
351      * New PDN bring up is rejected during interface selection because the UE has already allotted
352      * the available interfaces for other PDNs.
353      */
354     public static final int APN_MISMATCH = 0x806;
355     /**
356      * New call bring up is rejected since the existing data call IP type doesn't match the
357      * requested IP.
358      */
359     public static final int IP_VERSION_MISMATCH = 0x807;
360     /** Dial up networking (DUN) call bring up is rejected since UE is in eHRPD RAT. */
361     public static final int DUN_CALL_DISALLOWED = 0x808;
362     /*** Rejected/Brought down since UE is transition between EPC and NONEPC RAT. */
363     public static final int INTERNAL_EPC_NONEPC_TRANSITION = 0x809;
364     /** The current interface is being in use. */
365     public static final int INTERFACE_IN_USE = 0x80A;
366     /** PDN connection to the APN is disallowed on the roaming network. */
367     public static final int APN_DISALLOWED_ON_ROAMING = 0x80B;
368     /** APN-related parameters are changed. */
369     public static final int APN_PARAMETERS_CHANGED = 0x80C;
370     /** PDN is attempted to be brought up with NULL APN but NULL APN is not supported. */
371     public static final int NULL_APN_DISALLOWED = 0x80D;
372     /**
373      * Thermal level increases and causes calls to be torn down when normal mode of operation is
374      * not allowed.
375      */
376     public static final int THERMAL_MITIGATION = 0x80E;
377     /**
378      * PDN Connection to a given APN is disallowed because data is disabled from the device user
379      * interface settings.
380      */
381     public static final int DATA_SETTINGS_DISABLED = 0x80F;
382     /**
383      * PDN Connection to a given APN is disallowed because data roaming is disabled from the device
384      * user interface settings and the UE is roaming.
385      */
386     public static final int DATA_ROAMING_SETTINGS_DISABLED = 0x810;
387     /** DDS (Default data subscription) switch occurs. */
388     public static final int DDS_SWITCHED = 0x811;
389     /** PDN being brought up with an APN that is part of forbidden APN Name list. */
390     public static final int FORBIDDEN_APN_NAME = 0x812;
391     /** Default data subscription switch is in progress. */
392     public static final int DDS_SWITCH_IN_PROGRESS = 0x813;
393     /** Roaming is disallowed during call bring up. */
394     public static final int CALL_DISALLOWED_IN_ROAMING = 0x814;
395     /**
396      * UE is unable to bring up a non-IP data call because the device is not camped on a NB1 cell.
397      */
398     public static final int NON_IP_NOT_SUPPORTED = 0x815;
399     /** Non-IP PDN is in throttled state due to previous VSNCP bringup failure(s). */
400     public static final int PDN_NON_IP_CALL_THROTTLED = 0x816;
401     /** Non-IP PDN is in disallowed state due to the network providing only an IP address. */
402     public static final int PDN_NON_IP_CALL_DISALLOWED = 0x817;
403     /** Device in CDMA locked state. */
404     public static final int CDMA_LOCK = 0x818;
405     /** Received an intercept order from the base station. */
406     public static final int CDMA_INTERCEPT = 0x819;
407     /** Receiving a reorder from the base station. */
408     public static final int CDMA_REORDER = 0x81A;
409     /** Receiving a release from the base station with a SO (Service Option) Reject reason. */
410     public static final int CDMA_RELEASE_DUE_TO_SO_REJECTION = 0x81B;
411     /** Receiving an incoming call from the base station. */
412     public static final int CDMA_INCOMING_CALL = 0x81C;
413     /** Received an alert stop from the base station due to incoming only. */
414     public static final int CDMA_ALERT_STOP = 0x81D;
415     /**
416      * Channel acquisition failures. This indicates that device has failed acquiring all the
417      * channels in the PRL.
418      */
419     public static final int CHANNEL_ACQUISITION_FAILURE = 0x81E;
420     /** Maximum access probes transmitted. */
421     public static final int MAX_ACCESS_PROBE = 0x81F;
422     /** Concurrent service is not supported by base station. */
423     public static final int CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION = 0x820;
424     /** There was no response received from the base station. */
425     public static final int NO_RESPONSE_FROM_BASE_STATION = 0x821;
426     /** The base station rejecting the call. */
427     public static final int REJECTED_BY_BASE_STATION = 0x822;
428     /** The concurrent services requested were not compatible. */
429     public static final int CONCURRENT_SERVICES_INCOMPATIBLE = 0x823;
430     /** Device does not have CDMA service. */
431     public static final int NO_CDMA_SERVICE = 0x824;
432     /** RUIM not being present. */
433     public static final int RUIM_NOT_PRESENT = 0x825;
434     /** Receiving a retry order from the base station. */
435     public static final int CDMA_RETRY_ORDER = 0x826;
436     /** Access blocked by the base station. */
437     public static final int ACCESS_BLOCK = 0x827;
438     /** Access blocked by the base station for all mobile devices. */
439     public static final int ACCESS_BLOCK_ALL = 0x828;
440     /** Maximum access probes for the IS-707B call. */
441     public static final int IS707B_MAX_ACCESS_PROBES = 0x829;
442     /** Put device in thermal emergency. */
443     public static final int THERMAL_EMERGENCY = 0x82A;
444     /** In favor of a voice call or SMS when concurrent voice and data are not supported. */
445     public static final int CONCURRENT_SERVICES_NOT_ALLOWED = 0x82B;
446     /** The other clients rejected incoming call. */
447     public static final int INCOMING_CALL_REJECTED = 0x82C;
448     /** No service on the gateway. */
449     public static final int NO_SERVICE_ON_GATEWAY = 0x82D;
450     /** GPRS context is not available. */
451     public static final int NO_GPRS_CONTEXT = 0x82E;
452     /**
453      * Network refuses service to the MS because either an identity of the MS is not acceptable to
454      * the network or the MS does not pass the authentication check.
455      */
456     public static final int ILLEGAL_MS = 0x82F;
457     /** ME could not be authenticated and the ME used is not acceptable to the network. */
458     public static final int ILLEGAL_ME = 0x830;
459     /** Not allowed to operate either GPRS or non-GPRS services. */
460     public static final int GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 0x831;
461     /** MS is not allowed to operate GPRS services. */
462     public static final int GPRS_SERVICES_NOT_ALLOWED = 0x832;
463     /** No matching identity or context could be found in the network. */
464     public static final int MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK = 0x833;
465     /**
466      * Mobile reachable timer has expired, or the GMM context data related to the subscription does
467      * not exist in the SGSN.
468      */
469     public static final int IMPLICITLY_DETACHED = 0x834;
470     /**
471      * UE requests GPRS service, or the network initiates a detach request in a PLMN which does not
472      * offer roaming for GPRS services to that MS.
473      */
474     public static final int PLMN_NOT_ALLOWED = 0x835;
475     /**
476      * MS requests service, or the network initiates a detach request, in a location area where the
477      * HPLMN determines that the MS, by subscription, is not allowed to operate.
478      */
479     public static final int LOCATION_AREA_NOT_ALLOWED = 0x836;
480     /**
481      * UE requests GPRS service or the network initiates a detach request in a PLMN that does not
482      * offer roaming for GPRS services.
483      */
484     public static final int GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN = 0x837;
485     /** PDP context already exists. */
486     public static final int PDP_DUPLICATE = 0x838;
487     /** RAT change on the UE. */
488     public static final int UE_RAT_CHANGE = 0x839;
489     /** Network cannot serve a request from the MS due to congestion. */
490     public static final int CONGESTION = 0x83A;
491     /**
492      * MS requests an establishment of the radio access bearers for all active PDP contexts by
493      * sending a service request message indicating data to the network, but the SGSN does not have
494      * any active PDP context.
495      */
496     public static final int NO_PDP_CONTEXT_ACTIVATED = 0x83B;
497     /** Access class blocking restrictions for the current camped cell. */
498     public static final int ACCESS_CLASS_DSAC_REJECTION = 0x83C;
499     /** SM attempts PDP activation for a maximum of four attempts. */
500     public static final int PDP_ACTIVATE_MAX_RETRY_FAILED = 0x83D;
501     /** Radio access bearer failure. */
502     public static final int RADIO_ACCESS_BEARER_FAILURE = 0x83E;
503     /** Invalid EPS bearer identity in the request. */
504     public static final int ESM_UNKNOWN_EPS_BEARER_CONTEXT = 0x83F;
505     /** Data radio bearer is released by the RRC. */
506     public static final int DRB_RELEASED_BY_RRC = 0x840;
507     /** Indicate the connection was released. */
508     public static final int CONNECTION_RELEASED = 0x841;
509     /** UE is detached. */
510     public static final int EMM_DETACHED = 0x842;
511     /** Attach procedure is rejected by the network. */
512     public static final int EMM_ATTACH_FAILED = 0x843;
513     /** Attach procedure is started for EMC purposes. */
514     public static final int EMM_ATTACH_STARTED = 0x844;
515     /** Service request procedure failure. */
516     public static final int LTE_NAS_SERVICE_REQUEST_FAILED = 0x845;
517     /** Active dedicated bearer was requested using the same default bearer ID. */
518     public static final int DUPLICATE_BEARER_ID = 0x846;
519     /** Collision scenarios for the UE and network-initiated procedures. */
520     public static final int ESM_COLLISION_SCENARIOS = 0x847;
521     /** Bearer must be deactivated to synchronize with the network. */
522     public static final int ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK = 0x848;
523     /** Active dedicated bearer was requested for an existing default bearer. */
524     public static final int ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER = 0x849;
525     /** Bad OTA message is received from the network. */
526     public static final int ESM_BAD_OTA_MESSAGE = 0x84A;
527     /** Download server rejected the call. */
528     public static final int ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL = 0x84B;
529     /** PDN was disconnected by the downlaod server due to IRAT. */
530     public static final int ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT = 0x84C;
531     /** Dedicated bearer will be deactivated regardless of the network response. */
532     public static final int DS_EXPLICIT_DEACTIVATION = 0x84D;
533     /** No specific local cause is mentioned, usually a valid OTA cause. */
534     public static final int ESM_LOCAL_CAUSE_NONE = 0x84E;
535     /** Throttling is not needed for this service request failure. */
536     public static final int LTE_THROTTLING_NOT_REQUIRED = 0x84F;
537     /** Access control list check failure at the lower layer. */
538     public static final int ACCESS_CONTROL_LIST_CHECK_FAILURE = 0x850;
539     /** Service is not allowed on the requested PLMN. */
540     public static final int SERVICE_NOT_ALLOWED_ON_PLMN = 0x851;
541     /** T3417 timer expiration of the service request procedure. */
542     public static final int EMM_T3417_EXPIRED = 0x852;
543     /** Extended service request fails due to expiration of the T3417 EXT timer. */
544     public static final int EMM_T3417_EXT_EXPIRED = 0x853;
545     /** Transmission failure of radio resource control (RRC) uplink data. */
546     public static final int RRC_UPLINK_DATA_TRANSMISSION_FAILURE = 0x854;
547     /** Radio resource control (RRC) uplink data delivery failed due to a handover. */
548     public static final int RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER = 0x855;
549     /** Radio resource control (RRC) uplink data delivery failed due to a connection release. */
550     public static final int RRC_UPLINK_CONNECTION_RELEASE = 0x856;
551     /** Radio resource control (RRC) uplink data delivery failed due to a radio link failure. */
552     public static final int RRC_UPLINK_RADIO_LINK_FAILURE = 0x857;
553     /**
554      * Radio resource control (RRC) is not connected but the non-access stratum (NAS) sends an
555      * uplink data request.
556      */
557     public static final int RRC_UPLINK_ERROR_REQUEST_FROM_NAS = 0x858;
558     /** Radio resource control (RRC) connection failure at access stratum. */
559     public static final int RRC_CONNECTION_ACCESS_STRATUM_FAILURE = 0x859;
560     /**
561      * Radio resource control (RRC) connection establishment is aborted due to another procedure.
562      */
563     public static final int RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS = 0x85A;
564     /** Radio resource control (RRC) connection establishment failed due to access barrred. */
565     public static final int RRC_CONNECTION_ACCESS_BARRED = 0x85B;
566     /**
567      * Radio resource control (RRC) connection establishment failed due to cell reselection at
568      * access stratum.
569      */
570     public static final int RRC_CONNECTION_CELL_RESELECTION = 0x85C;
571     /**
572      * Connection establishment failed due to configuration failure at the radio resource control
573      * (RRC).
574      */
575     public static final int RRC_CONNECTION_CONFIG_FAILURE = 0x85D;
576     /** Radio resource control (RRC) connection could not be established in the time limit. */
577     public static final int RRC_CONNECTION_TIMER_EXPIRED = 0x85E;
578     /**
579      * Connection establishment failed due to a link failure at the radio resource control (RRC).
580      */
581     public static final int RRC_CONNECTION_LINK_FAILURE = 0x85F;
582     /**
583      * Connection establishment failed as the radio resource control (RRC) is not camped on any
584      * cell.
585      */
586     public static final int RRC_CONNECTION_CELL_NOT_CAMPED = 0x860;
587     /**
588      * Connection establishment failed due to a service interval failure at the radio resource
589      * control (RRC).
590      */
591     public static final int RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE = 0x861;
592     /**
593      * Radio resource control (RRC) connection establishment failed due to the network rejecting
594      * the UE connection request.
595      */
596     public static final int RRC_CONNECTION_REJECT_BY_NETWORK = 0x862;
597     /** Normal radio resource control (RRC) connection release. */
598     public static final int RRC_CONNECTION_NORMAL_RELEASE = 0x863;
599     /**
600      * Radio resource control (RRC) connection release failed due to radio link failure conditions.
601      */
602     public static final int RRC_CONNECTION_RADIO_LINK_FAILURE = 0x864;
603     /** Radio resource control (RRC) connection re-establishment failure. */
604     public static final int RRC_CONNECTION_REESTABLISHMENT_FAILURE = 0x865;
605     /** UE is out of service during the call register. */
606     public static final int RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER = 0x866;
607     /**
608      * Connection has been released by the radio resource control (RRC) due to an abort request.
609      */
610     public static final int RRC_CONNECTION_ABORT_REQUEST = 0x867;
611     /**
612      * Radio resource control (RRC) connection released due to a system information block read
613      * error.
614      */
615     public static final int RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR = 0x868;
616     /** Network-initiated detach with reattach. */
617     public static final int NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH = 0x869;
618     /** Network-initiated detach without reattach. */
619     public static final int NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH = 0x86A;
620     /** ESM procedure maximum attempt timeout failure. */
621     public static final int ESM_PROCEDURE_TIME_OUT = 0x86B;
622     /**
623      * No PDP exists with the given connection ID while modifying or deactivating or activation for
624      * an already active PDP.
625      */
626     public static final int INVALID_CONNECTION_ID = 0x86C;
627     /** Maximum NSAPIs have been exceeded during PDP activation. */
628     public static final int MAXIMIUM_NSAPIS_EXCEEDED = 0x86D;
629     /** Primary context for NSAPI does not exist. */
630     public static final int INVALID_PRIMARY_NSAPI = 0x86E;
631     /** Unable to encode the OTA message for MT PDP or deactivate PDP. */
632     public static final int CANNOT_ENCODE_OTA_MESSAGE = 0x86F;
633     /**
634      * Radio access bearer is not established by the lower layers during activation, modification,
635      * or deactivation.
636      */
637     public static final int RADIO_ACCESS_BEARER_SETUP_FAILURE = 0x870;
638     /** Expiration of the PDP establish timer with a maximum of five retries. */
639     public static final int PDP_ESTABLISH_TIMEOUT_EXPIRED = 0x871;
640     /** Expiration of the PDP modify timer with a maximum of four retries. */
641     public static final int PDP_MODIFY_TIMEOUT_EXPIRED = 0x872;
642     /** Expiration of the PDP deactivate timer with a maximum of four retries. */
643     public static final int PDP_INACTIVE_TIMEOUT_EXPIRED = 0x873;
644     /** PDP activation failed due to RRC_ABORT or a forbidden PLMN. */
645     public static final int PDP_LOWERLAYER_ERROR = 0x874;
646     /** MO PDP modify collision when the MT PDP is already in progress. */
647     public static final int PDP_MODIFY_COLLISION = 0x875;
648     /** Maximum size of the L2 message was exceeded. */
649     public static final int MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED = 0x876;
650     /** Non-access stratum (NAS) request was rejected by the network. */
651     public static final int NAS_REQUEST_REJECTED_BY_NETWORK = 0x877;
652     /**
653      * Radio resource control (RRC) connection establishment failure due to an error in the request
654      * message.
655      */
656     public static final int RRC_CONNECTION_INVALID_REQUEST = 0x878;
657     /**
658      * Radio resource control (RRC) connection establishment failure due to a change in the
659      * tracking area ID.
660      */
661     public static final int RRC_CONNECTION_TRACKING_AREA_ID_CHANGED = 0x879;
662     /**
663      * Radio resource control (RRC) connection establishment failure due to the RF was unavailable.
664      */
665     public static final int RRC_CONNECTION_RF_UNAVAILABLE = 0x87A;
666     /**
667      * Radio resource control (RRC) connection was aborted before deactivating the LTE stack due to
668      * a successful LTE to WCDMA/GSM/TD-SCDMA IRAT change.
669      */
670     public static final int RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE = 0x87B;
671     /**
672      * If the UE has an LTE radio link failure before security is established, the radio resource
673      * control (RRC) connection must be released and the UE must return to idle.
674      */
675     public static final int RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE = 0x87C;
676     /**
677      * Radio resource control (RRC) connection was aborted by the non-access stratum (NAS) after an
678      * IRAT to LTE IRAT handover.
679      */
680     public static final int RRC_CONNECTION_ABORTED_AFTER_HANDOVER = 0x87D;
681     /**
682      * Radio resource control (RRC) connection was aborted before deactivating the LTE stack after
683      * a successful LTE to GSM/EDGE IRAT cell change order procedure.
684      */
685     public static final int RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE = 0x87E;
686     /**
687      * Radio resource control (RRC) connection was aborted in the middle of a LTE to GSM IRAT cell
688      * change order procedure.
689      */
690     public static final int RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE = 0x87F;
691     /** IMSI present in the UE is unknown in the home subscriber server. */
692     public static final int IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER = 0x880;
693     /** IMEI of the UE is not accepted by the network. */
694     public static final int IMEI_NOT_ACCEPTED = 0x881;
695     /** EPS and non-EPS services are not allowed by the network. */
696     public static final int EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED = 0x882;
697     /** EPS services are not allowed in the PLMN. */
698     public static final int EPS_SERVICES_NOT_ALLOWED_IN_PLMN = 0x883;
699     /** Mobile switching center is temporarily unreachable. */
700     public static final int MSC_TEMPORARILY_NOT_REACHABLE = 0x884;
701     /** CS domain is not available. */
702     public static final int CS_DOMAIN_NOT_AVAILABLE = 0x885;
703     /** ESM level failure. */
704     public static final int ESM_FAILURE = 0x886;
705     /** MAC level failure. */
706     public static final int MAC_FAILURE = 0x887;
707     /** Synchronization failure. */
708     public static final int SYNCHRONIZATION_FAILURE = 0x888;
709     /** UE security capabilities mismatch. */
710     public static final int UE_SECURITY_CAPABILITIES_MISMATCH = 0x889;
711     /** Unspecified security mode reject. */
712     public static final int SECURITY_MODE_REJECTED = 0x88A;
713     /** Unacceptable non-EPS authentication. */
714     public static final int UNACCEPTABLE_NON_EPS_AUTHENTICATION = 0x88B;
715     /** CS fallback call establishment is not allowed. */
716     public static final int CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED = 0x88C;
717     /** No EPS bearer context was activated. */
718     public static final int NO_EPS_BEARER_CONTEXT_ACTIVATED = 0x88D;
719     /** Invalid EMM state. */
720     public static final int INVALID_EMM_STATE = 0x88E;
721     /** Non-Access Spectrum layer failure. */
722     public static final int NAS_LAYER_FAILURE = 0x88F;
723     /** Multiple PDP call feature is disabled. */
724     public static final int MULTIPLE_PDP_CALL_NOT_ALLOWED = 0x890;
725     /** Data call has been brought down because EMBMS is not enabled at the RRC layer. */
726     public static final int EMBMS_NOT_ENABLED = 0x891;
727     /** Data call was unsuccessfully transferred during the IRAT handover. */
728     public static final int IRAT_HANDOVER_FAILED = 0x892;
729     /** EMBMS data call has been successfully brought down. */
730     public static final int EMBMS_REGULAR_DEACTIVATION = 0x893;
731     /** Test loop-back data call has been successfully brought down. */
732     public static final int TEST_LOOPBACK_REGULAR_DEACTIVATION = 0x894;
733     /** Lower layer registration failure. */
734     public static final int LOWER_LAYER_REGISTRATION_FAILURE = 0x895;
735     /**
736      * Network initiates a detach on LTE with error cause ""data plan has been replenished or has
737      * expired.
738      */
739     public static final int DATA_PLAN_EXPIRED = 0x896;
740     /** UMTS interface is brought down due to handover from UMTS to iWLAN. */
741     public static final int UMTS_HANDOVER_TO_IWLAN = 0x897;
742     /** Received a connection deny due to general or network busy on EVDO network. */
743     public static final int EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY = 0x898;
744     /** Received a connection deny due to billing or authentication failure on EVDO network. */
745     public static final int EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE = 0x899;
746     /** HDR system has been changed due to redirection or the PRL was not preferred. */
747     public static final int EVDO_HDR_CHANGED = 0x89A;
748     /** Device exited HDR due to redirection or the PRL was not preferred. */
749     public static final int EVDO_HDR_EXITED = 0x89B;
750     /** Device does not have an HDR session. */
751     public static final int EVDO_HDR_NO_SESSION = 0x89C;
752     /** It is ending an HDR call origination in favor of a GPS fix. */
753     public static final int EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL = 0x89D;
754     /** Connection setup on the HDR system was time out. */
755     public static final int EVDO_HDR_CONNECTION_SETUP_TIMEOUT = 0x89E;
756     /** Device failed to acquire a co-located HDR for origination. */
757     public static final int FAILED_TO_ACQUIRE_COLOCATED_HDR = 0x89F;
758     /** OTASP commit is in progress. */
759     public static final int OTASP_COMMIT_IN_PROGRESS = 0x8A0;
760     /** Device has no hybrid HDR service. */
761     public static final int NO_HYBRID_HDR_SERVICE = 0x8A1;
762     /** HDR module could not be obtained because of the RF locked. */
763     public static final int HDR_NO_LOCK_GRANTED = 0x8A2;
764     /** DBM or SMS is in progress. */
765     public static final int DBM_OR_SMS_IN_PROGRESS = 0x8A3;
766     /** HDR module released the call due to fade. */
767     public static final int HDR_FADE = 0x8A4;
768     /** HDR system access failure. */
769     public static final int HDR_ACCESS_FAILURE = 0x8A5;
770     /**
771      * P_rev supported by 1 base station is less than 6, which is not supported for a 1X data call.
772      * The UE must be in the footprint of BS which has p_rev >= 6 to support this SO33 call.
773      */
774     public static final int UNSUPPORTED_1X_PREV = 0x8A6;
775     /** Client ended the data call. */
776     public static final int LOCAL_END = 0x8A7;
777     /** Device has no service. */
778     public static final int NO_SERVICE = 0x8A8;
779     /** Device lost the system due to fade. */
780     public static final int FADE = 0x8A9;
781     /** Receiving a release from the base station with no reason. */
782     public static final int NORMAL_RELEASE = 0x8AA;
783     /** Access attempt is already in progress. */
784     public static final int ACCESS_ATTEMPT_ALREADY_IN_PROGRESS = 0x8AB;
785     /** Device is in the process of redirecting or handing off to a different target system. */
786     public static final int REDIRECTION_OR_HANDOFF_IN_PROGRESS = 0x8AC;
787     /** Device is operating in Emergency mode. */
788     public static final int EMERGENCY_MODE = 0x8AD;
789     /** Device is in use (e.g., voice call). */
790     public static final int PHONE_IN_USE = 0x8AE;
791     /**
792      * Device operational mode is different from the mode requested in the traffic channel bring up.
793      */
794     public static final int INVALID_MODE = 0x8AF;
795     /** SIM was marked by the network as invalid for the circuit and/or packet service domain. */
796     public static final int INVALID_SIM_STATE = 0x8B0;
797     /** There is no co-located HDR. */
798     public static final int NO_COLLOCATED_HDR = 0x8B1;
799     /** UE is entering power save mode. */
800     public static final int UE_IS_ENTERING_POWERSAVE_MODE = 0x8B2;
801     /** Dual switch from single standby to dual standby is in progress. */
802     public static final int DUAL_SWITCH = 0x8B3;
803     /**
804      * Data call bring up fails in the PPP setup due to a timeout.
805      * (e.g., an LCP conf ack was not received from the network)
806      */
807     public static final int PPP_TIMEOUT = 0x8B4;
808     /**
809      * Data call bring up fails in the PPP setup due to an authorization failure.
810      * (e.g., authorization is required, but not negotiated with the network during an LCP phase)
811      */
812     public static final int PPP_AUTH_FAILURE = 0x8B5;
813     /** Data call bring up fails in the PPP setup due to an option mismatch. */
814     public static final int PPP_OPTION_MISMATCH = 0x8B6;
815     /** Data call bring up fails in the PPP setup due to a PAP failure. */
816     public static final int PPP_PAP_FAILURE = 0x8B7;
817     /** Data call bring up fails in the PPP setup due to a CHAP failure. */
818     public static final int PPP_CHAP_FAILURE = 0x8B8;
819     /**
820      * Data call bring up fails in the PPP setup because the PPP is in the process of cleaning the
821      * previous PPP session.
822      */
823     public static final int PPP_CLOSE_IN_PROGRESS = 0x8B9;
824     /**
825      * IPv6 interface bring up fails because the network provided only the IPv4 address for the
826      * upcoming PDN permanent client can reattempt a IPv6 call bring up after the IPv4 interface is
827      * also brought down. However, there is no guarantee that the network will provide a IPv6
828      * address.
829      */
830     public static final int LIMITED_TO_IPV4 = 0x8BA;
831     /**
832      * IPv4 interface bring up fails because the network provided only the IPv6 address for the
833      * upcoming PDN permanent client can reattempt a IPv4 call bring up after the IPv6 interface is
834      * also brought down. However there is no guarantee that the network will provide a IPv4
835      * address.
836      */
837     public static final int LIMITED_TO_IPV6 = 0x8BB;
838     /** Data call bring up fails in the VSNCP phase due to a VSNCP timeout error. */
839     public static final int VSNCP_TIMEOUT = 0x8BC;
840     /**
841      * Data call bring up fails in the VSNCP phase due to a general error. It's used when there is
842      * no other specific error code available to report the failure.
843      */
844     public static final int VSNCP_GEN_ERROR = 0x8BD;
845     /**
846      * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
847      * configuration request because the requested APN is unauthorized.
848      *
849      * @deprecated Use {@link #VSNCP_APN_UNAUTHORIZED} instead.
850      *
851      * @hide
852      */
853     @SystemApi
854     @Deprecated
855     public static final int VSNCP_APN_UNATHORIZED = 0x8BE; // NOTYPO
856     /**
857      * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
858      * configuration request because the requested APN is unauthorized.
859      */
860     public static final int VSNCP_APN_UNAUTHORIZED = 0x8BE;
861     /**
862      * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
863      * configuration request because the PDN limit has been exceeded.
864      */
865     public static final int VSNCP_PDN_LIMIT_EXCEEDED = 0x8BF;
866     /**
867      * Data call bring up fails in the VSNCP phase due to the network rejected the VSNCP
868      * configuration request due to no PDN gateway address.
869      */
870     public static final int VSNCP_NO_PDN_GATEWAY_ADDRESS = 0x8C0;
871     /**
872      * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
873      * configuration request because the PDN gateway is unreachable.
874      */
875     public static final int VSNCP_PDN_GATEWAY_UNREACHABLE = 0x8C1;
876     /**
877      * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
878      * configuration request due to a PDN gateway reject.
879      */
880     public static final int VSNCP_PDN_GATEWAY_REJECT = 0x8C2;
881     /**
882      * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
883      * configuration request with the reason of insufficient parameter.
884      */
885     public static final int VSNCP_INSUFFICIENT_PARAMETERS = 0x8C3;
886     /**
887      * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
888      * configuration request with the reason of resource unavailable.
889      */
890     public static final int VSNCP_RESOURCE_UNAVAILABLE = 0x8C4;
891     /**
892      * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
893      * configuration request with the reason of administratively prohibited at the HSGW.
894      */
895     public static final int VSNCP_ADMINISTRATIVELY_PROHIBITED = 0x8C5;
896     /**
897      * Data call bring up fails in the VSNCP phase due to a network rejection of PDN ID in use, or
898      * all existing PDNs are brought down with this end reason because one of the PDN bring up was
899      * rejected by the network with the reason of PDN ID in use.
900      */
901     public static final int VSNCP_PDN_ID_IN_USE = 0x8C6;
902     /**
903      * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
904      * configuration request for the reason of subscriber limitation.
905      */
906     public static final int VSNCP_SUBSCRIBER_LIMITATION = 0x8C7;
907     /**
908      * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
909      * configuration request because the PDN exists for this APN.
910      */
911     public static final int VSNCP_PDN_EXISTS_FOR_THIS_APN = 0x8C8;
912     /**
913      * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
914      * configuration request with reconnect to this PDN not allowed, or an active data call is
915      * terminated by the network because reconnection to this PDN is not allowed. Upon receiving
916      * this error code from the network, the modem infinitely throttles the PDN until the next
917      * power cycle.
918      */
919     public static final int VSNCP_RECONNECT_NOT_ALLOWED = 0x8C9;
920     /** Device failure to obtain the prefix from the network. */
921     public static final int IPV6_PREFIX_UNAVAILABLE = 0x8CA;
922     /** System preference change back to SRAT during handoff */
923     public static final int HANDOFF_PREFERENCE_CHANGED = 0x8CB;
924     /** Data call fail due to the slice not being allowed for the data call. */
925     public static final int SLICE_REJECTED = 0x8CC;
926     /** No matching rule available for the request, and match-all rule is not allowed for it. */
927     public static final int MATCH_ALL_RULE_NOT_ALLOWED = 0x8CD;
928     /** If connection failed for all matching URSP rules. */
929     public static final int ALL_MATCHING_RULES_FAILED = 0x8CE;
930 
931     //IKE error notifications message as specified in 3GPP TS 24.302 (Section 8.1.2.2).
932 
933     /** The PDN connection corresponding to the requested APN has been rejected. */
934     public static final int IWLAN_PDN_CONNECTION_REJECTION = 0x2000;
935     /**
936      * The PDN connection has been rejected. No additional PDN connections can be established
937      * for the UE due to the network policies or capabilities.
938      */
939     public static final int IWLAN_MAX_CONNECTION_REACHED = 0x2001;
940     /**
941      * The PDN connection has been rejected due to a semantic error in TFT operation.
942      */
943     public static final int IWLAN_SEMANTIC_ERROR_IN_THE_TFT_OPERATION = 0x2031;
944     /**
945      * The PDN connection has been rejected due to a syntactic error in TFT operation.
946      */
947     public static final int IWLAN_SYNTACTICAL_ERROR_IN_THE_TFT_OPERATION = 0x2032;
948     /**
949      * The PDN connection has been rejected due to sematic errors in the packet filter.
950      */
951     public static final int IWLAN_SEMANTIC_ERRORS_IN_PACKET_FILTERS = 0x2034;
952     /**
953      * The PDN connection has been rejected due to syntactic errors in the packet filter.
954      */
955     public static final int IWLAN_SYNTACTICAL_ERRORS_IN_PACKET_FILTERS = 0x2035;
956     /**
957      * No non-3GPP subscription is associated with the IMSI.
958      * The UE is not allowed to use non-3GPP access to EPC.
959      */
960     public static final int IWLAN_NON_3GPP_ACCESS_TO_EPC_NOT_ALLOWED = 0x2328;
961     /** The user identified by the IMSI is unknown. */
962     public static final int IWLAN_USER_UNKNOWN = 0x2329;
963     /**
964      * The requested APN is not included in the user's profile,
965      * and therefore is not authorized for that user.
966      */
967     public static final int IWLAN_NO_APN_SUBSCRIPTION = 0x232A;
968     /** The user is barred from using the non-3GPP access or the subscribed APN. */
969     public static final int IWLAN_AUTHORIZATION_REJECTED = 0x232B;
970     /** The Mobile Equipment used is not acceptable to the network */
971     public static final int IWLAN_ILLEGAL_ME = 0x232E;
972     /**
973      * The network has determined that the requested procedure cannot be completed successfully
974      * due to network failure.
975      */
976     public static final int IWLAN_NETWORK_FAILURE = 0x2904;
977     /** The access type is restricted to the user. */
978     public static final int IWLAN_RAT_TYPE_NOT_ALLOWED = 0x2AF9;
979     /** The network does not accept emergency PDN bringup request using an IMEI */
980     public static final int IWLAN_IMEI_NOT_ACCEPTED = 0x2AFD;
981     /**
982      * The ePDG performs PLMN filtering (based on roaming agreements) and rejects
983      * the request from the UE.
984      * The UE requests service in a PLMN where the UE is not allowed to operate.
985      */
986     public static final int IWLAN_PLMN_NOT_ALLOWED = 0x2B03;
987     /** The ePDG does not support un-authenticated IMSI based emergency PDN bringup **/
988     public static final int IWLAN_UNAUTHENTICATED_EMERGENCY_NOT_SUPPORTED = 0x2B2F;
989 
990     // The below error causes are relevant when the device is unable to establish an IPSec tunnel
991     // with the ePDG for any reason, e.g. authentication fail or certificate validation or DNS
992     // Resolution and timeout failure.
993 
994     /**
995      * The requested service was rejected because of congestion in the network while accessing the
996      * IWLAN ePDG. Defined in 3GPP TS 24.502, Section 9.2.4.2.
997      */
998     public static final int IWLAN_CONGESTION = 0x3C8C;
999 
1000     // Below IWLAN error codes are defined by the UE and do not relate to any 3GPP spec value
1001     /** IKE configuration error resulting in failure */
1002     public static final int IWLAN_IKEV2_CONFIG_FAILURE = 0x4000;
1003     /**
1004      * Sent in the response to an IKE_AUTH message when, for some reason,
1005      * the authentication failed.
1006      */
1007     public static final int IWLAN_IKEV2_AUTH_FAILURE = 0x4001;
1008     /** IKE message timeout, tunnel setup failed due to no response from EPDG */
1009     public static final int IWLAN_IKEV2_MSG_TIMEOUT = 0x4002;
1010     /** IKE Certification validation failure  */
1011     public static final int IWLAN_IKEV2_CERT_INVALID = 0x4003;
1012     /** Unable to resolve FQDN for the ePDG to an IP address */
1013     public static final int IWLAN_DNS_RESOLUTION_NAME_FAILURE = 0x4004;
1014     /** No response received from the DNS Server due to a timeout*/
1015     public static final int IWLAN_DNS_RESOLUTION_TIMEOUT = 0x4005;
1016     /** Expected to update or bring down an ePDG tunnel, but no tunnel found*/
1017     public static final int IWLAN_TUNNEL_NOT_FOUND = 0x4006;
1018     /**
1019      * Failed to apply tunnel transform
1020      *
1021      * @hide
1022      */
1023     public static final int IWLAN_TUNNEL_TRANSFORM_FAILED = 0x4007;
1024     /**
1025      * IWLAN PDN setup failed due to Wi-Fi lost during IKE tunnel setup,
1026      * match exception reported by IKE module
1027      *
1028      * @hide
1029      */
1030     public static final int IWLAN_IKE_NETWORK_LOST_EXCEPTION = 0x4008;
1031     /**
1032      * Carrier-specific error codes during IKEv2 SA setup
1033      *
1034      * @hide
1035      */
1036     public static final int IWLAN_IKE_PRIVATE_PROTOCOL_ERROR = 0x4009;
1037     /**
1038      * IKE Session closed before child session opened
1039      *
1040      * @hide
1041      */
1042     public static final int IWLAN_IKE_SESSION_CLOSED_BEFORE_CHILD_SESSION_OPENED = 0x400A;
1043     /**
1044      * IKE Init timeout, no response from EPDG
1045      *
1046      * @hide
1047      */
1048     public static final int IWLAN_IKE_INIT_TIMEOUT = 0x400B;
1049     /**
1050      * DPD message does not get an ack after the re-tx attempts and duration, i.e., times out.
1051      *
1052      * @hide
1053      */
1054     public static final int IWLAN_IKE_DPD_TIMEOUT = 0x400C;
1055     /**
1056      * The Wi-Fi to Wi-Fi handover of the IMS PDN fails because the network does not respond to the
1057      * MOBIKE/rekey mobility message in the expected manner
1058      *
1059      * @hide
1060      */
1061     public static final int IWLAN_IKE_MOBILITY_TIMEOUT = 0x400D;
1062     /**
1063      * IKE client sent "IKE AUTH request 3" to the network but got "Internal address failure" from
1064      * the network since no internal addresses can be assigned.
1065      *
1066      * @hide
1067      */
1068     public static final int IWLAN_EPDG_INTERNAL_ADDRESS_FAILURE = 0x400E;
1069 
1070     // OEM sepecific error codes. To be used by OEMs when they don't
1071     // want to reveal error code which would be replaced by ERROR_UNSPECIFIED
1072     public static final int OEM_DCFAILCAUSE_1 = 0x1001;
1073     public static final int OEM_DCFAILCAUSE_2 = 0x1002;
1074     public static final int OEM_DCFAILCAUSE_3 = 0x1003;
1075     public static final int OEM_DCFAILCAUSE_4 = 0x1004;
1076     public static final int OEM_DCFAILCAUSE_5 = 0x1005;
1077     public static final int OEM_DCFAILCAUSE_6 = 0x1006;
1078     public static final int OEM_DCFAILCAUSE_7 = 0x1007;
1079     public static final int OEM_DCFAILCAUSE_8 = 0x1008;
1080     public static final int OEM_DCFAILCAUSE_9 = 0x1009;
1081     public static final int OEM_DCFAILCAUSE_10 = 0x100A;
1082     public static final int OEM_DCFAILCAUSE_11 = 0x100B;
1083     public static final int OEM_DCFAILCAUSE_12 = 0x100C;
1084     public static final int OEM_DCFAILCAUSE_13 = 0x100D;
1085     public static final int OEM_DCFAILCAUSE_14 = 0x100E;
1086     public static final int OEM_DCFAILCAUSE_15 = 0x100F;
1087 
1088     // Local errors generated by Vendor RIL
1089     // specified in ril.h
1090     /** Data fail due to registration failure. */
1091     public static final int REGISTRATION_FAIL = -1;
1092     /** Data fail due to GPRS registration failure. */
1093     public static final int GPRS_REGISTRATION_FAIL = -2;
1094     /** Data call drop due to network/modem disconnect. */
1095     public static final int SIGNAL_LOST = -3;                        /* no retry */
1096     /**
1097      * Preferred technology has changed, must retry with parameters appropriate for new technology.
1098      */
1099     public static final int PREF_RADIO_TECH_CHANGED = -4;
1100     /** data call was disconnected because radio was resetting, powered off. */
1101     public static final int RADIO_POWER_OFF = -5;                    /* no retry */
1102     /** Data call was disconnected by modem because tethered. */
1103     public static final int TETHERED_CALL_ACTIVE = -6;               /* no retry */
1104     /** Data call fail due to unspecific errors. */
1105     public static final int ERROR_UNSPECIFIED = 0xFFFF;
1106 
1107     // Errors generated by the Framework
1108     // specified here
1109     /** Unknown data failure cause. */
1110     public static final int UNKNOWN = 0x10000;
1111     /** Data fail due to radio not unavailable. */
1112     public static final int RADIO_NOT_AVAILABLE = 0x10001;                   /* no retry */
1113     /** Data fail due to unacceptable network parameter. */
1114     public static final int UNACCEPTABLE_NETWORK_PARAMETER = 0x10002;        /* no retry */
1115     /** Data connection was lost. */
1116     public static final int LOST_CONNECTION = 0x10004;
1117 
1118     /**
1119      * Data handover failed.
1120      *
1121      * @hide
1122      */
1123     public static final int HANDOVER_FAILED = 0x10006;
1124 
1125     /**
1126      * Enterprise setup failure: duplicate CID in DataCallResponse.
1127      *
1128      * @hide
1129      */
1130     public static final int DUPLICATE_CID = 0x10007;
1131 
1132     /**
1133      * Enterprise setup failure: no default data connection set up yet.
1134      *
1135      * @hide
1136      */
1137     public static final int NO_DEFAULT_DATA = 0x10008;
1138 
1139     /**
1140      * Data service is temporarily unavailable.
1141      *
1142      * @hide
1143      */
1144     public static final int SERVICE_TEMPORARILY_UNAVAILABLE = 0x10009;
1145 
1146     /**
1147      * The request is not supported by the vendor.
1148      *
1149      * @hide
1150      */
1151     public static final int REQUEST_NOT_SUPPORTED = 0x1000A;
1152 
1153     /**
1154      * An internal setup data error initiated by telephony that no retry should be performed.
1155      *
1156      * @hide
1157      */
1158     public static final int NO_RETRY_FAILURE = 0x1000B;
1159 
1160     private static final Map<Integer, String> sFailCauseMap;
1161     static {
1162         sFailCauseMap = new HashMap<>();
sFailCauseMap.put(NONE, "NONE")1163         sFailCauseMap.put(NONE, "NONE");
sFailCauseMap.put(OPERATOR_BARRED, "OPERATOR_BARRED")1164         sFailCauseMap.put(OPERATOR_BARRED, "OPERATOR_BARRED");
sFailCauseMap.put(NAS_SIGNALLING, "NAS_SIGNALLING")1165         sFailCauseMap.put(NAS_SIGNALLING, "NAS_SIGNALLING");
sFailCauseMap.put(LLC_SNDCP, "LLC_SNDCP")1166         sFailCauseMap.put(LLC_SNDCP, "LLC_SNDCP");
sFailCauseMap.put(INSUFFICIENT_RESOURCES, "INSUFFICIENT_RESOURCES")1167         sFailCauseMap.put(INSUFFICIENT_RESOURCES, "INSUFFICIENT_RESOURCES");
sFailCauseMap.put(MISSING_UNKNOWN_APN, "MISSING_UNKNOWN_APN")1168         sFailCauseMap.put(MISSING_UNKNOWN_APN, "MISSING_UNKNOWN_APN");
sFailCauseMap.put(UNKNOWN_PDP_ADDRESS_TYPE, "UNKNOWN_PDP_ADDRESS_TYPE")1169         sFailCauseMap.put(UNKNOWN_PDP_ADDRESS_TYPE, "UNKNOWN_PDP_ADDRESS_TYPE");
sFailCauseMap.put(USER_AUTHENTICATION, "USER_AUTHENTICATION")1170         sFailCauseMap.put(USER_AUTHENTICATION, "USER_AUTHENTICATION");
sFailCauseMap.put(ACTIVATION_REJECT_GGSN, "ACTIVATION_REJECT_GGSN")1171         sFailCauseMap.put(ACTIVATION_REJECT_GGSN, "ACTIVATION_REJECT_GGSN");
sFailCauseMap.put(ACTIVATION_REJECT_UNSPECIFIED, "ACTIVATION_REJECT_UNSPECIFIED")1172         sFailCauseMap.put(ACTIVATION_REJECT_UNSPECIFIED,
1173                 "ACTIVATION_REJECT_UNSPECIFIED");
sFailCauseMap.put(SERVICE_OPTION_NOT_SUPPORTED, "SERVICE_OPTION_NOT_SUPPORTED")1174         sFailCauseMap.put(SERVICE_OPTION_NOT_SUPPORTED,
1175                 "SERVICE_OPTION_NOT_SUPPORTED");
sFailCauseMap.put(SERVICE_OPTION_NOT_SUBSCRIBED, "SERVICE_OPTION_NOT_SUBSCRIBED")1176         sFailCauseMap.put(SERVICE_OPTION_NOT_SUBSCRIBED,
1177                 "SERVICE_OPTION_NOT_SUBSCRIBED");
sFailCauseMap.put(SERVICE_OPTION_OUT_OF_ORDER, "SERVICE_OPTION_OUT_OF_ORDER")1178         sFailCauseMap.put(SERVICE_OPTION_OUT_OF_ORDER, "SERVICE_OPTION_OUT_OF_ORDER");
sFailCauseMap.put(NSAPI_IN_USE, "NSAPI_IN_USE")1179         sFailCauseMap.put(NSAPI_IN_USE, "NSAPI_IN_USE");
sFailCauseMap.put(REGULAR_DEACTIVATION, "REGULAR_DEACTIVATION")1180         sFailCauseMap.put(REGULAR_DEACTIVATION, "REGULAR_DEACTIVATION");
sFailCauseMap.put(QOS_NOT_ACCEPTED, "QOS_NOT_ACCEPTED")1181         sFailCauseMap.put(QOS_NOT_ACCEPTED, "QOS_NOT_ACCEPTED");
sFailCauseMap.put(NETWORK_FAILURE, "NETWORK_FAILURE")1182         sFailCauseMap.put(NETWORK_FAILURE, "NETWORK_FAILURE");
sFailCauseMap.put(UMTS_REACTIVATION_REQ, "UMTS_REACTIVATION_REQ")1183         sFailCauseMap.put(UMTS_REACTIVATION_REQ, "UMTS_REACTIVATION_REQ");
sFailCauseMap.put(FEATURE_NOT_SUPP, "FEATURE_NOT_SUPP")1184         sFailCauseMap.put(FEATURE_NOT_SUPP, "FEATURE_NOT_SUPP");
sFailCauseMap.put(TFT_SEMANTIC_ERROR, "TFT_SEMANTIC_ERROR")1185         sFailCauseMap.put(TFT_SEMANTIC_ERROR, "TFT_SEMANTIC_ERROR");
sFailCauseMap.put(TFT_SYTAX_ERROR, "TFT_SYTAX_ERROR")1186         sFailCauseMap.put(TFT_SYTAX_ERROR, "TFT_SYTAX_ERROR");
sFailCauseMap.put(UNKNOWN_PDP_CONTEXT, "UNKNOWN_PDP_CONTEXT")1187         sFailCauseMap.put(UNKNOWN_PDP_CONTEXT, "UNKNOWN_PDP_CONTEXT");
sFailCauseMap.put(FILTER_SEMANTIC_ERROR, "FILTER_SEMANTIC_ERROR")1188         sFailCauseMap.put(FILTER_SEMANTIC_ERROR, "FILTER_SEMANTIC_ERROR");
sFailCauseMap.put(FILTER_SYTAX_ERROR, "FILTER_SYTAX_ERROR")1189         sFailCauseMap.put(FILTER_SYTAX_ERROR, "FILTER_SYTAX_ERROR");
sFailCauseMap.put(PDP_WITHOUT_ACTIVE_TFT, "PDP_WITHOUT_ACTIVE_TFT")1190         sFailCauseMap.put(PDP_WITHOUT_ACTIVE_TFT, "PDP_WITHOUT_ACTIVE_TFT");
sFailCauseMap.put(ACTIVATION_REJECTED_BCM_VIOLATION, "ACTIVATION_REJECTED_BCM_VIOLATION")1191         sFailCauseMap.put(ACTIVATION_REJECTED_BCM_VIOLATION, "ACTIVATION_REJECTED_BCM_VIOLATION");
sFailCauseMap.put(ONLY_IPV4_ALLOWED, "ONLY_IPV4_ALLOWED")1192         sFailCauseMap.put(ONLY_IPV4_ALLOWED, "ONLY_IPV4_ALLOWED");
sFailCauseMap.put(ONLY_IPV6_ALLOWED, "ONLY_IPV6_ALLOWED")1193         sFailCauseMap.put(ONLY_IPV6_ALLOWED, "ONLY_IPV6_ALLOWED");
sFailCauseMap.put(ONLY_SINGLE_BEARER_ALLOWED, "ONLY_SINGLE_BEARER_ALLOWED")1194         sFailCauseMap.put(ONLY_SINGLE_BEARER_ALLOWED, "ONLY_SINGLE_BEARER_ALLOWED");
sFailCauseMap.put(ESM_INFO_NOT_RECEIVED, "ESM_INFO_NOT_RECEIVED")1195         sFailCauseMap.put(ESM_INFO_NOT_RECEIVED, "ESM_INFO_NOT_RECEIVED");
sFailCauseMap.put(PDN_CONN_DOES_NOT_EXIST, "PDN_CONN_DOES_NOT_EXIST")1196         sFailCauseMap.put(PDN_CONN_DOES_NOT_EXIST, "PDN_CONN_DOES_NOT_EXIST");
sFailCauseMap.put(MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED, "MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED")1197         sFailCauseMap.put(MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED,
1198                 "MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED");
sFailCauseMap.put(COLLISION_WITH_NETWORK_INITIATED_REQUEST, "COLLISION_WITH_NETWORK_INITIATED_REQUEST")1199         sFailCauseMap.put(COLLISION_WITH_NETWORK_INITIATED_REQUEST,
1200                 "COLLISION_WITH_NETWORK_INITIATED_REQUEST");
sFailCauseMap.put(ONLY_IPV4V6_ALLOWED, "ONLY_IPV4V6_ALLOWED")1201         sFailCauseMap.put(ONLY_IPV4V6_ALLOWED, "ONLY_IPV4V6_ALLOWED");
sFailCauseMap.put(ONLY_NON_IP_ALLOWED, "ONLY_NON_IP_ALLOWED")1202         sFailCauseMap.put(ONLY_NON_IP_ALLOWED, "ONLY_NON_IP_ALLOWED");
sFailCauseMap.put(UNSUPPORTED_QCI_VALUE, "UNSUPPORTED_QCI_VALUE")1203         sFailCauseMap.put(UNSUPPORTED_QCI_VALUE, "UNSUPPORTED_QCI_VALUE");
sFailCauseMap.put(BEARER_HANDLING_NOT_SUPPORTED, "BEARER_HANDLING_NOT_SUPPORTED")1204         sFailCauseMap.put(BEARER_HANDLING_NOT_SUPPORTED, "BEARER_HANDLING_NOT_SUPPORTED");
sFailCauseMap.put(SERVICE_OR_OPTION_NOT_AVAILABLE, "SERVICE_OR_OPTION_NOT_AVAILABLE")1205         sFailCauseMap.put(SERVICE_OR_OPTION_NOT_AVAILABLE, "SERVICE_OR_OPTION_NOT_AVAILABLE");
sFailCauseMap.put(ACTIVE_PDP_CONTEXT_MAX_NUMBER_REACHED, "ACTIVE_PDP_CONTEXT_MAX_NUMBER_REACHED")1206         sFailCauseMap.put(ACTIVE_PDP_CONTEXT_MAX_NUMBER_REACHED,
1207                 "ACTIVE_PDP_CONTEXT_MAX_NUMBER_REACHED");
sFailCauseMap.put(UNSUPPORTED_APN_IN_CURRENT_PLMN, "UNSUPPORTED_APN_IN_CURRENT_PLMN")1208         sFailCauseMap.put(UNSUPPORTED_APN_IN_CURRENT_PLMN,
1209                 "UNSUPPORTED_APN_IN_CURRENT_PLMN");
sFailCauseMap.put(INVALID_TRANSACTION_ID, "INVALID_TRANSACTION_ID")1210         sFailCauseMap.put(INVALID_TRANSACTION_ID, "INVALID_TRANSACTION_ID");
sFailCauseMap.put(MESSAGE_INCORRECT_SEMANTIC, "MESSAGE_INCORRECT_SEMANTIC")1211         sFailCauseMap.put(MESSAGE_INCORRECT_SEMANTIC, "MESSAGE_INCORRECT_SEMANTIC");
sFailCauseMap.put(INVALID_MANDATORY_INFO, "INVALID_MANDATORY_INFO")1212         sFailCauseMap.put(INVALID_MANDATORY_INFO, "INVALID_MANDATORY_INFO");
sFailCauseMap.put(MESSAGE_TYPE_UNSUPPORTED, "MESSAGE_TYPE_UNSUPPORTED")1213         sFailCauseMap.put(MESSAGE_TYPE_UNSUPPORTED, "MESSAGE_TYPE_UNSUPPORTED");
sFailCauseMap.put(MSG_TYPE_NONCOMPATIBLE_STATE, "MSG_TYPE_NONCOMPATIBLE_STATE")1214         sFailCauseMap.put(MSG_TYPE_NONCOMPATIBLE_STATE, "MSG_TYPE_NONCOMPATIBLE_STATE");
sFailCauseMap.put(UNKNOWN_INFO_ELEMENT, "UNKNOWN_INFO_ELEMENT")1215         sFailCauseMap.put(UNKNOWN_INFO_ELEMENT, "UNKNOWN_INFO_ELEMENT");
sFailCauseMap.put(CONDITIONAL_IE_ERROR, "CONDITIONAL_IE_ERROR")1216         sFailCauseMap.put(CONDITIONAL_IE_ERROR, "CONDITIONAL_IE_ERROR");
sFailCauseMap.put(MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE, "MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE")1217         sFailCauseMap.put(MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE,
1218                 "MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE");
sFailCauseMap.put(PROTOCOL_ERRORS, "PROTOCOL_ERRORS")1219         sFailCauseMap.put(PROTOCOL_ERRORS, "PROTOCOL_ERRORS");
sFailCauseMap.put(APN_TYPE_CONFLICT, "APN_TYPE_CONFLICT")1220         sFailCauseMap.put(APN_TYPE_CONFLICT, "APN_TYPE_CONFLICT");
sFailCauseMap.put(INVALID_PCSCF_ADDR, "INVALID_PCSCF_ADDR")1221         sFailCauseMap.put(INVALID_PCSCF_ADDR, "INVALID_PCSCF_ADDR");
sFailCauseMap.put(INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN, "INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN")1222         sFailCauseMap.put(INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN,
1223                 "INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN");
sFailCauseMap.put(EMM_ACCESS_BARRED, "EMM_ACCESS_BARRED")1224         sFailCauseMap.put(EMM_ACCESS_BARRED, "EMM_ACCESS_BARRED");
sFailCauseMap.put(EMERGENCY_IFACE_ONLY, "EMERGENCY_IFACE_ONLY")1225         sFailCauseMap.put(EMERGENCY_IFACE_ONLY, "EMERGENCY_IFACE_ONLY");
sFailCauseMap.put(IFACE_MISMATCH, "IFACE_MISMATCH")1226         sFailCauseMap.put(IFACE_MISMATCH, "IFACE_MISMATCH");
sFailCauseMap.put(COMPANION_IFACE_IN_USE, "COMPANION_IFACE_IN_USE")1227         sFailCauseMap.put(COMPANION_IFACE_IN_USE, "COMPANION_IFACE_IN_USE");
sFailCauseMap.put(IP_ADDRESS_MISMATCH, "IP_ADDRESS_MISMATCH")1228         sFailCauseMap.put(IP_ADDRESS_MISMATCH, "IP_ADDRESS_MISMATCH");
sFailCauseMap.put(IFACE_AND_POL_FAMILY_MISMATCH, "IFACE_AND_POL_FAMILY_MISMATCH")1229         sFailCauseMap.put(IFACE_AND_POL_FAMILY_MISMATCH,
1230                 "IFACE_AND_POL_FAMILY_MISMATCH");
sFailCauseMap.put(EMM_ACCESS_BARRED_INFINITE_RETRY, "EMM_ACCESS_BARRED_INFINITE_RETRY")1231         sFailCauseMap.put(EMM_ACCESS_BARRED_INFINITE_RETRY,
1232                 "EMM_ACCESS_BARRED_INFINITE_RETRY");
sFailCauseMap.put(AUTH_FAILURE_ON_EMERGENCY_CALL, "AUTH_FAILURE_ON_EMERGENCY_CALL")1233         sFailCauseMap.put(AUTH_FAILURE_ON_EMERGENCY_CALL,
1234                 "AUTH_FAILURE_ON_EMERGENCY_CALL");
sFailCauseMap.put(INVALID_DNS_ADDR, "INVALID_DNS_ADDR")1235         sFailCauseMap.put(INVALID_DNS_ADDR, "INVALID_DNS_ADDR");
sFailCauseMap.put(INVALID_PCSCF_OR_DNS_ADDRESS, "INVALID_PCSCF_OR_DNS_ADDRESS")1236         sFailCauseMap.put(INVALID_PCSCF_OR_DNS_ADDRESS, "INVALID_PCSCF_OR_DNS_ADDRESS");
sFailCauseMap.put(CALL_PREEMPT_BY_EMERGENCY_APN, "CALL_PREEMPT_BY_EMERGENCY_APN")1237         sFailCauseMap.put(CALL_PREEMPT_BY_EMERGENCY_APN, "CALL_PREEMPT_BY_EMERGENCY_APN");
sFailCauseMap.put(UE_INITIATED_DETACH_OR_DISCONNECT, "UE_INITIATED_DETACH_OR_DISCONNECT")1238         sFailCauseMap.put(UE_INITIATED_DETACH_OR_DISCONNECT, "UE_INITIATED_DETACH_OR_DISCONNECT");
sFailCauseMap.put(MIP_FA_REASON_UNSPECIFIED, "MIP_FA_REASON_UNSPECIFIED")1239         sFailCauseMap.put(MIP_FA_REASON_UNSPECIFIED, "MIP_FA_REASON_UNSPECIFIED");
sFailCauseMap.put(MIP_FA_ADMIN_PROHIBITED, "MIP_FA_ADMIN_PROHIBITED")1240         sFailCauseMap.put(MIP_FA_ADMIN_PROHIBITED, "MIP_FA_ADMIN_PROHIBITED");
sFailCauseMap.put(MIP_FA_INSUFFICIENT_RESOURCES, "MIP_FA_INSUFFICIENT_RESOURCES")1241         sFailCauseMap.put(MIP_FA_INSUFFICIENT_RESOURCES, "MIP_FA_INSUFFICIENT_RESOURCES");
sFailCauseMap.put(MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE, "MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE")1242         sFailCauseMap.put(MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE,
1243                 "MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE");
sFailCauseMap.put(MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE, "MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE")1244         sFailCauseMap.put(MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE,
1245                 "MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE");
sFailCauseMap.put(MIP_FA_REQUESTED_LIFETIME_TOO_LONG, "MIP_FA_REQUESTED_LIFETIME_TOO_LONG")1246         sFailCauseMap.put(MIP_FA_REQUESTED_LIFETIME_TOO_LONG, "MIP_FA_REQUESTED_LIFETIME_TOO_LONG");
sFailCauseMap.put(MIP_FA_MALFORMED_REQUEST, "MIP_FA_MALFORMED_REQUEST")1247         sFailCauseMap.put(MIP_FA_MALFORMED_REQUEST, "MIP_FA_MALFORMED_REQUEST");
sFailCauseMap.put(MIP_FA_MALFORMED_REPLY, "MIP_FA_MALFORMED_REPLY")1248         sFailCauseMap.put(MIP_FA_MALFORMED_REPLY, "MIP_FA_MALFORMED_REPLY");
sFailCauseMap.put(MIP_FA_ENCAPSULATION_UNAVAILABLE, "MIP_FA_ENCAPSULATION_UNAVAILABLE")1249         sFailCauseMap.put(MIP_FA_ENCAPSULATION_UNAVAILABLE, "MIP_FA_ENCAPSULATION_UNAVAILABLE");
sFailCauseMap.put(MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE, "MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE")1250         sFailCauseMap.put(MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE,
1251                 "MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE");
sFailCauseMap.put(MIP_FA_REVERSE_TUNNEL_UNAVAILABLE, "MIP_FA_REVERSE_TUNNEL_UNAVAILABLE")1252         sFailCauseMap.put(MIP_FA_REVERSE_TUNNEL_UNAVAILABLE, "MIP_FA_REVERSE_TUNNEL_UNAVAILABLE");
sFailCauseMap.put(MIP_FA_REVERSE_TUNNEL_IS_MANDATORY, "MIP_FA_REVERSE_TUNNEL_IS_MANDATORY")1253         sFailCauseMap.put(MIP_FA_REVERSE_TUNNEL_IS_MANDATORY, "MIP_FA_REVERSE_TUNNEL_IS_MANDATORY");
sFailCauseMap.put(MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED, "MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED")1254         sFailCauseMap.put(MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED,
1255                 "MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED");
sFailCauseMap.put(MIP_FA_MISSING_NAI, "MIP_FA_MISSING_NAI")1256         sFailCauseMap.put(MIP_FA_MISSING_NAI, "MIP_FA_MISSING_NAI");
sFailCauseMap.put(MIP_FA_MISSING_HOME_AGENT, "MIP_FA_MISSING_HOME_AGENT")1257         sFailCauseMap.put(MIP_FA_MISSING_HOME_AGENT, "MIP_FA_MISSING_HOME_AGENT");
sFailCauseMap.put(MIP_FA_MISSING_HOME_ADDRESS, "MIP_FA_MISSING_HOME_ADDRESS")1258         sFailCauseMap.put(MIP_FA_MISSING_HOME_ADDRESS, "MIP_FA_MISSING_HOME_ADDRESS");
sFailCauseMap.put(MIP_FA_UNKNOWN_CHALLENGE, "MIP_FA_UNKNOWN_CHALLENGE")1259         sFailCauseMap.put(MIP_FA_UNKNOWN_CHALLENGE, "MIP_FA_UNKNOWN_CHALLENGE");
sFailCauseMap.put(MIP_FA_MISSING_CHALLENGE, "MIP_FA_MISSING_CHALLENGE")1260         sFailCauseMap.put(MIP_FA_MISSING_CHALLENGE, "MIP_FA_MISSING_CHALLENGE");
sFailCauseMap.put(MIP_FA_STALE_CHALLENGE, "MIP_FA_STALE_CHALLENGE")1261         sFailCauseMap.put(MIP_FA_STALE_CHALLENGE, "MIP_FA_STALE_CHALLENGE");
sFailCauseMap.put(MIP_HA_REASON_UNSPECIFIED, "MIP_HA_REASON_UNSPECIFIED")1262         sFailCauseMap.put(MIP_HA_REASON_UNSPECIFIED, "MIP_HA_REASON_UNSPECIFIED");
sFailCauseMap.put(MIP_HA_ADMIN_PROHIBITED, "MIP_HA_ADMIN_PROHIBITED")1263         sFailCauseMap.put(MIP_HA_ADMIN_PROHIBITED, "MIP_HA_ADMIN_PROHIBITED");
sFailCauseMap.put(MIP_HA_INSUFFICIENT_RESOURCES, "MIP_HA_INSUFFICIENT_RESOURCES")1264         sFailCauseMap.put(MIP_HA_INSUFFICIENT_RESOURCES, "MIP_HA_INSUFFICIENT_RESOURCES");
sFailCauseMap.put(MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE, "MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE")1265         sFailCauseMap.put(MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE,
1266                 "MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE");
sFailCauseMap.put(MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE, "MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE")1267         sFailCauseMap.put(MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE,
1268                 "MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE");
sFailCauseMap.put(MIP_HA_REGISTRATION_ID_MISMATCH, "MIP_HA_REGISTRATION_ID_MISMATCH")1269         sFailCauseMap.put(MIP_HA_REGISTRATION_ID_MISMATCH, "MIP_HA_REGISTRATION_ID_MISMATCH");
sFailCauseMap.put(MIP_HA_MALFORMED_REQUEST, "MIP_HA_MALFORMED_REQUEST")1270         sFailCauseMap.put(MIP_HA_MALFORMED_REQUEST, "MIP_HA_MALFORMED_REQUEST");
sFailCauseMap.put(MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS, "MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS")1271         sFailCauseMap.put(MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS, "MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS");
sFailCauseMap.put(MIP_HA_REVERSE_TUNNEL_UNAVAILABLE, "MIP_HA_REVERSE_TUNNEL_UNAVAILABLE")1272         sFailCauseMap.put(MIP_HA_REVERSE_TUNNEL_UNAVAILABLE, "MIP_HA_REVERSE_TUNNEL_UNAVAILABLE");
sFailCauseMap.put(MIP_HA_REVERSE_TUNNEL_IS_MANDATORY, "MIP_HA_REVERSE_TUNNEL_IS_MANDATORY")1273         sFailCauseMap.put(MIP_HA_REVERSE_TUNNEL_IS_MANDATORY, "MIP_HA_REVERSE_TUNNEL_IS_MANDATORY");
sFailCauseMap.put(MIP_HA_ENCAPSULATION_UNAVAILABLE, "MIP_HA_ENCAPSULATION_UNAVAILABLE")1274         sFailCauseMap.put(MIP_HA_ENCAPSULATION_UNAVAILABLE, "MIP_HA_ENCAPSULATION_UNAVAILABLE");
sFailCauseMap.put(CLOSE_IN_PROGRESS, "CLOSE_IN_PROGRESS")1275         sFailCauseMap.put(CLOSE_IN_PROGRESS, "CLOSE_IN_PROGRESS");
sFailCauseMap.put(NETWORK_INITIATED_TERMINATION, "NETWORK_INITIATED_TERMINATION")1276         sFailCauseMap.put(NETWORK_INITIATED_TERMINATION, "NETWORK_INITIATED_TERMINATION");
sFailCauseMap.put(MODEM_APP_PREEMPTED, "MODEM_APP_PREEMPTED")1277         sFailCauseMap.put(MODEM_APP_PREEMPTED, "MODEM_APP_PREEMPTED");
sFailCauseMap.put(PDN_IPV4_CALL_DISALLOWED, "PDN_IPV4_CALL_DISALLOWED")1278         sFailCauseMap.put(PDN_IPV4_CALL_DISALLOWED, "PDN_IPV4_CALL_DISALLOWED");
sFailCauseMap.put(PDN_IPV4_CALL_THROTTLED, "PDN_IPV4_CALL_THROTTLED")1279         sFailCauseMap.put(PDN_IPV4_CALL_THROTTLED, "PDN_IPV4_CALL_THROTTLED");
sFailCauseMap.put(PDN_IPV6_CALL_DISALLOWED, "PDN_IPV6_CALL_DISALLOWED")1280         sFailCauseMap.put(PDN_IPV6_CALL_DISALLOWED, "PDN_IPV6_CALL_DISALLOWED");
sFailCauseMap.put(PDN_IPV6_CALL_THROTTLED, "PDN_IPV6_CALL_THROTTLED")1281         sFailCauseMap.put(PDN_IPV6_CALL_THROTTLED, "PDN_IPV6_CALL_THROTTLED");
sFailCauseMap.put(MODEM_RESTART, "MODEM_RESTART")1282         sFailCauseMap.put(MODEM_RESTART, "MODEM_RESTART");
sFailCauseMap.put(PDP_PPP_NOT_SUPPORTED, "PDP_PPP_NOT_SUPPORTED")1283         sFailCauseMap.put(PDP_PPP_NOT_SUPPORTED, "PDP_PPP_NOT_SUPPORTED");
sFailCauseMap.put(UNPREFERRED_RAT, "UNPREFERRED_RAT")1284         sFailCauseMap.put(UNPREFERRED_RAT, "UNPREFERRED_RAT");
sFailCauseMap.put(PHYSICAL_LINK_CLOSE_IN_PROGRESS, "PHYSICAL_LINK_CLOSE_IN_PROGRESS")1285         sFailCauseMap.put(PHYSICAL_LINK_CLOSE_IN_PROGRESS, "PHYSICAL_LINK_CLOSE_IN_PROGRESS");
sFailCauseMap.put(APN_PENDING_HANDOVER, "APN_PENDING_HANDOVER")1286         sFailCauseMap.put(APN_PENDING_HANDOVER, "APN_PENDING_HANDOVER");
sFailCauseMap.put(PROFILE_BEARER_INCOMPATIBLE, "PROFILE_BEARER_INCOMPATIBLE")1287         sFailCauseMap.put(PROFILE_BEARER_INCOMPATIBLE, "PROFILE_BEARER_INCOMPATIBLE");
sFailCauseMap.put(SIM_CARD_CHANGED, "SIM_CARD_CHANGED")1288         sFailCauseMap.put(SIM_CARD_CHANGED, "SIM_CARD_CHANGED");
sFailCauseMap.put(LOW_POWER_MODE_OR_POWERING_DOWN, "LOW_POWER_MODE_OR_POWERING_DOWN")1289         sFailCauseMap.put(LOW_POWER_MODE_OR_POWERING_DOWN, "LOW_POWER_MODE_OR_POWERING_DOWN");
sFailCauseMap.put(APN_DISABLED, "APN_DISABLED")1290         sFailCauseMap.put(APN_DISABLED, "APN_DISABLED");
sFailCauseMap.put(MAX_PPP_INACTIVITY_TIMER_EXPIRED, "MAX_PPP_INACTIVITY_TIMER_EXPIRED")1291         sFailCauseMap.put(MAX_PPP_INACTIVITY_TIMER_EXPIRED, "MAX_PPP_INACTIVITY_TIMER_EXPIRED");
sFailCauseMap.put(IPV6_ADDRESS_TRANSFER_FAILED, "IPV6_ADDRESS_TRANSFER_FAILED")1292         sFailCauseMap.put(IPV6_ADDRESS_TRANSFER_FAILED, "IPV6_ADDRESS_TRANSFER_FAILED");
sFailCauseMap.put(TRAT_SWAP_FAILED, "TRAT_SWAP_FAILED")1293         sFailCauseMap.put(TRAT_SWAP_FAILED, "TRAT_SWAP_FAILED");
sFailCauseMap.put(EHRPD_TO_HRPD_FALLBACK, "EHRPD_TO_HRPD_FALLBACK")1294         sFailCauseMap.put(EHRPD_TO_HRPD_FALLBACK, "EHRPD_TO_HRPD_FALLBACK");
sFailCauseMap.put(MIP_CONFIG_FAILURE, "MIP_CONFIG_FAILURE")1295         sFailCauseMap.put(MIP_CONFIG_FAILURE, "MIP_CONFIG_FAILURE");
sFailCauseMap.put(PDN_INACTIVITY_TIMER_EXPIRED, "PDN_INACTIVITY_TIMER_EXPIRED")1296         sFailCauseMap.put(PDN_INACTIVITY_TIMER_EXPIRED, "PDN_INACTIVITY_TIMER_EXPIRED");
sFailCauseMap.put(MAX_IPV4_CONNECTIONS, "MAX_IPV4_CONNECTIONS")1297         sFailCauseMap.put(MAX_IPV4_CONNECTIONS, "MAX_IPV4_CONNECTIONS");
sFailCauseMap.put(MAX_IPV6_CONNECTIONS, "MAX_IPV6_CONNECTIONS")1298         sFailCauseMap.put(MAX_IPV6_CONNECTIONS, "MAX_IPV6_CONNECTIONS");
sFailCauseMap.put(APN_MISMATCH, "APN_MISMATCH")1299         sFailCauseMap.put(APN_MISMATCH, "APN_MISMATCH");
sFailCauseMap.put(IP_VERSION_MISMATCH, "IP_VERSION_MISMATCH")1300         sFailCauseMap.put(IP_VERSION_MISMATCH, "IP_VERSION_MISMATCH");
sFailCauseMap.put(DUN_CALL_DISALLOWED, "DUN_CALL_DISALLOWED")1301         sFailCauseMap.put(DUN_CALL_DISALLOWED, "DUN_CALL_DISALLOWED");
sFailCauseMap.put(INTERNAL_EPC_NONEPC_TRANSITION, "INTERNAL_EPC_NONEPC_TRANSITION")1302         sFailCauseMap.put(INTERNAL_EPC_NONEPC_TRANSITION, "INTERNAL_EPC_NONEPC_TRANSITION");
sFailCauseMap.put(INTERFACE_IN_USE, "INTERFACE_IN_USE")1303         sFailCauseMap.put(INTERFACE_IN_USE, "INTERFACE_IN_USE");
sFailCauseMap.put(APN_DISALLOWED_ON_ROAMING, "APN_DISALLOWED_ON_ROAMING")1304         sFailCauseMap.put(APN_DISALLOWED_ON_ROAMING, "APN_DISALLOWED_ON_ROAMING");
sFailCauseMap.put(APN_PARAMETERS_CHANGED, "APN_PARAMETERS_CHANGED")1305         sFailCauseMap.put(APN_PARAMETERS_CHANGED, "APN_PARAMETERS_CHANGED");
sFailCauseMap.put(NULL_APN_DISALLOWED, "NULL_APN_DISALLOWED")1306         sFailCauseMap.put(NULL_APN_DISALLOWED, "NULL_APN_DISALLOWED");
sFailCauseMap.put(THERMAL_MITIGATION, "THERMAL_MITIGATION")1307         sFailCauseMap.put(THERMAL_MITIGATION, "THERMAL_MITIGATION");
sFailCauseMap.put(DATA_SETTINGS_DISABLED, "DATA_SETTINGS_DISABLED")1308         sFailCauseMap.put(DATA_SETTINGS_DISABLED, "DATA_SETTINGS_DISABLED");
sFailCauseMap.put(DATA_ROAMING_SETTINGS_DISABLED, "DATA_ROAMING_SETTINGS_DISABLED")1309         sFailCauseMap.put(DATA_ROAMING_SETTINGS_DISABLED, "DATA_ROAMING_SETTINGS_DISABLED");
sFailCauseMap.put(DDS_SWITCHED, "DDS_SWITCHED")1310         sFailCauseMap.put(DDS_SWITCHED, "DDS_SWITCHED");
sFailCauseMap.put(FORBIDDEN_APN_NAME, "FORBIDDEN_APN_NAME")1311         sFailCauseMap.put(FORBIDDEN_APN_NAME, "FORBIDDEN_APN_NAME");
sFailCauseMap.put(DDS_SWITCH_IN_PROGRESS, "DDS_SWITCH_IN_PROGRESS")1312         sFailCauseMap.put(DDS_SWITCH_IN_PROGRESS, "DDS_SWITCH_IN_PROGRESS");
sFailCauseMap.put(CALL_DISALLOWED_IN_ROAMING, "CALL_DISALLOWED_IN_ROAMING")1313         sFailCauseMap.put(CALL_DISALLOWED_IN_ROAMING, "CALL_DISALLOWED_IN_ROAMING");
sFailCauseMap.put(NON_IP_NOT_SUPPORTED, "NON_IP_NOT_SUPPORTED")1314         sFailCauseMap.put(NON_IP_NOT_SUPPORTED, "NON_IP_NOT_SUPPORTED");
sFailCauseMap.put(PDN_NON_IP_CALL_THROTTLED, "PDN_NON_IP_CALL_THROTTLED")1315         sFailCauseMap.put(PDN_NON_IP_CALL_THROTTLED, "PDN_NON_IP_CALL_THROTTLED");
sFailCauseMap.put(PDN_NON_IP_CALL_DISALLOWED, "PDN_NON_IP_CALL_DISALLOWED")1316         sFailCauseMap.put(PDN_NON_IP_CALL_DISALLOWED, "PDN_NON_IP_CALL_DISALLOWED");
sFailCauseMap.put(CDMA_LOCK, "CDMA_LOCK")1317         sFailCauseMap.put(CDMA_LOCK, "CDMA_LOCK");
sFailCauseMap.put(CDMA_INTERCEPT, "CDMA_INTERCEPT")1318         sFailCauseMap.put(CDMA_INTERCEPT, "CDMA_INTERCEPT");
sFailCauseMap.put(CDMA_REORDER, "CDMA_REORDER")1319         sFailCauseMap.put(CDMA_REORDER, "CDMA_REORDER");
sFailCauseMap.put(CDMA_RELEASE_DUE_TO_SO_REJECTION, "CDMA_RELEASE_DUE_TO_SO_REJECTION")1320         sFailCauseMap.put(CDMA_RELEASE_DUE_TO_SO_REJECTION, "CDMA_RELEASE_DUE_TO_SO_REJECTION");
sFailCauseMap.put(CDMA_INCOMING_CALL, "CDMA_INCOMING_CALL")1321         sFailCauseMap.put(CDMA_INCOMING_CALL, "CDMA_INCOMING_CALL");
sFailCauseMap.put(CDMA_ALERT_STOP, "CDMA_ALERT_STOP")1322         sFailCauseMap.put(CDMA_ALERT_STOP, "CDMA_ALERT_STOP");
sFailCauseMap.put(CHANNEL_ACQUISITION_FAILURE, "CHANNEL_ACQUISITION_FAILURE")1323         sFailCauseMap.put(CHANNEL_ACQUISITION_FAILURE, "CHANNEL_ACQUISITION_FAILURE");
sFailCauseMap.put(MAX_ACCESS_PROBE, "MAX_ACCESS_PROBE")1324         sFailCauseMap.put(MAX_ACCESS_PROBE, "MAX_ACCESS_PROBE");
sFailCauseMap.put(CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION, "CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION")1325         sFailCauseMap.put(CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION,
1326                 "CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION");
sFailCauseMap.put(NO_RESPONSE_FROM_BASE_STATION, "NO_RESPONSE_FROM_BASE_STATION")1327         sFailCauseMap.put(NO_RESPONSE_FROM_BASE_STATION, "NO_RESPONSE_FROM_BASE_STATION");
sFailCauseMap.put(REJECTED_BY_BASE_STATION, "REJECTED_BY_BASE_STATION")1328         sFailCauseMap.put(REJECTED_BY_BASE_STATION, "REJECTED_BY_BASE_STATION");
sFailCauseMap.put(CONCURRENT_SERVICES_INCOMPATIBLE, "CONCURRENT_SERVICES_INCOMPATIBLE")1329         sFailCauseMap.put(CONCURRENT_SERVICES_INCOMPATIBLE, "CONCURRENT_SERVICES_INCOMPATIBLE");
sFailCauseMap.put(NO_CDMA_SERVICE, "NO_CDMA_SERVICE")1330         sFailCauseMap.put(NO_CDMA_SERVICE, "NO_CDMA_SERVICE");
sFailCauseMap.put(RUIM_NOT_PRESENT, "RUIM_NOT_PRESENT")1331         sFailCauseMap.put(RUIM_NOT_PRESENT, "RUIM_NOT_PRESENT");
sFailCauseMap.put(CDMA_RETRY_ORDER, "CDMA_RETRY_ORDER")1332         sFailCauseMap.put(CDMA_RETRY_ORDER, "CDMA_RETRY_ORDER");
sFailCauseMap.put(ACCESS_BLOCK, "ACCESS_BLOCK")1333         sFailCauseMap.put(ACCESS_BLOCK, "ACCESS_BLOCK");
sFailCauseMap.put(ACCESS_BLOCK_ALL, "ACCESS_BLOCK_ALL")1334         sFailCauseMap.put(ACCESS_BLOCK_ALL, "ACCESS_BLOCK_ALL");
sFailCauseMap.put(IS707B_MAX_ACCESS_PROBES, "IS707B_MAX_ACCESS_PROBES")1335         sFailCauseMap.put(IS707B_MAX_ACCESS_PROBES, "IS707B_MAX_ACCESS_PROBES");
sFailCauseMap.put(THERMAL_EMERGENCY, "THERMAL_EMERGENCY")1336         sFailCauseMap.put(THERMAL_EMERGENCY, "THERMAL_EMERGENCY");
sFailCauseMap.put(CONCURRENT_SERVICES_NOT_ALLOWED, "CONCURRENT_SERVICES_NOT_ALLOWED")1337         sFailCauseMap.put(CONCURRENT_SERVICES_NOT_ALLOWED, "CONCURRENT_SERVICES_NOT_ALLOWED");
sFailCauseMap.put(INCOMING_CALL_REJECTED, "INCOMING_CALL_REJECTED")1338         sFailCauseMap.put(INCOMING_CALL_REJECTED, "INCOMING_CALL_REJECTED");
sFailCauseMap.put(NO_SERVICE_ON_GATEWAY, "NO_SERVICE_ON_GATEWAY")1339         sFailCauseMap.put(NO_SERVICE_ON_GATEWAY, "NO_SERVICE_ON_GATEWAY");
sFailCauseMap.put(NO_GPRS_CONTEXT, "NO_GPRS_CONTEXT")1340         sFailCauseMap.put(NO_GPRS_CONTEXT, "NO_GPRS_CONTEXT");
sFailCauseMap.put(ILLEGAL_MS, "ILLEGAL_MS")1341         sFailCauseMap.put(ILLEGAL_MS, "ILLEGAL_MS");
sFailCauseMap.put(ILLEGAL_ME, "ILLEGAL_ME")1342         sFailCauseMap.put(ILLEGAL_ME, "ILLEGAL_ME");
sFailCauseMap.put(GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED, "GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED")1343         sFailCauseMap.put(GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED,
1344                 "GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED");
sFailCauseMap.put(GPRS_SERVICES_NOT_ALLOWED, "GPRS_SERVICES_NOT_ALLOWED")1345         sFailCauseMap.put(GPRS_SERVICES_NOT_ALLOWED, "GPRS_SERVICES_NOT_ALLOWED");
sFailCauseMap.put(MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK, "MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK")1346         sFailCauseMap.put(MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK,
1347                 "MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK");
sFailCauseMap.put(IMPLICITLY_DETACHED, "IMPLICITLY_DETACHED")1348         sFailCauseMap.put(IMPLICITLY_DETACHED, "IMPLICITLY_DETACHED");
sFailCauseMap.put(PLMN_NOT_ALLOWED, "PLMN_NOT_ALLOWED")1349         sFailCauseMap.put(PLMN_NOT_ALLOWED, "PLMN_NOT_ALLOWED");
sFailCauseMap.put(LOCATION_AREA_NOT_ALLOWED, "LOCATION_AREA_NOT_ALLOWED")1350         sFailCauseMap.put(LOCATION_AREA_NOT_ALLOWED, "LOCATION_AREA_NOT_ALLOWED");
sFailCauseMap.put(GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN, "GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN")1351         sFailCauseMap.put(GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN,
1352                 "GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN");
sFailCauseMap.put(PDP_DUPLICATE, "PDP_DUPLICATE")1353         sFailCauseMap.put(PDP_DUPLICATE, "PDP_DUPLICATE");
sFailCauseMap.put(UE_RAT_CHANGE, "UE_RAT_CHANGE")1354         sFailCauseMap.put(UE_RAT_CHANGE, "UE_RAT_CHANGE");
sFailCauseMap.put(CONGESTION, "CONGESTION")1355         sFailCauseMap.put(CONGESTION, "CONGESTION");
sFailCauseMap.put(NO_PDP_CONTEXT_ACTIVATED, "NO_PDP_CONTEXT_ACTIVATED")1356         sFailCauseMap.put(NO_PDP_CONTEXT_ACTIVATED, "NO_PDP_CONTEXT_ACTIVATED");
sFailCauseMap.put(ACCESS_CLASS_DSAC_REJECTION, "ACCESS_CLASS_DSAC_REJECTION")1357         sFailCauseMap.put(ACCESS_CLASS_DSAC_REJECTION, "ACCESS_CLASS_DSAC_REJECTION");
sFailCauseMap.put(PDP_ACTIVATE_MAX_RETRY_FAILED, "PDP_ACTIVATE_MAX_RETRY_FAILED")1358         sFailCauseMap.put(PDP_ACTIVATE_MAX_RETRY_FAILED, "PDP_ACTIVATE_MAX_RETRY_FAILED");
sFailCauseMap.put(RADIO_ACCESS_BEARER_FAILURE, "RADIO_ACCESS_BEARER_FAILURE")1359         sFailCauseMap.put(RADIO_ACCESS_BEARER_FAILURE, "RADIO_ACCESS_BEARER_FAILURE");
sFailCauseMap.put(ESM_UNKNOWN_EPS_BEARER_CONTEXT, "ESM_UNKNOWN_EPS_BEARER_CONTEXT")1360         sFailCauseMap.put(ESM_UNKNOWN_EPS_BEARER_CONTEXT, "ESM_UNKNOWN_EPS_BEARER_CONTEXT");
sFailCauseMap.put(DRB_RELEASED_BY_RRC, "DRB_RELEASED_BY_RRC")1361         sFailCauseMap.put(DRB_RELEASED_BY_RRC, "DRB_RELEASED_BY_RRC");
sFailCauseMap.put(CONNECTION_RELEASED, "CONNECTION_RELEASED")1362         sFailCauseMap.put(CONNECTION_RELEASED, "CONNECTION_RELEASED");
sFailCauseMap.put(EMM_DETACHED, "EMM_DETACHED")1363         sFailCauseMap.put(EMM_DETACHED, "EMM_DETACHED");
sFailCauseMap.put(EMM_ATTACH_FAILED, "EMM_ATTACH_FAILED")1364         sFailCauseMap.put(EMM_ATTACH_FAILED, "EMM_ATTACH_FAILED");
sFailCauseMap.put(EMM_ATTACH_STARTED, "EMM_ATTACH_STARTED")1365         sFailCauseMap.put(EMM_ATTACH_STARTED, "EMM_ATTACH_STARTED");
sFailCauseMap.put(LTE_NAS_SERVICE_REQUEST_FAILED, "LTE_NAS_SERVICE_REQUEST_FAILED")1366         sFailCauseMap.put(LTE_NAS_SERVICE_REQUEST_FAILED, "LTE_NAS_SERVICE_REQUEST_FAILED");
sFailCauseMap.put(DUPLICATE_BEARER_ID, "DUPLICATE_BEARER_ID")1367         sFailCauseMap.put(DUPLICATE_BEARER_ID, "DUPLICATE_BEARER_ID");
sFailCauseMap.put(ESM_COLLISION_SCENARIOS, "ESM_COLLISION_SCENARIOS")1368         sFailCauseMap.put(ESM_COLLISION_SCENARIOS, "ESM_COLLISION_SCENARIOS");
sFailCauseMap.put(ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK, "ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK")1369         sFailCauseMap.put(ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK,
1370                 "ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK");
sFailCauseMap.put(ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER, "ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER")1371         sFailCauseMap.put(ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER,
1372                 "ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER");
sFailCauseMap.put(ESM_BAD_OTA_MESSAGE, "ESM_BAD_OTA_MESSAGE")1373         sFailCauseMap.put(ESM_BAD_OTA_MESSAGE, "ESM_BAD_OTA_MESSAGE");
sFailCauseMap.put(ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL, "ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL")1374         sFailCauseMap.put(ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL,
1375                 "ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL");
sFailCauseMap.put(ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT, "ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT")1376         sFailCauseMap.put(ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT,
1377                 "ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT");
sFailCauseMap.put(DS_EXPLICIT_DEACTIVATION, "DS_EXPLICIT_DEACTIVATION")1378         sFailCauseMap.put(DS_EXPLICIT_DEACTIVATION, "DS_EXPLICIT_DEACTIVATION");
sFailCauseMap.put(ESM_LOCAL_CAUSE_NONE, "ESM_LOCAL_CAUSE_NONE")1379         sFailCauseMap.put(ESM_LOCAL_CAUSE_NONE, "ESM_LOCAL_CAUSE_NONE");
sFailCauseMap.put(LTE_THROTTLING_NOT_REQUIRED, "LTE_THROTTLING_NOT_REQUIRED")1380         sFailCauseMap.put(LTE_THROTTLING_NOT_REQUIRED, "LTE_THROTTLING_NOT_REQUIRED");
sFailCauseMap.put(ACCESS_CONTROL_LIST_CHECK_FAILURE, "ACCESS_CONTROL_LIST_CHECK_FAILURE")1381         sFailCauseMap.put(ACCESS_CONTROL_LIST_CHECK_FAILURE,
1382                 "ACCESS_CONTROL_LIST_CHECK_FAILURE");
sFailCauseMap.put(SERVICE_NOT_ALLOWED_ON_PLMN, "SERVICE_NOT_ALLOWED_ON_PLMN")1383         sFailCauseMap.put(SERVICE_NOT_ALLOWED_ON_PLMN, "SERVICE_NOT_ALLOWED_ON_PLMN");
sFailCauseMap.put(EMM_T3417_EXPIRED, "EMM_T3417_EXPIRED")1384         sFailCauseMap.put(EMM_T3417_EXPIRED, "EMM_T3417_EXPIRED");
sFailCauseMap.put(EMM_T3417_EXT_EXPIRED, "EMM_T3417_EXT_EXPIRED")1385         sFailCauseMap.put(EMM_T3417_EXT_EXPIRED, "EMM_T3417_EXT_EXPIRED");
sFailCauseMap.put(RRC_UPLINK_DATA_TRANSMISSION_FAILURE, "RRC_UPLINK_DATA_TRANSMISSION_FAILURE")1386         sFailCauseMap.put(RRC_UPLINK_DATA_TRANSMISSION_FAILURE,
1387                 "RRC_UPLINK_DATA_TRANSMISSION_FAILURE");
sFailCauseMap.put(RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER, "RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER")1388         sFailCauseMap.put(RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER,
1389                 "RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER");
sFailCauseMap.put(RRC_UPLINK_CONNECTION_RELEASE, "RRC_UPLINK_CONNECTION_RELEASE")1390         sFailCauseMap.put(RRC_UPLINK_CONNECTION_RELEASE, "RRC_UPLINK_CONNECTION_RELEASE");
sFailCauseMap.put(RRC_UPLINK_RADIO_LINK_FAILURE, "RRC_UPLINK_RADIO_LINK_FAILURE")1391         sFailCauseMap.put(RRC_UPLINK_RADIO_LINK_FAILURE, "RRC_UPLINK_RADIO_LINK_FAILURE");
sFailCauseMap.put(RRC_UPLINK_ERROR_REQUEST_FROM_NAS, "RRC_UPLINK_ERROR_REQUEST_FROM_NAS")1392         sFailCauseMap.put(RRC_UPLINK_ERROR_REQUEST_FROM_NAS, "RRC_UPLINK_ERROR_REQUEST_FROM_NAS");
sFailCauseMap.put(RRC_CONNECTION_ACCESS_STRATUM_FAILURE, "RRC_CONNECTION_ACCESS_STRATUM_FAILURE")1393         sFailCauseMap.put(RRC_CONNECTION_ACCESS_STRATUM_FAILURE,
1394                 "RRC_CONNECTION_ACCESS_STRATUM_FAILURE");
sFailCauseMap.put(RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS, "RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS")1395         sFailCauseMap.put(RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS,
1396                 "RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS");
sFailCauseMap.put(RRC_CONNECTION_ACCESS_BARRED, "RRC_CONNECTION_ACCESS_BARRED")1397         sFailCauseMap.put(RRC_CONNECTION_ACCESS_BARRED, "RRC_CONNECTION_ACCESS_BARRED");
sFailCauseMap.put(RRC_CONNECTION_CELL_RESELECTION, "RRC_CONNECTION_CELL_RESELECTION")1398         sFailCauseMap.put(RRC_CONNECTION_CELL_RESELECTION, "RRC_CONNECTION_CELL_RESELECTION");
sFailCauseMap.put(RRC_CONNECTION_CONFIG_FAILURE, "RRC_CONNECTION_CONFIG_FAILURE")1399         sFailCauseMap.put(RRC_CONNECTION_CONFIG_FAILURE, "RRC_CONNECTION_CONFIG_FAILURE");
sFailCauseMap.put(RRC_CONNECTION_TIMER_EXPIRED, "RRC_CONNECTION_TIMER_EXPIRED")1400         sFailCauseMap.put(RRC_CONNECTION_TIMER_EXPIRED, "RRC_CONNECTION_TIMER_EXPIRED");
sFailCauseMap.put(RRC_CONNECTION_LINK_FAILURE, "RRC_CONNECTION_LINK_FAILURE")1401         sFailCauseMap.put(RRC_CONNECTION_LINK_FAILURE, "RRC_CONNECTION_LINK_FAILURE");
sFailCauseMap.put(RRC_CONNECTION_CELL_NOT_CAMPED, "RRC_CONNECTION_CELL_NOT_CAMPED")1402         sFailCauseMap.put(RRC_CONNECTION_CELL_NOT_CAMPED, "RRC_CONNECTION_CELL_NOT_CAMPED");
sFailCauseMap.put(RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE, "RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE")1403         sFailCauseMap.put(RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE,
1404                 "RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE");
sFailCauseMap.put(RRC_CONNECTION_REJECT_BY_NETWORK, "RRC_CONNECTION_REJECT_BY_NETWORK")1405         sFailCauseMap.put(RRC_CONNECTION_REJECT_BY_NETWORK, "RRC_CONNECTION_REJECT_BY_NETWORK");
sFailCauseMap.put(RRC_CONNECTION_NORMAL_RELEASE, "RRC_CONNECTION_NORMAL_RELEASE")1406         sFailCauseMap.put(RRC_CONNECTION_NORMAL_RELEASE, "RRC_CONNECTION_NORMAL_RELEASE");
sFailCauseMap.put(RRC_CONNECTION_RADIO_LINK_FAILURE, "RRC_CONNECTION_RADIO_LINK_FAILURE")1407         sFailCauseMap.put(RRC_CONNECTION_RADIO_LINK_FAILURE, "RRC_CONNECTION_RADIO_LINK_FAILURE");
sFailCauseMap.put(RRC_CONNECTION_REESTABLISHMENT_FAILURE, "RRC_CONNECTION_REESTABLISHMENT_FAILURE")1408         sFailCauseMap.put(RRC_CONNECTION_REESTABLISHMENT_FAILURE,
1409                 "RRC_CONNECTION_REESTABLISHMENT_FAILURE");
sFailCauseMap.put(RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER, "RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER")1410         sFailCauseMap.put(RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER,
1411                 "RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER");
sFailCauseMap.put(RRC_CONNECTION_ABORT_REQUEST, "RRC_CONNECTION_ABORT_REQUEST")1412         sFailCauseMap.put(RRC_CONNECTION_ABORT_REQUEST, "RRC_CONNECTION_ABORT_REQUEST");
sFailCauseMap.put(RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR, "RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR")1413         sFailCauseMap.put(RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR,
1414                 "RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR");
sFailCauseMap.put(NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH, "NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH")1415         sFailCauseMap.put(NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH,
1416                 "NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH");
sFailCauseMap.put(NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH, "NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH")1417         sFailCauseMap.put(NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH,
1418                 "NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH");
sFailCauseMap.put(ESM_PROCEDURE_TIME_OUT, "ESM_PROCEDURE_TIME_OUT")1419         sFailCauseMap.put(ESM_PROCEDURE_TIME_OUT, "ESM_PROCEDURE_TIME_OUT");
sFailCauseMap.put(INVALID_CONNECTION_ID, "INVALID_CONNECTION_ID")1420         sFailCauseMap.put(INVALID_CONNECTION_ID, "INVALID_CONNECTION_ID");
sFailCauseMap.put(MAXIMIUM_NSAPIS_EXCEEDED, "MAXIMIUM_NSAPIS_EXCEEDED")1421         sFailCauseMap.put(MAXIMIUM_NSAPIS_EXCEEDED, "MAXIMIUM_NSAPIS_EXCEEDED");
sFailCauseMap.put(INVALID_PRIMARY_NSAPI, "INVALID_PRIMARY_NSAPI")1422         sFailCauseMap.put(INVALID_PRIMARY_NSAPI, "INVALID_PRIMARY_NSAPI");
sFailCauseMap.put(CANNOT_ENCODE_OTA_MESSAGE, "CANNOT_ENCODE_OTA_MESSAGE")1423         sFailCauseMap.put(CANNOT_ENCODE_OTA_MESSAGE, "CANNOT_ENCODE_OTA_MESSAGE");
sFailCauseMap.put(RADIO_ACCESS_BEARER_SETUP_FAILURE, "RADIO_ACCESS_BEARER_SETUP_FAILURE")1424         sFailCauseMap.put(RADIO_ACCESS_BEARER_SETUP_FAILURE, "RADIO_ACCESS_BEARER_SETUP_FAILURE");
sFailCauseMap.put(PDP_ESTABLISH_TIMEOUT_EXPIRED, "PDP_ESTABLISH_TIMEOUT_EXPIRED")1425         sFailCauseMap.put(PDP_ESTABLISH_TIMEOUT_EXPIRED, "PDP_ESTABLISH_TIMEOUT_EXPIRED");
sFailCauseMap.put(PDP_MODIFY_TIMEOUT_EXPIRED, "PDP_MODIFY_TIMEOUT_EXPIRED")1426         sFailCauseMap.put(PDP_MODIFY_TIMEOUT_EXPIRED, "PDP_MODIFY_TIMEOUT_EXPIRED");
sFailCauseMap.put(PDP_INACTIVE_TIMEOUT_EXPIRED, "PDP_INACTIVE_TIMEOUT_EXPIRED")1427         sFailCauseMap.put(PDP_INACTIVE_TIMEOUT_EXPIRED, "PDP_INACTIVE_TIMEOUT_EXPIRED");
sFailCauseMap.put(PDP_LOWERLAYER_ERROR, "PDP_LOWERLAYER_ERROR")1428         sFailCauseMap.put(PDP_LOWERLAYER_ERROR, "PDP_LOWERLAYER_ERROR");
sFailCauseMap.put(PDP_MODIFY_COLLISION, "PDP_MODIFY_COLLISION")1429         sFailCauseMap.put(PDP_MODIFY_COLLISION, "PDP_MODIFY_COLLISION");
sFailCauseMap.put(MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED, "MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED")1430         sFailCauseMap.put(MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED,
1431                 "MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED");
sFailCauseMap.put(NAS_REQUEST_REJECTED_BY_NETWORK, "NAS_REQUEST_REJECTED_BY_NETWORK")1432         sFailCauseMap.put(NAS_REQUEST_REJECTED_BY_NETWORK, "NAS_REQUEST_REJECTED_BY_NETWORK");
sFailCauseMap.put(RRC_CONNECTION_INVALID_REQUEST, "RRC_CONNECTION_INVALID_REQUEST")1433         sFailCauseMap.put(RRC_CONNECTION_INVALID_REQUEST, "RRC_CONNECTION_INVALID_REQUEST");
sFailCauseMap.put(RRC_CONNECTION_TRACKING_AREA_ID_CHANGED, "RRC_CONNECTION_TRACKING_AREA_ID_CHANGED")1434         sFailCauseMap.put(RRC_CONNECTION_TRACKING_AREA_ID_CHANGED,
1435                 "RRC_CONNECTION_TRACKING_AREA_ID_CHANGED");
sFailCauseMap.put(RRC_CONNECTION_RF_UNAVAILABLE, "RRC_CONNECTION_RF_UNAVAILABLE")1436         sFailCauseMap.put(RRC_CONNECTION_RF_UNAVAILABLE, "RRC_CONNECTION_RF_UNAVAILABLE");
sFailCauseMap.put(RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE, "RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE")1437         sFailCauseMap.put(RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE,
1438                 "RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE");
sFailCauseMap.put(RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE, "RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE")1439         sFailCauseMap.put(RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE,
1440                 "RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE");
sFailCauseMap.put(RRC_CONNECTION_ABORTED_AFTER_HANDOVER, "RRC_CONNECTION_ABORTED_AFTER_HANDOVER")1441         sFailCauseMap.put(RRC_CONNECTION_ABORTED_AFTER_HANDOVER,
1442                 "RRC_CONNECTION_ABORTED_AFTER_HANDOVER");
sFailCauseMap.put(RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE, "RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE")1443         sFailCauseMap.put(RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE,
1444                 "RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE");
sFailCauseMap.put(RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE, "RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE")1445         sFailCauseMap.put(RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE,
1446                 "RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE");
sFailCauseMap.put(IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER, "IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER")1447         sFailCauseMap.put(IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER,
1448                 "IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER");
sFailCauseMap.put(IMEI_NOT_ACCEPTED, "IMEI_NOT_ACCEPTED")1449         sFailCauseMap.put(IMEI_NOT_ACCEPTED, "IMEI_NOT_ACCEPTED");
sFailCauseMap.put(EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED, "EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED")1450         sFailCauseMap.put(EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED,
1451                 "EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED");
sFailCauseMap.put(EPS_SERVICES_NOT_ALLOWED_IN_PLMN, "EPS_SERVICES_NOT_ALLOWED_IN_PLMN")1452         sFailCauseMap.put(EPS_SERVICES_NOT_ALLOWED_IN_PLMN, "EPS_SERVICES_NOT_ALLOWED_IN_PLMN");
sFailCauseMap.put(MSC_TEMPORARILY_NOT_REACHABLE, "MSC_TEMPORARILY_NOT_REACHABLE")1453         sFailCauseMap.put(MSC_TEMPORARILY_NOT_REACHABLE, "MSC_TEMPORARILY_NOT_REACHABLE");
sFailCauseMap.put(CS_DOMAIN_NOT_AVAILABLE, "CS_DOMAIN_NOT_AVAILABLE")1454         sFailCauseMap.put(CS_DOMAIN_NOT_AVAILABLE, "CS_DOMAIN_NOT_AVAILABLE");
sFailCauseMap.put(ESM_FAILURE, "ESM_FAILURE")1455         sFailCauseMap.put(ESM_FAILURE, "ESM_FAILURE");
sFailCauseMap.put(MAC_FAILURE, "MAC_FAILURE")1456         sFailCauseMap.put(MAC_FAILURE, "MAC_FAILURE");
sFailCauseMap.put(SYNCHRONIZATION_FAILURE, "SYNCHRONIZATION_FAILURE")1457         sFailCauseMap.put(SYNCHRONIZATION_FAILURE, "SYNCHRONIZATION_FAILURE");
sFailCauseMap.put(UE_SECURITY_CAPABILITIES_MISMATCH, "UE_SECURITY_CAPABILITIES_MISMATCH")1458         sFailCauseMap.put(UE_SECURITY_CAPABILITIES_MISMATCH, "UE_SECURITY_CAPABILITIES_MISMATCH");
sFailCauseMap.put(SECURITY_MODE_REJECTED, "SECURITY_MODE_REJECTED")1459         sFailCauseMap.put(SECURITY_MODE_REJECTED, "SECURITY_MODE_REJECTED");
sFailCauseMap.put(UNACCEPTABLE_NON_EPS_AUTHENTICATION, "UNACCEPTABLE_NON_EPS_AUTHENTICATION")1460         sFailCauseMap.put(UNACCEPTABLE_NON_EPS_AUTHENTICATION,
1461                 "UNACCEPTABLE_NON_EPS_AUTHENTICATION");
sFailCauseMap.put(CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED, "CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED")1462         sFailCauseMap.put(CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED,
1463                 "CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED");
sFailCauseMap.put(NO_EPS_BEARER_CONTEXT_ACTIVATED, "NO_EPS_BEARER_CONTEXT_ACTIVATED")1464         sFailCauseMap.put(NO_EPS_BEARER_CONTEXT_ACTIVATED, "NO_EPS_BEARER_CONTEXT_ACTIVATED");
sFailCauseMap.put(INVALID_EMM_STATE, "INVALID_EMM_STATE")1465         sFailCauseMap.put(INVALID_EMM_STATE, "INVALID_EMM_STATE");
sFailCauseMap.put(NAS_LAYER_FAILURE, "NAS_LAYER_FAILURE")1466         sFailCauseMap.put(NAS_LAYER_FAILURE, "NAS_LAYER_FAILURE");
sFailCauseMap.put(MULTIPLE_PDP_CALL_NOT_ALLOWED, "MULTIPLE_PDP_CALL_NOT_ALLOWED")1467         sFailCauseMap.put(MULTIPLE_PDP_CALL_NOT_ALLOWED, "MULTIPLE_PDP_CALL_NOT_ALLOWED");
sFailCauseMap.put(EMBMS_NOT_ENABLED, "EMBMS_NOT_ENABLED")1468         sFailCauseMap.put(EMBMS_NOT_ENABLED, "EMBMS_NOT_ENABLED");
sFailCauseMap.put(IRAT_HANDOVER_FAILED, "IRAT_HANDOVER_FAILED")1469         sFailCauseMap.put(IRAT_HANDOVER_FAILED, "IRAT_HANDOVER_FAILED");
sFailCauseMap.put(EMBMS_REGULAR_DEACTIVATION, "EMBMS_REGULAR_DEACTIVATION")1470         sFailCauseMap.put(EMBMS_REGULAR_DEACTIVATION, "EMBMS_REGULAR_DEACTIVATION");
sFailCauseMap.put(TEST_LOOPBACK_REGULAR_DEACTIVATION, "TEST_LOOPBACK_REGULAR_DEACTIVATION")1471         sFailCauseMap.put(TEST_LOOPBACK_REGULAR_DEACTIVATION, "TEST_LOOPBACK_REGULAR_DEACTIVATION");
sFailCauseMap.put(LOWER_LAYER_REGISTRATION_FAILURE, "LOWER_LAYER_REGISTRATION_FAILURE")1472         sFailCauseMap.put(LOWER_LAYER_REGISTRATION_FAILURE, "LOWER_LAYER_REGISTRATION_FAILURE");
sFailCauseMap.put(DATA_PLAN_EXPIRED, "DATA_PLAN_EXPIRED")1473         sFailCauseMap.put(DATA_PLAN_EXPIRED, "DATA_PLAN_EXPIRED");
sFailCauseMap.put(UMTS_HANDOVER_TO_IWLAN, "UMTS_HANDOVER_TO_IWLAN")1474         sFailCauseMap.put(UMTS_HANDOVER_TO_IWLAN, "UMTS_HANDOVER_TO_IWLAN");
sFailCauseMap.put(EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY, "EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY")1475         sFailCauseMap.put(EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY,
1476                 "EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY");
sFailCauseMap.put(EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE, "EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE")1477         sFailCauseMap.put(EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE,
1478                 "EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE");
sFailCauseMap.put(EVDO_HDR_CHANGED, "EVDO_HDR_CHANGED")1479         sFailCauseMap.put(EVDO_HDR_CHANGED, "EVDO_HDR_CHANGED");
sFailCauseMap.put(EVDO_HDR_EXITED, "EVDO_HDR_EXITED")1480         sFailCauseMap.put(EVDO_HDR_EXITED, "EVDO_HDR_EXITED");
sFailCauseMap.put(EVDO_HDR_NO_SESSION, "EVDO_HDR_NO_SESSION")1481         sFailCauseMap.put(EVDO_HDR_NO_SESSION, "EVDO_HDR_NO_SESSION");
sFailCauseMap.put(EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL, "EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL")1482         sFailCauseMap.put(EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL,
1483                 "EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL");
sFailCauseMap.put(EVDO_HDR_CONNECTION_SETUP_TIMEOUT, "EVDO_HDR_CONNECTION_SETUP_TIMEOUT")1484         sFailCauseMap.put(EVDO_HDR_CONNECTION_SETUP_TIMEOUT, "EVDO_HDR_CONNECTION_SETUP_TIMEOUT");
sFailCauseMap.put(FAILED_TO_ACQUIRE_COLOCATED_HDR, "FAILED_TO_ACQUIRE_COLOCATED_HDR")1485         sFailCauseMap.put(FAILED_TO_ACQUIRE_COLOCATED_HDR, "FAILED_TO_ACQUIRE_COLOCATED_HDR");
sFailCauseMap.put(OTASP_COMMIT_IN_PROGRESS, "OTASP_COMMIT_IN_PROGRESS")1486         sFailCauseMap.put(OTASP_COMMIT_IN_PROGRESS, "OTASP_COMMIT_IN_PROGRESS");
sFailCauseMap.put(NO_HYBRID_HDR_SERVICE, "NO_HYBRID_HDR_SERVICE")1487         sFailCauseMap.put(NO_HYBRID_HDR_SERVICE, "NO_HYBRID_HDR_SERVICE");
sFailCauseMap.put(HDR_NO_LOCK_GRANTED, "HDR_NO_LOCK_GRANTED")1488         sFailCauseMap.put(HDR_NO_LOCK_GRANTED, "HDR_NO_LOCK_GRANTED");
sFailCauseMap.put(DBM_OR_SMS_IN_PROGRESS, "DBM_OR_SMS_IN_PROGRESS")1489         sFailCauseMap.put(DBM_OR_SMS_IN_PROGRESS, "DBM_OR_SMS_IN_PROGRESS");
sFailCauseMap.put(HDR_FADE, "HDR_FADE")1490         sFailCauseMap.put(HDR_FADE, "HDR_FADE");
sFailCauseMap.put(HDR_ACCESS_FAILURE, "HDR_ACCESS_FAILURE")1491         sFailCauseMap.put(HDR_ACCESS_FAILURE, "HDR_ACCESS_FAILURE");
sFailCauseMap.put(UNSUPPORTED_1X_PREV, "UNSUPPORTED_1X_PREV")1492         sFailCauseMap.put(UNSUPPORTED_1X_PREV, "UNSUPPORTED_1X_PREV");
sFailCauseMap.put(LOCAL_END, "LOCAL_END")1493         sFailCauseMap.put(LOCAL_END, "LOCAL_END");
sFailCauseMap.put(NO_SERVICE, "NO_SERVICE")1494         sFailCauseMap.put(NO_SERVICE, "NO_SERVICE");
sFailCauseMap.put(FADE, "FADE")1495         sFailCauseMap.put(FADE, "FADE");
sFailCauseMap.put(NORMAL_RELEASE, "NORMAL_RELEASE")1496         sFailCauseMap.put(NORMAL_RELEASE, "NORMAL_RELEASE");
sFailCauseMap.put(ACCESS_ATTEMPT_ALREADY_IN_PROGRESS, "ACCESS_ATTEMPT_ALREADY_IN_PROGRESS")1497         sFailCauseMap.put(ACCESS_ATTEMPT_ALREADY_IN_PROGRESS, "ACCESS_ATTEMPT_ALREADY_IN_PROGRESS");
sFailCauseMap.put(REDIRECTION_OR_HANDOFF_IN_PROGRESS, "REDIRECTION_OR_HANDOFF_IN_PROGRESS")1498         sFailCauseMap.put(REDIRECTION_OR_HANDOFF_IN_PROGRESS, "REDIRECTION_OR_HANDOFF_IN_PROGRESS");
sFailCauseMap.put(EMERGENCY_MODE, "EMERGENCY_MODE")1499         sFailCauseMap.put(EMERGENCY_MODE, "EMERGENCY_MODE");
sFailCauseMap.put(PHONE_IN_USE, "PHONE_IN_USE")1500         sFailCauseMap.put(PHONE_IN_USE, "PHONE_IN_USE");
sFailCauseMap.put(INVALID_MODE, "INVALID_MODE")1501         sFailCauseMap.put(INVALID_MODE, "INVALID_MODE");
sFailCauseMap.put(INVALID_SIM_STATE, "INVALID_SIM_STATE")1502         sFailCauseMap.put(INVALID_SIM_STATE, "INVALID_SIM_STATE");
sFailCauseMap.put(NO_COLLOCATED_HDR, "NO_COLLOCATED_HDR")1503         sFailCauseMap.put(NO_COLLOCATED_HDR, "NO_COLLOCATED_HDR");
sFailCauseMap.put(UE_IS_ENTERING_POWERSAVE_MODE, "UE_IS_ENTERING_POWERSAVE_MODE")1504         sFailCauseMap.put(UE_IS_ENTERING_POWERSAVE_MODE, "UE_IS_ENTERING_POWERSAVE_MODE");
sFailCauseMap.put(DUAL_SWITCH, "DUAL_SWITCH")1505         sFailCauseMap.put(DUAL_SWITCH, "DUAL_SWITCH");
sFailCauseMap.put(PPP_TIMEOUT, "PPP_TIMEOUT")1506         sFailCauseMap.put(PPP_TIMEOUT, "PPP_TIMEOUT");
sFailCauseMap.put(PPP_AUTH_FAILURE, "PPP_AUTH_FAILURE")1507         sFailCauseMap.put(PPP_AUTH_FAILURE, "PPP_AUTH_FAILURE");
sFailCauseMap.put(PPP_OPTION_MISMATCH, "PPP_OPTION_MISMATCH")1508         sFailCauseMap.put(PPP_OPTION_MISMATCH, "PPP_OPTION_MISMATCH");
sFailCauseMap.put(PPP_PAP_FAILURE, "PPP_PAP_FAILURE")1509         sFailCauseMap.put(PPP_PAP_FAILURE, "PPP_PAP_FAILURE");
sFailCauseMap.put(PPP_CHAP_FAILURE, "PPP_CHAP_FAILURE")1510         sFailCauseMap.put(PPP_CHAP_FAILURE, "PPP_CHAP_FAILURE");
sFailCauseMap.put(PPP_CLOSE_IN_PROGRESS, "PPP_CLOSE_IN_PROGRESS")1511         sFailCauseMap.put(PPP_CLOSE_IN_PROGRESS, "PPP_CLOSE_IN_PROGRESS");
sFailCauseMap.put(LIMITED_TO_IPV4, "LIMITED_TO_IPV4")1512         sFailCauseMap.put(LIMITED_TO_IPV4, "LIMITED_TO_IPV4");
sFailCauseMap.put(LIMITED_TO_IPV6, "LIMITED_TO_IPV6")1513         sFailCauseMap.put(LIMITED_TO_IPV6, "LIMITED_TO_IPV6");
sFailCauseMap.put(VSNCP_TIMEOUT, "VSNCP_TIMEOUT")1514         sFailCauseMap.put(VSNCP_TIMEOUT, "VSNCP_TIMEOUT");
sFailCauseMap.put(VSNCP_GEN_ERROR, "VSNCP_GEN_ERROR")1515         sFailCauseMap.put(VSNCP_GEN_ERROR, "VSNCP_GEN_ERROR");
sFailCauseMap.put(VSNCP_APN_UNATHORIZED, "VSNCP_APN_UNATHORIZED")1516         sFailCauseMap.put(VSNCP_APN_UNATHORIZED, "VSNCP_APN_UNATHORIZED");
sFailCauseMap.put(VSNCP_APN_UNAUTHORIZED, "VSNCP_APN_UNAUTHORIZED")1517         sFailCauseMap.put(VSNCP_APN_UNAUTHORIZED, "VSNCP_APN_UNAUTHORIZED");
sFailCauseMap.put(VSNCP_PDN_LIMIT_EXCEEDED, "VSNCP_PDN_LIMIT_EXCEEDED")1518         sFailCauseMap.put(VSNCP_PDN_LIMIT_EXCEEDED, "VSNCP_PDN_LIMIT_EXCEEDED");
sFailCauseMap.put(VSNCP_NO_PDN_GATEWAY_ADDRESS, "VSNCP_NO_PDN_GATEWAY_ADDRESS")1519         sFailCauseMap.put(VSNCP_NO_PDN_GATEWAY_ADDRESS, "VSNCP_NO_PDN_GATEWAY_ADDRESS");
sFailCauseMap.put(VSNCP_PDN_GATEWAY_UNREACHABLE, "VSNCP_PDN_GATEWAY_UNREACHABLE")1520         sFailCauseMap.put(VSNCP_PDN_GATEWAY_UNREACHABLE, "VSNCP_PDN_GATEWAY_UNREACHABLE");
sFailCauseMap.put(VSNCP_PDN_GATEWAY_REJECT, "VSNCP_PDN_GATEWAY_REJECT")1521         sFailCauseMap.put(VSNCP_PDN_GATEWAY_REJECT, "VSNCP_PDN_GATEWAY_REJECT");
sFailCauseMap.put(VSNCP_INSUFFICIENT_PARAMETERS, "VSNCP_INSUFFICIENT_PARAMETERS")1522         sFailCauseMap.put(VSNCP_INSUFFICIENT_PARAMETERS, "VSNCP_INSUFFICIENT_PARAMETERS");
sFailCauseMap.put(VSNCP_RESOURCE_UNAVAILABLE, "VSNCP_RESOURCE_UNAVAILABLE")1523         sFailCauseMap.put(VSNCP_RESOURCE_UNAVAILABLE, "VSNCP_RESOURCE_UNAVAILABLE");
sFailCauseMap.put(VSNCP_ADMINISTRATIVELY_PROHIBITED, "VSNCP_ADMINISTRATIVELY_PROHIBITED")1524         sFailCauseMap.put(VSNCP_ADMINISTRATIVELY_PROHIBITED, "VSNCP_ADMINISTRATIVELY_PROHIBITED");
sFailCauseMap.put(VSNCP_PDN_ID_IN_USE, "VSNCP_PDN_ID_IN_USE")1525         sFailCauseMap.put(VSNCP_PDN_ID_IN_USE, "VSNCP_PDN_ID_IN_USE");
sFailCauseMap.put(VSNCP_SUBSCRIBER_LIMITATION, "VSNCP_SUBSCRIBER_LIMITATION")1526         sFailCauseMap.put(VSNCP_SUBSCRIBER_LIMITATION, "VSNCP_SUBSCRIBER_LIMITATION");
sFailCauseMap.put(VSNCP_PDN_EXISTS_FOR_THIS_APN, "VSNCP_PDN_EXISTS_FOR_THIS_APN")1527         sFailCauseMap.put(VSNCP_PDN_EXISTS_FOR_THIS_APN, "VSNCP_PDN_EXISTS_FOR_THIS_APN");
sFailCauseMap.put(VSNCP_RECONNECT_NOT_ALLOWED, "VSNCP_RECONNECT_NOT_ALLOWED")1528         sFailCauseMap.put(VSNCP_RECONNECT_NOT_ALLOWED, "VSNCP_RECONNECT_NOT_ALLOWED");
sFailCauseMap.put(IPV6_PREFIX_UNAVAILABLE, "IPV6_PREFIX_UNAVAILABLE")1529         sFailCauseMap.put(IPV6_PREFIX_UNAVAILABLE, "IPV6_PREFIX_UNAVAILABLE");
sFailCauseMap.put(HANDOFF_PREFERENCE_CHANGED, "HANDOFF_PREFERENCE_CHANGED")1530         sFailCauseMap.put(HANDOFF_PREFERENCE_CHANGED, "HANDOFF_PREFERENCE_CHANGED");
sFailCauseMap.put(SLICE_REJECTED, "SLICE_REJECTED")1531         sFailCauseMap.put(SLICE_REJECTED, "SLICE_REJECTED");
sFailCauseMap.put(MATCH_ALL_RULE_NOT_ALLOWED, "MATCH_ALL_RULE_NOT_ALLOWED")1532         sFailCauseMap.put(MATCH_ALL_RULE_NOT_ALLOWED, "MATCH_ALL_RULE_NOT_ALLOWED");
sFailCauseMap.put(ALL_MATCHING_RULES_FAILED, "ALL_MATCHING_RULES_FAILED")1533         sFailCauseMap.put(ALL_MATCHING_RULES_FAILED, "ALL_MATCHING_RULES_FAILED");
sFailCauseMap.put(IWLAN_PDN_CONNECTION_REJECTION, "IWLAN_PDN_CONNECTION_REJECTION")1534         sFailCauseMap.put(IWLAN_PDN_CONNECTION_REJECTION, "IWLAN_PDN_CONNECTION_REJECTION");
sFailCauseMap.put(IWLAN_MAX_CONNECTION_REACHED, "IWLAN_MAX_CONNECTION_REACHED")1535         sFailCauseMap.put(IWLAN_MAX_CONNECTION_REACHED, "IWLAN_MAX_CONNECTION_REACHED");
sFailCauseMap.put(IWLAN_SEMANTIC_ERROR_IN_THE_TFT_OPERATION, "IWLAN_SEMANTIC_ERROR_IN_THE_TFT_OPERATION")1536         sFailCauseMap.put(IWLAN_SEMANTIC_ERROR_IN_THE_TFT_OPERATION,
1537                 "IWLAN_SEMANTIC_ERROR_IN_THE_TFT_OPERATION");
sFailCauseMap.put(IWLAN_SYNTACTICAL_ERROR_IN_THE_TFT_OPERATION, "IWLAN_SYNTACTICAL_ERROR_IN_THE_TFT_OPERATION")1538         sFailCauseMap.put(IWLAN_SYNTACTICAL_ERROR_IN_THE_TFT_OPERATION,
1539                 "IWLAN_SYNTACTICAL_ERROR_IN_THE_TFT_OPERATION");
sFailCauseMap.put(IWLAN_SEMANTIC_ERRORS_IN_PACKET_FILTERS, "IWLAN_SEMANTIC_ERRORS_IN_PACKET_FILTERS")1540         sFailCauseMap.put(IWLAN_SEMANTIC_ERRORS_IN_PACKET_FILTERS,
1541                 "IWLAN_SEMANTIC_ERRORS_IN_PACKET_FILTERS");
sFailCauseMap.put(IWLAN_SYNTACTICAL_ERRORS_IN_PACKET_FILTERS, "IWLAN_SYNTACTICAL_ERRORS_IN_PACKET_FILTERS")1542         sFailCauseMap.put(IWLAN_SYNTACTICAL_ERRORS_IN_PACKET_FILTERS,
1543                 "IWLAN_SYNTACTICAL_ERRORS_IN_PACKET_FILTERS");
sFailCauseMap.put(IWLAN_NON_3GPP_ACCESS_TO_EPC_NOT_ALLOWED, "IWLAN_NON_3GPP_ACCESS_TO_EPC_NOT_ALLOWED")1544         sFailCauseMap.put(IWLAN_NON_3GPP_ACCESS_TO_EPC_NOT_ALLOWED,
1545                 "IWLAN_NON_3GPP_ACCESS_TO_EPC_NOT_ALLOWED");
sFailCauseMap.put(IWLAN_USER_UNKNOWN, "IWLAN_USER_UNKNOWN")1546         sFailCauseMap.put(IWLAN_USER_UNKNOWN, "IWLAN_USER_UNKNOWN");
sFailCauseMap.put(IWLAN_NO_APN_SUBSCRIPTION, "IWLAN_NO_APN_SUBSCRIPTION")1547         sFailCauseMap.put(IWLAN_NO_APN_SUBSCRIPTION, "IWLAN_NO_APN_SUBSCRIPTION");
sFailCauseMap.put(IWLAN_AUTHORIZATION_REJECTED, "IWLAN_AUTHORIZATION_REJECTED")1548         sFailCauseMap.put(IWLAN_AUTHORIZATION_REJECTED, "IWLAN_AUTHORIZATION_REJECTED");
sFailCauseMap.put(IWLAN_ILLEGAL_ME, "IWLAN_ILLEGAL_ME")1549         sFailCauseMap.put(IWLAN_ILLEGAL_ME, "IWLAN_ILLEGAL_ME");
sFailCauseMap.put(IWLAN_NETWORK_FAILURE, "IWLAN_NETWORK_FAILURE")1550         sFailCauseMap.put(IWLAN_NETWORK_FAILURE, "IWLAN_NETWORK_FAILURE");
sFailCauseMap.put(IWLAN_RAT_TYPE_NOT_ALLOWED, "IWLAN_RAT_TYPE_NOT_ALLOWED")1551         sFailCauseMap.put(IWLAN_RAT_TYPE_NOT_ALLOWED, "IWLAN_RAT_TYPE_NOT_ALLOWED");
sFailCauseMap.put(IWLAN_IMEI_NOT_ACCEPTED, "IWLAN_IMEI_NOT_ACCEPTED")1552         sFailCauseMap.put(IWLAN_IMEI_NOT_ACCEPTED, "IWLAN_IMEI_NOT_ACCEPTED");
sFailCauseMap.put(IWLAN_PLMN_NOT_ALLOWED, "IWLAN_PLMN_NOT_ALLOWED")1553         sFailCauseMap.put(IWLAN_PLMN_NOT_ALLOWED, "IWLAN_PLMN_NOT_ALLOWED");
sFailCauseMap.put(IWLAN_UNAUTHENTICATED_EMERGENCY_NOT_SUPPORTED, "IWLAN_UNAUTHENTICATED_EMERGENCY_NOT_SUPPORTED")1554         sFailCauseMap.put(IWLAN_UNAUTHENTICATED_EMERGENCY_NOT_SUPPORTED,
1555                 "IWLAN_UNAUTHENTICATED_EMERGENCY_NOT_SUPPORTED");
sFailCauseMap.put(IWLAN_IKEV2_CONFIG_FAILURE, "IWLAN_IKEV2_CONFIG_FAILURE")1556         sFailCauseMap.put(IWLAN_IKEV2_CONFIG_FAILURE, "IWLAN_IKEV2_CONFIG_FAILURE");
sFailCauseMap.put(IWLAN_IKEV2_AUTH_FAILURE, "IWLAN_IKEV2_AUTH_FAILURE")1557         sFailCauseMap.put(IWLAN_IKEV2_AUTH_FAILURE, "IWLAN_IKEV2_AUTH_FAILURE");
sFailCauseMap.put(IWLAN_IKEV2_MSG_TIMEOUT, "IWLAN_IKEV2_MSG_TIMEOUT")1558         sFailCauseMap.put(IWLAN_IKEV2_MSG_TIMEOUT, "IWLAN_IKEV2_MSG_TIMEOUT");
sFailCauseMap.put(IWLAN_IKEV2_CERT_INVALID, "IWLAN_IKEV2_CERT_INVALID")1559         sFailCauseMap.put(IWLAN_IKEV2_CERT_INVALID, "IWLAN_IKEV2_CERT_INVALID");
sFailCauseMap.put(IWLAN_DNS_RESOLUTION_NAME_FAILURE, "IWLAN_DNS_RESOLUTION_NAME_FAILURE")1560         sFailCauseMap.put(IWLAN_DNS_RESOLUTION_NAME_FAILURE, "IWLAN_DNS_RESOLUTION_NAME_FAILURE");
sFailCauseMap.put(IWLAN_DNS_RESOLUTION_TIMEOUT, "IWLAN_DNS_RESOLUTION_TIMEOUT")1561         sFailCauseMap.put(IWLAN_DNS_RESOLUTION_TIMEOUT, "IWLAN_DNS_RESOLUTION_TIMEOUT");
sFailCauseMap.put(IWLAN_TUNNEL_NOT_FOUND, "IWLAN_TUNNEL_NOT_FOUND")1562         sFailCauseMap.put(IWLAN_TUNNEL_NOT_FOUND, "IWLAN_TUNNEL_NOT_FOUND");
sFailCauseMap.put(IWLAN_TUNNEL_TRANSFORM_FAILED, "IWLAN_TUNNEL_TRANSFORM_FAILED")1563         sFailCauseMap.put(IWLAN_TUNNEL_TRANSFORM_FAILED, "IWLAN_TUNNEL_TRANSFORM_FAILED");
sFailCauseMap.put(IWLAN_IKE_INIT_TIMEOUT, "IWLAN_IKE_INIT_TIMEOUT")1564         sFailCauseMap.put(IWLAN_IKE_INIT_TIMEOUT, "IWLAN_IKE_INIT_TIMEOUT");
sFailCauseMap.put(IWLAN_IKE_NETWORK_LOST_EXCEPTION, "IWLAN_IKE_NETWORK_LOST_EXCEPTION")1565         sFailCauseMap.put(IWLAN_IKE_NETWORK_LOST_EXCEPTION, "IWLAN_IKE_NETWORK_LOST_EXCEPTION");
sFailCauseMap.put(IWLAN_IKE_PRIVATE_PROTOCOL_ERROR, "IWLAN_IKE_PRIVATE_PROTOCOL_ERROR")1566         sFailCauseMap.put(IWLAN_IKE_PRIVATE_PROTOCOL_ERROR, "IWLAN_IKE_PRIVATE_PROTOCOL_ERROR");
sFailCauseMap.put(IWLAN_IKE_SESSION_CLOSED_BEFORE_CHILD_SESSION_OPENED, "IWLAN_IKE_SESSION_CLOSED_BEFORE_CHILD_SESSION_OPENED")1567         sFailCauseMap.put(IWLAN_IKE_SESSION_CLOSED_BEFORE_CHILD_SESSION_OPENED,
1568                 "IWLAN_IKE_SESSION_CLOSED_BEFORE_CHILD_SESSION_OPENED");
sFailCauseMap.put(IWLAN_IKE_DPD_TIMEOUT, "IWLAN_IKE_DPD_TIMEOUT")1569         sFailCauseMap.put(IWLAN_IKE_DPD_TIMEOUT, "IWLAN_IKE_DPD_TIMEOUT");
sFailCauseMap.put(IWLAN_IKE_MOBILITY_TIMEOUT, "IWLAN_IKE_MOBILITY_TIMEOUT")1570         sFailCauseMap.put(IWLAN_IKE_MOBILITY_TIMEOUT, "IWLAN_IKE_MOBILITY_TIMEOUT");
sFailCauseMap.put(IWLAN_EPDG_INTERNAL_ADDRESS_FAILURE, "IWLAN_EPDG_INTERNAL_ADDRESS_FAILURE")1571         sFailCauseMap.put(IWLAN_EPDG_INTERNAL_ADDRESS_FAILURE,
1572                 "IWLAN_EPDG_INTERNAL_ADDRESS_FAILURE");
sFailCauseMap.put(OEM_DCFAILCAUSE_1, "OEM_DCFAILCAUSE_1")1573         sFailCauseMap.put(OEM_DCFAILCAUSE_1, "OEM_DCFAILCAUSE_1");
sFailCauseMap.put(OEM_DCFAILCAUSE_2, "OEM_DCFAILCAUSE_2")1574         sFailCauseMap.put(OEM_DCFAILCAUSE_2, "OEM_DCFAILCAUSE_2");
sFailCauseMap.put(OEM_DCFAILCAUSE_3, "OEM_DCFAILCAUSE_3")1575         sFailCauseMap.put(OEM_DCFAILCAUSE_3, "OEM_DCFAILCAUSE_3");
sFailCauseMap.put(OEM_DCFAILCAUSE_4, "OEM_DCFAILCAUSE_4")1576         sFailCauseMap.put(OEM_DCFAILCAUSE_4, "OEM_DCFAILCAUSE_4");
sFailCauseMap.put(OEM_DCFAILCAUSE_5, "OEM_DCFAILCAUSE_5")1577         sFailCauseMap.put(OEM_DCFAILCAUSE_5, "OEM_DCFAILCAUSE_5");
sFailCauseMap.put(OEM_DCFAILCAUSE_6, "OEM_DCFAILCAUSE_6")1578         sFailCauseMap.put(OEM_DCFAILCAUSE_6, "OEM_DCFAILCAUSE_6");
sFailCauseMap.put(OEM_DCFAILCAUSE_7, "OEM_DCFAILCAUSE_7")1579         sFailCauseMap.put(OEM_DCFAILCAUSE_7, "OEM_DCFAILCAUSE_7");
sFailCauseMap.put(OEM_DCFAILCAUSE_8, "OEM_DCFAILCAUSE_8")1580         sFailCauseMap.put(OEM_DCFAILCAUSE_8, "OEM_DCFAILCAUSE_8");
sFailCauseMap.put(OEM_DCFAILCAUSE_9, "OEM_DCFAILCAUSE_9")1581         sFailCauseMap.put(OEM_DCFAILCAUSE_9, "OEM_DCFAILCAUSE_9");
sFailCauseMap.put(OEM_DCFAILCAUSE_10, "OEM_DCFAILCAUSE_10")1582         sFailCauseMap.put(OEM_DCFAILCAUSE_10, "OEM_DCFAILCAUSE_10");
sFailCauseMap.put(OEM_DCFAILCAUSE_11, "OEM_DCFAILCAUSE_11")1583         sFailCauseMap.put(OEM_DCFAILCAUSE_11, "OEM_DCFAILCAUSE_11");
sFailCauseMap.put(OEM_DCFAILCAUSE_12, "OEM_DCFAILCAUSE_12")1584         sFailCauseMap.put(OEM_DCFAILCAUSE_12, "OEM_DCFAILCAUSE_12");
sFailCauseMap.put(OEM_DCFAILCAUSE_13, "OEM_DCFAILCAUSE_13")1585         sFailCauseMap.put(OEM_DCFAILCAUSE_13, "OEM_DCFAILCAUSE_13");
sFailCauseMap.put(OEM_DCFAILCAUSE_14, "OEM_DCFAILCAUSE_14")1586         sFailCauseMap.put(OEM_DCFAILCAUSE_14, "OEM_DCFAILCAUSE_14");
sFailCauseMap.put(OEM_DCFAILCAUSE_15, "OEM_DCFAILCAUSE_15")1587         sFailCauseMap.put(OEM_DCFAILCAUSE_15, "OEM_DCFAILCAUSE_15");
sFailCauseMap.put(REGISTRATION_FAIL, "REGISTRATION_FAIL")1588         sFailCauseMap.put(REGISTRATION_FAIL, "REGISTRATION_FAIL");
sFailCauseMap.put(GPRS_REGISTRATION_FAIL, "GPRS_REGISTRATION_FAIL")1589         sFailCauseMap.put(GPRS_REGISTRATION_FAIL, "GPRS_REGISTRATION_FAIL");
sFailCauseMap.put(SIGNAL_LOST, "SIGNAL_LOST")1590         sFailCauseMap.put(SIGNAL_LOST, "SIGNAL_LOST");
sFailCauseMap.put(PREF_RADIO_TECH_CHANGED, "PREF_RADIO_TECH_CHANGED")1591         sFailCauseMap.put(PREF_RADIO_TECH_CHANGED, "PREF_RADIO_TECH_CHANGED");
sFailCauseMap.put(RADIO_POWER_OFF, "RADIO_POWER_OFF")1592         sFailCauseMap.put(RADIO_POWER_OFF, "RADIO_POWER_OFF");
sFailCauseMap.put(TETHERED_CALL_ACTIVE, "TETHERED_CALL_ACTIVE")1593         sFailCauseMap.put(TETHERED_CALL_ACTIVE, "TETHERED_CALL_ACTIVE");
sFailCauseMap.put(ERROR_UNSPECIFIED, "ERROR_UNSPECIFIED")1594         sFailCauseMap.put(ERROR_UNSPECIFIED, "ERROR_UNSPECIFIED");
sFailCauseMap.put(UNKNOWN, "UNKNOWN")1595         sFailCauseMap.put(UNKNOWN, "UNKNOWN");
sFailCauseMap.put(RADIO_NOT_AVAILABLE, "RADIO_NOT_AVAILABLE")1596         sFailCauseMap.put(RADIO_NOT_AVAILABLE, "RADIO_NOT_AVAILABLE");
sFailCauseMap.put(UNACCEPTABLE_NETWORK_PARAMETER, "UNACCEPTABLE_NETWORK_PARAMETER")1597         sFailCauseMap.put(UNACCEPTABLE_NETWORK_PARAMETER,
1598                 "UNACCEPTABLE_NETWORK_PARAMETER");
sFailCauseMap.put(LOST_CONNECTION, "LOST_CONNECTION")1599         sFailCauseMap.put(LOST_CONNECTION, "LOST_CONNECTION");
sFailCauseMap.put(HANDOVER_FAILED, "HANDOVER_FAILED")1600         sFailCauseMap.put(HANDOVER_FAILED, "HANDOVER_FAILED");
sFailCauseMap.put(DUPLICATE_CID, "DUPLICATE_CID")1601         sFailCauseMap.put(DUPLICATE_CID, "DUPLICATE_CID");
sFailCauseMap.put(NO_DEFAULT_DATA, "NO_DEFAULT_DATA")1602         sFailCauseMap.put(NO_DEFAULT_DATA, "NO_DEFAULT_DATA");
sFailCauseMap.put(SERVICE_TEMPORARILY_UNAVAILABLE, "SERVICE_TEMPORARILY_UNAVAILABLE")1603         sFailCauseMap.put(SERVICE_TEMPORARILY_UNAVAILABLE, "SERVICE_TEMPORARILY_UNAVAILABLE");
sFailCauseMap.put(REQUEST_NOT_SUPPORTED, "REQUEST_NOT_SUPPORTED")1604         sFailCauseMap.put(REQUEST_NOT_SUPPORTED, "REQUEST_NOT_SUPPORTED");
sFailCauseMap.put(NO_RETRY_FAILURE, "NO_RETRY_FAILURE")1605         sFailCauseMap.put(NO_RETRY_FAILURE, "NO_RETRY_FAILURE");
1606     }
1607 
DataFailCause()1608     private DataFailCause() {
1609     }
1610 
1611     /**
1612      * Map of subId -> set of data call setup permanent failure for the carrier.
1613      */
1614     private static final HashMap<Integer, Set<Integer>> sPermanentFailureCache =
1615             new HashMap<>();
1616 
1617     /**
1618      * Returns whether or not the fail cause is a failure that requires a modem restart
1619      *
1620      * @param context device context
1621      * @param cause data disconnect cause
1622      * @param subId subscription index
1623      * @return true if the fail cause code needs platform to trigger a modem restart.
1624      *
1625      * @hide
1626      */
isRadioRestartFailure(@onNull Context context, @DataFailureCause int cause, int subId)1627     public static boolean isRadioRestartFailure(@NonNull Context context,
1628                                                 @DataFailureCause int cause,
1629                                                 int subId) {
1630         CarrierConfigManager configManager = (CarrierConfigManager)
1631                 context.getSystemService(Context.CARRIER_CONFIG_SERVICE);
1632         if (configManager != null) {
1633             PersistableBundle b = configManager.getConfigForSubId(subId);
1634 
1635             if (b != null) {
1636                 if (cause == REGULAR_DEACTIVATION
1637                         && b.getBoolean(CarrierConfigManager
1638                         .KEY_RESTART_RADIO_ON_PDP_FAIL_REGULAR_DEACTIVATION_BOOL)) {
1639                     // This is for backward compatibility support. We need to continue support this
1640                     // old configuration until it gets removed in the future.
1641                     return true;
1642                 }
1643                 // Check the current configurations.
1644                 int[] causeCodes = b.getIntArray(CarrierConfigManager
1645                         .KEY_RADIO_RESTART_FAILURE_CAUSES_INT_ARRAY);
1646                 if (causeCodes != null) {
1647                     return Arrays.stream(causeCodes).anyMatch(i -> i == cause);
1648                 }
1649             }
1650         }
1651 
1652         return false;
1653     }
1654 
1655     /** @hide */
1656     // TODO: Migrated to DataConfigManager
isPermanentFailure(@onNull Context context, @DataFailureCause int failCause, int subId)1657     public static boolean isPermanentFailure(@NonNull Context context,
1658                                              @DataFailureCause int failCause,
1659                                              int subId) {
1660         synchronized (sPermanentFailureCache) {
1661 
1662             Set<Integer> permanentFailureSet = sPermanentFailureCache.get(subId);
1663 
1664             // In case of cache miss, we need to look up the settings from carrier config.
1665             if (permanentFailureSet == null) {
1666                 // Retrieve the permanent failure from carrier config
1667                 CarrierConfigManager configManager = (CarrierConfigManager)
1668                         context.getSystemService(Context.CARRIER_CONFIG_SERVICE);
1669                 if (configManager != null) {
1670                     PersistableBundle b = configManager.getConfigForSubId(subId);
1671                     if (b != null) {
1672                         String[] permanentFailureStrings = b.getStringArray(CarrierConfigManager
1673                                 .KEY_CARRIER_DATA_CALL_PERMANENT_FAILURE_STRINGS);
1674                         if (permanentFailureStrings != null) {
1675                             permanentFailureSet = new HashSet<>();
1676                             for (Map.Entry<Integer, String> e : sFailCauseMap.entrySet()) {
1677                                 if (ArrayUtils.contains(permanentFailureStrings, e.getValue())) {
1678                                     permanentFailureSet.add(e.getKey());
1679                                 }
1680                             }
1681                         }
1682                     }
1683                 }
1684 
1685                 // If we are not able to find the configuration from carrier config, use the default
1686                 // ones.
1687                 if (permanentFailureSet == null) {
1688                     permanentFailureSet = new HashSet<Integer>();
1689                     permanentFailureSet.add(OPERATOR_BARRED);
1690                     permanentFailureSet.add(MISSING_UNKNOWN_APN);
1691                     permanentFailureSet.add(UNKNOWN_PDP_ADDRESS_TYPE);
1692                     permanentFailureSet.add(USER_AUTHENTICATION);
1693                     permanentFailureSet.add(ACTIVATION_REJECT_GGSN);
1694                     permanentFailureSet.add(SERVICE_OPTION_NOT_SUPPORTED);
1695                     permanentFailureSet.add(SERVICE_OPTION_NOT_SUBSCRIBED);
1696                     permanentFailureSet.add(NSAPI_IN_USE);
1697                     permanentFailureSet.add(ONLY_IPV4_ALLOWED);
1698                     permanentFailureSet.add(ONLY_IPV6_ALLOWED);
1699                     permanentFailureSet.add(PROTOCOL_ERRORS);
1700                     permanentFailureSet.add(RADIO_POWER_OFF);
1701                     permanentFailureSet.add(TETHERED_CALL_ACTIVE);
1702                     permanentFailureSet.add(RADIO_NOT_AVAILABLE);
1703                     permanentFailureSet.add(UNACCEPTABLE_NETWORK_PARAMETER);
1704                     permanentFailureSet.add(SIGNAL_LOST);
1705                     permanentFailureSet.add(DUPLICATE_CID);
1706                     permanentFailureSet.add(MATCH_ALL_RULE_NOT_ALLOWED);
1707                     permanentFailureSet.add(ALL_MATCHING_RULES_FAILED);
1708                 }
1709 
1710                 permanentFailureSet.add(NO_RETRY_FAILURE);
1711                 sPermanentFailureCache.put(subId, permanentFailureSet);
1712             }
1713 
1714             return permanentFailureSet.contains(failCause);
1715         }
1716     }
1717 
1718     /** @hide */
isEventLoggable(@ataFailureCause int dataFailCause)1719     public static boolean isEventLoggable(@DataFailureCause int dataFailCause) {
1720         return (dataFailCause == OPERATOR_BARRED) || (dataFailCause == INSUFFICIENT_RESOURCES)
1721                 || (dataFailCause == UNKNOWN_PDP_ADDRESS_TYPE)
1722                 || (dataFailCause == USER_AUTHENTICATION)
1723                 || (dataFailCause == ACTIVATION_REJECT_GGSN)
1724                 || (dataFailCause == ACTIVATION_REJECT_UNSPECIFIED)
1725                 || (dataFailCause == SERVICE_OPTION_NOT_SUBSCRIBED)
1726                 || (dataFailCause == SERVICE_OPTION_NOT_SUPPORTED)
1727                 || (dataFailCause == SERVICE_OPTION_OUT_OF_ORDER)
1728                 || (dataFailCause == NSAPI_IN_USE)
1729                 || (dataFailCause == ONLY_IPV4_ALLOWED)
1730                 || (dataFailCause == ONLY_IPV6_ALLOWED)
1731                 || (dataFailCause == PROTOCOL_ERRORS)
1732                 || (dataFailCause == SIGNAL_LOST)
1733                 || (dataFailCause == RADIO_POWER_OFF)
1734                 || (dataFailCause == TETHERED_CALL_ACTIVE)
1735                 || (dataFailCause == UNACCEPTABLE_NETWORK_PARAMETER);
1736     }
1737 
1738     /** @hide */
toString(@ataFailureCause int dataFailCause)1739     public static String toString(@DataFailureCause int dataFailCause) {
1740         return sFailCauseMap.getOrDefault(dataFailCause, "UNKNOWN") + "(0x"
1741                 + Integer.toHexString(dataFailCause) + ")";
1742     }
1743 
1744     /** @hide */
getFailCause(@ataFailureCause int failCause)1745     public static int getFailCause(@DataFailureCause int failCause) {
1746         if (sFailCauseMap.containsKey(failCause)) {
1747             return failCause;
1748         } else {
1749             return UNKNOWN;
1750         }
1751     }
1752 
1753     /** @hide */
isFailCauseExisting(@ataFailureCause int failCause)1754     public static boolean isFailCauseExisting(@DataFailureCause int failCause) {
1755         return sFailCauseMap.containsKey(failCause);
1756     }
1757 }
1758