/* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.radio@1.4; import @1.0::ApnAuthType; import @1.0::ApnTypes; import @1.0::Carrier; import @1.0::CellInfoType; import @1.0::CdmaSignalStrength; import @1.0::DataCallFailCause; import @1.0::DataProfileId; import @1.0::DataProfileInfoType; import @1.0::EvdoSignalStrength; import @1.0::GsmSignalStrength; import @1.0::LteSignalStrength; import @1.0::RadioAccessFamily; import @1.0::RadioCapabilityPhase; import @1.0::RadioCapabilityStatus; import @1.0::RadioError; import @1.0::RadioTechnology; import @1.0::RegState; import @1.0::TimeStampType; import @1.1::ScanStatus; import @1.2::AccessNetwork; import @1.2::CellInfo; import @1.2::CellInfoCdma; import @1.2::CellInfoGsm; import @1.2::CellInfoLte; import @1.2::CellInfoTdscdma; import @1.2::CellInfoWcdma; import @1.2::CardStatus; import @1.2::CellConnectionStatus; import @1.2::CellIdentityCdma; import @1.2::CellIdentityGsm; import @1.2::CellIdentityLte; import @1.2::CellIdentityTdscdma; import @1.2::CellIdentityWcdma; import @1.2::CellIdentityOperatorNames; import @1.2::DataRegStateResult; import @1.2::PhysicalChannelConfig; import @1.2::TdscdmaSignalStrength; import @1.2::WcdmaSignalStrength; import android.hidl.safe_union@1.0::Monostate; enum AccessNetwork : @1.2::AccessNetwork { /** * Unknown access network */ UNKNOWN = 0, }; enum ApnTypes : @1.0::ApnTypes { /** * Due to the addition of this new value, the value ALL defined in 1.0::ApnTypes is now * deprecated and should not be used. */ MCX = 1 << 10, // APN type for Mission Critical Service // Reference: 3GPP TS 22.280 V15.3.0 }; /** * Emergency number contains information of number, one or more service category(s), zero or more * emergency uniform resource names, mobile country code (mcc), mobile network country (mnc) and * source(s) that indicate where it comes from. * * If the emergency number is associated with country, field ‘mcc’ must be provided, otherwise * field ‘mcc’ must be an empty string. If the emergency number is associated with network * operator, field ‘mcc’ and 'mnc' must be provided, otherwise field ‘mnc’ must be an empty * string. If the emergency number is specified with emergency service category(s), field * 'categories' must be provided, otherwise field 'categories' must be * @1.4::EmergencyServiceCategories::UNSPECIFIED. If the emergency number is specified with * emergency uniform resource names (URN), field 'urns' must be provided, otherwise field 'urns' * must be an empty list. * * A unique EmergencyNumber has a unique combination of ‘number’, ‘mcc’, 'mnc', 'categories' and * 'urns' fields. Multiple @1.4::EmergencyNumberSource should be merged into one 'sources' field * via bitwise-OR combination for the same EmergencyNumber. * * Reference: 3gpp 22.101, Section 10 - Emergency Calls; * 3gpp 23.167, Section 6 - Functional description; * 3gpp 24.503, Section 5.1.6.8.1 - General; * RFC 5031 */ struct EmergencyNumber{ /** * The emergency number. The character in the number string should only be the dial pad * character('0'-'9', '*', or '#'). For example: 911. */ string number; /** * 3-digit Mobile Country Code, 0..999. Empty string if not applicable. */ string mcc; /** * 2 or 3-digit Mobile Network Code, 0..999. Empty string if not applicable. */ string mnc; /** * The bitfield of @1.4::EmergencyServiceCategory(s). See @1.4::EmergencyServiceCategory for * the value of each bit. */ bitfield categories; /** * The list of emergency Uniform Resource Names (URN). */ vec urns; /** * The bitfield of @1.4::EmergencyNumberSource(s). See @1.4::EmergencyNumberSource for the * value of each bit. */ bitfield sources; }; /** * Defining Emergency Service Category as follows: * - General emergency call, all categories; * - Police; * - Ambulance; * - Fire Brigade; * - Marine Guard; * - Mountain Rescue; * - Manually Initiated eCall (MIeC); * - Automatically Initiated eCall (AIeC); * * Category UNSPECIFIED (General emergency call, all categories) indicates that no specific * services are associated with this emergency number. * * Reference: 3gpp 22.101, Section 10 - Emergency Calls */ enum EmergencyServiceCategory : int32_t { /** * General emergency call, all categories */ UNSPECIFIED = 0, POLICE = 1 << 0, AMBULANCE = 1 << 1, FIRE_BRIGADE = 1 << 2, MARINE_GUARD = 1 << 3, MOUNTAIN_RESCUE = 1 << 4, /** * Manually Initiated eCall (MIeC) */ MIEC = 1 << 5, /** * Automatically Initiated eCall (AIeC) */ AIEC = 1 << 6, }; /** * The source to tell where the corresponding @1.4::EmergencyNumber comes from. * * Reference: 3gpp 22.101, Section 10 - Emergency Calls */ enum EmergencyNumberSource : int32_t { /** * Indicates the number is from the network signal. */ NETWORK_SIGNALING = 1 << 0, /** * Indicates the number is from the sim card. */ SIM = 1 << 1, /** * Indicates the number is from the modem config. */ MODEM_CONFIG = 1 << 2, /** * Indicates the number is available as default. Per the reference, 112, 911 must always be * available; additionally, 000, 08, 110, 999, 118 and 119 must be available when sim is not * present. */ DEFAULT = 1 << 3, }; /** * Indicates how the implementation should handle the emergency call if it is required by Android. */ enum EmergencyCallRouting : int32_t { /** * Indicates Android does not require how to handle the corresponding emergency call; it is * decided by implementation. */ UNKNOWN = 0, /** * Indicates the implementation must handle the call through emergency routing. */ EMERGENCY = 1, /** * Indicates the implementation must handle the call through normal call routing. */ NORMAL = 2, }; enum RadioTechnology : @1.0::RadioTechnology { /** 5G NR. This is only use in 5G Standalone mode. */ NR = 20, }; enum RadioAccessFamily : @1.0::RadioAccessFamily { /** 5G NR. This is only use in 5G Standalone mode. */ NR = 1 << RadioTechnology:NR, }; /** Mapping the frequency to a rough range. */ enum FrequencyRange : int32_t { /** Indicates the frequency range is below 1GHz. */ LOW = 1, /** Indicates the frequency range is between 1GHz and 3GHz. */ MID = 2, /** Indicates the frequency range is between 3GHz and 6GHz. */ HIGH = 3, /** Indicates the frequency range is above 6GHz (millimeter wave frequency). */ MMWAVE = 4, }; /** * Expose more setup data call failures. */ enum DataCallFailCause : @1.0::DataCallFailCause { /** * Network cannot provide the requested service and PDP context is deactivated because of LLC * or SNDCP failure. */ LLC_SNDCP = 0x19, /** * UE requested to modify QoS parameters or the bearer control mode, which is not compatible * with the selected bearer control mode. */ ACTIVATION_REJECTED_BCM_VIOLATION = 0x30, /** * Network has already initiated the activation, modification, or deactivation of bearer * resources that was requested by the UE. */ COLLISION_WITH_NETWORK_INITIATED_REQUEST = 0x38, /** * Network supports IPv4v6 PDP type only. Non-IP type is not allowed. In LTE mode of operation, * this is a PDN throttling cause code, meaning the UE may throttle further requests to the * same APN. */ ONLY_IPV4V6_ALLOWED = 0x39, /** * Network supports non-IP PDP type only. IPv4, IPv6 and IPv4v6 is not allowed. In LTE mode of * operation, this is a PDN throttling cause code, meaning the UE can throttle further requests * to the same APN. */ ONLY_NON_IP_ALLOWED = 0x3A, /** * QCI (QoS Class Identifier) indicated in the UE request cannot be supported. */ UNSUPPORTED_QCI_VALUE = 0x3B, /** * Procedure requested by the UE was rejected because the bearer handling is not supported. */ BEARER_HANDLING_NOT_SUPPORTED = 0x3C, /** * Not receiving a DNS address that was mandatory. */ INVALID_DNS_ADDR = 0x7B, /** * Not receiving either a PCSCF or a DNS address, one of them being mandatory. */ INVALID_PCSCF_OR_DNS_ADDRESS = 0x7C, /** * Emergency call bring up on a different ePDG. */ CALL_PREEMPT_BY_EMERGENCY_APN = 0x7F, /** * UE performs a detach or disconnect PDN action based on TE requirements. */ UE_INITIATED_DETACH_OR_DISCONNECT = 0x80, /** * Reason unspecified for foreign agent rejected MIP (Mobile IP) registration. */ MIP_FA_REASON_UNSPECIFIED = 0x7D0, /** * Foreign agent administratively prohibited MIP (Mobile IP) registration. */ MIP_FA_ADMIN_PROHIBITED = 0x7D1, /** * Foreign agent rejected MIP (Mobile IP) registration because of insufficient resources. */ MIP_FA_INSUFFICIENT_RESOURCES = 0x7D2, /** * Foreign agent rejected MIP (Mobile IP) registration because of MN-AAA authenticator was * wrong. */ MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE = 0x7D3, /** * Foreign agent rejected MIP (Mobile IP) registration because of home agent authentication * failure. */ MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE = 0x7D4, /** * Foreign agent rejected MIP (Mobile IP) registration because of requested lifetime was too * long. */ MIP_FA_REQUESTED_LIFETIME_TOO_LONG = 0x7D5, /** * Foreign agent rejected MIP (Mobile IP) registration because of malformed request. */ MIP_FA_MALFORMED_REQUEST = 0x7D6, /** * Foreign agent rejected MIP (Mobile IP) registration because of malformed reply. */ MIP_FA_MALFORMED_REPLY = 0x7D7, /** * Foreign agent rejected MIP (Mobile IP) registration because of requested encapsulation was * unavailable. */ MIP_FA_ENCAPSULATION_UNAVAILABLE = 0x7D8, /** * Foreign agent rejected MIP (Mobile IP) registration of VJ Header Compression was unavailable. */ MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE = 0x7D9, /** * Foreign agent rejected MIP (Mobile IP) registration because of reverse tunnel was * unavailable. */ MIP_FA_REVERSE_TUNNEL_UNAVAILABLE = 0x7DA, /** * Foreign agent rejected MIP (Mobile IP) registration because of reverse tunnel was mandatory * but not requested by device. */ MIP_FA_REVERSE_TUNNEL_IS_MANDATORY = 0x7DB, /** * Foreign agent rejected MIP (Mobile IP) registration because of delivery style was not * supported. */ MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED = 0x7DC, /** * Foreign agent rejected MIP (Mobile IP) registration because of missing NAI (Network Access * Identifier). */ MIP_FA_MISSING_NAI = 0x7DD, /** * Foreign agent rejected MIP (Mobile IP) registration because of missing Home Agent. */ MIP_FA_MISSING_HOME_AGENT = 0x7DE, /** * Foreign agent rejected MIP (Mobile IP) registration because of missing Home Address. */ MIP_FA_MISSING_HOME_ADDRESS = 0x7DF, /** * Foreign agent rejected MIP (Mobile IP) registration because of unknown challenge. */ MIP_FA_UNKNOWN_CHALLENGE = 0x7E0, /** * Foreign agent rejected MIP (Mobile IP) registration because of missing challenge. */ MIP_FA_MISSING_CHALLENGE = 0x7E1, /** * Foreign agent rejected MIP (Mobile IP) registration because of stale challenge. */ MIP_FA_STALE_CHALLENGE = 0x7E2, /** * Reason unspecified for home agent rejected MIP (Mobile IP) registration. */ MIP_HA_REASON_UNSPECIFIED = 0x7E3, /** * Home agent administratively prohibited MIP (Mobile IP) registration. */ MIP_HA_ADMIN_PROHIBITED = 0x7E4, /** * Home agent rejected MIP (Mobile IP) registration because of insufficient resources. */ MIP_HA_INSUFFICIENT_RESOURCES = 0x7E5, /** * Home agent rejected MIP (Mobile IP) registration because of MN-HA authenticator was wrong. */ MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE = 0x7E6, /** * Home agent rejected MIP (Mobile IP) registration because of foreign agent authentication * failure. */ MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE = 0x7E7, /** * Home agent rejected MIP (Mobile IP) registration because of registration id mismatch. */ MIP_HA_REGISTRATION_ID_MISMATCH = 0x7E8, /** * Home agent rejected MIP (Mobile IP) registration because of malformed request. */ MIP_HA_MALFORMED_REQUEST = 0x7E9, /** * Home agent rejected MIP (Mobile IP) registration because of unknown home agent address. */ MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS = 0x7EA, /** * Home agent rejected MIP (Mobile IP) registration because of reverse tunnel was unavailable. */ MIP_HA_REVERSE_TUNNEL_UNAVAILABLE = 0x7EB, /** * Home agent rejected MIP (Mobile IP) registration because of reverse tunnel is mandatory but * not requested by device. */ MIP_HA_REVERSE_TUNNEL_IS_MANDATORY = 0x7EC, /** * Home agent rejected MIP (Mobile IP) registration because of encapsulation unavailable. */ MIP_HA_ENCAPSULATION_UNAVAILABLE = 0x7ED, /** * Tearing down is in progress. */ CLOSE_IN_PROGRESS = 0x7EE, /** * Brought down by the network. */ NETWORK_INITIATED_TERMINATION = 0x7EF, /** * Another application in modem preempts the data call. */ MODEM_APP_PREEMPTED = 0x7F0, /** * IPV4 PDN is in throttled state due to network providing only IPV6 address during the previous * VSNCP bringup (subs_limited_to_v6). */ PDN_IPV4_CALL_DISALLOWED = 0x7F1, /** * IPV4 PDN is in throttled state due to previous VSNCP bringup failure(s). */ PDN_IPV4_CALL_THROTTLED = 0x7F2, /** * IPV6 PDN is in throttled state due to network providing only IPV4 address during the previous * VSNCP bringup (subs_limited_to_v4). */ PDN_IPV6_CALL_DISALLOWED = 0x7F3, /** * IPV6 PDN is in throttled state due to previous VSNCP bringup failure(s). */ PDN_IPV6_CALL_THROTTLED = 0x7F4, /** * Modem restart. */ MODEM_RESTART = 0x7F5, /** * PDP PPP calls are not supported. */ PDP_PPP_NOT_SUPPORTED = 0x7F6, /** * RAT on which the data call is attempted/connected is no longer the preferred RAT. */ UNPREFERRED_RAT = 0x7F7, /** * Physical link is in the process of cleanup. */ PHYSICAL_LINK_CLOSE_IN_PROGRESS = 0x7F8, /** * Interface bring up is attempted for an APN that is yet to be handed over to target RAT. */ APN_PENDING_HANDOVER = 0x7F9, /** * APN bearer type in the profile does not match preferred network mode. */ PROFILE_BEARER_INCOMPATIBLE = 0x7FA, /** * Card was refreshed or removed. */ SIM_CARD_CHANGED = 0x7FB, /** * Device is going into lower power mode or powering down. */ LOW_POWER_MODE_OR_POWERING_DOWN = 0x7FC, /** * APN has been disabled. */ APN_DISABLED = 0x7FD, /** * Maximum PPP inactivity timer expired. */ MAX_PPP_INACTIVITY_TIMER_EXPIRED = 0x7FE, /** * IPv6 address transfer failed. */ IPV6_ADDRESS_TRANSFER_FAILED = 0x7FF, /** * Target RAT swap failed. */ TRAT_SWAP_FAILED = 0x800, /** * Device falls back from eHRPD to HRPD. */ EHRPD_TO_HRPD_FALLBACK = 0x801, /** * UE is in MIP-only configuration but the MIP configuration fails on call bring up due to * incorrect provisioning. */ MIP_CONFIG_FAILURE = 0x802, /** * PDN inactivity timer expired due to no data transmission in a configurable duration of time. */ PDN_INACTIVITY_TIMER_EXPIRED = 0x803, /** * IPv4 data call bring up is rejected because the UE already maintains the allotted maximum * number of IPv4 data connections. */ MAX_IPV4_CONNECTIONS = 0x804, /** * IPv6 data call bring up is rejected because the UE already maintains the allotted maximum * number of IPv6 data connections. */ MAX_IPV6_CONNECTIONS = 0x805, /** * New PDN bring up is rejected during interface selection because the UE has already allotted * the available interfaces for other PDNs. */ APN_MISMATCH = 0x806, /** * New call bring up is rejected since the existing data call IP type doesn't match the * requested IP. */ IP_VERSION_MISMATCH = 0x807, /** * Dial up networking (DUN) call bring up is rejected since UE is in eHRPD RAT. */ DUN_CALL_DISALLOWED = 0x808, /** * Rejected/Brought down since UE is transition between EPC and NONEPC RAT. */ INTERNAL_EPC_NONEPC_TRANSITION = 0x809, /** * The current interface is being in use. */ INTERFACE_IN_USE = 0x80A, /** * PDN connection to the APN is disallowed on the roaming network. */ APN_DISALLOWED_ON_ROAMING = 0x80B, /** * APN-related parameters are changed. */ APN_PARAMETERS_CHANGED = 0x80C, /** * PDN is attempted to be brought up with NULL APN but NULL APN is not supported. */ NULL_APN_DISALLOWED = 0x80D, /** * Thermal level increases and causes calls to be torn down when normal mode of operation is * not allowed. */ THERMAL_MITIGATION = 0x80E, /** * PDN Connection to a given APN is disallowed because data is disabled from the device user * interface settings. */ DATA_SETTINGS_DISABLED = 0x80F, /** * PDN Connection to a given APN is disallowed because data roaming is disabled from the device * user interface settings and the UE is roaming. */ DATA_ROAMING_SETTINGS_DISABLED = 0x810, /** * DDS (Default data subscription) switch occurs. */ DDS_SWITCHED = 0x811, /** * PDN being brought up with an APN that is part of forbidden APN Name list. */ FORBIDDEN_APN_NAME = 0x812, /** * Default data subscription switch is in progress. */ DDS_SWITCH_IN_PROGRESS = 0x813, /** * Roaming is disallowed during call bring up. */ CALL_DISALLOWED_IN_ROAMING = 0x814, /** * UE is unable to bring up a non-IP data call because the device is not camped on a NB1 cell. */ NON_IP_NOT_SUPPORTED = 0x815, /** * Non-IP PDN is in throttled state due to previous VSNCP bringup failure(s). */ PDN_NON_IP_CALL_THROTTLED = 0x816, /** * Non-IP PDN is in disallowed state due to the network providing only an IP address. */ PDN_NON_IP_CALL_DISALLOWED = 0x817, /** * Device in CDMA locked state. */ CDMA_LOCK = 0x818, /** * Received an intercept order from the base station. */ CDMA_INTERCEPT = 0x819, /** * Receiving a reorder from the base station. */ CDMA_REORDER = 0x81A, /** * Receiving a release from the base station with a SO (Service Option) Reject reason. */ CDMA_RELEASE_DUE_TO_SO_REJECTION = 0x81B, /** * Receiving an incoming call from the base station. */ CDMA_INCOMING_CALL = 0x81C, /** * Received an alert stop from the base station due to incoming only. */ CDMA_ALERT_STOP = 0x81D, /** * Channel acquisition failures. This indicates that device has failed acquiring all the * channels in the PRL. */ CHANNEL_ACQUISITION_FAILURE = 0x81E, /** * Maximum access probes transmitted. */ MAX_ACCESS_PROBE = 0x81F, /** * Concurrent service is not supported by base station. */ CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION = 0x820, /** * There was no response received from the base station. */ NO_RESPONSE_FROM_BASE_STATION = 0x821, /** * The base station rejecting the call. */ REJECTED_BY_BASE_STATION = 0x822, /** * The concurrent services requested were not compatible. */ CONCURRENT_SERVICES_INCOMPATIBLE = 0x823, /** * Device does not have CDMA service. */ NO_CDMA_SERVICE = 0x824, /** * RUIM not being present. */ RUIM_NOT_PRESENT = 0x825, /** * Receiving a retry order from the base station. */ CDMA_RETRY_ORDER = 0x826, /** * Access blocked by the base station. */ ACCESS_BLOCK = 0x827, /** * Access blocked by the base station for all mobile devices. */ ACCESS_BLOCK_ALL = 0x828, /** * Maximum access probes for the IS-707B call. */ IS707B_MAX_ACCESS_PROBES = 0x829, /** * Put device in thermal emergency. */ THERMAL_EMERGENCY = 0x82A, /** * In favor of a voice call or SMS when concurrent voice and data are not supported. */ CONCURRENT_SERVICES_NOT_ALLOWED = 0x82B, /** * The other clients rejected incoming call. */ INCOMING_CALL_REJECTED = 0x82C, /** * No service on the gateway. */ NO_SERVICE_ON_GATEWAY = 0x82D, /** * GPRS context is not available. */ NO_GPRS_CONTEXT = 0x82E, /** * Network refuses service to the MS because either an identity of the MS is not acceptable to * the network or the MS does not pass the authentication check. */ ILLEGAL_MS = 0x82F, /** * ME could not be authenticated and the ME used is not acceptable to the network. */ ILLEGAL_ME = 0x830, /** * Not allowed to operate either GPRS or non-GPRS services. */ GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 0x831, /** * MS is not allowed to operate GPRS services. */ GPRS_SERVICES_NOT_ALLOWED = 0x832, /** * No matching identity or context could be found in the network. */ MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK = 0x833, /** * Mobile reachable timer has expired, or the GMM context data related to the subscription does * not exist in the SGSN. */ IMPLICITLY_DETACHED = 0x834, /** * UE requests GPRS service, or the network initiates a detach request in a PLMN which does not * offer roaming for GPRS services to that MS. */ PLMN_NOT_ALLOWED = 0x835, /** * MS requests service, or the network initiates a detach request, in a location area where the * HPLMN determines that the MS, by subscription, is not allowed to operate. */ LOCATION_AREA_NOT_ALLOWED = 0x836, /** * UE requests GPRS service or the network initiates a detach request in a PLMN that does not * offer roaming for GPRS services. */ GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN = 0x837, /** * PDP context already exists. */ PDP_DUPLICATE = 0x838, /** * RAT change on the UE. */ UE_RAT_CHANGE = 0x839, /** * Network cannot serve a request from the MS due to congestion. */ CONGESTION = 0x83A, /** * MS requests an establishment of the radio access bearers for all active PDP contexts by * sending a service request message indicating data to the network, but the SGSN does not have * any active PDP context. */ NO_PDP_CONTEXT_ACTIVATED = 0x83B, /** * Access class blocking restrictions for the current camped cell. */ ACCESS_CLASS_DSAC_REJECTION = 0x83C, /** * SM attempts PDP activation for a maximum of four attempts. */ PDP_ACTIVATE_MAX_RETRY_FAILED = 0x83D, /** * Radio access bearer failure. */ RADIO_ACCESS_BEARER_FAILURE = 0x83E, /** * Invalid EPS bearer identity in the request. */ ESM_UNKNOWN_EPS_BEARER_CONTEXT = 0x83F, /** * Data radio bearer is released by the RRC. */ DRB_RELEASED_BY_RRC = 0x840, /** * Indicate the connection was released. */ CONNECTION_RELEASED = 0x841, /** * UE is detached. */ EMM_DETACHED = 0x842, /** * Attach procedure is rejected by the network. */ EMM_ATTACH_FAILED = 0x843, /** * Attach procedure is started for EMC purposes. */ EMM_ATTACH_STARTED = 0x844, /** * Service request procedure failure. */ LTE_NAS_SERVICE_REQUEST_FAILED = 0x845, /** * Active dedicated bearer was requested using the same default bearer ID. */ DUPLICATE_BEARER_ID = 0x846, /** * Collision scenarios for the UE and network-initiated procedures. */ ESM_COLLISION_SCENARIOS = 0x847, /** * Bearer must be deactivated to synchronize with the network. */ ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK = 0x848, /** * Active dedicated bearer was requested for an existing default bearer. */ ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER = 0x849, /** * Bad OTA message is received from the network. */ ESM_BAD_OTA_MESSAGE = 0x84A, /** * Download server rejected the call. */ ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL = 0x84B, /** * PDN was disconnected by the downlaod server due to IRAT. */ ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT = 0x84C, /** * Dedicated bearer will be deactivated regardless of the network response. */ DS_EXPLICIT_DEACTIVATION = 0x84D, /** * No specific local cause is mentioned, usually a valid OTA cause. */ ESM_LOCAL_CAUSE_NONE = 0x84E, /** * Throttling is not needed for this service request failure. */ LTE_THROTTLING_NOT_REQUIRED = 0x84F, /** * Access control list check failure at the lower layer. */ ACCESS_CONTROL_LIST_CHECK_FAILURE = 0x850, /** * Service is not allowed on the requested PLMN. */ SERVICE_NOT_ALLOWED_ON_PLMN = 0x851, /** * T3417 timer expiration of the service request procedure. */ EMM_T3417_EXPIRED = 0x852, /** * Extended service request fails due to expiration of the T3417 EXT timer. */ EMM_T3417_EXT_EXPIRED = 0x853, /** * Transmission failure of radio resource control (RRC) uplink data. */ RRC_UPLINK_DATA_TRANSMISSION_FAILURE = 0x854, /** * Radio resource control (RRC) uplink data delivery failed due to a handover. */ RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER = 0x855, /** * Radio resource control (RRC) uplink data delivery failed due to a connection release. */ RRC_UPLINK_CONNECTION_RELEASE = 0x856, /** * Radio resource control (RRC) uplink data delivery failed due to a radio link failure. */ RRC_UPLINK_RADIO_LINK_FAILURE = 0x857, /** * Radio resource control (RRC) is not connected but the non-access stratum (NAS) sends an * uplink data request. */ RRC_UPLINK_ERROR_REQUEST_FROM_NAS = 0x858, /** * Radio resource control (RRC) connection failure at access stratum. */ RRC_CONNECTION_ACCESS_STRATUM_FAILURE = 0x859, /** * Radio resource control (RRC) connection establishment is aborted due to another procedure. */ RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS = 0x85A, /** * Radio resource control (RRC) connection establishment failed due to access barrred. */ RRC_CONNECTION_ACCESS_BARRED = 0x85B, /** * Radio resource control (RRC) connection establishment failed due to cell reselection at * access stratum. */ RRC_CONNECTION_CELL_RESELECTION = 0x85C, /** * Connection establishment failed due to configuration failure at the radio resource control * (RRC). */ RRC_CONNECTION_CONFIG_FAILURE = 0x85D, /** * Radio resource control (RRC) connection could not be established in the time limit. */ RRC_CONNECTION_TIMER_EXPIRED = 0x85E, /** * Connection establishment failed due to a link failure at the radio resource control (RRC). */ RRC_CONNECTION_LINK_FAILURE = 0x85F, /** * Connection establishment failed as the radio resource control (RRC) is not camped on any * cell. */ RRC_CONNECTION_CELL_NOT_CAMPED = 0x860, /** * Connection establishment failed due to a service interval failure at the radio resource * control (RRC). */ RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE = 0x861, /** * Radio resource control (RRC) connection establishment failed due to the network rejecting the * UE connection request. */ RRC_CONNECTION_REJECT_BY_NETWORK = 0x862, /** * Normal radio resource control (RRC) connection release. */ RRC_CONNECTION_NORMAL_RELEASE = 0x863, /** * Radio resource control (RRC) connection release failed due to radio link failure conditions. */ RRC_CONNECTION_RADIO_LINK_FAILURE = 0x864, /** * Radio resource control (RRC) connection re-establishment failure. */ RRC_CONNECTION_REESTABLISHMENT_FAILURE = 0x865, /** * UE is out of service during the call register. */ RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER = 0x866, /** * Connection has been released by the radio resource control (RRC) due to an abort request. */ RRC_CONNECTION_ABORT_REQUEST = 0x867, /** * Radio resource control (RRC) connection released due to a system information block read * error. */ RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR = 0x868, /** * Network-initiated detach with reattach. */ NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH = 0x869, /** * Network-initiated detach without reattach. */ NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH = 0x86A, /** * ESM procedure maximum attempt timeout failure. */ ESM_PROCEDURE_TIME_OUT = 0x86B, /** * No PDP exists with the given connection ID while modifying or deactivating or activation for * an already active PDP. */ INVALID_CONNECTION_ID = 0x86C, /** * Maximum NSAPIs have been exceeded during PDP activation. */ MAXIMIUM_NSAPIS_EXCEEDED = 0x86D, /** * Primary context for NSAPI does not exist. */ INVALID_PRIMARY_NSAPI = 0x86E, /** * Unable to encode the OTA message for MT PDP or deactivate PDP. */ CANNOT_ENCODE_OTA_MESSAGE = 0x86F, /** * Radio access bearer is not established by the lower layers during activation, modification, * or deactivation. */ RADIO_ACCESS_BEARER_SETUP_FAILURE = 0x870, /** * Expiration of the PDP establish timer with a maximum of five retries. */ PDP_ESTABLISH_TIMEOUT_EXPIRED = 0x871, /** * Expiration of the PDP modify timer with a maximum of four retries. */ PDP_MODIFY_TIMEOUT_EXPIRED = 0x872, /** * Expiration of the PDP deactivate timer with a maximum of four retries. */ PDP_INACTIVE_TIMEOUT_EXPIRED = 0x873, /** * PDP activation failed due to RRC_ABORT or a forbidden PLMN. */ PDP_LOWERLAYER_ERROR = 0x874, /** * MO PDP modify collision when the MT PDP is already in progress. */ PDP_MODIFY_COLLISION = 0x875, /** * Maximum size of the L2 message was exceeded. */ MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED = 0x876, /** * Non-access stratum (NAS) request was rejected by the network. */ NAS_REQUEST_REJECTED_BY_NETWORK = 0x877, /** * Radio resource control (RRC) connection establishment failure due to an error in the request * message. */ RRC_CONNECTION_INVALID_REQUEST = 0x878, /** * Radio resource control (RRC) connection establishment failure due to a change in the tracking * area ID. */ RRC_CONNECTION_TRACKING_AREA_ID_CHANGED = 0x879, /** * Radio resource control (RRC) connection establishment failure due to the RF was unavailable. */ RRC_CONNECTION_RF_UNAVAILABLE = 0x87A, /** * Radio resource control (RRC) connection was aborted before deactivating the LTE stack due to * a successful LTE to WCDMA/GSM/TD-SCDMA IRAT change. */ RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE = 0x87B, /** * If the UE has an LTE radio link failure before security is established, the radio resource * control (RRC) connection must be released and the UE must return to idle. */ RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE = 0x87C, /** * Radio resource control (RRC) connection was aborted by the non-access stratum (NAS) after an * IRAT to LTE IRAT handover. */ RRC_CONNECTION_ABORTED_AFTER_HANDOVER = 0x87D, /** * Radio resource control (RRC) connection was aborted before deactivating the LTE stack after a * successful LTE to GSM/EDGE IRAT cell change order procedure. */ RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE = 0x87E, /** * Radio resource control (RRC) connection was aborted in the middle of a LTE to GSM IRAT cell * change order procedure. */ RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE = 0x87F, /** * IMSI present in the UE is unknown in the home subscriber server. */ IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER = 0x880, /** * IMEI of the UE is not accepted by the network. */ IMEI_NOT_ACCEPTED = 0x881, /** * EPS and non-EPS services are not allowed by the network. */ EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED = 0x882, /** * EPS services are not allowed in the PLMN. */ EPS_SERVICES_NOT_ALLOWED_IN_PLMN = 0x883, /** * Mobile switching center is temporarily unreachable. */ MSC_TEMPORARILY_NOT_REACHABLE = 0x884, /** * CS domain is not available. */ CS_DOMAIN_NOT_AVAILABLE = 0x885, /** * ESM level failure. */ ESM_FAILURE = 0x886, /** * MAC level failure. */ MAC_FAILURE = 0x887, /** * Synchronization failure. */ SYNCHRONIZATION_FAILURE = 0x888, /** * UE security capabilities mismatch. */ UE_SECURITY_CAPABILITIES_MISMATCH = 0x889, /** * Unspecified security mode reject. */ SECURITY_MODE_REJECTED = 0x88A, /** * Unacceptable non-EPS authentication. */ UNACCEPTABLE_NON_EPS_AUTHENTICATION = 0x88B, /** * CS fallback call establishment is not allowed. */ CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED = 0x88C, /** * No EPS bearer context was activated. */ NO_EPS_BEARER_CONTEXT_ACTIVATED = 0x88D, /** * Invalid EMM state. */ INVALID_EMM_STATE = 0x88E, /** * Non-Access Spectrum layer failure. */ NAS_LAYER_FAILURE = 0x88F, /** * Multiple PDP call feature is disabled. */ MULTIPLE_PDP_CALL_NOT_ALLOWED = 0x890, /** * Data call has been brought down because EMBMS is not enabled at the RRC layer. */ EMBMS_NOT_ENABLED = 0x891, /** * Data call was unsuccessfully transferred during the IRAT handover. */ IRAT_HANDOVER_FAILED = 0x892, /** * EMBMS data call has been successfully brought down. */ EMBMS_REGULAR_DEACTIVATION = 0x893, /** * Test loop-back data call has been successfully brought down. */ TEST_LOOPBACK_REGULAR_DEACTIVATION = 0x894, /** * Lower layer registration failure. */ LOWER_LAYER_REGISTRATION_FAILURE = 0x895, /** * Network initiates a detach on LTE with error cause "data plan has been replenished or has * expired". */ DATA_PLAN_EXPIRED = 0x896, /** * UMTS interface is brought down due to handover from UMTS to iWLAN. */ UMTS_HANDOVER_TO_IWLAN = 0x897, /** * Received a connection deny due to general or network busy on EVDO network. */ EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY = 0x898, /** * Received a connection deny due to billing or authentication failure on EVDO network. */ EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE = 0x899, /** * HDR system has been changed due to redirection or the PRL was not preferred. */ EVDO_HDR_CHANGED = 0x89A, /** * Device exited HDR due to redirection or the PRL was not preferred. */ EVDO_HDR_EXITED = 0x89B, /** * Device does not have an HDR session. */ EVDO_HDR_NO_SESSION = 0x89C, /** * It is ending an HDR call origination in favor of a GPS fix. */ EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL = 0x89D, /** * Connection setup on the HDR system was time out. */ EVDO_HDR_CONNECTION_SETUP_TIMEOUT = 0x89E, /** * Device failed to acquire a co-located HDR for origination. */ FAILED_TO_ACQUIRE_COLOCATED_HDR = 0x89F, /** * OTASP commit is in progress. */ OTASP_COMMIT_IN_PROGRESS = 0x8A0, /** * Device has no hybrid HDR service. */ NO_HYBRID_HDR_SERVICE = 0x8A1, /** * HDR module could not be obtained because of the RF locked. */ HDR_NO_LOCK_GRANTED = 0x8A2, /** * DBM or SMS is in progress. */ DBM_OR_SMS_IN_PROGRESS = 0x8A3, /** * HDR module released the call due to fade. */ HDR_FADE = 0x8A4, /** * HDR system access failure. */ HDR_ACCESS_FAILURE = 0x8A5, /** * P_rev supported by 1 base station is less than 6, which is not supported for a 1X data call. * The UE must be in the footprint of BS which has p_rev >= 6 to support this SO33 call. */ UNSUPPORTED_1X_PREV = 0x8A6, /** * Client ended the data call. */ LOCAL_END = 0x8A7, /** * Device has no service. */ NO_SERVICE = 0x8A8, /** * Device lost the system due to fade. */ FADE = 0x8A9, /** * Receiving a release from the base station with no reason. */ NORMAL_RELEASE = 0x8AA, /** * Access attempt is already in progress. */ ACCESS_ATTEMPT_ALREADY_IN_PROGRESS = 0x8AB, /** * Device is in the process of redirecting or handing off to a different target system. */ REDIRECTION_OR_HANDOFF_IN_PROGRESS = 0x8AC, /** * Device is operating in Emergency mode. */ EMERGENCY_MODE = 0x8AD, /** * Device is in use (e.g., voice call). */ PHONE_IN_USE = 0x8AE, /** * Device operational mode is different from the mode requested in the traffic channel bring up. */ INVALID_MODE = 0x8AF, /** * SIM was marked by the network as invalid for the circuit and/or packet service domain. */ INVALID_SIM_STATE = 0x8B0, /** * There is no co-located HDR. */ NO_COLLOCATED_HDR = 0x8B1, /** * UE is entering power save mode. */ UE_IS_ENTERING_POWERSAVE_MODE = 0x8B2, /** * Dual switch from single standby to dual standby is in progress. */ DUAL_SWITCH = 0x8B3, /** * Data call bring up fails in the PPP setup due to a timeout. (e.g., an LCP conf ack was not * received from the network) */ PPP_TIMEOUT = 0x8B4, /** * Data call bring up fails in the PPP setup due to an authorization failure. * (e.g., authorization is required, but not negotiated with the network during an LCP phase) */ PPP_AUTH_FAILURE = 0x8B5, /** * Data call bring up fails in the PPP setup due to an option mismatch. */ PPP_OPTION_MISMATCH = 0x8B6, /** * Data call bring up fails in the PPP setup due to a PAP failure. */ PPP_PAP_FAILURE = 0x8B7, /** * Data call bring up fails in the PPP setup due to a CHAP failure. */ PPP_CHAP_FAILURE = 0x8B8, /** * Data call bring up fails in the PPP setup because the PPP is in the process of cleaning the * previous PPP session. */ PPP_CLOSE_IN_PROGRESS = 0x8B9, /** * IPv6 interface bring up fails because the network provided only the IPv4 address for the * upcoming PDN permanent client can reattempt a IPv6 call bring up after the IPv4 interface is * also brought down. However, there is no guarantee that the network will provide a IPv6 * address. */ LIMITED_TO_IPV4 = 0x8BA, /** * IPv4 interface bring up fails because the network provided only the IPv6 address for the * upcoming PDN permanent client can reattempt a IPv4 call bring up after the IPv6 interface is * also brought down. However there is no guarantee that the network will provide a IPv4 * address. */ LIMITED_TO_IPV6 = 0x8BB, /** * Data call bring up fails in the VSNCP phase due to a VSNCP timeout error. */ VSNCP_TIMEOUT = 0x8BC, /** * Data call bring up fails in the VSNCP phase due to a general error. It's used when there is * no other specific error code available to report the failure. */ VSNCP_GEN_ERROR = 0x8BD, /** * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP * configuration request because the requested APN is unauthorized. */ VSNCP_APN_UNATHORIZED = 0x8BE, /** * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP * configuration request because the PDN limit has been exceeded. */ VSNCP_PDN_LIMIT_EXCEEDED = 0x8BF, /** * Data call bring up fails in the VSNCP phase due to the network rejected the VSNCP * configuration request due to no PDN gateway address. */ VSNCP_NO_PDN_GATEWAY_ADDRESS = 0x8C0, /** * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP * configuration request because the PDN gateway is unreachable. */ VSNCP_PDN_GATEWAY_UNREACHABLE = 0x8C1, /** * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP * configuration request due to a PDN gateway reject. */ VSNCP_PDN_GATEWAY_REJECT = 0x8C2, /** * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP * configuration request with the reason of insufficient parameter. */ VSNCP_INSUFFICIENT_PARAMETERS = 0x8C3, /** * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP * configuration request with the reason of resource unavailable. */ VSNCP_RESOURCE_UNAVAILABLE = 0x8C4, /** * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP * configuration request with the reason of administratively prohibited at the HSGW. */ VSNCP_ADMINISTRATIVELY_PROHIBITED = 0x8C5, /** * Data call bring up fails in the VSNCP phase due to a network rejection of PDN ID in use, or * all existing PDNs are brought down with this end reason because one of the PDN bring up was * rejected by the network with the reason of PDN ID in use. */ VSNCP_PDN_ID_IN_USE = 0x8C6, /** * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP * configuration request for the reason of subscriber limitation. */ VSNCP_SUBSCRIBER_LIMITATION = 0x8C7, /** * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP * configuration request because the PDN exists for this APN. */ VSNCP_PDN_EXISTS_FOR_THIS_APN = 0x8C8, /** * Data call bring up fails in the VSNCP phase due to a network rejection of the VSNCP * configuration request with reconnect to this PDN not allowed, or an active data call is * terminated by the network because reconnection to this PDN is not allowed. Upon receiving * this error code from the network, the modem infinitely throttles the PDN until the next power * cycle. */ VSNCP_RECONNECT_NOT_ALLOWED = 0x8C9, /** * Device failure to obtain the prefix from the network. */ IPV6_PREFIX_UNAVAILABLE = 0x8CA, /** * System preference change back to SRAT during handoff */ HANDOFF_PREFERENCE_CHANGED = 0x8CB, }; /** * Data connection active status */ enum DataConnActiveStatus : int32_t { /** * Indicates the data connection is inactive. */ INACTIVE = 0, /** * Indicates the data connection is active with physical link dormant. */ DORMANT = 1, /** * Indicates the data connection is active with physical link up. */ ACTIVE = 2, }; /** * Specifies the type of packet data protocol which is defined in TS 27.007 section 10.1.1. */ enum PdpProtocolType : int32_t { /** * Unknown protocol */ UNKNOWN = -1, /** * Internet protocol */ IP = 0, /** * Internet protocol, version 6 */ IPV6 = 1, /** * Virtual PDP type introduced to handle dual IP stack UE capability. */ IPV4V6 = 2, /** * Point to point protocol */ PPP = 3, /** * Transfer of Non-IP data to external packet data network */ NON_IP = 4, /** * Transfer of Unstructured data to the Data Network via N6 */ UNSTRUCTURED = 5, }; safe_union RadioFrequencyInfo { /** A rough frequency range. */ FrequencyRange range; /** The Absolute Radio Frequency Channel Number. */ int32_t channelNumber; }; struct PhysicalChannelConfig { @1.2::PhysicalChannelConfig base; /** The radio technology for this physical channel. */ RadioTechnology rat; /** The radio frequency info. */ RadioFrequencyInfo rfInfo; /** * A list of data calls mapped to this physical channel. The context id must match the cid of * @1.4::SetupDataCallResult. An empty list means the physical channel has no data call mapped * to it. */ vec contextIds; /** * The physical cell identifier for this cell. * * In UTRAN, this value is primary scrambling code. The range is [0, 511]. * Reference: 3GPP TS 25.213 section 5.2.2. * * In EUTRAN, this value is physical layer cell identity. The range is [0, 503]. * Reference: 3GPP TS 36.211 section 6.11. * * In 5G RAN, this value is physical layer cell identity. The range is [0, 1008]. * Reference: 3GPP TS 38.211 section 7.4.2.1. */ uint32_t physicalCellId; }; /** * Type to define the LTE specific network capabilities for voice over PS including * emergency and normal voice calls. */ struct LteVopsInfo { /** * This indicates if camped network support VoLTE services. This information is received * from LTE network during LTE NAS registration procedure through LTE ATTACH ACCEPT/TAU * ACCEPT. Refer 3GPP 24.301 EPS network feature support -> IMS VoPS */ bool isVopsSupported; /** * This indicates if camped network support VoLTE emergency bearers. This information * is received from LTE network through two sources: * a. During LTE NAS registration procedure through LTE ATTACH ACCEPT/TAU ACCEPT. Refer * 3GPP 24.301 EPS network feature support -> EMC BS * b. In case device is not registered on network. Refer 3GPP 25.331 LTE RRC * SIB1 : ims-EmergencySupport-r9 * If device is registered on LTE, then this field indicates (a). * In case of limited service on LTE this field indicates (b). */ bool isEmcBearerSupported; }; /** The parameters of NR 5G Non-Standalone. */ struct NrIndicators { /** * Indicates that if E-UTRA-NR Dual Connectivity (EN-DC) is supported by the primary serving * cell. * * True the primary serving cell is LTE cell and the plmn-InfoList-r15 is present in SIB2 and * at least one bit in this list is true, otherwise this value should be false. * * Reference: 3GPP TS 36.331 v15.2.2 6.3.1 System information blocks. */ bool isEndcAvailable; /** * True if use of dual connectivity with NR is restricted. * Reference: 3GPP TS 24.301 v15.03 section 9.3.3.12A. */ bool isDcNrRestricted; /** * True if the bit N is in the PLMN-InfoList-r15 is true and the selected PLMN is present in * plmn-IdentityList at position N. * Reference: 3GPP TS 36.331 v15.2.2 section 6.3.1 PLMN-InfoList-r15. * 3GPP TS 36.331 v15.2.2 section 6.2.2 SystemInformationBlockType1 message. */ bool isNrAvailable; }; struct DataRegStateResult { @1.2::DataRegStateResult base; /** * Network capabilities for voice over PS services. This info is valid only on LTE network and * must be present when device is camped on LTE. vopsInfo must be empty when device is camped * only on 2G/3G. */ safe_union VopsInfo { Monostate noinit; LteVopsInfo lteVopsInfo; // LTE network capability } vopsInfo; /** * The parameters of NR 5G Non-Standalone. This value is only valid on E-UTRAN, otherwise * must be empty. */ NrIndicators nrIndicators; }; /** Contains the configuration of the LTE cell tower. */ struct CellConfigLte { /** * Indicates that if E-UTRA-NR Dual Connectivity (EN-DC) is supported by the LTE cell. * * True if the plmn-InfoList-r15 is present in SIB2 and at least one bit in this list is true, * otherwise this value should be false. * * Reference: 3GPP TS 36.331 v15.2.2 6.3.1 System information blocks. */ bool isEndcAvailable; }; /** Inherits from @1.2::CellInfoLte, in order to add the LTE configuration. */ struct CellInfoLte { @1.2::CellInfoLte base; CellConfigLte cellConfig; }; /** Overwritten from @1.2::CellInfo in order to update the CellInfoLte to 1.4 version. */ struct CellInfo { /** * True if the phone is registered to a mobile network that provides service on this cell and * this cell is being used or would be used for network signaling. */ bool isRegistered; /** Connection status for the cell. */ CellConnectionStatus connectionStatus; /** CellInfo details, cellInfoType can tell which cell info should be used. */ safe_union Info { CellInfoGsm gsm; CellInfoCdma cdma; CellInfoWcdma wcdma; CellInfoTdscdma tdscdma; CellInfoLte lte; CellInfoNr nr; } info; }; struct CellInfoNr { NrSignalStrength signalStrength; CellIdentityNr cellidentity; }; /** Overwritten from @1.2::NetworkScanResult in order to update the CellInfo to 1.4 version. */ struct NetworkScanResult { /** * The status of the scan. */ ScanStatus status; /** * The error code of the incremental result. */ RadioError error; /** * List of network information as CellInfo. */ vec networkInfos; }; /** * Overwritten from @1.0::DataProfileInfo in order to deprecate 'mvnoType', and 'mvnoMatchData'. * In the future, this must be extended instead of overwritten. * Also added 'preferred' and 'persistent' in this version. */ struct DataProfileInfo { /** id of the data profile */ DataProfileId profileId; /** The APN name */ string apn; /** PDP_type values */ PdpProtocolType protocol; /** PDP_type values used on roaming network */ PdpProtocolType roamingProtocol; /** APN authentication type */ ApnAuthType authType; /** The username for APN, or empty string */ string user; /** The password for APN, or empty string */ string password; /** Data profile technology type */ DataProfileInfoType type; /** The period in seconds to limit the maximum connections */ int32_t maxConnsTime; /** The maximum connections during maxConnsTime */ int32_t maxConns; /** * The required wait time in seconds after a successful UE initiated disconnect of a given PDN * connection before the device can send a new PDN connection request for that given PDN. */ int32_t waitTime; /** True to enable the profile, false to disable */ bool enabled; /** Supported APN types bitmap. See ApnTypes for the value of each bit. */ bitfield supportedApnTypesBitmap; /** The bearer bitmap. See RadioAccessFamily for the value of each bit. */ bitfield bearerBitmap; /** Maximum transmission unit (MTU) size in bytes */ int32_t mtu; /** * True if this data profile was used to bring up the last default (i.e internet) data * connection successfully. */ bool preferred; /** * If true, modem must persist this data profile and profileId must not be * set to DataProfileId.INVALID. If the same data profile exists, this data profile must * overwrite it. */ bool persistent; }; struct CardStatus { @1.2::CardStatus base; /** * The EID is the eUICC identifier. The EID shall be stored within the ECASD and can be * retrieved by the Device at any time using the standard GlobalPlatform GET DATA command. * * This data is mandatory and applicable only when cardState is CardState:PRESENT and SIM card * supports eUICC. */ string eid; }; /** Overwritten from @1.0::RadioCapability in order to use the latest RadioAccessFamily. */ struct RadioCapability { /** Unique session value defined by fr amework returned in all "responses/unslo". */ int32_t session; RadioCapabilityPhase phase; /** 32-bit bitmap of RadioAccessFamily. */ bitfield raf; /** * A UUID typically "com.xxxx.lmX" where X is the logical modem. * RadioConst:MAX_UUID_LENGTH is the max length. */ string logicalModemUuid; RadioCapabilityStatus status; }; /** * Overwritten from @1.0::SetupDataCallResult in order to update the DataCallFailCause to 1.4 * version. */ struct SetupDataCallResult { /** Data call fail cause. DataCallFailCause.NONE if no error. */ DataCallFailCause cause; /** * If status != DataCallFailCause.NONE, this field indicates the suggested retry back-off timer * value RIL wants to override the one pre-configured in FW. The unit is milliseconds. * The value < 0 means no value is suggested. * The value 0 means retry must be done ASAP. * The value of INT_MAX(0x7fffffff) means no retry. */ int32_t suggestedRetryTime; /** Context ID, uniquely identifies this call. */ int32_t cid; /** Data connection active status. */ DataConnActiveStatus active; /** * PDP_type values. If cause is DataCallFailCause.ONLY_SINGLE_BEARER_ALLOWED, this is the type * supported such as "IP" or "IPV6". */ PdpProtocolType type; /** The network interface name. */ string ifname; /** * List of addresses with optional "/" prefix length, e.g., "192.0.1.3" or * "192.0.1.11/16 2001:db8::1/64". Typically one IPv4 or one IPv6 or one of each. If the * prefix length is absent the addresses are assumed to be point to point with IPv4 having a * prefix length of 32 and IPv6 128. */ vec addresses; /** * List of DNS server addresses, e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1". Empty if no dns * server addresses returned. */ vec dnses; /** * List of default gateway addresses, e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1". * When empty, the addresses represent point to point connections. */ vec gateways; /** * List of P-CSCF(Proxy Call State Control Function) addresses via PCO(Protocol Configuration * Option), e.g., "2001:db8::1 2001:db8::2 2001:db8::3". Empty if not IMS client. */ vec pcscf; /** * MTU received from network. Value <= 0 means network has either not sent a value or sent an * invalid value. */ int32_t mtu; }; enum SimLockMultiSimPolicy : int32_t { /** * Indicates that configuration applies to each slot independently. */ NO_MULTISIM_POLICY = 0, /** * Indicates that any SIM card can be used as far as one valid card is present in the device. * For the modem, a SIM card is valid when its content (i.e. MCC, MNC, GID, SPN) matches the * carrier restriction configuration. */ ONE_VALID_SIM_MUST_BE_PRESENT = 1, }; struct CarrierRestrictionsWithPriority { /** * List of allowed carriers. * The character '?' is used as wildcard character to match any value. */ vec allowedCarriers; /** * List of excluded carriers. * The character '?' is used as wildcard character to match any value. */ vec excludedCarriers; /** * True means that only carriers included in the allowed list and not in the excluded list * are permitted. Eg. allowedCarriers match mcc/mnc, excludedCarriers has same mcc/mnc and * gid1 is ABCD. It means except the carrier whose gid1 is ABCD, all carriers with the * same mcc/mnc are allowed. * False means that all carriers are allowed except those included in the excluded list * and not in the allowed list. */ bool allowedCarriersPrioritized; }; struct CellIdentityNr { /** 3-digit Mobile Country Code, in range[0, 999]; This value must be valid for registered or * camped cells; INT_MAX means invalid/unreported. */ string mcc; /** * 2 or 3-digit Mobile Network Code, in range [0, 999], This value must be valid for * registered or camped cells; INT_MAX means invalid/unreported. */ string mnc; /** * NR Cell Identity in range [0, 68719476735] (36 bits) described in 3GPP TS 38.331, which * unambiguously identifies a cell within a PLMN. This value must be valid for registered or * camped cells; LONG_MAX (2^63-1) means invalid/unreported. */ uint64_t nci; /** * Physical cell id in range [0, 1007] described in 3GPP TS 38.331. This value must be valid. */ uint32_t pci; /** 16-bit tracking area code, INT_MAX means invalid/unreported. */ int32_t tac; /** * NR Absolute Radio Frequency Channel Number, in range [0, 3279165]. * Reference: 3GPP TS 38.101-1 and 3GPP TS 38.101-2 section 5.4.2.1. * This value must be valid. */ int32_t nrarfcn; CellIdentityOperatorNames operatorNames; }; struct NrSignalStrength { /** * SS reference signal received power, multipled by -1. * * Reference: 3GPP TS 38.215. * * Range [44, 140], INT_MAX means invalid/unreported. */ int32_t ssRsrp; /** * SS reference signal received quality, multipled by -1. * * Reference: 3GPP TS 38.215. * * Range [3, 20], INT_MAX means invalid/unreported. */ int32_t ssRsrq; /** * SS signal-to-noise and interference ratio. * * Reference: 3GPP TS 38.215 section 5.1.*, 3GPP TS 38.133 section 10.1.16.1. * * Range [-23, 40], INT_MAX means invalid/unreported. */ int32_t ssSinr; /** * CSI reference signal received power, multipled by -1. * * Reference: 3GPP TS 38.215. * * Range [44, 140], INT_MAX means invalid/unreported. */ int32_t csiRsrp; /** * CSI reference signal received quality, multipled by -1. * * Reference: 3GPP TS 38.215. * * Range [3, 20], INT_MAX means invalid/unreported. */ int32_t csiRsrq; /** * CSI signal-to-noise and interference ratio. * * Reference: 3GPP TS 138.215 section 5.1.*, 3GPP TS 38.133 section 10.1.16.1. * * Range [-23, 40], INT_MAX means invalid/unreported. */ int32_t csiSinr; }; /** Overwritten from @1.2::SignalStrength in order to add signal strength for NR. */ struct SignalStrength { /** * If GSM measurements are provided, this structure must contain valid measurements; otherwise * all fields should be set to INT_MAX to mark them as invalid. */ GsmSignalStrength gsm; /** * If CDMA measurements are provided, this structure must contain valid measurements; otherwise * all fields should be set to INT_MAX to mark them as invalid. */ CdmaSignalStrength cdma; /** * If EvDO measurements are provided, this structure must contain valid measurements; otherwise * all fields should be set to INT_MAX to mark them as invalid. */ EvdoSignalStrength evdo; /** * If LTE measurements are provided, this structure must contain valid measurements; otherwise * all fields should be set to INT_MAX to mark them as invalid. */ LteSignalStrength lte; /** * If TD-SCDMA measurements are provided, this structure must contain valid measurements; * otherwise all fields should be set to INT_MAX to mark them as invalid. */ TdscdmaSignalStrength tdscdma; /** * If WCDMA measurements are provided, this structure must contain valid measurements; otherwise * all fields should be set to INT_MAX to mark them as invalid. */ WcdmaSignalStrength wcdma; /** * If NR 5G measurements are provided, this structure must contain valid measurements; otherwise * all fields should be set to INT_MAX to mark them as invalid. */ NrSignalStrength nr; };