diff options
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/server/wifi/WifiNative.java | 10 | ||||
-rw-r--r-- | service/java/com/android/server/wifi/WifiStateMachine.java | 3 | ||||
-rw-r--r-- | service/jni/com_android_server_wifi_WifiNative.cpp | 13 |
3 files changed, 26 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/WifiNative.java b/service/java/com/android/server/wifi/WifiNative.java index ce2b3e7a1..52a5e43d2 100644 --- a/service/java/com/android/server/wifi/WifiNative.java +++ b/service/java/com/android/server/wifi/WifiNative.java @@ -1337,6 +1337,7 @@ public class WifiNative { private static native boolean stopScanNative(int iface, int id); private static native WifiScanner.ScanData[] getScanResultsNative(int iface, boolean flush); private static native WifiLinkLayerStats getWifiLinkLayerStatsNative(int iface); + private static native void setWifiLinkLayerStatsNative(int iface, int enable); public static class ChannelSettings { int frequency; @@ -1735,6 +1736,15 @@ public class WifiNative { } } + synchronized public static void setWifiLinkLayerStats(String iface, int enable) { + if (iface == null) return; + synchronized (mLock) { + if (sWifiHalHandle != 0) { + setWifiLinkLayerStatsNative(sWlan0Index, enable); + } + } + } + public static native int getSupportedFeatureSetNative(int iface); synchronized public static int getSupportedFeatureSet() { synchronized (mLock) { diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java index e1ab987d2..9433cbfcc 100644 --- a/service/java/com/android/server/wifi/WifiStateMachine.java +++ b/service/java/com/android/server/wifi/WifiStateMachine.java @@ -6067,6 +6067,9 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiPno mHalBasedPnoDriverSupported = true; } + // Enable link layer stats gathering + mWifiNative.setWifiLinkLayerStats("wlan0", 1); + if (PDBG) { loge("Driverstarted State enter done, epno=" + mHalBasedPnoDriverSupported + " feature=" + mHalFeatureSet); diff --git a/service/jni/com_android_server_wifi_WifiNative.cpp b/service/jni/com_android_server_wifi_WifiNative.cpp index 1a6d4f3d4..a245553c7 100644 --- a/service/jni/com_android_server_wifi_WifiNative.cpp +++ b/service/jni/com_android_server_wifi_WifiNative.cpp @@ -1027,6 +1027,17 @@ void onLinkStatsResults(wifi_request_id id, wifi_iface_stat *iface_stat, } } +static void android_net_wifi_setLinkLayerStats (JNIEnv *env, jclass cls, jint iface, int enable) { + wifi_interface_handle handle = getIfaceHandle(env, cls, iface); + + wifi_link_layer_params params; + params.aggressive_statistics_gathering = enable; + params.mpdu_size_threshold = 128; + ALOGE("android_net_wifi_setLinkLayerStats: %u\n", enable); + + hal_fn.wifi_set_link_stats(handle, params); +} + static jobject android_net_wifi_getLinkLayerStats (JNIEnv *env, jclass cls, jint iface) { wifi_stats_result_handler handler; @@ -2098,6 +2109,8 @@ static JNINativeMethod gWifiMethods[] = { (void*) android_net_wifi_untrackSignificantWifiChange}, { "getWifiLinkLayerStatsNative", "(I)Landroid/net/wifi/WifiLinkLayerStats;", (void*) android_net_wifi_getLinkLayerStats}, + { "setWifiLinkLayerStatsNative", "(II)V", + (void*) android_net_wifi_setLinkLayerStats}, { "getSupportedFeatureSetNative", "(I)I", (void*) android_net_wifi_getSupportedFeatures}, { "requestRangeNative", "(II[Landroid/net/wifi/RttManager$RttParams;)Z", |