• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2018 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
17package android.hardware.radio@1.4;
18
19import @1.0::ApnAuthType;
20import @1.0::ApnTypes;
21import @1.0::Carrier;
22import @1.0::CellInfoType;
23import @1.0::CdmaSignalStrength;
24import @1.0::DataCallFailCause;
25import @1.0::DataProfileId;
26import @1.0::DataProfileInfoType;
27import @1.0::EvdoSignalStrength;
28import @1.0::GsmSignalStrength;
29import @1.0::LteSignalStrength;
30import @1.0::RadioAccessFamily;
31import @1.0::RadioCapabilityPhase;
32import @1.0::RadioCapabilityStatus;
33import @1.0::RadioError;
34import @1.0::RadioTechnology;
35import @1.0::RegState;
36import @1.0::TimeStampType;
37import @1.1::ScanStatus;
38import @1.2::AccessNetwork;
39import @1.2::CellInfo;
40import @1.2::CellInfoCdma;
41import @1.2::CellInfoGsm;
42import @1.2::CellInfoLte;
43import @1.2::CellInfoTdscdma;
44import @1.2::CellInfoWcdma;
45import @1.2::CardStatus;
46import @1.2::CellConnectionStatus;
47import @1.2::CellIdentityCdma;
48import @1.2::CellIdentityGsm;
49import @1.2::CellIdentityLte;
50import @1.2::CellIdentityTdscdma;
51import @1.2::CellIdentityWcdma;
52import @1.2::CellIdentityOperatorNames;
53import @1.2::DataRegStateResult;
54import @1.2::PhysicalChannelConfig;
55import @1.2::TdscdmaSignalStrength;
56import @1.2::WcdmaSignalStrength;
57
58import android.hidl.safe_union@1.0::Monostate;
59
60enum AccessNetwork : @1.2::AccessNetwork {
61    /**
62     * Unknown access network
63     */
64    UNKNOWN = 0,
65};
66
67enum ApnTypes : @1.0::ApnTypes {
68    /**
69     * Due to the addition of this new value, the value ALL defined in 1.0::ApnTypes is now
70     * deprecated and should not be used.
71     */
72    MCX = 1 << 10,            // APN type for Mission Critical Service
73                              // Reference: 3GPP TS 22.280 V15.3.0
74};
75
76/**
77 * Emergency number contains information of number, one or more service category(s), zero or more
78 * emergency uniform resource names, mobile country code (mcc), mobile network country (mnc) and
79 * source(s) that indicate where it comes from.
80 *
81 * If the emergency number is associated with country, field ‘mcc’ must be provided, otherwise
82 * field ‘mcc’ must be an empty string. If the emergency number is associated with network
83 * operator, field ‘mcc’ and 'mnc' must be provided, otherwise field ‘mnc’ must be an empty
84 * string. If the emergency number is specified with emergency service category(s), field
85 * 'categories' must be provided, otherwise field 'categories' must be
86 * @1.4::EmergencyServiceCategories::UNSPECIFIED. If the emergency number is specified with
87 * emergency uniform resource names (URN), field 'urns' must be provided, otherwise field 'urns'
88 * must be an empty list.
89 *
90 * A unique EmergencyNumber has a unique combination of ‘number’, ‘mcc’, 'mnc', 'categories' and
91 * 'urns' fields. Multiple @1.4::EmergencyNumberSource should be merged into one 'sources' field
92 * via bitwise-OR combination for the same EmergencyNumber.
93 *
94 * Reference: 3gpp 22.101, Section 10 - Emergency Calls;
95 *            3gpp 23.167, Section 6 - Functional description;
96 *            3gpp 24.503, Section 5.1.6.8.1 - General;
97 *            RFC 5031
98 */
99struct EmergencyNumber{
100    /**
101     * The emergency number. The character in the number string should only be the dial pad
102     * character('0'-'9', '*', or '#'). For example: 911.
103     */
104    string number;
105    /**
106     * 3-digit Mobile Country Code, 0..999. Empty string if not applicable.
107     */
108    string mcc;
109    /**
110     * 2 or 3-digit Mobile Network Code, 0..999. Empty string if not applicable.
111     */
112    string mnc;
113    /**
114     * The bitfield of @1.4::EmergencyServiceCategory(s). See @1.4::EmergencyServiceCategory for
115     * the value of each bit.
116     */
117    bitfield<EmergencyServiceCategory> categories;
118    /**
119     * The list of emergency Uniform Resource Names (URN).
120     */
121    vec<string> urns;
122    /**
123     * The bitfield of @1.4::EmergencyNumberSource(s). See @1.4::EmergencyNumberSource for the
124     * value of each bit.
125     */
126    bitfield<EmergencyNumberSource> sources;
127};
128
129/**
130 * Defining Emergency Service Category as follows:
131 * - General emergency call, all categories;
132 * - Police;
133 * - Ambulance;
134 * - Fire Brigade;
135 * - Marine Guard;
136 * - Mountain Rescue;
137 * - Manually Initiated eCall (MIeC);
138 * - Automatically Initiated eCall (AIeC);
139 *
140 * Category UNSPECIFIED (General emergency call, all categories) indicates that no specific
141 * services are associated with this emergency number.
142 *
143 * Reference: 3gpp 22.101, Section 10 - Emergency Calls
144 */
145enum EmergencyServiceCategory : int32_t {
146    /**
147     * General emergency call, all categories
148     */
149    UNSPECIFIED = 0,
150    POLICE = 1 << 0,
151    AMBULANCE = 1 << 1,
152    FIRE_BRIGADE = 1 << 2,
153    MARINE_GUARD = 1 << 3,
154    MOUNTAIN_RESCUE = 1 << 4,
155    /**
156     * Manually Initiated eCall (MIeC)
157     */
158    MIEC = 1 << 5,
159    /**
160     * Automatically Initiated eCall (AIeC)
161     */
162    AIEC = 1 << 6,
163};
164
165/**
166 * The source to tell where the corresponding @1.4::EmergencyNumber comes from.
167 *
168 * Reference: 3gpp 22.101, Section 10 - Emergency Calls
169 */
170enum EmergencyNumberSource : int32_t {
171    /**
172     * Indicates the number is from the network signal.
173     */
174    NETWORK_SIGNALING = 1 << 0,
175    /**
176     * Indicates the number is from the sim card.
177     */
178    SIM = 1 << 1,
179    /**
180     * Indicates the number is from the modem config.
181     */
182    MODEM_CONFIG = 1 << 2,
183    /**
184     * Indicates the number is available as default. Per the reference, 112, 911 must always be
185     * available; additionally, 000, 08, 110, 999, 118 and 119 must be available when sim is not
186     * present.
187     */
188    DEFAULT = 1 << 3,
189};
190
191/**
192 * Indicates how the implementation should handle the emergency call if it is required by Android.
193 */
194enum EmergencyCallRouting : int32_t {
195    /**
196     * Indicates Android does not require how to handle the corresponding emergency call; it is
197     * decided by implementation.
198     */
199    UNKNOWN = 0,
200    /**
201     * Indicates the implementation must handle the call through emergency routing.
202     */
203    EMERGENCY = 1,
204    /**
205     * Indicates the implementation must handle the call through normal call routing.
206     */
207    NORMAL = 2,
208};
209
210enum RadioTechnology : @1.0::RadioTechnology {
211    /** 5G NR. This is only use in 5G Standalone mode. */
212    NR = 20,
213};
214
215enum RadioAccessFamily : @1.0::RadioAccessFamily {
216    /** 5G NR. This is only use in 5G Standalone mode. */
217    NR = 1 << RadioTechnology:NR,
218};
219
220/** Mapping the frequency to a rough range. */
221enum FrequencyRange : int32_t {
222    /** Indicates the frequency range is below 1GHz. */
223    LOW = 1,
224
225    /** Indicates the frequency range is between 1GHz and 3GHz. */
226    MID = 2,
227
228    /** Indicates the frequency range is between 3GHz and 6GHz. */
229    HIGH = 3,
230
231    /** Indicates the frequency range is above 6GHz (millimeter wave frequency). */
232    MMWAVE = 4,
233};
234
235/**
236 * Expose more setup data call failures.
237 */
238enum DataCallFailCause : @1.0::DataCallFailCause {
239    /**
240     * Network cannot provide the requested service and PDP context is deactivated because of LLC
241     * or SNDCP failure.
242     */
243    LLC_SNDCP = 0x19,
244    /**
245     * UE requested to modify QoS parameters or the bearer control mode, which is not compatible
246     * with the selected bearer control mode.
247     */
248    ACTIVATION_REJECTED_BCM_VIOLATION = 0x30,
249    /**
250     * Network has already initiated the activation, modification, or deactivation of bearer
251     * resources that was requested by the UE.
252     */
253    COLLISION_WITH_NETWORK_INITIATED_REQUEST = 0x38,
254    /**
255     * Network supports IPv4v6 PDP type only. Non-IP type is not allowed. In LTE mode of operation,
256     * this is a PDN throttling cause code, meaning the UE may throttle further requests to the
257     * same APN.
258     */
259    ONLY_IPV4V6_ALLOWED = 0x39,
260    /**
261     * Network supports non-IP PDP type only. IPv4, IPv6 and IPv4v6 is not allowed. In LTE mode of
262     * operation, this is a PDN throttling cause code, meaning the UE can throttle further requests
263     * to the same APN.
264     */
265    ONLY_NON_IP_ALLOWED = 0x3A,
266    /**
267     * QCI (QoS Class Identifier) indicated in the UE request cannot be supported.
268     */
269    UNSUPPORTED_QCI_VALUE = 0x3B,
270    /**
271     * Procedure requested by the UE was rejected because the bearer handling is not supported.
272     */
273    BEARER_HANDLING_NOT_SUPPORTED = 0x3C,
274    /**
275     * Not receiving a DNS address that was mandatory.
276     */
277    INVALID_DNS_ADDR = 0x7B,
278    /**
279     * Not receiving either a PCSCF or a DNS address, one of them being mandatory.
280     */
281    INVALID_PCSCF_OR_DNS_ADDRESS = 0x7C,
282    /**
283     * Emergency call bring up on a different ePDG.
284     */
285    CALL_PREEMPT_BY_EMERGENCY_APN = 0x7F,
286    /**
287     * UE performs a detach or disconnect PDN action based on TE requirements.
288     */
289    UE_INITIATED_DETACH_OR_DISCONNECT = 0x80,
290
291    /**
292     * Reason unspecified for foreign agent rejected MIP (Mobile IP) registration.
293     */
294    MIP_FA_REASON_UNSPECIFIED = 0x7D0,
295    /**
296     * Foreign agent administratively prohibited MIP (Mobile IP) registration.
297     */
298    MIP_FA_ADMIN_PROHIBITED = 0x7D1,
299    /**
300     * Foreign agent rejected MIP (Mobile IP) registration because of insufficient resources.
301     */
302    MIP_FA_INSUFFICIENT_RESOURCES = 0x7D2,
303    /**
304     * Foreign agent rejected MIP (Mobile IP) registration because of MN-AAA authenticator was
305     * wrong.
306     */
307    MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE = 0x7D3,
308    /**
309     * Foreign agent rejected MIP (Mobile IP) registration because of home agent authentication
310     * failure.
311     */
312    MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE = 0x7D4,
313    /**
314     * Foreign agent rejected MIP (Mobile IP) registration because of requested lifetime was too
315     * long.
316     */
317    MIP_FA_REQUESTED_LIFETIME_TOO_LONG = 0x7D5,
318    /**
319     * Foreign agent rejected MIP (Mobile IP) registration because of malformed request.
320     */
321    MIP_FA_MALFORMED_REQUEST = 0x7D6,
322    /**
323     * Foreign agent rejected MIP (Mobile IP) registration because of malformed reply.
324     */
325    MIP_FA_MALFORMED_REPLY = 0x7D7,
326    /**
327     * Foreign agent rejected MIP (Mobile IP) registration because of requested encapsulation was
328     * unavailable.
329     */
330    MIP_FA_ENCAPSULATION_UNAVAILABLE = 0x7D8,
331    /**
332     * Foreign agent rejected MIP (Mobile IP) registration of VJ Header Compression was unavailable.
333     */
334    MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE = 0x7D9,
335    /**
336     * Foreign agent rejected MIP (Mobile IP) registration because of reverse tunnel was
337     * unavailable.
338     */
339    MIP_FA_REVERSE_TUNNEL_UNAVAILABLE = 0x7DA,
340    /**
341     * Foreign agent rejected MIP (Mobile IP) registration because of reverse tunnel was mandatory
342     * but not requested by device.
343     */
344    MIP_FA_REVERSE_TUNNEL_IS_MANDATORY = 0x7DB,
345    /**
346     * Foreign agent rejected MIP (Mobile IP) registration because of delivery style was not
347     * supported.
348     */
349    MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED = 0x7DC,
350    /**
351     * Foreign agent rejected MIP (Mobile IP) registration because of missing NAI (Network Access
352     * Identifier).
353     */
354    MIP_FA_MISSING_NAI = 0x7DD,
355    /**
356     * Foreign agent rejected MIP (Mobile IP) registration because of missing Home Agent.
357     */
358    MIP_FA_MISSING_HOME_AGENT = 0x7DE,
359    /**
360     * Foreign agent rejected MIP (Mobile IP) registration because of missing Home Address.
361     */
362    MIP_FA_MISSING_HOME_ADDRESS = 0x7DF,
363    /**
364     * Foreign agent rejected MIP (Mobile IP) registration because of unknown challenge.
365     */
366    MIP_FA_UNKNOWN_CHALLENGE = 0x7E0,
367    /**
368     * Foreign agent rejected MIP (Mobile IP) registration because of missing challenge.
369     */
370    MIP_FA_MISSING_CHALLENGE = 0x7E1,
371    /**
372     * Foreign agent rejected MIP (Mobile IP) registration because of stale challenge.
373     */
374    MIP_FA_STALE_CHALLENGE = 0x7E2,
375    /**
376     * Reason unspecified for home agent rejected MIP (Mobile IP) registration.
377     */
378    MIP_HA_REASON_UNSPECIFIED = 0x7E3,
379    /**
380     * Home agent administratively prohibited MIP (Mobile IP) registration.
381     */
382    MIP_HA_ADMIN_PROHIBITED = 0x7E4,
383    /**
384     * Home agent rejected MIP (Mobile IP) registration because of insufficient resources.
385     */
386    MIP_HA_INSUFFICIENT_RESOURCES = 0x7E5,
387    /**
388     * Home agent rejected MIP (Mobile IP) registration because of MN-HA authenticator was wrong.
389     */
390    MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE = 0x7E6,
391    /**
392     * Home agent rejected MIP (Mobile IP) registration because of foreign agent authentication
393     * failure.
394     */
395    MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE = 0x7E7,
396    /**
397     * Home agent rejected MIP (Mobile IP) registration because of registration id mismatch.
398     */
399    MIP_HA_REGISTRATION_ID_MISMATCH = 0x7E8,
400    /**
401     * Home agent rejected MIP (Mobile IP) registration because of malformed request.
402     */
403    MIP_HA_MALFORMED_REQUEST = 0x7E9,
404    /**
405     * Home agent rejected MIP (Mobile IP) registration because of unknown home agent address.
406     */
407    MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS = 0x7EA,
408    /**
409     * Home agent rejected MIP (Mobile IP) registration because of reverse tunnel was unavailable.
410     */
411    MIP_HA_REVERSE_TUNNEL_UNAVAILABLE = 0x7EB,
412    /**
413     * Home agent rejected MIP (Mobile IP) registration because of reverse tunnel is mandatory but
414     * not requested by device.
415     */
416    MIP_HA_REVERSE_TUNNEL_IS_MANDATORY = 0x7EC,
417    /**
418     * Home agent rejected MIP (Mobile IP) registration because of encapsulation unavailable.
419     */
420    MIP_HA_ENCAPSULATION_UNAVAILABLE = 0x7ED,
421    /**
422     * Tearing down is in progress.
423     */
424    CLOSE_IN_PROGRESS = 0x7EE,
425    /**
426     * Brought down by the network.
427     */
428    NETWORK_INITIATED_TERMINATION = 0x7EF,
429    /**
430     * Another application in modem preempts the data call.
431     */
432    MODEM_APP_PREEMPTED = 0x7F0,
433    /**
434     * IPV4 PDN is in throttled state due to network providing only IPV6 address during the previous
435     * VSNCP bringup (subs_limited_to_v6).
436     */
437    PDN_IPV4_CALL_DISALLOWED = 0x7F1,
438    /**
439     * IPV4 PDN is in throttled state due to previous VSNCP bringup failure(s).
440     */
441    PDN_IPV4_CALL_THROTTLED = 0x7F2,
442    /**
443     * IPV6 PDN is in throttled state due to network providing only IPV4 address during the previous
444     * VSNCP bringup (subs_limited_to_v4).
445     */
446    PDN_IPV6_CALL_DISALLOWED = 0x7F3,
447    /**
448     * IPV6 PDN is in throttled state due to previous VSNCP bringup failure(s).
449     */
450    PDN_IPV6_CALL_THROTTLED = 0x7F4,
451    /**
452     * Modem restart.
453     */
454    MODEM_RESTART = 0x7F5,
455    /**
456     * PDP PPP calls are not supported.
457     */
458    PDP_PPP_NOT_SUPPORTED = 0x7F6,
459    /**
460     * RAT on which the data call is attempted/connected is no longer the preferred RAT.
461     */
462    UNPREFERRED_RAT = 0x7F7,
463    /**
464     * Physical link is in the process of cleanup.
465     */
466    PHYSICAL_LINK_CLOSE_IN_PROGRESS = 0x7F8,
467    /**
468     * Interface bring up is attempted for an APN that is yet to be handed over to target RAT.
469     */
470    APN_PENDING_HANDOVER = 0x7F9,
471    /**
472     * APN bearer type in the profile does not match preferred network mode.
473     */
474    PROFILE_BEARER_INCOMPATIBLE = 0x7FA,
475    /**
476     * Card was refreshed or removed.
477     */
478    SIM_CARD_CHANGED = 0x7FB,
479    /**
480     * Device is going into lower power mode or powering down.
481     */
482    LOW_POWER_MODE_OR_POWERING_DOWN = 0x7FC,
483    /**
484     * APN has been disabled.
485     */
486    APN_DISABLED = 0x7FD,
487    /**
488     * Maximum PPP inactivity timer expired.
489     */
490    MAX_PPP_INACTIVITY_TIMER_EXPIRED = 0x7FE,
491    /**
492     * IPv6 address transfer failed.
493     */
494    IPV6_ADDRESS_TRANSFER_FAILED = 0x7FF,
495    /**
496     * Target RAT swap failed.
497     */
498    TRAT_SWAP_FAILED = 0x800,
499    /**
500     * Device falls back from eHRPD to HRPD.
501     */
502    EHRPD_TO_HRPD_FALLBACK = 0x801,
503    /**
504     * UE is in MIP-only configuration but the MIP configuration fails on call bring up due to
505     * incorrect provisioning.
506     */
507    MIP_CONFIG_FAILURE = 0x802,
508    /**
509     * PDN inactivity timer expired due to no data transmission in a configurable duration of time.
510     */
511    PDN_INACTIVITY_TIMER_EXPIRED = 0x803,
512    /**
513     * IPv4 data call bring up is rejected because the UE already maintains the allotted maximum
514     * number of IPv4 data connections.
515     */
516    MAX_IPV4_CONNECTIONS = 0x804,
517    /**
518     * IPv6 data call bring up is rejected because the UE already maintains the allotted maximum
519     * number of IPv6 data connections.
520     */
521    MAX_IPV6_CONNECTIONS = 0x805,
522    /**
523     * New PDN bring up is rejected during interface selection because the UE has already allotted
524     * the available interfaces for other PDNs.
525     */
526    APN_MISMATCH = 0x806,
527    /**
528     * New call bring up is rejected since the existing data call IP type doesn't match the
529     * requested IP.
530     */
531    IP_VERSION_MISMATCH = 0x807,
532    /**
533     * Dial up networking (DUN) call bring up is rejected since UE is in eHRPD RAT.
534     */
535    DUN_CALL_DISALLOWED = 0x808,
536    /**
537     * Rejected/Brought down since UE is transition between EPC and NONEPC RAT.
538     */
539    INTERNAL_EPC_NONEPC_TRANSITION = 0x809,
540    /**
541     * The current interface is being in use.
542     */
543    INTERFACE_IN_USE = 0x80A,
544    /**
545     * PDN connection to the APN is disallowed on the roaming network.
546     */
547    APN_DISALLOWED_ON_ROAMING = 0x80B,
548    /**
549     * APN-related parameters are changed.
550     */
551    APN_PARAMETERS_CHANGED = 0x80C,
552    /**
553     * PDN is attempted to be brought up with NULL APN but NULL APN is not supported.
554     */
555    NULL_APN_DISALLOWED = 0x80D,
556    /**
557     * Thermal level increases and causes calls to be torn down when normal mode of operation is
558     * not allowed.
559     */
560    THERMAL_MITIGATION = 0x80E,
561    /**
562     * PDN Connection to a given APN is disallowed because data is disabled from the device user
563     * interface settings.
564     */
565    DATA_SETTINGS_DISABLED = 0x80F,
566    /**
567     * PDN Connection to a given APN is disallowed because data roaming is disabled from the device
568     * user interface settings and the UE is roaming.
569     */
570    DATA_ROAMING_SETTINGS_DISABLED = 0x810,
571    /**
572     * DDS (Default data subscription) switch occurs.
573     */
574    DDS_SWITCHED = 0x811,
575    /**
576     * PDN being brought up with an APN that is part of forbidden APN Name list.
577     */
578    FORBIDDEN_APN_NAME = 0x812,
579    /**
580     * Default data subscription switch is in progress.
581     */
582    DDS_SWITCH_IN_PROGRESS = 0x813,
583    /**
584     * Roaming is disallowed during call bring up.
585     */
586    CALL_DISALLOWED_IN_ROAMING = 0x814,
587    /**
588     * UE is unable to bring up a non-IP data call because the device is not camped on a NB1 cell.
589     */
590    NON_IP_NOT_SUPPORTED = 0x815,
591    /**
592     * Non-IP PDN is in throttled state due to previous VSNCP bringup failure(s).
593     */
594    PDN_NON_IP_CALL_THROTTLED = 0x816,
595    /**
596     * Non-IP PDN is in disallowed state due to the network providing only an IP address.
597     */
598    PDN_NON_IP_CALL_DISALLOWED = 0x817,
599    /**
600     * Device in CDMA locked state.
601     */
602    CDMA_LOCK = 0x818,
603    /**
604     * Received an intercept order from the base station.
605     */
606    CDMA_INTERCEPT = 0x819,
607    /**
608     * Receiving a reorder from the base station.
609     */
610    CDMA_REORDER = 0x81A,
611    /**
612     * Receiving a release from the base station with a SO (Service Option) Reject reason.
613     */
614    CDMA_RELEASE_DUE_TO_SO_REJECTION = 0x81B,
615    /**
616     * Receiving an incoming call from the base station.
617     */
618    CDMA_INCOMING_CALL = 0x81C,
619    /**
620     * Received an alert stop from the base station due to incoming only.
621     */
622    CDMA_ALERT_STOP = 0x81D,
623    /**
624     * Channel acquisition failures. This indicates that device has failed acquiring all the
625     * channels in the PRL.
626     */
627    CHANNEL_ACQUISITION_FAILURE = 0x81E,
628    /**
629     * Maximum access probes transmitted.
630     */
631    MAX_ACCESS_PROBE = 0x81F,
632    /**
633     * Concurrent service is not supported by base station.
634     */
635    CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION = 0x820,
636    /**
637     * There was no response received from the base station.
638     */
639    NO_RESPONSE_FROM_BASE_STATION = 0x821,
640    /**
641     * The base station rejecting the call.
642     */
643    REJECTED_BY_BASE_STATION = 0x822,
644    /**
645     * The concurrent services requested were not compatible.
646     */
647    CONCURRENT_SERVICES_INCOMPATIBLE = 0x823,
648    /**
649     * Device does not have CDMA service.
650     */
651    NO_CDMA_SERVICE = 0x824,
652    /**
653     * RUIM not being present.
654     */
655    RUIM_NOT_PRESENT = 0x825,
656    /**
657     * Receiving a retry order from the base station.
658     */
659    CDMA_RETRY_ORDER = 0x826,
660    /**
661     * Access blocked by the base station.
662     */
663    ACCESS_BLOCK = 0x827,
664    /**
665     * Access blocked by the base station for all mobile devices.
666     */
667    ACCESS_BLOCK_ALL = 0x828,
668    /**
669     * Maximum access probes for the IS-707B call.
670     */
671    IS707B_MAX_ACCESS_PROBES = 0x829,
672    /**
673     * Put device in thermal emergency.
674     */
675    THERMAL_EMERGENCY = 0x82A,
676    /**
677     * In favor of a voice call or SMS when concurrent voice and data are not supported.
678     */
679    CONCURRENT_SERVICES_NOT_ALLOWED = 0x82B,
680    /**
681     * The other clients rejected incoming call.
682     */
683    INCOMING_CALL_REJECTED = 0x82C,
684    /**
685     * No service on the gateway.
686     */
687    NO_SERVICE_ON_GATEWAY = 0x82D,
688    /**
689     * GPRS context is not available.
690     */
691    NO_GPRS_CONTEXT = 0x82E,
692    /**
693     * Network refuses service to the MS because either an identity of the MS is not acceptable to
694     * the network or the MS does not pass the authentication check.
695     */
696    ILLEGAL_MS = 0x82F,
697    /**
698     * ME could not be authenticated and the ME used is not acceptable to the network.
699     */
700    ILLEGAL_ME = 0x830,
701    /**
702     * Not allowed to operate either GPRS or non-GPRS services.
703     */
704    GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 0x831,
705    /**
706     * MS is not allowed to operate GPRS services.
707     */
708    GPRS_SERVICES_NOT_ALLOWED = 0x832,
709    /**
710     * No matching identity or context could be found in the network.
711     */
712    MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK = 0x833,
713    /**
714     * Mobile reachable timer has expired, or the GMM context data related to the subscription does
715     * not exist in the SGSN.
716     */
717    IMPLICITLY_DETACHED = 0x834,
718    /**
719     * UE requests GPRS service, or the network initiates a detach request in a PLMN which does not
720     * offer roaming for GPRS services to that MS.
721     */
722    PLMN_NOT_ALLOWED = 0x835,
723    /**
724     * MS requests service, or the network initiates a detach request, in a location area where the
725     * HPLMN determines that the MS, by subscription, is not allowed to operate.
726     */
727    LOCATION_AREA_NOT_ALLOWED = 0x836,
728    /**
729     * UE requests GPRS service or the network initiates a detach request in a PLMN that does not
730     * offer roaming for GPRS services.
731     */
732    GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN = 0x837,
733    /**
734     * PDP context already exists.
735     */
736    PDP_DUPLICATE = 0x838,
737    /**
738     * RAT change on the UE.
739     */
740    UE_RAT_CHANGE = 0x839,
741    /**
742     * Network cannot serve a request from the MS due to congestion.
743     */
744    CONGESTION = 0x83A,
745    /**
746     * MS requests an establishment of the radio access bearers for all active PDP contexts by
747     * sending a service request message indicating data to the network, but the SGSN does not have
748     * any active PDP context.
749     */
750    NO_PDP_CONTEXT_ACTIVATED = 0x83B,
751    /**
752     * Access class blocking restrictions for the current camped cell.
753     */
754    ACCESS_CLASS_DSAC_REJECTION = 0x83C,
755    /**
756     * SM attempts PDP activation for a maximum of four attempts.
757     */
758    PDP_ACTIVATE_MAX_RETRY_FAILED = 0x83D,
759    /**
760     * Radio access bearer failure.
761     */
762    RADIO_ACCESS_BEARER_FAILURE = 0x83E,
763    /**
764     * Invalid EPS bearer identity in the request.
765     */
766    ESM_UNKNOWN_EPS_BEARER_CONTEXT = 0x83F,
767    /**
768     * Data radio bearer is released by the RRC.
769     */
770    DRB_RELEASED_BY_RRC = 0x840,
771    /**
772     * Indicate the connection was released.
773     */
774    CONNECTION_RELEASED = 0x841,
775    /**
776     * UE is detached.
777     */
778    EMM_DETACHED = 0x842,
779    /**
780     * Attach procedure is rejected by the network.
781     */
782    EMM_ATTACH_FAILED = 0x843,
783    /**
784     * Attach procedure is started for EMC purposes.
785     */
786    EMM_ATTACH_STARTED = 0x844,
787    /**
788     * Service request procedure failure.
789     */
790    LTE_NAS_SERVICE_REQUEST_FAILED = 0x845,
791    /**
792     * Active dedicated bearer was requested using the same default bearer ID.
793     */
794    DUPLICATE_BEARER_ID = 0x846,
795    /**
796     * Collision scenarios for the UE and network-initiated procedures.
797     */
798    ESM_COLLISION_SCENARIOS = 0x847,
799    /**
800     * Bearer must be deactivated to synchronize with the network.
801     */
802    ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK = 0x848,
803    /**
804     * Active dedicated bearer was requested for an existing default bearer.
805     */
806    ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER = 0x849,
807    /**
808     * Bad OTA message is received from the network.
809     */
810    ESM_BAD_OTA_MESSAGE = 0x84A,
811    /**
812     * Download server rejected the call.
813     */
814    ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL = 0x84B,
815    /**
816     * PDN was disconnected by the downlaod server due to IRAT.
817     */
818    ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT = 0x84C,
819    /**
820     * Dedicated bearer will be deactivated regardless of the network response.
821     */
822    DS_EXPLICIT_DEACTIVATION = 0x84D,
823    /**
824     * No specific local cause is mentioned, usually a valid OTA cause.
825     */
826    ESM_LOCAL_CAUSE_NONE = 0x84E,
827    /**
828     * Throttling is not needed for this service request failure.
829     */
830    LTE_THROTTLING_NOT_REQUIRED = 0x84F,
831    /**
832     * Access control list check failure at the lower layer.
833     */
834    ACCESS_CONTROL_LIST_CHECK_FAILURE = 0x850,
835    /**
836     * Service is not allowed on the requested PLMN.
837     */
838    SERVICE_NOT_ALLOWED_ON_PLMN = 0x851,
839    /**
840     * T3417 timer expiration of the service request procedure.
841     */
842    EMM_T3417_EXPIRED = 0x852,
843    /**
844     * Extended service request fails due to expiration of the T3417 EXT timer.
845     */
846    EMM_T3417_EXT_EXPIRED = 0x853,
847    /**
848     * Transmission failure of radio resource control (RRC) uplink data.
849     */
850    RRC_UPLINK_DATA_TRANSMISSION_FAILURE = 0x854,
851    /**
852     * Radio resource control (RRC) uplink data delivery failed due to a handover.
853     */
854    RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER = 0x855,
855    /**
856     * Radio resource control (RRC) uplink data delivery failed due to a connection release.
857     */
858    RRC_UPLINK_CONNECTION_RELEASE = 0x856,
859    /**
860     * Radio resource control (RRC) uplink data delivery failed due to a radio link failure.
861     */
862    RRC_UPLINK_RADIO_LINK_FAILURE = 0x857,
863    /**
864     * Radio resource control (RRC) is not connected but the non-access stratum (NAS) sends an
865     * uplink data request.
866     */
867    RRC_UPLINK_ERROR_REQUEST_FROM_NAS = 0x858,
868    /**
869     * Radio resource control (RRC) connection failure at access stratum.
870     */
871    RRC_CONNECTION_ACCESS_STRATUM_FAILURE = 0x859,
872    /**
873     * Radio resource control (RRC) connection establishment is aborted due to another procedure.
874     */
875    RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS = 0x85A,
876    /**
877     * Radio resource control (RRC) connection establishment failed due to access barrred.
878     */
879    RRC_CONNECTION_ACCESS_BARRED = 0x85B,
880    /**
881     * Radio resource control (RRC) connection establishment failed due to cell reselection at
882     * access stratum.
883     */
884    RRC_CONNECTION_CELL_RESELECTION = 0x85C,
885    /**
886     * Connection establishment failed due to configuration failure at the radio resource control
887     * (RRC).
888     */
889    RRC_CONNECTION_CONFIG_FAILURE = 0x85D,
890    /**
891     * Radio resource control (RRC) connection could not be established in the time limit.
892     */
893    RRC_CONNECTION_TIMER_EXPIRED = 0x85E,
894    /**
895     * Connection establishment failed due to a link failure at the radio resource control (RRC).
896     */
897    RRC_CONNECTION_LINK_FAILURE = 0x85F,
898    /**
899     * Connection establishment failed as the radio resource control (RRC) is not camped on any
900     * cell.
901     */
902    RRC_CONNECTION_CELL_NOT_CAMPED = 0x860,
903    /**
904     * Connection establishment failed due to a service interval failure at the radio resource
905     * control (RRC).
906     */
907    RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE = 0x861,
908    /**
909     * Radio resource control (RRC) connection establishment failed due to the network rejecting the
910     * UE connection request.
911     */
912    RRC_CONNECTION_REJECT_BY_NETWORK = 0x862,
913    /**
914     * Normal radio resource control (RRC) connection release.
915     */
916    RRC_CONNECTION_NORMAL_RELEASE = 0x863,
917    /**
918     * Radio resource control (RRC) connection release failed due to radio link failure conditions.
919     */
920    RRC_CONNECTION_RADIO_LINK_FAILURE = 0x864,
921    /**
922     * Radio resource control (RRC) connection re-establishment failure.
923     */
924    RRC_CONNECTION_REESTABLISHMENT_FAILURE = 0x865,
925    /**
926     * UE is out of service during the call register.
927     */
928    RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER = 0x866,
929    /**
930     * Connection has been released by the radio resource control (RRC) due to an abort request.
931     */
932    RRC_CONNECTION_ABORT_REQUEST = 0x867,
933    /**
934     * Radio resource control (RRC) connection released due to a system information block read
935     * error.
936     */
937    RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR = 0x868,
938    /**
939     * Network-initiated detach with reattach.
940     */
941    NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH = 0x869,
942    /**
943     * Network-initiated detach without reattach.
944     */
945    NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH = 0x86A,
946    /**
947     * ESM procedure maximum attempt timeout failure.
948     */
949    ESM_PROCEDURE_TIME_OUT = 0x86B,
950    /**
951     * No PDP exists with the given connection ID while modifying or deactivating or activation for
952     * an already active PDP.
953     */
954    INVALID_CONNECTION_ID = 0x86C,
955    /**
956     * Maximum NSAPIs have been exceeded during PDP activation.
957     */
958    MAXIMIUM_NSAPIS_EXCEEDED = 0x86D,
959    /**
960     * Primary context for NSAPI does not exist.
961     */
962    INVALID_PRIMARY_NSAPI = 0x86E,
963    /**
964     * Unable to encode the OTA message for MT PDP or deactivate PDP.
965     */
966    CANNOT_ENCODE_OTA_MESSAGE = 0x86F,
967    /**
968     * Radio access bearer is not established by the lower layers during activation, modification,
969     * or deactivation.
970     */
971    RADIO_ACCESS_BEARER_SETUP_FAILURE = 0x870,
972    /**
973     * Expiration of the PDP establish timer with a maximum of five retries.
974     */
975    PDP_ESTABLISH_TIMEOUT_EXPIRED = 0x871,
976    /**
977     * Expiration of the PDP modify timer with a maximum of four retries.
978     */
979    PDP_MODIFY_TIMEOUT_EXPIRED = 0x872,
980    /**
981     * Expiration of the PDP deactivate timer with a maximum of four retries.
982     */
983    PDP_INACTIVE_TIMEOUT_EXPIRED = 0x873,
984    /**
985     * PDP activation failed due to RRC_ABORT or a forbidden PLMN.
986     */
987    PDP_LOWERLAYER_ERROR = 0x874,
988    /**
989     * MO PDP modify collision when the MT PDP is already in progress.
990     */
991    PDP_MODIFY_COLLISION = 0x875,
992    /**
993     * Maximum size of the L2 message was exceeded.
994     */
995    MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED = 0x876,
996    /**
997     * Non-access stratum (NAS) request was rejected by the network.
998     */
999    NAS_REQUEST_REJECTED_BY_NETWORK = 0x877,
1000    /**
1001     * Radio resource control (RRC) connection establishment failure due to an error in the request
1002     * message.
1003     */
1004    RRC_CONNECTION_INVALID_REQUEST = 0x878,
1005    /**
1006     * Radio resource control (RRC) connection establishment failure due to a change in the tracking
1007     * area ID.
1008     */
1009    RRC_CONNECTION_TRACKING_AREA_ID_CHANGED = 0x879,
1010    /**
1011     * Radio resource control (RRC) connection establishment failure due to the RF was unavailable.
1012     */
1013    RRC_CONNECTION_RF_UNAVAILABLE = 0x87A,
1014    /**
1015     * Radio resource control (RRC) connection was aborted before deactivating the LTE stack due to
1016     * a successful LTE to WCDMA/GSM/TD-SCDMA IRAT change.
1017     */
1018    RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE = 0x87B,
1019    /**
1020     * If the UE has an LTE radio link failure before security is established, the radio resource
1021     * control (RRC) connection must be released and the UE must return to idle.
1022     */
1023    RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE = 0x87C,
1024    /**
1025     * Radio resource control (RRC) connection was aborted by the non-access stratum (NAS) after an
1026     * IRAT to LTE IRAT handover.
1027     */
1028    RRC_CONNECTION_ABORTED_AFTER_HANDOVER = 0x87D,
1029    /**
1030     * Radio resource control (RRC) connection was aborted before deactivating the LTE stack after a
1031     * successful LTE to GSM/EDGE IRAT cell change order procedure.
1032     */
1033    RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE = 0x87E,
1034    /**
1035     * Radio resource control (RRC) connection was aborted in the middle of a LTE to GSM IRAT cell
1036     * change order procedure.
1037     */
1038    RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE = 0x87F,
1039    /**
1040     * IMSI present in the UE is unknown in the home subscriber server.
1041     */
1042    IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER = 0x880,
1043    /**
1044     * IMEI of the UE is not accepted by the network.
1045     */
1046    IMEI_NOT_ACCEPTED = 0x881,
1047    /**
1048     * EPS and non-EPS services are not allowed by the network.
1049     */
1050    EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED = 0x882,
1051    /**
1052     * EPS services are not allowed in the PLMN.
1053     */
1054    EPS_SERVICES_NOT_ALLOWED_IN_PLMN = 0x883,
1055    /**
1056     * Mobile switching center is temporarily unreachable.
1057     */
1058    MSC_TEMPORARILY_NOT_REACHABLE = 0x884,
1059    /**
1060     * CS domain is not available.
1061     */
1062    CS_DOMAIN_NOT_AVAILABLE = 0x885,
1063    /**
1064     * ESM level failure.
1065     */
1066    ESM_FAILURE = 0x886,
1067    /**
1068     * MAC level failure.
1069     */
1070    MAC_FAILURE = 0x887,
1071    /**
1072     * Synchronization failure.
1073     */
1074    SYNCHRONIZATION_FAILURE = 0x888,
1075    /**
1076     * UE security capabilities mismatch.
1077     */
1078    UE_SECURITY_CAPABILITIES_MISMATCH = 0x889,
1079    /**
1080     * Unspecified security mode reject.
1081     */
1082    SECURITY_MODE_REJECTED = 0x88A,
1083    /**
1084     * Unacceptable non-EPS authentication.
1085     */
1086    UNACCEPTABLE_NON_EPS_AUTHENTICATION = 0x88B,
1087    /**
1088     * CS fallback call establishment is not allowed.
1089     */
1090    CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED = 0x88C,
1091    /**
1092     * No EPS bearer context was activated.
1093     */
1094    NO_EPS_BEARER_CONTEXT_ACTIVATED = 0x88D,
1095    /**
1096     * Invalid EMM state.
1097     */
1098    INVALID_EMM_STATE = 0x88E,
1099    /**
1100     * Non-Access Spectrum layer failure.
1101     */
1102    NAS_LAYER_FAILURE = 0x88F,
1103    /**
1104     * Multiple PDP call feature is disabled.
1105     */
1106    MULTIPLE_PDP_CALL_NOT_ALLOWED = 0x890,
1107    /**
1108     * Data call has been brought down because EMBMS is not enabled at the RRC layer.
1109     */
1110    EMBMS_NOT_ENABLED = 0x891,
1111    /**
1112     * Data call was unsuccessfully transferred during the IRAT handover.
1113     */
1114    IRAT_HANDOVER_FAILED = 0x892,
1115    /**
1116     * EMBMS data call has been successfully brought down.
1117     */
1118    EMBMS_REGULAR_DEACTIVATION = 0x893,
1119    /**
1120     * Test loop-back data call has been successfully brought down.
1121     */
1122    TEST_LOOPBACK_REGULAR_DEACTIVATION = 0x894,
1123    /**
1124     * Lower layer registration failure.
1125     */
1126    LOWER_LAYER_REGISTRATION_FAILURE = 0x895,
1127    /**
1128     * Network initiates a detach on LTE with error cause "data plan has been replenished or has
1129     * expired".
1130     */
1131    DATA_PLAN_EXPIRED = 0x896,
1132    /**
1133     * UMTS interface is brought down due to handover from UMTS to iWLAN.
1134     */
1135    UMTS_HANDOVER_TO_IWLAN = 0x897,
1136    /**
1137     * Received a connection deny due to general or network busy on EVDO network.
1138     */
1139    EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY = 0x898,
1140    /**
1141     * Received a connection deny due to billing or authentication failure on EVDO network.
1142     */
1143    EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE = 0x899,
1144    /**
1145     * HDR system has been changed due to redirection or the PRL was not preferred.
1146     */
1147    EVDO_HDR_CHANGED = 0x89A,
1148    /**
1149     * Device exited HDR due to redirection or the PRL was not preferred.
1150     */
1151    EVDO_HDR_EXITED = 0x89B,
1152    /**
1153     * Device does not have an HDR session.
1154     */
1155    EVDO_HDR_NO_SESSION = 0x89C,
1156    /**
1157     * It is ending an HDR call origination in favor of a GPS fix.
1158     */
1159    EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL = 0x89D,
1160    /**
1161     * Connection setup on the HDR system was time out.
1162     */
1163    EVDO_HDR_CONNECTION_SETUP_TIMEOUT = 0x89E,
1164    /**
1165     * Device failed to acquire a co-located HDR for origination.
1166     */
1167    FAILED_TO_ACQUIRE_COLOCATED_HDR = 0x89F,
1168    /**
1169     * OTASP commit is in progress.
1170     */
1171    OTASP_COMMIT_IN_PROGRESS = 0x8A0,
1172    /**
1173     * Device has no hybrid HDR service.
1174     */
1175    NO_HYBRID_HDR_SERVICE = 0x8A1,
1176    /**
1177     * HDR module could not be obtained because of the RF locked.
1178     */
1179    HDR_NO_LOCK_GRANTED = 0x8A2,
1180    /**
1181     * DBM or SMS is in progress.
1182     */
1183    DBM_OR_SMS_IN_PROGRESS = 0x8A3,
1184    /**
1185     * HDR module released the call due to fade.
1186     */
1187    HDR_FADE = 0x8A4,
1188    /**
1189     * HDR system access failure.
1190     */
1191    HDR_ACCESS_FAILURE = 0x8A5,
1192    /**
1193     * P_rev supported by 1 base station is less than 6, which is not supported for a 1X data call.
1194     * The UE must be in the footprint of BS which has p_rev >= 6 to support this SO33 call.
1195     */
1196    UNSUPPORTED_1X_PREV = 0x8A6,
1197    /**
1198     * Client ended the data call.
1199     */
1200    LOCAL_END = 0x8A7,
1201    /**
1202     * Device has no service.
1203     */
1204    NO_SERVICE = 0x8A8,
1205    /**
1206     * Device lost the system due to fade.
1207     */
1208    FADE = 0x8A9,
1209    /**
1210     * Receiving a release from the base station with no reason.
1211     */
1212    NORMAL_RELEASE = 0x8AA,
1213    /**
1214     * Access attempt is already in progress.
1215     */
1216    ACCESS_ATTEMPT_ALREADY_IN_PROGRESS = 0x8AB,
1217    /**
1218     * Device is in the process of redirecting or handing off to a different target system.
1219     */
1220    REDIRECTION_OR_HANDOFF_IN_PROGRESS = 0x8AC,
1221    /**
1222     * Device is operating in Emergency mode.
1223     */
1224    EMERGENCY_MODE = 0x8AD,
1225    /**
1226     * Device is in use (e.g., voice call).
1227     */
1228    PHONE_IN_USE = 0x8AE,
1229    /**
1230     * Device operational mode is different from the mode requested in the traffic channel bring up.
1231     */
1232    INVALID_MODE = 0x8AF,
1233    /**
1234     * SIM was marked by the network as invalid for the circuit and/or packet service domain.
1235     */
1236    INVALID_SIM_STATE = 0x8B0,
1237    /**
1238     * There is no co-located HDR.
1239     */
1240    NO_COLLOCATED_HDR = 0x8B1,
1241    /**
1242     * UE is entering power save mode.
1243     */
1244    UE_IS_ENTERING_POWERSAVE_MODE = 0x8B2,
1245    /**
1246     * Dual switch from single standby to dual standby is in progress.
1247     */
1248    DUAL_SWITCH = 0x8B3,
1249    /**
1250     * Data call bring up fails in the PPP setup due to a timeout. (e.g., an LCP conf ack was not
1251     * received from the network)
1252     */
1253    PPP_TIMEOUT = 0x8B4,
1254    /**
1255     * Data call bring up fails in the PPP setup due to an authorization failure.
1256     * (e.g., authorization is required, but not negotiated with the network during an LCP phase)
1257     */
1258    PPP_AUTH_FAILURE = 0x8B5,
1259    /**
1260     * Data call bring up fails in the PPP setup due to an option mismatch.
1261     */
1262    PPP_OPTION_MISMATCH = 0x8B6,
1263    /**
1264     * Data call bring up fails in the PPP setup due to a PAP failure.
1265     */
1266    PPP_PAP_FAILURE = 0x8B7,
1267    /**
1268     * Data call bring up fails in the PPP setup due to a CHAP failure.
1269     */
1270    PPP_CHAP_FAILURE = 0x8B8,
1271    /**
1272     * Data call bring up fails in the PPP setup because the PPP is in the process of cleaning the
1273     * previous PPP session.
1274     */
1275    PPP_CLOSE_IN_PROGRESS = 0x8B9,
1276    /**
1277     * IPv6 interface bring up fails because the network provided only the IPv4 address for the
1278     * upcoming PDN permanent client can reattempt a IPv6 call bring up after the IPv4 interface is
1279     * also brought down. However, there is no guarantee that the network will provide a IPv6
1280     * address.
1281     */
1282    LIMITED_TO_IPV4 = 0x8BA,
1283    /**
1284     * IPv4 interface bring up fails because the network provided only the IPv6 address for the
1285     * upcoming PDN permanent client can reattempt a IPv4 call bring up after the IPv6 interface is
1286     * also brought down. However there is no guarantee that the network will provide a IPv4
1287     * address.
1288     */
1289    LIMITED_TO_IPV6 = 0x8BB,
1290    /**
1291     * Data call bring up fails in the VSNCP phase due to a VSNCP timeout error.
1292     */
1293    VSNCP_TIMEOUT = 0x8BC,
1294    /**
1295     * Data call bring up fails in the VSNCP phase due to a general error. It's used when there is
1296     * no other specific error code available to report the failure.
1297     */
1298    VSNCP_GEN_ERROR = 0x8BD,
1299    /**
1300     * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
1301     * configuration request because the requested APN is unauthorized.
1302     */
1303    VSNCP_APN_UNATHORIZED = 0x8BE,
1304    /**
1305     * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
1306     * configuration request because the PDN limit has been exceeded.
1307     */
1308    VSNCP_PDN_LIMIT_EXCEEDED = 0x8BF,
1309    /**
1310     * Data call bring up fails in the VSNCP phase due to the network rejected the VSNCP
1311     * configuration request due to no PDN gateway address.
1312     */
1313    VSNCP_NO_PDN_GATEWAY_ADDRESS = 0x8C0,
1314    /**
1315     * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
1316     * configuration request because the PDN gateway is unreachable.
1317     */
1318    VSNCP_PDN_GATEWAY_UNREACHABLE = 0x8C1,
1319    /**
1320     * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
1321     * configuration request due to a PDN gateway reject.
1322     */
1323    VSNCP_PDN_GATEWAY_REJECT = 0x8C2,
1324    /**
1325     * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
1326     * configuration request with the reason of insufficient parameter.
1327     */
1328    VSNCP_INSUFFICIENT_PARAMETERS = 0x8C3,
1329    /**
1330     * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
1331     * configuration request with the reason of resource unavailable.
1332     */
1333    VSNCP_RESOURCE_UNAVAILABLE = 0x8C4,
1334    /**
1335     * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
1336     * configuration request with the reason of administratively prohibited at the HSGW.
1337     */
1338    VSNCP_ADMINISTRATIVELY_PROHIBITED = 0x8C5,
1339    /**
1340     * Data call bring up fails in the VSNCP phase due to a network rejection of PDN ID in use, or
1341     * all existing PDNs are brought down with this end reason because one of the PDN bring up was
1342     * rejected by the network with the reason of PDN ID in use.
1343     */
1344    VSNCP_PDN_ID_IN_USE = 0x8C6,
1345    /**
1346     * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
1347     * configuration request for the reason of subscriber limitation.
1348     */
1349    VSNCP_SUBSCRIBER_LIMITATION = 0x8C7,
1350    /**
1351     * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
1352     * configuration request because the PDN exists for this APN.
1353     */
1354    VSNCP_PDN_EXISTS_FOR_THIS_APN = 0x8C8,
1355    /**
1356     * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP
1357     * configuration request with reconnect to this PDN not allowed, or an active data call is
1358     * terminated by the network because reconnection to this PDN is not allowed. Upon receiving
1359     * this error code from the network, the modem infinitely throttles the PDN until the next power
1360     * cycle.
1361     */
1362    VSNCP_RECONNECT_NOT_ALLOWED = 0x8C9,
1363    /**
1364     * Device failure to obtain the prefix from the network.
1365     */
1366    IPV6_PREFIX_UNAVAILABLE = 0x8CA,
1367    /**
1368     * System preference change back to SRAT during handoff
1369     */
1370    HANDOFF_PREFERENCE_CHANGED = 0x8CB,
1371};
1372
1373/**
1374 * Data connection active status
1375 */
1376enum DataConnActiveStatus : int32_t {
1377    /**
1378     * Indicates the data connection is inactive.
1379     */
1380    INACTIVE = 0,
1381    /**
1382     * Indicates the data connection is active with physical link dormant.
1383     */
1384    DORMANT = 1,
1385    /**
1386     * Indicates the data connection is active with physical link up.
1387     */
1388    ACTIVE = 2,
1389};
1390
1391/**
1392 * Specifies the type of packet data protocol which is defined in TS 27.007 section 10.1.1.
1393 */
1394enum PdpProtocolType : int32_t {
1395    /**
1396     * Unknown protocol
1397     */
1398    UNKNOWN = -1,
1399    /**
1400     * Internet protocol
1401     */
1402    IP = 0,
1403    /**
1404     * Internet protocol, version 6
1405     */
1406    IPV6 = 1,
1407    /**
1408     * Virtual PDP type introduced to handle dual IP stack UE capability.
1409     */
1410    IPV4V6 = 2,
1411    /**
1412     * Point to point protocol
1413     */
1414    PPP = 3,
1415    /**
1416     * Transfer of Non-IP data to external packet data network
1417     */
1418    NON_IP = 4,
1419    /**
1420     * Transfer of Unstructured data to the Data Network via N6
1421     */
1422    UNSTRUCTURED = 5,
1423};
1424
1425safe_union RadioFrequencyInfo {
1426    /** A rough frequency range. */
1427    FrequencyRange range;
1428
1429    /** The Absolute Radio Frequency Channel Number. */
1430    int32_t channelNumber;
1431};
1432
1433struct PhysicalChannelConfig {
1434    @1.2::PhysicalChannelConfig base;
1435
1436    /** The radio technology for this physical channel. */
1437    RadioTechnology rat;
1438
1439    /** The radio frequency info. */
1440    RadioFrequencyInfo rfInfo;
1441
1442    /**
1443     * A list of data calls mapped to this physical channel. The context id must match the cid of
1444     * @1.4::SetupDataCallResult. An empty list means the physical channel has no data call mapped
1445     * to it.
1446     */
1447    vec<int32_t> contextIds;
1448
1449    /**
1450     * The physical cell identifier for this cell.
1451     *
1452     * In UTRAN, this value is primary scrambling code. The range is [0, 511].
1453     * Reference: 3GPP TS 25.213 section 5.2.2.
1454     *
1455     * In EUTRAN, this value is physical layer cell identity. The range is [0, 503].
1456     * Reference: 3GPP TS 36.211 section 6.11.
1457     *
1458     * In 5G RAN, this value is physical layer cell identity. The range is [0, 1008].
1459     * Reference: 3GPP TS 38.211 section 7.4.2.1.
1460     */
1461    uint32_t physicalCellId;
1462};
1463
1464/**
1465 * Type to define the LTE specific network capabilities for voice over PS including
1466 * emergency and normal voice calls.
1467 */
1468struct LteVopsInfo {
1469    /**
1470     * This indicates if camped network support VoLTE services. This information is received
1471     * from LTE network during LTE NAS registration procedure through LTE ATTACH ACCEPT/TAU
1472     * ACCEPT. Refer 3GPP 24.301 EPS network feature support -> IMS VoPS
1473     */
1474    bool isVopsSupported;
1475    /**
1476     * This indicates if camped network support VoLTE emergency bearers. This information
1477     * is received from LTE network through two sources:
1478     * a. During LTE NAS registration procedure through LTE ATTACH ACCEPT/TAU ACCEPT. Refer
1479     *    3GPP 24.301 EPS network feature support -> EMC BS
1480     * b. In case device is not registered on network. Refer 3GPP 25.331 LTE RRC
1481     *    SIB1 : ims-EmergencySupport-r9
1482     * If device is registered on LTE, then this field indicates (a).
1483     * In case of limited service on LTE this field indicates (b).
1484     */
1485    bool isEmcBearerSupported;
1486};
1487
1488/** The parameters of NR 5G Non-Standalone. */
1489struct NrIndicators {
1490    /**
1491     * Indicates that if E-UTRA-NR Dual Connectivity (EN-DC) is supported by the primary serving
1492     * cell.
1493     *
1494     * True the primary serving cell is LTE cell and the plmn-InfoList-r15 is present in SIB2 and
1495     * at least one bit in this list is true, otherwise this value should be false.
1496     *
1497     * Reference: 3GPP TS 36.331 v15.2.2 6.3.1 System information blocks.
1498     */
1499    bool isEndcAvailable;
1500
1501    /**
1502     * True if use of dual connectivity with NR is restricted.
1503     * Reference: 3GPP TS 24.301 v15.03 section 9.3.3.12A.
1504     */
1505    bool isDcNrRestricted;
1506
1507    /**
1508     * True if the bit N is in the PLMN-InfoList-r15 is true and the selected PLMN is present in
1509     * plmn-IdentityList at position N.
1510     * Reference: 3GPP TS 36.331 v15.2.2 section 6.3.1 PLMN-InfoList-r15.
1511     *            3GPP TS 36.331 v15.2.2 section 6.2.2 SystemInformationBlockType1 message.
1512     */
1513    bool isNrAvailable;
1514};
1515
1516struct DataRegStateResult {
1517    @1.2::DataRegStateResult base;
1518
1519    /**
1520     * Network capabilities for voice over PS services. This info is valid only on LTE network and
1521     * must be present when device is camped on LTE. vopsInfo must be empty when device is camped
1522     * only on 2G/3G.
1523     */
1524    safe_union VopsInfo {
1525        Monostate noinit;
1526
1527        LteVopsInfo lteVopsInfo; // LTE network capability
1528    } vopsInfo;
1529
1530    /**
1531     * The parameters of NR 5G Non-Standalone. This value is only valid on E-UTRAN, otherwise
1532     * must be empty.
1533     */
1534    NrIndicators nrIndicators;
1535};
1536
1537/** Contains the configuration of the LTE cell tower. */
1538struct CellConfigLte {
1539    /**
1540     * Indicates that if E-UTRA-NR Dual Connectivity (EN-DC) is supported by the LTE cell.
1541     *
1542     * True if the plmn-InfoList-r15 is present in SIB2 and at least one bit in this list is true,
1543     * otherwise this value should be false.
1544     *
1545     * Reference: 3GPP TS 36.331 v15.2.2 6.3.1 System information blocks.
1546     */
1547    bool isEndcAvailable;
1548};
1549
1550/** Inherits from @1.2::CellInfoLte, in order to add the LTE configuration. */
1551struct CellInfoLte {
1552    @1.2::CellInfoLte base;
1553    CellConfigLte cellConfig;
1554};
1555
1556/** Overwritten from @1.2::CellInfo in order to update the CellInfoLte to 1.4 version. */
1557struct CellInfo {
1558    /**
1559     * True if the phone is registered to a mobile network that provides service on this cell and
1560     * this cell is being used or would be used for network signaling.
1561     */
1562    bool isRegistered;
1563
1564    /** Connection status for the cell. */
1565    CellConnectionStatus connectionStatus;
1566
1567    /** CellInfo details, cellInfoType can tell which cell info should be used. */
1568    safe_union Info {
1569        CellInfoGsm gsm;
1570        CellInfoCdma cdma;
1571        CellInfoWcdma wcdma;
1572        CellInfoTdscdma tdscdma;
1573        CellInfoLte lte;
1574        CellInfoNr nr;
1575    } info;
1576};
1577
1578struct CellInfoNr {
1579    NrSignalStrength signalStrength;
1580    CellIdentityNr cellidentity;
1581};
1582
1583/** Overwritten from @1.2::NetworkScanResult in order to update the CellInfo to 1.4 version. */
1584struct NetworkScanResult {
1585    /**
1586     * The status of the scan.
1587     */
1588    ScanStatus status;
1589
1590    /**
1591     * The error code of the incremental result.
1592     */
1593    RadioError error;
1594
1595    /**
1596     * List of network information as CellInfo.
1597     */
1598    vec<CellInfo> networkInfos;
1599};
1600
1601/**
1602 * Overwritten from @1.0::DataProfileInfo in order to deprecate 'mvnoType', and 'mvnoMatchData'.
1603 * In the future, this must be extended instead of overwritten.
1604 * Also added 'preferred' and 'persistent' in this version.
1605 */
1606struct DataProfileInfo {
1607    /** id of the data profile */
1608    DataProfileId profileId;
1609
1610    /** The APN name */
1611    string apn;
1612
1613    /** PDP_type values */
1614    PdpProtocolType protocol;
1615
1616    /** PDP_type values used on roaming network */
1617    PdpProtocolType roamingProtocol;
1618
1619    /** APN authentication type */
1620    ApnAuthType authType;
1621
1622    /** The username for APN, or empty string */
1623    string user;
1624
1625    /** The password for APN, or empty string */
1626    string password;
1627
1628    /** Data profile technology type */
1629    DataProfileInfoType type;
1630
1631    /** The period in seconds to limit the maximum connections */
1632    int32_t maxConnsTime;
1633
1634    /** The maximum connections during maxConnsTime */
1635    int32_t maxConns;
1636
1637    /**
1638     * The required wait time in seconds after a successful UE initiated disconnect of a given PDN
1639     * connection before the device can send a new PDN connection request for that given PDN.
1640     */
1641    int32_t waitTime;
1642
1643    /** True to enable the profile, false to disable */
1644    bool enabled;
1645
1646    /** Supported APN types bitmap. See ApnTypes for the value of each bit. */
1647    bitfield<ApnTypes> supportedApnTypesBitmap;
1648
1649    /** The bearer bitmap. See RadioAccessFamily for the value of each bit. */
1650    bitfield<RadioAccessFamily> bearerBitmap;
1651
1652    /** Maximum transmission unit (MTU) size in bytes */
1653    int32_t mtu;
1654
1655    /**
1656     * True if this data profile was used to bring up the last default (i.e internet) data
1657     * connection successfully.
1658     */
1659    bool preferred;
1660
1661    /**
1662     * If true, modem must persist this data profile and profileId must not be
1663     * set to DataProfileId.INVALID. If the same data profile exists, this data profile must
1664     * overwrite it.
1665     */
1666    bool persistent;
1667};
1668
1669struct CardStatus {
1670    @1.2::CardStatus base;
1671    /**
1672     * The EID is the eUICC identifier. The EID shall be stored within the ECASD and can be
1673     * retrieved by the Device at any time using the standard GlobalPlatform GET DATA command.
1674     *
1675     * This data is mandatory and applicable only when cardState is CardState:PRESENT and SIM card
1676     * supports eUICC.
1677     */
1678    string eid;
1679};
1680
1681/** Overwritten from @1.0::RadioCapability in order to use the latest RadioAccessFamily. */
1682struct RadioCapability {
1683    /** Unique session value defined by fr amework returned in all "responses/unslo". */
1684    int32_t session;
1685
1686    RadioCapabilityPhase phase;
1687
1688    /** 32-bit bitmap of RadioAccessFamily. */
1689    bitfield<RadioAccessFamily> raf;
1690
1691    /**
1692     * A UUID typically "com.xxxx.lmX" where X is the logical modem.
1693     * RadioConst:MAX_UUID_LENGTH is the max length.
1694     */
1695    string logicalModemUuid;
1696
1697    RadioCapabilityStatus status;
1698};
1699
1700/**
1701 * Overwritten from @1.0::SetupDataCallResult in order to update the DataCallFailCause to 1.4
1702 * version.
1703 */
1704struct SetupDataCallResult {
1705    /** Data call fail cause. DataCallFailCause.NONE if no error. */
1706    DataCallFailCause cause;
1707
1708    /**
1709     * If status != DataCallFailCause.NONE, this field indicates the suggested retry back-off timer
1710     * value RIL wants to override the one pre-configured in FW. The unit is milliseconds.
1711     * The value < 0 means no value is suggested.
1712     * The value 0 means retry must be done ASAP.
1713     * The value of INT_MAX(0x7fffffff) means no retry.
1714     */
1715    int32_t suggestedRetryTime;
1716
1717    /** Context ID, uniquely identifies this call. */
1718    int32_t cid;
1719
1720    /** Data connection active status. */
1721    DataConnActiveStatus active;
1722
1723    /**
1724     * PDP_type values. If cause is DataCallFailCause.ONLY_SINGLE_BEARER_ALLOWED, this is the type
1725     * supported such as "IP" or "IPV6".
1726     */
1727    PdpProtocolType type;
1728
1729    /** The network interface name. */
1730    string ifname;
1731
1732    /**
1733     * List of addresses with optional "/" prefix length, e.g., "192.0.1.3" or
1734     * "192.0.1.11/16 2001:db8::1/64".  Typically one IPv4 or one IPv6 or one of each. If the
1735     * prefix length is absent the addresses are assumed to be point to point with IPv4 having a
1736     * prefix length of 32 and IPv6 128.
1737     */
1738    vec<string> addresses;
1739
1740    /**
1741     * List of DNS server addresses, e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1". Empty if no dns
1742     * server addresses returned.
1743     */
1744    vec<string> dnses;
1745
1746    /**
1747     * List of default gateway addresses, e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
1748     * When empty, the addresses represent point to point connections.
1749     */
1750    vec<string> gateways;
1751
1752    /**
1753     * List of P-CSCF(Proxy Call State Control Function) addresses via PCO(Protocol Configuration
1754     * Option), e.g., "2001:db8::1 2001:db8::2 2001:db8::3". Empty if not IMS client.
1755     */
1756    vec<string> pcscf;
1757
1758    /**
1759     * MTU received from network. Value <= 0 means network has either not sent a value or sent an
1760     * invalid value.
1761     */
1762    int32_t mtu;
1763};
1764
1765enum SimLockMultiSimPolicy : int32_t {
1766    /**
1767     * Indicates that configuration applies to each slot independently.
1768     */
1769    NO_MULTISIM_POLICY = 0,
1770    /**
1771     * Indicates that any SIM card can be used as far as one valid card is present in the device.
1772     * For the modem, a SIM card is valid when its content (i.e. MCC, MNC, GID, SPN) matches the
1773     * carrier restriction configuration.
1774     */
1775    ONE_VALID_SIM_MUST_BE_PRESENT = 1,
1776};
1777
1778struct CarrierRestrictionsWithPriority {
1779    /**
1780     * List of allowed carriers.
1781     * The character '?' is used as wildcard character to match any value.
1782     */
1783    vec<Carrier> allowedCarriers;
1784    /**
1785     * List of excluded carriers.
1786     * The character '?' is used as wildcard character to match any value.
1787     */
1788    vec<Carrier> excludedCarriers;
1789    /**
1790     * True means that only carriers included in the allowed list and not in the excluded list
1791     * are permitted. Eg. allowedCarriers match mcc/mnc, excludedCarriers has same mcc/mnc and
1792     * gid1 is ABCD. It means except the carrier whose gid1 is ABCD, all carriers with the
1793     * same mcc/mnc are allowed.
1794     * False means that all carriers are allowed except those included in the excluded list
1795     * and not in the allowed list.
1796     */
1797    bool allowedCarriersPrioritized;
1798};
1799
1800struct CellIdentityNr {
1801    /** 3-digit Mobile Country Code, in range[0, 999]; This value must be valid for registered or
1802     *  camped cells; INT_MAX means invalid/unreported.
1803     */
1804    string mcc;
1805
1806    /**
1807     * 2 or 3-digit Mobile Network Code, in range [0, 999], This value must be valid for
1808     * registered or camped cells; INT_MAX means invalid/unreported.
1809     */
1810    string mnc;
1811
1812    /**
1813     * NR Cell Identity in range [0, 68719476735] (36 bits) described in 3GPP TS 38.331, which
1814     * unambiguously identifies a cell within a PLMN. This value must be valid for registered or
1815     * camped cells; LONG_MAX (2^63-1) means invalid/unreported.
1816     */
1817    uint64_t nci;
1818
1819    /**
1820     * Physical cell id in range [0, 1007] described in 3GPP TS 38.331. This value must be valid.
1821     */
1822    uint32_t pci;
1823
1824    /** 16-bit tracking area code, INT_MAX means invalid/unreported. */
1825    int32_t tac;
1826
1827    /**
1828     * NR Absolute Radio Frequency Channel Number, in range [0, 3279165].
1829     * Reference: 3GPP TS 38.101-1 and 3GPP TS 38.101-2 section 5.4.2.1.
1830     * This value must be valid.
1831     */
1832    int32_t nrarfcn;
1833
1834    CellIdentityOperatorNames operatorNames;
1835};
1836
1837struct NrSignalStrength {
1838    /**
1839     * SS reference signal received power, multipled by -1.
1840     *
1841     * Reference: 3GPP TS 38.215.
1842     *
1843     * Range [44, 140], INT_MAX means invalid/unreported.
1844     */
1845    int32_t ssRsrp;
1846
1847    /**
1848     * SS reference signal received quality, multipled by -1.
1849     *
1850     * Reference: 3GPP TS 38.215.
1851     *
1852     * Range [3, 20], INT_MAX means invalid/unreported.
1853     */
1854    int32_t ssRsrq;
1855
1856    /**
1857     * SS signal-to-noise and interference ratio.
1858     *
1859     * Reference: 3GPP TS 38.215 section 5.1.*, 3GPP TS 38.133 section 10.1.16.1.
1860     *
1861     * Range [-23, 40], INT_MAX means invalid/unreported.
1862     */
1863    int32_t ssSinr;
1864
1865    /**
1866     * CSI reference signal received power, multipled by -1.
1867     *
1868     * Reference: 3GPP TS 38.215.
1869     *
1870     * Range [44, 140], INT_MAX means invalid/unreported.
1871     */
1872    int32_t csiRsrp;
1873
1874    /**
1875     * CSI reference signal received quality, multipled by -1.
1876     *
1877     * Reference: 3GPP TS 38.215.
1878     *
1879     * Range [3, 20], INT_MAX means invalid/unreported.
1880     */
1881    int32_t csiRsrq;
1882
1883    /**
1884     * CSI signal-to-noise and interference ratio.
1885     *
1886     * Reference: 3GPP TS 138.215 section 5.1.*, 3GPP TS 38.133 section 10.1.16.1.
1887     *
1888     * Range [-23, 40], INT_MAX means invalid/unreported.
1889     */
1890    int32_t csiSinr;
1891};
1892
1893/** Overwritten from @1.2::SignalStrength in order to add signal strength for NR.  */
1894struct SignalStrength {
1895    /**
1896     * If GSM measurements are provided, this structure must contain valid measurements; otherwise
1897     * all fields should be set to INT_MAX to mark them as invalid.
1898     */
1899    GsmSignalStrength gsm;
1900
1901    /**
1902     * If CDMA measurements are provided, this structure must contain valid measurements; otherwise
1903     * all fields should be set to INT_MAX to mark them as invalid.
1904     */
1905    CdmaSignalStrength cdma;
1906
1907    /**
1908     * If EvDO measurements are provided, this structure must contain valid measurements; otherwise
1909     * all fields should be set to INT_MAX to mark them as invalid.
1910     */
1911    EvdoSignalStrength evdo;
1912
1913    /**
1914     * If LTE measurements are provided, this structure must contain valid measurements; otherwise
1915     * all fields should be set to INT_MAX to mark them as invalid.
1916     */
1917    LteSignalStrength lte;
1918
1919    /**
1920     * If TD-SCDMA measurements are provided, this structure must contain valid measurements;
1921     * otherwise all fields should be set to INT_MAX to mark them as invalid.
1922     */
1923    TdscdmaSignalStrength tdscdma;
1924
1925    /**
1926     * If WCDMA measurements are provided, this structure must contain valid measurements; otherwise
1927     * all fields should be set to INT_MAX to mark them as invalid.
1928     */
1929    WcdmaSignalStrength wcdma;
1930
1931    /**
1932     * If NR 5G measurements are provided, this structure must contain valid measurements; otherwise
1933     * all fields should be set to INT_MAX to mark them as invalid.
1934     */
1935    NrSignalStrength nr;
1936};
1937