1/* 2 * Copyright (C) 2023 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 17syntax = "proto2"; 18package android.telephony; 19 20option java_outer_classname = "SatelliteProtoEnums"; 21option java_multiple_files = true; 22 23// Feature types of satellite datagram 24enum DatagramType { 25 // Datagram type is unknown. This generic datagram type should be used only when the datagram 26 // type cannot be mapped to other specific datagram types 27 DATAGRAM_TYPE_UNKNOWN = 0; 28 // Datagram type indicating that the datagram to be sent or received is of type SOS message. 29 DATAGRAM_TYPE_SOS_MESSAGE = 1; 30 // Datagram type indicating that the datagram to be sent or received is of type location sharing. 31 DATAGRAM_TYPE_LOCATION_SHARING = 2; 32 // Datagram type indicating that keep the device in satellite connected state or check if there is 33 // any incoming message. 34 DATAGRAM_TYPE_KEEP_ALIVE = 3; 35 // Datagram type indicating that the datagram to be sent or received is of type SOS message and 36 // is the last message to emergency service provider indicating still needs help. 37 DATAGRAM_TYPE_LAST_SOS_MESSAGE_STILL_NEED_HELP = 4; 38 // Datagram type indicating that the datagram to be sent or received is of type SOS message and 39 // is the last message to emergency service provider indicating no more help is needed. 40 DATAGRAM_TYPE_LAST_SOS_MESSAGE_NO_HELP_NEEDED = 5; 41 // Datagram type indicating that the message to be sent or received is of type SMS. 42 DATAGRAM_TYPE_SMS = 6; 43} 44 45// Result code of Incoming / Outgoing satellite datagram 46// SatelliteServiceResultEnum is not completed yet, it'll be updated once design is fixed 47enum SatelliteError { 48 SATELLITE_RESULT_SUCCESS = 0; 49 SATELLITE_RESULT_ERROR = 1; 50 SATELLITE_RESULT_SERVER_ERROR = 2; 51 SATELLITE_RESULT_SERVICE_ERROR = 3; 52 SATELLITE_RESULT_MODEM_ERROR = 4; 53 SATELLITE_RESULT_NETWORK_ERROR = 5; 54 SATELLITE_RESULT_INVALID_TELEPHONY_STATE = 6; 55 SATELLITE_RESULT_INVALID_MODEM_STATE = 7; 56 SATELLITE_RESULT_INVALID_ARGUMENTS = 8; 57 SATELLITE_RESULT_REQUEST_FAILED = 9; 58 SATELLITE_RESULT_RADIO_NOT_AVAILABLE = 10; 59 SATELLITE_RESULT_REQUEST_NOT_SUPPORTED = 11; 60 SATELLITE_RESULT_NO_RESOURCES = 12; 61 SATELLITE_RESULT_SERVICE_NOT_PROVISIONED = 13; 62 SATELLITE_RESULT_SERVICE_PROVISION_IN_PROGRESS = 14; 63 SATELLITE_RESULT_REQUEST_ABORTED = 15; 64 SATELLITE_RESULT_ACCESS_BARRED = 16; 65 SATELLITE_RESULT_NETWORK_TIMEOUT = 17; 66 SATELLITE_RESULT_NOT_REACHABLE = 18; 67 SATELLITE_RESULT_NOT_AUTHORIZED = 19; 68 SATELLITE_RESULT_NOT_SUPPORTED = 20; 69 SATELLITE_RESULT_REQUEST_IN_PROGRESS = 21; 70 SATELLITE_RESULT_MODEM_BUSY = 22; 71 SATELLITE_RESULT_ILLEGAL_STATE = 23; 72 SATELLITE_RESULT_MODEM_TIMEOUT = 24; 73 SATELLITE_RESULT_LOCATION_DISABLED = 25; 74 SATELLITE_RESULT_LOCATION_NOT_AVAILABLE = 26; 75 SATELLITE_RESULT_EMERGENCY_CALL_IN_PROGRESS = 27; 76} 77 78// Technology of Satellite Communication 79enum NTRadioTechnology { 80 /* Satellite technology unknown */ 81 NT_RADIO_TECHNOLOGY_UNKNOWN = 0; 82 /* 3GPP NB-IoT (Narrowband Internet of Things) over Non-Terrestrial-Networks technology */ 83 NT_RADIO_TECHNOLOGY_NB_IOT_NTN = 1; 84 /* 3GPP 5G NR over Non-Terrestrial-Networks technology */ 85 NT_RADIO_TECHNOLOGY_NR_NTN = 2; 86 /* 3GPP eMTC (enhanced Machine-Type Communication) over Non-Terrestrial-Networks technology */ 87 NT_RADIO_TECHNOLOGY_EMTC_NTN = 3; 88 /* Proprietary technology like Iridium or Bullitt */ 89 NT_RADIO_TECHNOLOGY_PROPRIETARY = 4; 90} 91 92// Handover type from emergency call to satellite messaging 93enum RecommendingHandoverType { 94 RECOMMENDING_HANDOVER_TYPE_UNKNOWN = 0; 95 RECOMMENDING_HANDOVER_TYPE_SOS = 1; 96 RECOMMENDING_HANDOVER_TYPE_T911 = 2; 97} 98 99// Data source of carrier roaming satellite network 100enum ConfigDataSource { 101 CONFIG_DATA_SOURCE_UNKNOWN = 0; 102 CONFIG_DATA_SOURCE_ENTITLEMENT = 1; 103 CONFIG_DATA_SOURCE_CONFIG_UPDATER = 2; 104 CONFIG_DATA_SOURCE_CARRIER_CONFIG = 3; 105 CONFIG_DATA_SOURCE_DEVICE_CONFIG = 4; 106} 107 108// Satellite entitlement status of the subscription 109enum SatelliteEntitlementStatus { 110 // Satellite entitlement status unknown 111 SATELLITE_ENTITLEMENT_STATUS_UNKNOWN = 0; 112 // SatMode allowed, but not yet provisioned and activated on the network. 113 SATELLITE_ENTITLEMENT_STATUS_DISABLED = 1; 114 // SatMode service allowed, provisioned and activated on the network. User can access the 115 // satellite service. 116 SATELLITE_ENTITLEMENT_STATUS_ENABLED = 2; 117 // SatMode cannot be offered for network or device. 118 SATELLITE_ENTITLEMENT_STATUS_INCOMPATIBLE = 3; 119 // SatMode is being provisioned on the network. Not yet activated. 120 SATELLITE_ENTITLEMENT_STATUS_PROVISIONING = 4; 121} 122 123// Config update result codes. 124enum ConfigUpdateResult { 125 CONFIG_UPDATE_RESULT_UNKNOWN = 0; 126 CONFIG_UPDATE_RESULT_SUCCESS = 1; 127 CONFIG_UPDATE_RESULT_INVALID_DOMAIN = 2; 128 CONFIG_UPDATE_RESULT_INVALID_VERSION = 3; 129 CONFIG_UPDATE_RESULT_NO_DATA = 4; 130 CONFIG_UPDATE_RESULT_NO_SATELLITE_DATA = 5; 131 CONFIG_UPDATE_RESULT_PARSE_ERROR = 6; 132 CONFIG_UPDATE_RESULT_CARRIER_DATA_INVALID_PLMN = 7; 133 CONFIG_UPDATE_RESULT_CARRIER_DATA_INVALID_SUPPORTED_SERVICES = 8; 134 CONFIG_UPDATE_RESULT_DEVICE_DATA_INVALID_COUNTRY_CODE = 9; 135 CONFIG_UPDATE_RESULT_DEVICE_DATA_INVALID_S2_CELL_FILE = 10; 136 CONFIG_UPDATE_RESULT_IO_ERROR = 11; 137} 138 139// Satellite access control type 140enum AccessControlType { 141 ACCESS_CONTROL_TYPE_UNKNOWN = 0; 142 // Network country code is used for satellite access decision 143 ACCESS_CONTROL_TYPE_NETWORK_COUNTRY_CODE = 1; 144 // Device's current location is used for satellite access decision 145 ACCESS_CONTROL_TYPE_CURRENT_LOCATION = 2; 146 // Device's last known location is used for satellite access decision 147 ACCESS_CONTROL_TYPE_LAST_KNOWN_LOCATION = 3; 148 // Cached country codes are used for satellite access decision 149 ACCESS_CONTROL_TYPE_CACHED_COUNTRY_CODE = 4; 150} 151 152// Satellite access controller triggering event 153enum TriggeringEvent { 154 // Unknown reason. 155 TRIGGERING_EVENT_UNKNOWN = 0; 156 // Satellite Access Controller has been triggered by an external event. 157 TRIGGERING_EVENT_EXTERNAL_REQUEST = 1; 158 // Satellite Access Controller has been triggered by an MCC change event. 159 TRIGGERING_EVENT_MCC_CHANGED = 2; 160 //Satellite Access Controller has been triggered due to the location setting being enabled 161 TRIGGERING_EVENT_LOCATION_SETTINGS_ENABLED = 3; 162} 163