blob: b6c8ecb7ff9a46033716045cb9fa6d7c7960a261 [file] [log] [blame]
// 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.common;
type RequestStatus = strict enum {
ACKNOWLEDGED = 0;
REJECTED_NOT_SUPPORTED = 1;
REJECTED_INCOMPATIBLE_MODE = 2;
REJECTED_ALREADY_IN_USE = 3;
REJECTED_DUPLICATE_REQUEST = 4;
};
// LINT analyzer keyword intended for humans:
// LINT.IfChange
type PHY = strict enum {
/// IEEE 802.11b, used for DSSS, HR/DSSS, ERP-DSSS/CCK
HR = 1;
/// IEEE 802.11a/g, used for ERP-OFDM
ERP = 2;
/// IEEE 802.11n
HT = 3;
/// IEEE 802.11ac
VHT = 4;
/// IEEE 802.11ax
HEW = 5;
};
type ChannelBandwidth = strict enum { // Channel Bandwidth
CBW20 = 0;
CBW40 = 1;
CBW40BELOW = 2;
CBW80 = 3;
CBW160 = 4;
CBW80P80 = 5;
};
type WlanChannel = struct {
primary uint8;
cbw ChannelBandwidth;
secondary80 uint8;
};
type Band = strict enum : uint8 {
WLAN_BAND_2GHZ = 0;
WLAN_BAND_5GHZ = 1;
WLAN_BAND_COUNT = 2;
};
// LINT.ThenChange(//zircon/system/banjo/fuchsia.hardware.wlan.info/info.banjo)
type ScanType = strict enum {
ACTIVE = 1;
PASSIVE = 2;
};
type DriverFeature = strict enum {
SCAN_OFFLOAD = 0;
RATE_SELECTION = 1;
SYNTH = 2;
TX_STATUS_REPORT = 3;
DFS = 4;
PROBE_RESP_OFFLOAD = 5;
SAE_SME_AUTH = 6;
SAE_DRIVER_AUTH = 7;
/// Indicates support for management frame protection and IGTK.
MFP = 8;
/// Temporary feature flag for driver to indicate this iface a SoftMAC device.
/// TODO(fxbug.dev/41640): Remove this flag once FullMAC drivers no longer use SME.
TEMP_SOFTMAC = 2718281828;
};
/// HT and VHT guard interval.
/// See IEEE 802.11-2016 Table 19-1 and Table 21-1.
type GuardInterval = strict enum : uint8 {
LONG_GI = 1; // 800 ns
SHORT_GI = 2; // 400 ns
};
// Powersave types. Since vendor implementations of power save mode vary
// greatly, this is an attempt to generalize the setting and indicated
// as an enum (bitfield).
type PowerSaveType = strict enum : uint32 {
// Powersave mode is off
PS_MODE_OFF = 0x0;
// STA sets PM bit in Mac Header on/off to indicate PS mode to AP
FAST_PS_MODE = 0x1;
// STA uses PS Poll frames to retrieve packets from AP as needed.
PS_POLL_MODE = 0x2;
};