blob: b7921a69012f7909517c38641fa9f111705c029f [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.
@available(added=HEAD)
library fuchsia.wlan.internal;
// IEEE Std 802.11-2016 defines 12 values in dot11SupportedDataRatesRxTable and
// 2 values for BSS Membership Selector in Table 9-78. The number of valid basic rates
// specified in the Beacon frame received from an AP is therefore bounded by 14.
//
// This constant is strictly meant to bound the number of basic rates communicated
// between WLAN components during association.
@namespaced
const MAX_ASSOC_BASIC_RATES uint8 = 14;
type WmmStatusResponse = struct {
apsd bool;
ac_be_params WmmAcParams;
ac_bk_params WmmAcParams;
ac_vi_params WmmAcParams;
ac_vo_params WmmAcParams;
};
/// WFA WMM v1.2, 2.2.2
type WmmAcParams = struct {
/// Lower bound of contention window in exponential form
/// `cw_min = 2^(ecw_min) - 1`. The unit for contention window is "slot time", which
/// is different for each standard (e.g. 9 microseconds, 13 microseconds, etc.)
ecw_min uint8;
/// Upper bound of contention window in exponential form
/// `cw_max = 2^(ecw_max) - 1`. The unit for contention window is "slot time", which
/// is different for each standard (e.g. 9 microseconds, 13 microseconds, etc.)
ecw_max uint8;
/// Arbitration Interframe Spacing Number (control wait time between sending each frame)
aifsn uint8;
/// TXOP limit in unit of 32 microseconds
txop_limit uint16;
/// Whether admission control is mandatory
acm bool;
};
type SignalReportIndication = struct {
rssi_dbm int8;
snr_db int8;
};
// IEEE 802.11-2016 9.4.2.19
// Unlike a normal channel switch announcement, a ChannelSwitchInfo is sent at the time the channel
// changes and does not include a delay field.
type ChannelSwitchInfo = struct {
new_channel uint8;
// The operating class/country may also be modified by an extended channel switch request, but
// we do not currently support this.
};
type BtCoexistenceMode = strict enum {
MODE_AUTO = 1;
MODE_OFF = 2;
};
/// Specific absorption rate scenarios that can be applied to WLAN PHY devices.
type TxPowerScenario = flexible enum {
DEFAULT = 0;
VOICE_CALL = 1;
HEAD_CELL_OFF = 2;
HEAD_CELL_ON = 3;
BODY_CELL_OFF = 4;
BODY_CELL_ON = 5;
BODY_BT_ACTIVE = 6;
};