mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-03 08:54:55 +00:00
wifi: Convert packet fate structures from legacy to HIDL am: 32d0ca967a
am: 9ef46f44fb
Change-Id: I3cdc9452fbef30477ecd129558b82574cc2b3171
This commit is contained in:
@@ -26,7 +26,7 @@ namespace V1_0 {
|
||||
namespace implementation {
|
||||
namespace hidl_struct_util {
|
||||
|
||||
uint8_t ConvertHidlReportEventFlagToLegacy(
|
||||
uint8_t convertHidlScanReportEventFlagToLegacy(
|
||||
StaBackgroundScanBucketEventReportSchemeMask hidl_flag) {
|
||||
using HidlFlag = StaBackgroundScanBucketEventReportSchemeMask;
|
||||
switch (hidl_flag) {
|
||||
@@ -39,6 +39,17 @@ uint8_t ConvertHidlReportEventFlagToLegacy(
|
||||
};
|
||||
}
|
||||
|
||||
StaScanDataFlagMask convertLegacyScanDataFlagToHidl(uint8_t legacy_flag) {
|
||||
switch (legacy_flag) {
|
||||
case legacy_hal::WIFI_SCAN_FLAG_INTERRUPTED:
|
||||
return StaScanDataFlagMask::INTERRUPTED;
|
||||
};
|
||||
CHECK(false) << "Unknown legacy flag: " << legacy_flag;
|
||||
// To silence the compiler warning about reaching the end of non-void
|
||||
// function.
|
||||
return StaScanDataFlagMask::INTERRUPTED;
|
||||
}
|
||||
|
||||
bool convertHidlScanParamsToLegacy(
|
||||
const StaBackgroundScanParameters& hidl_scan_params,
|
||||
legacy_hal::wifi_scan_cmd_params* legacy_scan_params) {
|
||||
@@ -76,7 +87,7 @@ bool convertHidlScanParamsToLegacy(
|
||||
if (hidl_bucket_spec.eventReportScheme &
|
||||
static_cast<std::underlying_type<HidlFlag>::type>(flag)) {
|
||||
legacy_bucket_spec.report_events |=
|
||||
ConvertHidlReportEventFlagToLegacy(flag);
|
||||
convertHidlScanReportEventFlagToLegacy(flag);
|
||||
}
|
||||
}
|
||||
// TODO(b/33194311): Expose these max limits in the HIDL interface.
|
||||
@@ -159,7 +170,13 @@ bool convertLegacyCachedScanResultsToHidl(
|
||||
if (!hidl_scan_data) {
|
||||
return false;
|
||||
}
|
||||
hidl_scan_data->flags = legacy_cached_scan_result.flags;
|
||||
for (const auto flag : {legacy_hal::WIFI_SCAN_FLAG_INTERRUPTED}) {
|
||||
if (legacy_cached_scan_result.flags & flag) {
|
||||
hidl_scan_data->flags |=
|
||||
static_cast<std::underlying_type<StaScanDataFlagMask>::type>(
|
||||
convertLegacyScanDataFlagToHidl(flag));
|
||||
}
|
||||
}
|
||||
hidl_scan_data->bucketsScanned = legacy_cached_scan_result.buckets_scanned;
|
||||
|
||||
CHECK(legacy_cached_scan_result.num_results >= 0 &&
|
||||
@@ -199,6 +216,112 @@ bool convertLegacyVectorOfCachedScanResultsToHidl(
|
||||
return true;
|
||||
}
|
||||
|
||||
WifiDebugTxPacketFate convertLegacyDebugTxPacketFateToHidl(
|
||||
legacy_hal::wifi_tx_packet_fate fate) {
|
||||
switch (fate) {
|
||||
case legacy_hal::TX_PKT_FATE_ACKED:
|
||||
return WifiDebugTxPacketFate::ACKED;
|
||||
case legacy_hal::TX_PKT_FATE_SENT:
|
||||
return WifiDebugTxPacketFate::SENT;
|
||||
case legacy_hal::TX_PKT_FATE_FW_QUEUED:
|
||||
return WifiDebugTxPacketFate::FW_QUEUED;
|
||||
case legacy_hal::TX_PKT_FATE_FW_DROP_INVALID:
|
||||
return WifiDebugTxPacketFate::FW_DROP_INVALID;
|
||||
case legacy_hal::TX_PKT_FATE_FW_DROP_NOBUFS:
|
||||
return WifiDebugTxPacketFate::FW_DROP_NOBUFS;
|
||||
case legacy_hal::TX_PKT_FATE_FW_DROP_OTHER:
|
||||
return WifiDebugTxPacketFate::FW_DROP_OTHER;
|
||||
case legacy_hal::TX_PKT_FATE_DRV_QUEUED:
|
||||
return WifiDebugTxPacketFate::DRV_QUEUED;
|
||||
case legacy_hal::TX_PKT_FATE_DRV_DROP_INVALID:
|
||||
return WifiDebugTxPacketFate::DRV_DROP_INVALID;
|
||||
case legacy_hal::TX_PKT_FATE_DRV_DROP_NOBUFS:
|
||||
return WifiDebugTxPacketFate::DRV_DROP_NOBUFS;
|
||||
case legacy_hal::TX_PKT_FATE_DRV_DROP_OTHER:
|
||||
return WifiDebugTxPacketFate::DRV_DROP_OTHER;
|
||||
};
|
||||
}
|
||||
|
||||
WifiDebugRxPacketFate convertLegacyDebugRxPacketFateToHidl(
|
||||
legacy_hal::wifi_rx_packet_fate fate) {
|
||||
switch (fate) {
|
||||
case legacy_hal::RX_PKT_FATE_SUCCESS:
|
||||
return WifiDebugRxPacketFate::SUCCESS;
|
||||
case legacy_hal::RX_PKT_FATE_FW_QUEUED:
|
||||
return WifiDebugRxPacketFate::FW_QUEUED;
|
||||
case legacy_hal::RX_PKT_FATE_FW_DROP_FILTER:
|
||||
return WifiDebugRxPacketFate::FW_DROP_FILTER;
|
||||
case legacy_hal::RX_PKT_FATE_FW_DROP_INVALID:
|
||||
return WifiDebugRxPacketFate::FW_DROP_INVALID;
|
||||
case legacy_hal::RX_PKT_FATE_FW_DROP_NOBUFS:
|
||||
return WifiDebugRxPacketFate::FW_DROP_NOBUFS;
|
||||
case legacy_hal::RX_PKT_FATE_FW_DROP_OTHER:
|
||||
return WifiDebugRxPacketFate::FW_DROP_OTHER;
|
||||
case legacy_hal::RX_PKT_FATE_DRV_QUEUED:
|
||||
return WifiDebugRxPacketFate::DRV_QUEUED;
|
||||
case legacy_hal::RX_PKT_FATE_DRV_DROP_FILTER:
|
||||
return WifiDebugRxPacketFate::DRV_DROP_FILTER;
|
||||
case legacy_hal::RX_PKT_FATE_DRV_DROP_INVALID:
|
||||
return WifiDebugRxPacketFate::DRV_DROP_INVALID;
|
||||
case legacy_hal::RX_PKT_FATE_DRV_DROP_NOBUFS:
|
||||
return WifiDebugRxPacketFate::DRV_DROP_NOBUFS;
|
||||
case legacy_hal::RX_PKT_FATE_DRV_DROP_OTHER:
|
||||
return WifiDebugRxPacketFate::DRV_DROP_OTHER;
|
||||
};
|
||||
}
|
||||
|
||||
WifiDebugPacketFateFrameType convertLegacyDebugPacketFateFrameTypeToHidl(
|
||||
legacy_hal::frame_type type) {
|
||||
switch (type) {
|
||||
case legacy_hal::FRAME_TYPE_UNKNOWN:
|
||||
return WifiDebugPacketFateFrameType::UNKNOWN;
|
||||
case legacy_hal::FRAME_TYPE_ETHERNET_II:
|
||||
return WifiDebugPacketFateFrameType::ETHERNET_II;
|
||||
case legacy_hal::FRAME_TYPE_80211_MGMT:
|
||||
return WifiDebugPacketFateFrameType::MGMT_80211;
|
||||
};
|
||||
}
|
||||
|
||||
bool convertLegacyDebugPacketFateFrameToHidl(
|
||||
const legacy_hal::frame_info& legacy_frame,
|
||||
WifiDebugPacketFateFrameInfo* hidl_frame) {
|
||||
if (!hidl_frame) {
|
||||
return false;
|
||||
}
|
||||
hidl_frame->frameType =
|
||||
convertLegacyDebugPacketFateFrameTypeToHidl(legacy_frame.payload_type);
|
||||
hidl_frame->frameLen = legacy_frame.frame_len;
|
||||
hidl_frame->driverTimestampUsec = legacy_frame.driver_timestamp_usec;
|
||||
hidl_frame->firmwareTimestampUsec = legacy_frame.firmware_timestamp_usec;
|
||||
const uint8_t* frame_begin = reinterpret_cast<const uint8_t*>(
|
||||
legacy_frame.frame_content.ethernet_ii_bytes);
|
||||
hidl_frame->frameContent =
|
||||
std::vector<uint8_t>(frame_begin, frame_begin + legacy_frame.frame_len);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool convertLegacyDebugTxPacketFateToHidl(
|
||||
const legacy_hal::wifi_tx_report& legacy_fate,
|
||||
WifiDebugTxPacketFateReport* hidl_fate) {
|
||||
if (!hidl_fate) {
|
||||
return false;
|
||||
}
|
||||
hidl_fate->fate = convertLegacyDebugTxPacketFateToHidl(legacy_fate.fate);
|
||||
return convertLegacyDebugPacketFateFrameToHidl(legacy_fate.frame_inf,
|
||||
&hidl_fate->frameInfo);
|
||||
}
|
||||
|
||||
bool convertLegacyDebugRxPacketFateToHidl(
|
||||
const legacy_hal::wifi_rx_report& legacy_fate,
|
||||
WifiDebugRxPacketFateReport* hidl_fate) {
|
||||
if (!hidl_fate) {
|
||||
return false;
|
||||
}
|
||||
hidl_fate->fate = convertLegacyDebugRxPacketFateToHidl(legacy_fate.fate);
|
||||
return convertLegacyDebugPacketFateFrameToHidl(legacy_fate.frame_inf,
|
||||
&hidl_fate->frameInfo);
|
||||
}
|
||||
|
||||
bool convertLegacyLinkLayerStatsToHidl(
|
||||
const legacy_hal::LinkLayerStats& legacy_stats,
|
||||
StaLinkLayerStats* hidl_stats) {
|
||||
|
||||
@@ -59,6 +59,12 @@ bool convertLegacyVectorOfCachedScanResultsToHidl(
|
||||
bool convertLegacyLinkLayerStatsToHidl(
|
||||
const legacy_hal::LinkLayerStats& legacy_stats,
|
||||
StaLinkLayerStats* hidl_stats);
|
||||
bool convertLegacyDebugTxPacketFateToHidl(
|
||||
const legacy_hal::wifi_tx_report& legacy_fate,
|
||||
WifiDebugTxPacketFateReport* hidl_fate);
|
||||
bool convertLegacyDebugRxPacketFateToHidl(
|
||||
const legacy_hal::wifi_rx_report& legacy_fate,
|
||||
WifiDebugRxPacketFateReport* hidl_fate);
|
||||
|
||||
// NAN iface conversion methods.
|
||||
bool convertHidlNanEnableRequestToLegacy(
|
||||
|
||||
@@ -491,7 +491,7 @@ enum StaScanDataFlagMask : int32_t {
|
||||
* Indicates that a scan was interrupted/did not occur so results may be
|
||||
* incomplete.
|
||||
*/
|
||||
WIFI_SCAN_FLAG_INTERRUPTED = 1 << 0,
|
||||
INTERRUPTED = 1 << 0,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -3053,7 +3053,7 @@ struct WifiDebugPacketFateFrameInfo {
|
||||
*/
|
||||
struct WifiDebugTxPacketFateReport {
|
||||
WifiDebugTxPacketFate fate;
|
||||
WifiDebugPacketFateFrameInfo frameInf;
|
||||
WifiDebugPacketFateFrameInfo frameInfo;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user