diff options
author | Kai Shi <kaishi@google.com> | 2020-06-29 18:56:30 -0700 |
---|---|---|
committer | Kai Shi <kaishi@google.com> | 2020-06-30 16:22:23 +0000 |
commit | 2b435c05d7d588b665d9ad0f1728b9d0bb02395b (patch) | |
tree | e79cf61a1a1cd6a4c1e11719910193f8c2f4fe5a /service | |
parent | 90723104f67badbfd95ca374fea2b514d3a314f3 (diff) |
Bug fix of Tx PER when packet count is low
Use default Tx PER when packet count is low because PER estimation is
unreliable with low Tx packet count.
Bug: 159866355
Test: atest com.android.server.wifi
Change-Id: Ide48ab41420c9c907fc50a32aef10b47360209d4
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/server/wifi/DeviceConfigFacade.java | 2 | ||||
-rw-r--r-- | service/java/com/android/server/wifi/WifiDataStall.java | 8 |
2 files changed, 6 insertions, 4 deletions
diff --git a/service/java/com/android/server/wifi/DeviceConfigFacade.java b/service/java/com/android/server/wifi/DeviceConfigFacade.java index 0e43a0891..0b707701f 100644 --- a/service/java/com/android/server/wifi/DeviceConfigFacade.java +++ b/service/java/com/android/server/wifi/DeviceConfigFacade.java @@ -66,7 +66,7 @@ public class DeviceConfigFacade { // Denominator part of default threshold of L2 throughput over L3 throughput ratio public static final int DEFAULT_TPUT_SUFFICIENT_RATIO_THR_DEN = 1; // Default threshold of Tx packet per second - public static final int DEFAULT_TX_PACKET_PER_SECOND_THR = 1; + public static final int DEFAULT_TX_PACKET_PER_SECOND_THR = 2; // Default threshold of Rx packet per second public static final int DEFAULT_RX_PACKET_PER_SECOND_THR = 1; // Default high threshold values for various connection/disconnection cases diff --git a/service/java/com/android/server/wifi/WifiDataStall.java b/service/java/com/android/server/wifi/WifiDataStall.java index 7ae577900..ebc184773 100644 --- a/service/java/com/android/server/wifi/WifiDataStall.java +++ b/service/java/com/android/server/wifi/WifiDataStall.java @@ -296,7 +296,8 @@ public class WifiDataStall { } logd(" ccaLevel = " + ccaLevel); - int txPer = updateTxPer(txSuccessDelta, txRetriesDelta, isSameBssidAndFreq); + int txPer = updateTxPer(txSuccessDelta, txRetriesDelta, isSameBssidAndFreq, + isTxTrafficHigh); boolean isTxTputLow = false; boolean isRxTputLow = false; @@ -397,12 +398,13 @@ public class WifiDataStall { return WifiIsUnusableEvent.TYPE_UNKNOWN; } - private int updateTxPer(long txSuccessDelta, long txRetriesDelta, boolean isSameBssidAndFreq) { + private int updateTxPer(long txSuccessDelta, long txRetriesDelta, boolean isSameBssidAndFreq, + boolean isTxTrafficHigh) { if (!isSameBssidAndFreq) { return DEFAULT_TX_PACKET_ERROR_RATE; } long txAttempts = txSuccessDelta + txRetriesDelta; - if (txAttempts <= 0) { + if (txAttempts <= 0 || !isTxTrafficHigh) { return DEFAULT_TX_PACKET_ERROR_RATE; } return (int) (txRetriesDelta * 100 / txAttempts); |