| // Copyright 2021 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| library fuchsia.wlan.policy; |
| |
| using fuchsia.wlan.ieee80211 as ieee80211; |
| |
| // Basic definitions for wlan APIs. |
| |
| /// High level protection type for the network. This does not convey all details needed |
| /// for the mechanism of the connection, but is primarily used to map the target network |
| /// to proper scan results. |
| type SecurityType = strict enum { |
| NONE = 1; |
| WEP = 2; |
| WPA = 3; |
| WPA2 = 4; |
| WPA3 = 5; |
| }; |
| |
| /// Primary means of distinguishing between available networks - the combination of |
| /// the (mostly) human recognizable name and the security type. The security type is used |
| /// to distinguish between different network protection (or lack thereof) types. |
| type NetworkIdentifier = struct { |
| /// Network name, often used by users to choose between networks in the UI. |
| ssid ieee80211.Ssid; |
| |
| /// Protection type (or not) for the network. |
| type SecurityType; |
| }; |
| |
| /// Network information used to establish a connection. |
| type NetworkConfig = table { |
| /// Identifier used to represent a specific network. No guarantee for uniqueness. |
| 1: id NetworkIdentifier; |
| |
| /// Information needed to join a network. |
| 2: credential Credential; |
| }; |
| |
| /// Information used to verify access to a target network. |
| type Credential = flexible union { |
| /// The network does not use credentials (open networks). |
| 1: none Empty; |
| |
| /// Plaintext password (handled as binary data). |
| 2: password bytes; |
| |
| /// Hash representation of the network passphrase (handled as binary data). |
| 3: psk bytes; |
| }; |
| |
| /// Operating band for wlan control request and status updates. |
| type OperatingBand = strict enum { |
| /// Allows for band switching depending on device operating mode and environment. |
| ANY = 1; |
| |
| /// Restricted to 2.4 GHz bands only. |
| ONLY_2_4GHZ = 2; |
| |
| /// Restricted to 5 GHz bands only. |
| ONLY_5GHZ = 3; |
| }; |
| |
| /// Empty struct used in place of optional values. |
| // TODO: fxbug.dev/7913 |
| type Empty = struct {}; |