// 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.mlme; using fuchsia.wlan.stats; using fuchsia.wlan.minstrel; // Custom primitives for communicating between the wlan service and the MLME drivers. // The primitives defined here are not part of the official 802.11 MLME SAP interface specification, // but follow the same principle for the sake of consistency. // SIGNAL_REPORT.indication struct SignalReportIndication { int8 rssi_dbm; }; // EAPOL.indication struct EapolIndication { array<uint8>:6 src_addr; array<uint8>:6 dst_addr; vector<uint8> data; }; enum MacRole { CLIENT = 1; AP = 2; MESH = 3; }; // BandInfo groups capabilities defined per band. // This grouping is the industry's de factor standard. struct BandCapabilities { Band band_id; vector<uint16> basic_rates; uint16 base_frequency; vector<uint8> channels; CapabilityInfo cap; HtCapabilities? ht_cap; VhtCapabilities? vht_cap; }; struct DeviceInfo { array<uint8>:6 mac_addr; MacRole role; vector<BandCapabilities> bands; }; // STATS_QUERY.response struct StatsQueryResponse { fuchsia.wlan.stats.IfaceStats stats; }; struct MinstrelListResponse { fuchsia.wlan.minstrel.Peers peers; }; struct MinstrelStatsRequest { array<uint8>:6 mac_addr; }; struct MinstrelStatsResponse { fuchsia.wlan.minstrel.Peer? peer; }; // Method ordinals are defined in wlan_mlme.fidl to prevent error prone overlaps with official // MLME primitives.