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