blob: 43ff5eb8ad74fdaeb3612e6f42e8899d2156cfa4 [file] [log] [blame]
// 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.common;
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;
bytes 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 {
fuchsia.wlan.common.Band band_id;
bytes basic_rates;
uint16 base_frequency;
bytes channels;
CapabilityInfo cap;
HtCapabilities? ht_cap;
VhtCapabilities? vht_cap;
};
struct DeviceInfo {
array<uint8>:6 mac_addr;
MacRole role;
vector<BandCapabilities> bands;
vector<fuchsia.wlan.common.DriverFeature>:32 driver_features;
};
// 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;
};
// SET_CONTROLLED_PORT.request
struct SetControlledPortRequest {
array<uint8>:6 peer_sta_address;
ControlledPortState state;
};
enum ControlledPortState {
CLOSED = 0;
OPEN = 1;
};
// Method ordinals are defined in wlan_mlme.fidl to prevent error prone overlaps with official
// MLME primitives.