mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 22:04:26 +00:00
wifi(interface): Add wifi host debug wake up reason stats am: e0724f98b0
am: 3dd396eb5e
Change-Id: Ib132c7ac5084a9f066647e0601f5626ec2b51e63
This commit is contained in:
@@ -1542,6 +1542,74 @@ $(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build types.hal (WifiDebugHostWakeReasonRxIcmpPacketDetails)
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/wifi/1.0/WifiDebugHostWakeReasonRxIcmpPacketDetails.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.wifi@1.0::types.WifiDebugHostWakeReasonRxIcmpPacketDetails
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build types.hal (WifiDebugHostWakeReasonRxMulticastPacketDetails)
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/wifi/1.0/WifiDebugHostWakeReasonRxMulticastPacketDetails.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.wifi@1.0::types.WifiDebugHostWakeReasonRxMulticastPacketDetails
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build types.hal (WifiDebugHostWakeReasonRxPacketDetails)
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/wifi/1.0/WifiDebugHostWakeReasonRxPacketDetails.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.wifi@1.0::types.WifiDebugHostWakeReasonRxPacketDetails
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build types.hal (WifiDebugHostWakeReasonStats)
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/wifi/1.0/WifiDebugHostWakeReasonStats.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.wifi@1.0::types.WifiDebugHostWakeReasonStats
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build types.hal (WifiDebugPacketFateFrameInfo)
|
||||
#
|
||||
@@ -3769,6 +3837,74 @@ $(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build types.hal (WifiDebugHostWakeReasonRxIcmpPacketDetails)
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/wifi/1.0/WifiDebugHostWakeReasonRxIcmpPacketDetails.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.wifi@1.0::types.WifiDebugHostWakeReasonRxIcmpPacketDetails
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build types.hal (WifiDebugHostWakeReasonRxMulticastPacketDetails)
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/wifi/1.0/WifiDebugHostWakeReasonRxMulticastPacketDetails.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.wifi@1.0::types.WifiDebugHostWakeReasonRxMulticastPacketDetails
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build types.hal (WifiDebugHostWakeReasonRxPacketDetails)
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/wifi/1.0/WifiDebugHostWakeReasonRxPacketDetails.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.wifi@1.0::types.WifiDebugHostWakeReasonRxPacketDetails
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build types.hal (WifiDebugHostWakeReasonStats)
|
||||
#
|
||||
GEN := $(intermediates)/android/hardware/wifi/1.0/WifiDebugHostWakeReasonStats.java
|
||||
$(GEN): $(HIDL)
|
||||
$(GEN): PRIVATE_HIDL := $(HIDL)
|
||||
$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
|
||||
$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
|
||||
$(GEN): PRIVATE_CUSTOM_TOOL = \
|
||||
$(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
|
||||
-Ljava -randroid.hardware:hardware/interfaces \
|
||||
android.hardware.wifi@1.0::types.WifiDebugHostWakeReasonStats
|
||||
|
||||
$(GEN): $(LOCAL_PATH)/types.hal
|
||||
$(transform-generated-source)
|
||||
LOCAL_GENERATED_SOURCES += $(GEN)
|
||||
|
||||
#
|
||||
# Build types.hal (WifiDebugPacketFateFrameInfo)
|
||||
#
|
||||
|
||||
@@ -159,6 +159,10 @@ interface IWifiChip {
|
||||
* This mostly contains firmware event logs.
|
||||
*/
|
||||
DEBUG_RING_BUFFER_VENDOR_DATA_SUPPORTED = 1 << 5,
|
||||
/**
|
||||
* Host wake reasons stats collection.
|
||||
*/
|
||||
DEBUG_HOST_WAKE_REASON_STATS = 1 << 6,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -558,4 +562,22 @@ interface IWifiChip {
|
||||
* |WifiStatusCode.UNKNOWN|
|
||||
*/
|
||||
forceDumpToDebugRingBuffer(string ringName) generates (WifiStatus status);
|
||||
|
||||
/**
|
||||
* API to retrieve the wifi wake up reason stats for debugging.
|
||||
* The driver is expected to start maintaining these stats once the chip
|
||||
* is configured using |configureChip|. These stats must be reset whenever
|
||||
* the chip is reconfigured or the HAL is stopped.
|
||||
*
|
||||
* @return status WifiStatus of the operation.
|
||||
* Possible status codes:
|
||||
* |WifiStatusCode.SUCCESS|,
|
||||
* |WifiStatusCode.ERROR_WIFI_CHIP_INVALID|,
|
||||
* |WifiStatusCode.ERROR_NOT_SUPPORTED|,
|
||||
* |WifiStatusCode.NOT_AVAILABLE|,
|
||||
* |WifiStatusCode.UNKNOWN|
|
||||
* @return stats Instance of |WifiDebugHostWakeReasonStats|.
|
||||
*/
|
||||
getDebugHostWakeReasonStats()
|
||||
generates (WifiStatus status, WifiDebugHostWakeReasonStats stats);
|
||||
};
|
||||
|
||||
@@ -3063,3 +3063,110 @@ struct WifiDebugRxPacketFateReport {
|
||||
WifiDebugRxPacketFate fate;
|
||||
WifiDebugPacketFateFrameInfo frameInfo;
|
||||
};
|
||||
|
||||
/**
|
||||
* Struct capturing the count of all rx packets that caused
|
||||
* host wakeup.
|
||||
*/
|
||||
struct WifiDebugHostWakeReasonRxPacketDetails {
|
||||
/**
|
||||
* Total rx unicast packet which woke up host.
|
||||
*/
|
||||
uint32_t rxUnicastCnt;
|
||||
/**
|
||||
* Total rx multicast packet which woke up host.
|
||||
*/
|
||||
uint32_t rxMulticastCnt;
|
||||
/**
|
||||
* Total rx broadcast packet which woke up host.
|
||||
*/
|
||||
uint32_t rxBroadcastCnt;
|
||||
};
|
||||
|
||||
/**
|
||||
* Struct capturing the count of all rx multicast packets that caused
|
||||
* host wakeup.
|
||||
*/
|
||||
struct WifiDebugHostWakeReasonRxMulticastPacketDetails {
|
||||
/**
|
||||
* Rx wake packet was ipv4 multicast.
|
||||
*/
|
||||
uint32_t ipv4RxMulticastAddrCnt;
|
||||
/**
|
||||
* Rx wake packet was ipv6 multicast.
|
||||
*/
|
||||
uint32_t ipv6RxMulticastAddrCnt;
|
||||
/**
|
||||
* Rx wake packet was non-ipv4 and non-ipv6.
|
||||
*/
|
||||
uint32_t otherRxMulticastAddrCnt;
|
||||
};
|
||||
|
||||
/**
|
||||
* Struct capturing the count of all rx ICMP packets that caused
|
||||
* host wakeup.
|
||||
*/
|
||||
struct WifiDebugHostWakeReasonRxIcmpPacketDetails {
|
||||
/**
|
||||
* Wake icmp packet count.
|
||||
*/
|
||||
uint32_t icmpPkt;
|
||||
/**
|
||||
* Wake icmp6 packet count.
|
||||
*/
|
||||
uint32_t icmp6Pkt;
|
||||
/**
|
||||
* Wake icmp6 RA packet count.
|
||||
*/
|
||||
uint32_t icmp6Ra;
|
||||
/**
|
||||
* Wake icmp6 NA packet count.
|
||||
*/
|
||||
uint32_t icmp6Na;
|
||||
/**
|
||||
* Wake icmp6 NS packet count.
|
||||
*/
|
||||
uint32_t icmp6Ns;
|
||||
};
|
||||
|
||||
/**
|
||||
* Structure capturing the count of all the wireless related host wakeup.
|
||||
* This is used to capture all the reasons why the host processor
|
||||
* (WLAN driver) was woken up by the WLAN firmware.
|
||||
* These stats may be used to debug any power issues caused due to frequent
|
||||
* wakeup of the host processor by the WLAN firmware.
|
||||
*/
|
||||
struct WifiDebugHostWakeReasonStats {
|
||||
/**
|
||||
* Total count of cmd/event wakes.
|
||||
* These must account for all wakeups due to WLAN management
|
||||
* commands/events received over the air.
|
||||
*/
|
||||
uint32_t totalCmdEventWakeCnt;
|
||||
/**
|
||||
* Vector of wake counts per cmd/event type.
|
||||
* The number of command types and their meaning is only understood by the
|
||||
* vendor.
|
||||
*/
|
||||
vec<uint32_t> cmdEventWakeCntPerType;
|
||||
/**
|
||||
* Total count of drive/fw wakes.
|
||||
* These must account for all wakeups due to local driver/firmware
|
||||
* interactions. These include all vendor implementation specific
|
||||
* interactions like any heart-beat monitoring, Bus management, etc.
|
||||
*/
|
||||
uint32_t totalDriverFwLocalWakeCnt;
|
||||
/**
|
||||
* Vector of wake counts per driver/firmware interaction type.
|
||||
* The number of command types and their meaning is only understood by the
|
||||
* vendor.
|
||||
*/
|
||||
vec<uint32_t> driverFwLocalWakeCntPerType;
|
||||
/**
|
||||
* Total data rx packets, that woke up host.
|
||||
*/
|
||||
uint32_t totalRxPacketWakeCnt;
|
||||
WifiDebugHostWakeReasonRxPacketDetails rxPktWakeDetails;
|
||||
WifiDebugHostWakeReasonRxMulticastPacketDetails rxMulticastPkWakeDetails;
|
||||
WifiDebugHostWakeReasonRxIcmpPacketDetails rxIcmpPkWakeDetails;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user