summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author junyulai <junyulai@google.com> 2019-12-06 18:50:41 +0800
committer junyulai <junyulai@google.com> 2019-12-18 10:57:29 +0800
commit41c13c9a19677583627b24f9bc74c55bbd03805d (patch)
treea1728fea87644604c235c486ddfab6b53164e728
parent8e708ff38048e75f700365e686898e62942fb2e2 (diff)
Update interface quota limit when network stats updated
In previous design, interface quota limit does not changed when network stats are updated. However, this is incorrect today since there are some offloaded traffic that cannot be seen by kernel. If the limit is not updated, the offloaded traffic might still be able to use whole quota as if there is no embedded traffic. This change also removes the re-arm global alert after advising persist threshold if not changed, given that it will cause an additional alert while updating interface quota limit. Bug: 145792619 Test: 1. atest NetworkStatsServiceTest 2. atest NetworkPolicyManagerServiceTest 3. manual test: run speedtest, check dumpsys netd Change-Id: I8d2203e713730d536430a234b1aa8b2468badee3
-rw-r--r--services/core/java/com/android/server/net/NetworkPolicyManagerService.java1
-rw-r--r--services/core/java/com/android/server/net/NetworkStatsService.java7
2 files changed, 6 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
index 327b685fba9b..cb7b15ac9d76 100644
--- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -1027,6 +1027,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
// READ_NETWORK_USAGE_HISTORY permission above.
synchronized (mNetworkPoliciesSecondLock) {
+ updateNetworkRulesNL();
updateNetworkEnabledNL();
updateNotificationsNL();
}
diff --git a/services/core/java/com/android/server/net/NetworkStatsService.java b/services/core/java/com/android/server/net/NetworkStatsService.java
index 16424f2fef76..a943e77284ec 100644
--- a/services/core/java/com/android/server/net/NetworkStatsService.java
+++ b/services/core/java/com/android/server/net/NetworkStatsService.java
@@ -873,6 +873,8 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
+ mPersistThreshold);
}
+ final long oldGlobalAlertBytes = mGlobalAlertBytes;
+
// update and persist if beyond new thresholds
final long currentTime = mClock.millis();
synchronized (mStatsLock) {
@@ -886,8 +888,9 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
mUidTagRecorder.maybePersistLocked(currentTime);
}
- // re-arm global alert
- registerGlobalAlert();
+ if (oldGlobalAlertBytes != mGlobalAlertBytes) {
+ registerGlobalAlert();
+ }
}
@Override