| // Copyright 2017 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.service; |
| |
| using fuchsia.wlan.common; |
| using fuchsia.wlan.stats; |
| |
| enum ErrCode { |
| OK = 0; |
| INTERNAL = 1; |
| NOT_FOUND = 2; |
| NOT_SUPPORTED = 3; |
| INVALID_ARGS = 4; |
| }; |
| |
| struct Error { |
| ErrCode code; |
| string description; |
| }; |
| |
| struct AP { |
| bytes bssid; |
| string ssid; // TODO(NET-698, NET-1474): Make this as vector<uint8:32> |
| int8 rssi_dbm; |
| bool is_secure; |
| bool is_compatible; // with respect to Fuchsia |
| fuchsia.wlan.common.WlanChan chan; |
| }; |
| |
| struct ScanRequest { |
| uint8 timeout; // seconds |
| // TODO: more parameters here |
| }; |
| |
| struct ScanResult { |
| Error error; |
| vector<AP>? aps; |
| }; |
| |
| struct ConnectConfig { |
| string ssid; |
| string passPhrase; |
| uint8 scanInterval; // seconds |
| string bssid; |
| }; |
| |
| enum State { |
| UNKNOWN = 0; |
| BSS = 1; |
| QUERYING = 2; |
| SCANNING = 3; |
| JOINING = 4; |
| AUTHENTICATING = 5; |
| ASSOCIATING = 6; |
| ASSOCIATED = 7; |
| }; |
| |
| struct WlanStatus { |
| Error error; |
| State state; |
| AP? current_ap; |
| }; |
| |
| struct BssConfig { |
| string ssid; |
| int32 beaconPeriod; |
| int32 dtimPeriod; |
| uint8 channel; |
| }; |
| |
| struct WlanStats { |
| Error error; |
| fuchsia.wlan.stats.IfaceStats stats; |
| }; |
| |
| /// Stub interface; eventually to be replaced by something based on the 802.11 |
| /// SME / MSGCF. |
| [Discoverable] |
| protocol Wlan { |
| Scan(ScanRequest req) -> (ScanResult result); |
| Connect(ConnectConfig req) -> (Error error); |
| Disconnect() -> (Error error); |
| Status() -> (WlanStatus status); |
| StartBss(BssConfig cfg) -> (Error error); |
| StopBss() -> (Error error); |
| Stats() -> (WlanStats stats); |
| ClearSavedNetworks() -> (); |
| }; |