blob: 0b7a6f9c22a8b0af92c91c8a6e68f896c648266c [file] [log] [blame] [edit]
// Copyright 2022 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;
/// Indicates where and how rate selection logic is orchestrated.
/// See IEEE 802.11-2016 10.7.
/// This is a MAC sublayer extension, expected to be used for softmac only.
type RateSelectionOffloadExtension = struct {
/// If true, driver orchestrates rate selection; otherwise MLME must do so.
supported bool;
};
/// Indicates where data plane is implemented.
type DataPlaneType = strict enum : uint8 {
ETHERNET_DEVICE = 1;
GENERIC_NETWORK_DEVICE = 2;
};
/// Indicates where the data plane is implemented.
/// This is a MAC sublayer extension, usable for fullmac or softmac. This
/// extension is not part of the 802.11-2016 spec.
type DataPlaneExtension = struct {
data_plane_type DataPlaneType;
};
/// Features related to the MAC sublayer (below MLME).
/// See IEEE 802.11-2016 10.
type MacSublayerSupport = struct {
rate_selection_offload RateSelectionOffloadExtension;
data_plane DataPlaneExtension;
};
/// Indicates where simultaneous authentication of equals (SAE) is handled.
type SaeHandler = strict enum : uint8 {
DRIVER = 1;
SME = 2;
};
/// Simultaneous Authentication of Equals.
/// See IEEE 802.11-2016 12.4.
/// This is a security feature, usable for fullmac or softmac.
type SaeFeature = struct {
supported bool;
handler SaeHandler;
};
/// Management Frame Protection.
/// See IEEE 802.11-2016 4.5.4.9.
/// This is a security feature, usable for fullmac or softmac.
type MfpFeature = struct {
supported bool;
};
/// Features related to security / access control and data confidentiality.
/// See IEEE 802.11-2016 4.5.4 and 802.11-2016 12.
type SecuritySupport = struct {
sae SaeFeature;
mfp MfpFeature;
};
/// Dynamic Frequency Selection.
/// See IEEE 802.11-2016 11.9.
/// This is a spectrum management feature, usable for fullmac or softmac.
type DfsFeature = struct {
/// If true, driver implements DFS procedures (e.g. vacate channel upon
/// detecting RADAR). Based on whether the driver implements DFS procedures,
/// higher layers may adjust their logic (e.g. to include/exclude channels
/// that require DFS).
supported bool;
};
/// Features related to spectrum management.
/// See IEEE 802.11-2016 4.5.5, 11.8, and 11.9.
type SpectrumManagementSupport = struct {
dfs DfsFeature;
};