| // 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; |
| }; |