wifi: Convert packet fate structures from legacy to HIDL

am: 32d0ca967a

Change-Id: I48a539c30924c56659ae987ecf08e4a834a89a68
This commit is contained in:
Roshan Pius
2016-12-09 02:05:38 +00:00
committed by android-build-merger
3 changed files with 134 additions and 5 deletions

View File

@@ -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) {

View File

@@ -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(

View File

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