• 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
17syntax = "proto2";
18package android.net.wifi;
19
20option java_outer_classname = "WifiProtoEnums";
21option java_multiple_files = true;
22
23/**
24 * Wifi Lock modes, primarily used in
25 * frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiLockManager.java.
26 */
27enum WifiModeEnum {
28    /**
29     * Deprecated.
30     * Wi-Fi will be kept active, and will behave normally.
31     */
32    WIFI_MODE_FULL = 1 [deprecated=true];
33
34    /**
35     * Deprecated.
36     * Wi-Fi will be kept active, but the only operation that will be supported is initiation of
37     * scans, and the subsequent reporting of scan results.
38     */
39    WIFI_MODE_SCAN_ONLY = 2 [deprecated=true];
40
41    /**
42     * Deprecated. Refer {@link com.android.server.wifi.WifiManager#WIFI_MODE_FULL_HIGH_PERF}.
43     * Wi-Fi will not go to power save.
44     */
45    WIFI_MODE_FULL_HIGH_PERF = 3 [deprecated=true];
46
47    /**
48     * Wi-Fi will operate with a priority to achieve low latency.
49     */
50    WIFI_MODE_FULL_LOW_LATENCY = 4;
51
52    /**
53     * Wi-Fi will not filter packets addressed to multicast addresses. This allows the device
54     * to receive multicast packets, but can lead to noticeable battery drain.
55     */
56    WIFI_MODE_MULTICAST_FILTERING_DISABLED = 5;
57}
58
59/**
60 * What permission model the caller has.
61 * Calculated with WifiPermissionsUtil#getWifiCallerType
62 */
63enum WifiCallerType {
64    UNKNOWN = 0;
65    SETTINGS = 1; // caller is SETTINGS or SETUP_WIZARD
66    ADMIN = 2; // caller is a device admin(DO/PO/DA)
67    AUTOMOTIVE = 3; // caller has automotive related permissions
68    SIGNATURE = 4;  // Caller uid must be signed with platform key
69    SYSTEM = 5; // caller is a system app
70    OTHERS = 6;  // caller is none of the above
71}
72
73/**
74 * Wifi authentication type.
75 */
76enum WifiAuthType {
77    AUTH_TYPE_NONE = 0;
78
79    // WPA pre-shared key.
80    AUTH_TYPE_WPA_PSK = 1;
81    // WPA using EAP authentication. Generally used with an external authentication server.
82    AUTH_TYPE_WPA_EAP = 2;
83    // IEEE 802.1X using EAP authentication and (optionally) dynamically generated WEP keys.
84    AUTH_TYPE_IEEE8021X = 3;
85    // WPA2 pre-shared key for use with soft access point.
86    AUTH_TYPE_WPA2_PSK = 4;
87    // Hotspot 2.0 r2 OSEN.
88    AUTH_TYPE_OSEN = 5;
89    // IEEE 802.11r Fast BSS Transition with PSK authentication.
90    AUTH_TYPE_FT_PSK = 6;
91    // IEEE 802.11r Fast BSS Transition with EAP authentication.
92    AUTH_TYPE_FT_EAP = 7;
93    // Simultaneous Authentication of Equals.
94    AUTH_TYPE_SAE = 8;
95    // Opportunistic Wireless Encryption.
96    AUTH_TYPE_OWE = 9;
97    // SUITE_B_192 192 bit level
98    AUTH_TYPE_SUITE_B_192 = 10;
99    // WPA pre-shared key with stronger SHA256-based algorithms.
100    AUTH_TYPE_WPA_PSK_SHA256 = 11;
101    // WPA using EAP authentication with stronger SHA256-based algorithms.
102    AUTH_TYPE_WPA_EAP_SHA256 = 12;
103    // WAPI pre-shared key.
104    AUTH_TYPE_WAPI_PSK = 13;
105    // WAPI certificate to be specified.
106    AUTH_TYPE_WAPI_CERT = 14;
107    // IEEE 802.11ai FILS SK with SHA256.
108    AUTH_TYPE_FILS_SHA256 = 15;
109    // IEEE 802.11ai FILS SK with SHA384.
110    AUTH_TYPE_FILS_SHA384 = 16;
111    // Simultaneous Authentication of Equals transition mode.
112    AUTH_TYPE_SAE_TRANSITION = 17;
113    // Opportunistic Wireless Encryption transition mode.
114    AUTH_TYPE_OWE_TRANSITION = 18;
115}
116
117/**
118 * Bucketed wifi band.
119 */
120enum WifiBandBucket {
121    BAND_UNKNOWN = 0;
122
123    // All of 2.4GHz band
124    BAND_2G = 1;
125    // Frequencies in the range of [5150, 5250) GHz
126    BAND_5G_LOW = 2;
127    // Frequencies in the range of [5250, 5725) GHz
128    BAND_5G_MIDDLE = 3;
129    // Frequencies in the range of [5725, 5850) GHz
130    BAND_5G_HIGH = 4;
131    // Frequencies in the range of [5925, 6425) GHz
132    BAND_6G_LOW = 5;
133    // Frequencies in the range of [6425, 6875) GHz
134    BAND_6G_MIDDLE = 6;
135    // Frequencies in the range of [6875, 7125) GHz
136    BAND_6G_HIGH = 7;
137}
138
139// Status of various Aware operations
140enum AwareStatus {
141    // unknown status
142    ST_UNKNOWN = 0;
143    // NAN operation succeeded
144    ST_SUCCESS = 1;
145    // NAN Discovery Engine/Host driver failures
146    ST_INTERNAL_FAILURE = 2;
147    // NAN OTA failures
148    ST_PROTOCOL_FAILURE = 3;
149    // The publish/subscribe discovery session id is invalid
150    ST_INVALID_SESSION_ID = 4;
151    // Out of resources to fufill request
152    ST_NO_RESOURCES_AVAILABLE = 5;
153    // Invalid arguments passed
154    ST_INVALID_ARGS = 6;
155    // Invalid peer id
156    ST_INVALID_PEER_ID = 7;
157    // Invalid NAN data-path (ndp) id
158    ST_INVALID_NDP_ID = 8;
159    // Attempting to enable NAN when not available, e.g. wifi is disabled
160    ST_NAN_NOT_ALLOWED = 9;
161    // Over the air ACK not received
162    ST_NO_OTA_ACK = 10;
163    // Attempting to enable NAN when already enabled
164    ST_ALREADY_ENABLED = 11;
165    // Can't queue tx followup message foor transmission
166    ST_FOLLOWUP_TX_QUEUE_FULL = 12;
167    // Unsupported concurrency of NAN and another feature - NAN disabled
168    ST_UNSUPPORTED_CONCURRENCY = 13;
169    // Other failures
170    ST_GENERIC_FAILURE = 14;
171}
172
173/**
174 * Soft AP Role
175 */
176enum SoftApRole {
177    // Unknown
178    ROLE_UNKNOWN = 0;
179    // Tethering AP
180    ROLE_TETHERING = 1;
181    // Local-only AP
182    ROLE_LOCAL_ONLY = 2;
183}
184
185/**
186 * Device support for STA + AP concurrency
187 */
188enum StaApConcurrency {
189    // Unknown
190    STA_AP_CONCURRENCY_UNKNOWN = 0;
191    // STA + AP concurrency unsupported
192    STA_AP_CONCURRENCY_UNSUPPORTED = 1;
193    // STA + Single AP concurrency supported
194    STA_AP_CONCURRENCY_SINGLE = 2;
195    // STA + Bridged AP concurrency supported
196    STA_AP_CONCURRENCY_DBS = 3;
197}
198
199/**
200 * Connection status of the existing primary STA
201 */
202enum StaStatus {
203    // Unknown
204    STA_STATUS_UNKNOWN = 0;
205    // STA is disconnected
206    STA_STATUS_DISCONNECTED = 1;
207    // STA is connected via 2.4GHz band
208    STA_STATUS_CONNECTED_2_GHZ = 2;
209    // STA is connected via 5GHz band
210    STA_STATUS_CONNECTED_5_GHZ = 3;
211    // STA is connected via 6GHz band
212    STA_STATUS_CONNECTED_6_GHZ = 4;
213}
214
215enum EapType {
216    // Unknown Type
217    TYPE_UNKNOWN = 0;
218    // EAP_TLS (13)
219    TYPE_EAP_TLS = 1;
220    // EAP_TTLS (21)
221    TYPE_EAP_TTLS = 2;
222    // EAP_SIM (18)
223    TYPE_EAP_SIM = 3;
224    // EAP_AKA (23)
225    TYPE_EAP_AKA = 4;
226    // EAP_AKA_PRIME (50)
227    TYPE_EAP_AKA_PRIME = 5;
228    TYPE_EAP_WAPI_CERT = 6;
229    TYPE_EAP_UNAUTH_TLS = 7;
230    TYPE_EAP_PEAP = 8;
231    TYPE_EAP_PWD = 9;
232    TYPE_EAP_OTHERS = 10;
233}
234
235enum EapInnerMethod {
236    METHOD_UNKNOWN = 0;
237    METHOD_PAP = 1;
238    METHOD_MSCHAP = 2;
239    METHOD_MSCHAP_V2 = 3;
240    METHOD_OTHERS = 4;
241    // Generic Token Card
242    METHOD_GTC = 5;
243    // EAP-Subscriber Identity Module [RFC-4186]
244    METHOD_SIM = 6;
245    // EAP-Authentication and Key Agreement [RFC-4187]
246    METHOD_AKA = 7;
247    // EAP-Authentication and Key Agreement Prime [RFC-5448]
248    METHOD_AKA_PRIME = 8;
249}
250
251enum RoamingType {
252    ROAMING_UNKNOWN = 0;
253    // Not a Passpoint network
254    ROAMING_NOT_PASSPOINT = 1;
255    // Non-Roaming
256    ROAMING_NONE = 2;
257    // Other RCOI Roaming
258    ROAMING_RCOI_OTHERS = 3;
259    // Free OpenRoaming
260    ROAMING_RCOI_OPENROAMING_FREE = 4;
261    // Settled OpenRoaming
262    ROAMING_RCOI_OPENROAMING_SETTLED = 5;
263    // Not RCOI roaming
264    ROAMING_NOT_RCOI = 6;
265}
266
267/**
268 * Wi-Fi Standards
269 */
270enum WifiStandard {
271    // Unknown
272    WIFI_STANDARD_UNKNOWN = 0;
273    // Wi-Fi 802.11a/b/g
274    WIFI_STANDARD_LEGACY = 1;
275    // Wi-Fi 802.11n
276    WIFI_STANDARD_11N = 2;
277    // Wi-Fi 802.11ac
278    WIFI_STANDARD_11AC = 3;
279    // Wi-Fi 802.11ax
280    WIFI_STANDARD_11AX = 4;
281    // Wi-Fi 802.11ad
282    WIFI_STANDARD_11AD = 5;
283    // Wi-Fi 802.11be
284    WIFI_STANDARD_11BE = 6;
285}
286
287/**
288 * Role of the client mode manager
289 */
290enum ClientModeRole {
291    ROLE_UNSPECIFIED = 0;
292    ROLE_CLIENT_PRIMARY = 1;
293    ROLE_CLIENT_SECONDARY_LONG_LIVED = 2;
294    ROLE_CLIENT_SECONDARY_TRANSIENT = 3;
295    ROLE_CLIENT_SECONDARY_INTERNET = 4;
296    ROLE_CLIENT_LOCAL_ONLY = 5;
297    ROLE_CLIENT_OTHERS = 6;
298}
299
300/**
301 * Aware HAL API
302 */
303enum AwareHalApi {
304    AWARE_API_UNKNOWN = 0;
305    AWARE_CONFIG_REQUEST = 1;
306    AWARE_CREATE_DATA_INTERFACE_REQUEST = 2;
307    AWARE_DELETE_DATA_INTERFACE_REQUEST = 3;
308    AWARE_DISABLE_REQUEST = 4;
309    AWARE_ENABLE_REQUEST = 5;
310    AWARE_GET_CAPABILITIES_REQUEST = 6;
311    AWARE_INITIATE_DATA_PATH_REQUEST = 7;
312    AWARE_REGISTER_EVENT_CALLBACK = 8;
313    AWARE_RESPOND_TO_DATA_PATH_INDICATION_REQUEST = 9;
314    AWARE_START_PUBLISH_REQUEST = 10;
315    AWARE_START_SUBSCRIBE_REQUEST = 11;
316    AWARE_STOP_PUBLISH_REQUEST = 12;
317    AWARE_STOP_SUBSCRIBE_REQUEST = 13;
318    AWARE_TERMINATE_DATA_PATH_REQUEST = 14;
319    AWARE_SUSPEND_REQUEST = 15;
320    AWARE_RESUME_REQUEST = 16;
321    AWARE_TRANSMIT_FOLLOW_UP_REQUEST = 17;
322    AWARE_INITIATE_PAIRING_REQUEST = 18;
323    AWARE_RESPOND_TO_PAIRING_INDICATION_REQUEST = 19;
324    AWARE_INITIATE_BOOTSTRAPPING_REQUEST = 20;
325    AWARE_RESPOND_TO_BOOTSTRAPPING_INDICATION_REQUEST = 21;
326    AWARE_TERMINATE_PAIRING_REQUEST = 22;
327}
328
329/**
330 * Wi-Fi Security modes defined by the combinations of cipher suite, AKM and PMF
331 */
332enum SecurityMode {
333    SECURITY_MODE_UNKNOWN = 0;
334    SECURITY_MODE_INVALID = 1;
335    SECURITY_MODE_WPA3_ENTERPRISE_192_BIT = 2;
336    SECURITY_MODE_WPA3_ENTERPRISE = 3;
337    SECURITY_MODE_WPA3_PERSONAL = 4;
338    SECURITY_MODE_WPA3_WPA2_PERSONAL_TRANSITION = 5;
339    SECURITY_MODE_DPP = 6;
340    SECURITY_MODE_WPA2_PERSONAL = 7;
341    SECURITY_MODE_WPA2_WPA_PERSONAL_TRANSITION = 8;
342    SECURITY_MODE_WAPI_CERT = 9;
343    SECURITY_MODE_WAPI_PSK = 10;
344    SECURITY_MODE_WPA_ENTERPRISE_LEGACY = 11;
345    SECURITY_MODE_WPA_PERSONAL_LEGACY = 12;
346    SECURITY_MODE_OWE = 13;
347    SECURITY_MODE_OWE_TRANSITION = 14;
348    SECURITY_MODE_WEP = 15;
349    SECURITY_MODE_NONE = 16;
350}
351
352enum TofuConfiguration {
353    // Default value.
354    TOFU_CONFIGURATION_UNSPECIFIED = 0;
355    // TOFU is not enabled on the enterprise config.
356    TOFU_CONFIGURATION_NOT_ENABLED = 1;
357    // TOFU is enabled pre-connection.
358    TOFU_CONFIGURATION_ENABLED_PRE_CONNECTION = 2;
359    // Root CA was configured post-TOFU connection.
360    TOFU_CONFIGURATION_CONFIGURE_ROOT_CA = 3;
361    // Certificate pinning was used post-TOFU connection.
362    TOFU_CONFIGURATION_CERT_PINNING = 4;
363}
364
365/**
366 * Passpoint release versions
367 */
368enum PasspointRelease {
369  PASSPOINT_RELEASE_UNKNOWN = 0;
370  PASSPOINT_RELEASE_1 = 1;
371  PASSPOINT_RELEASE_2 = 2;
372  PASSPOINT_RELEASE_3 = 3;
373}
374
375/**
376 * Wi-Fi usability state as predicted by the network scorer
377 */
378enum WifiPredictedUsabilityState {
379   WIFI_USABILITY_PREDICTED_UNKNOWN = 0;
380   WIFI_USABILITY_PREDICTED_USABLE = 1;
381   WIFI_USABILITY_PREDICTED_UNUSABLE = 2;
382   // Scorer doesn't predict or the prediction isn't for the current session.
383   WIFI_USABILITY_PREDICTED_NONE = 3;
384 }
385
386/**
387 * Wi-Fi channel width
388 */
389enum WifiChannelWidth {
390  CHANNEL_WIDTH_UNKNOWN = 0;
391  CHANNEL_WIDTH_20MHZ = 1;
392  CHANNEL_WIDTH_40MHZ = 2;
393  CHANNEL_WIDTH_80MHZ = 3;
394  CHANNEL_WIDTH_160MHZ = 4;
395  CHANNEL_WIDTH_80MHZ_PLUS_MHZ = 5;
396  CHANNEL_WIDTH_320MHZ = 6;
397}
398