| // Copyright 2018 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. |
| |
| #ifndef SRC_CONNECTIVITY_WLAN_DRIVERS_WLANIF_CONVERT_H_ |
| #define SRC_CONNECTIVITY_WLAN_DRIVERS_WLANIF_CONVERT_H_ |
| |
| #include <fuchsia/hardware/wlanif/c/banjo.h> |
| #include <fuchsia/wlan/ieee80211/cpp/fidl.h> |
| #include <fuchsia/wlan/internal/cpp/fidl.h> |
| #include <fuchsia/wlan/mlme/cpp/fidl.h> |
| #include <net/ethernet.h> |
| |
| #include <wlan/protocol/mac.h> |
| |
| namespace wlanif { |
| |
| uint8_t ConvertBssType(::fuchsia::wlan::internal::BssTypes bss_type); |
| uint8_t ConvertScanType(::fuchsia::wlan::mlme::ScanTypes scan_type); |
| uint8_t ConvertCBW(::fuchsia::wlan::common::CBW cbw); |
| void ConvertWlanChan(wlan_channel_t* wlanif_chan, |
| const ::fuchsia::wlan::common::WlanChan& fidl_chan); |
| void ConvertWlanChan(::fuchsia::wlan::common::WlanChan* fidl_chan, |
| const wlan_channel_t& wlanif_chan); |
| void CopySSID(const ::std::vector<uint8_t>& in_ssid, wlanif_ssid_t* out_ssid); |
| void CopyRSNE(const ::std::vector<uint8_t>& in_rsne, uint8_t* out_rsne, size_t* out_rsne_len); |
| void CopyVendorSpecificIE(const ::std::vector<uint8_t>& in_vendor_ie, uint8_t* out_vendor_ie, |
| size_t* out_vendor_ie_len); |
| void ConvertBssDescription(wlanif_bss_description_t* wlanif_bss_desc, |
| const ::fuchsia::wlan::internal::BssDescription& fidl_bss_desc); |
| void ConvertBssDescription(::fuchsia::wlan::internal::BssDescription* fidl_bss_desc, |
| const wlanif_bss_description_t& wlanif_bss_desc); |
| void ConvertAssocInd(::fuchsia::wlan::mlme::AssociateIndication* fidl_ind, |
| const wlanif_assoc_ind_t& assoc_ind); |
| uint8_t ConvertAuthType(::fuchsia::wlan::mlme::AuthenticationTypes auth_type); |
| uint16_t ConvertReasonCode(::fuchsia::wlan::mlme::ReasonCode reason); |
| uint16_t ConvertStatusCode(::fuchsia::wlan::ieee80211::StatusCode status); |
| uint8_t ConvertKeyType(::fuchsia::wlan::mlme::KeyType key_type); |
| void ConvertSetKeyDescriptor(set_key_descriptor_t* key_desc, |
| const ::fuchsia::wlan::mlme::SetKeyDescriptor& fidl_key_desc); |
| void ConvertDeleteKeyDescriptor(delete_key_descriptor_t* key_desc, |
| const ::fuchsia::wlan::mlme::DeleteKeyDescriptor& fidl_key_desc); |
| ::fuchsia::wlan::internal::BssTypes ConvertBssType(uint8_t bss_type); |
| ::fuchsia::wlan::common::CBW ConvertCBW(wlan_channel_bandwidth_t cbw); |
| ::fuchsia::wlan::mlme::AuthenticationTypes ConvertAuthType(uint8_t auth_type); |
| ::fuchsia::wlan::mlme::ReasonCode ConvertReasonCode(uint16_t reason); |
| ::fuchsia::wlan::ieee80211::StatusCode ConvertStatusCode(uint16_t status); |
| ::fuchsia::wlan::mlme::ScanResultCodes ConvertScanResultCode(uint8_t code); |
| ::fuchsia::wlan::mlme::JoinResultCodes ConvertJoinResultCode(uint8_t code); |
| ::fuchsia::wlan::mlme::AuthenticateResultCodes ConvertAuthResultCode(uint8_t code); |
| uint8_t ConvertAuthResultCode(::fuchsia::wlan::mlme::AuthenticateResultCodes result_code); |
| ::fuchsia::wlan::mlme::AssociateResultCodes ConvertAssocResultCode(uint8_t code); |
| uint8_t ConvertAssocResultCode(::fuchsia::wlan::mlme::AssociateResultCodes code); |
| ::fuchsia::wlan::mlme::StartResultCodes ConvertStartResultCode(uint8_t code); |
| ::fuchsia::wlan::mlme::StopResultCodes ConvertStopResultCode(uint8_t code); |
| ::fuchsia::wlan::mlme::EapolResultCodes ConvertEapolResultCode(uint8_t code); |
| ::fuchsia::wlan::mlme::MacRole ConvertMacRole(wlan_info_mac_role_t role); |
| void ConvertBandCapabilities(::fuchsia::wlan::mlme::BandCapabilities* fidl_band, |
| const wlanif_band_capabilities_t& band); |
| // Convert a Banjo noise floor histogram into FIDL. |
| void ConvertNoiseFloorHistogram(::fuchsia::wlan::stats::NoiseFloorHistogram* fidl_stats, |
| const wlanif_noise_floor_histogram_t& stats); |
| // Convert a Banjo received rate index histogram into FIDL. |
| void ConvertRxRateIndexHistogram(::fuchsia::wlan::stats::RxRateIndexHistogram* fidl_stats, |
| const wlanif_rx_rate_index_histogram_t& stats); |
| // Convert a Banjo received signal strength indicator (RSSI) histogram into FIDL. |
| void ConvertRssiHistogram(::fuchsia::wlan::stats::RssiHistogram* fidl_stats, |
| const wlanif_rssi_histogram_t& stats); |
| // Convert a Banjo signal to noise ratio (SNR) histogram into FIDL. |
| void ConvertSnrHistogram(::fuchsia::wlan::stats::SnrHistogram* fidl_stats, |
| const wlanif_snr_histogram_t& stats); |
| void ConvertPmkInfo(::fuchsia::wlan::mlme::PmkInfo* fidl_ind, const wlanif_pmk_info_t& ind); |
| |
| void ConvertIfaceStats(::fuchsia::wlan::stats::IfaceStats* fidl_stats, const wlanif_stats_t& stats); |
| uint32_t ConvertMgmtCaptureFlags(::fuchsia::wlan::mlme::MgmtFrameCaptureFlags fidl_flags); |
| ::fuchsia::wlan::mlme::MgmtFrameCaptureFlags ConvertMgmtCaptureFlags(uint32_t ddk_flags); |
| void ConvertRates(::std::vector<uint8_t>* rates, const wlanif_bss_description_t& wlanif_desc); |
| |
| void ConvertSaeAuthFrame(const ::fuchsia::wlan::mlme::SaeFrame& frame_in, |
| wlanif_sae_frame_t* frame_out); |
| |
| void ConvertSaeAuthFrame(const wlanif_sae_frame_t* frame_in, |
| ::fuchsia::wlan::mlme::SaeFrame& frame_out); |
| } // namespace wlanif |
| |
| #endif // SRC_CONNECTIVITY_WLAN_DRIVERS_WLANIF_CONVERT_H_ |