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} 36 37// Result code of Incoming / Outgoing satellite datagram 38// SatelliteServiceResultEnum is not completed yet, it'll be updated once design is fixed 39enum SatelliteError { 40 SATELLITE_ERROR_NONE = 0; 41 SATELLITE_ERROR = 1; 42 SATELLITE_SERVER_ERROR = 2; 43 SATELLITE_SERVICE_ERROR = 3; 44 SATELLITE_MODEM_ERROR = 4; 45 SATELLITE_NETWORK_ERROR = 5; 46 SATELLITE_INVALID_TELEPHONY_STATE = 6; 47 SATELLITE_INVALID_MODEM_STATE = 7; 48 SATELLITE_INVALID_ARGUMENTS = 8; 49 SATELLITE_REQUEST_FAILED = 9; 50 SATELLITE_RADIO_NOT_AVAILABLE = 10; 51 SATELLITE_REQUEST_NOT_SUPPORTED = 11; 52 SATELLITE_NO_RESOURCES = 12; 53 SATELLITE_SERVICE_NOT_PROVISIONED = 13; 54 SATELLITE_SERVICE_PROVISION_IN_PROGRESS = 14; 55 SATELLITE_REQUEST_ABORTED = 15; 56 SATELLITE_ACCESS_BARRED = 16; 57 SATELLITE_NETWORK_TIMEOUT = 17; 58 SATELLITE_NOT_REACHABLE = 18; 59 SATELLITE_NOT_AUTHORIZED = 19; 60 SATELLITE_NOT_SUPPORTED = 20; 61} 62 63// Technology of Satellite Communication 64enum NTRadioTechnology { 65 /* Satellite technology unknown */ 66 NT_RADIO_TECHNOLOGY_UNKNOWN = 0; 67 /* 3GPP NB-IoT (Narrowband Internet of Things) over Non-Terrestrial-Networks technology */ 68 NT_RADIO_TECHNOLOGY_NB_IOT_NTN = 1; 69 /* 3GPP 5G NR over Non-Terrestrial-Networks technology */ 70 NT_RADIO_TECHNOLOGY_NR_NTN = 2; 71 /* 3GPP eMTC (enhanced Machine-Type Communication) over Non-Terrestrial-Networks technology */ 72 NT_RADIO_TECHNOLOGY_EMTC_NTN = 3; 73 /* Proprietary technology like Iridium or Bullitt */ 74 NT_RADIO_TECHNOLOGY_PROPRIETARY = 4; 75} 76 77// Handover type from emergency call to satellite messaging 78enum RecommendingHandoverType { 79 RECOMMENDING_HANDOVER_TYPE_UNKNOWN = 0; 80 RECOMMENDING_HANDOVER_TYPE_SOS = 1; 81 RECOMMENDING_HANDOVER_TYPE_T911 = 2; 82} 83 84// Data source of carrier roaming satellite network 85enum ConfigDataSource { 86 CONFIG_DATA_SOURCE_UNKNOWN = 0; 87 CONFIG_DATA_SOURCE_ENTITLEMENT = 1; 88 CONFIG_DATA_SOURCE_CONFIG_UPDATER = 2; 89 CONFIG_DATA_SOURCE_CARRIER_CONFIG = 3; 90 CONFIG_DATA_SOURCE_DEVICE_CONFIG = 4; 91} 92 93// Satellite entitlement status of the subscription 94enum SatelliteEntitlementStatus { 95 // Satellite entitlement status unknown 96 SATELLITE_ENTITLEMENT_STATUS_UNKNOWN = 0; 97 // SatMode allowed, but not yet provisioned and activated on the network. 98 SATELLITE_ENTITLEMENT_STATUS_DISABLED = 1; 99 // SatMode service allowed, provisioned and activated on the network. User can access the 100 // satellite service. 101 SATELLITE_ENTITLEMENT_STATUS_ENABLED = 2; 102 // SatMode cannot be offered for network or device. 103 SATELLITE_ENTITLEMENT_STATUS_INCOMPATIBLE = 3; 104 // SatMode is being provisioned on the network. Not yet activated. 105 SATELLITE_ENTITLEMENT_STATUS_PROVISIONING = 4; 106} 107 108// Config update result codes. 109enum ConfigUpdateResult { 110 CONFIG_UPDATE_RESULT_UNKNOWN = 0; 111 CONFIG_UPDATE_RESULT_SUCCESS = 1; 112 CONFIG_UPDATE_RESULT_INVALID_DOMAIN = 2; 113 CONFIG_UPDATE_RESULT_INVALID_VERSION = 3; 114 CONFIG_UPDATE_RESULT_NO_DATA = 4; 115 CONFIG_UPDATE_RESULT_NO_SATELLITE_DATA = 5; 116 CONFIG_UPDATE_RESULT_PARSE_ERROR = 6; 117 CONFIG_UPDATE_RESULT_CARRIER_DATA_INVALID_PLMN = 7; 118 CONFIG_UPDATE_RESULT_CARRIER_DATA_INVALID_SUPPORTED_SERVICES = 8; 119 CONFIG_UPDATE_RESULT_DEVICE_DATA_INVALID_COUNTRY_CODE = 9; 120 CONFIG_UPDATE_RESULT_DEVICE_DATA_INVALID_S2_CELL_FILE = 10; 121 CONFIG_UPDATE_RESULT_IO_ERROR = 11; 122} 123 124// Satellite access control type 125enum AccessControlType { 126 ACCESS_CONTROL_TYPE_UNKNOWN = 0; 127 // Network country code is used for satellite access decision 128 ACCESS_CONTROL_TYPE_NETWORK_COUNTRY_CODE = 1; 129 // Device's current location is used for satellite access decision 130 ACCESS_CONTROL_TYPE_CURRENT_LOCATION = 2; 131 // Device's last known location is used for satellite access decision 132 ACCESS_CONTROL_TYPE_LAST_KNOWN_LOCATION = 3; 133 // Cached country codes are used for satellite access decision 134 ACCESS_CONTROL_TYPE_CACHED_COUNTRY_CODE = 4; 135} 136 137