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