From d7efd7ba07760f5de4d05d9f9566b6087bacc9c6 Mon Sep 17 00:00:00 2001 From: junyulai Date: Fri, 6 Dec 2019 18:50:41 +0800 Subject: [PATCH 1/3] 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 --- .../java/com/android/server/net/NetworkStatsService.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/net/NetworkStatsService.java b/services/core/java/com/android/server/net/NetworkStatsService.java index 16424f2fef..a943e77284 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 From c6dee71164c81727475bc9ce8ac0da26e692513a Mon Sep 17 00:00:00 2001 From: Artur Satayev Date: Tue, 10 Dec 2019 17:47:51 +0000 Subject: [PATCH 2/3] Use new UnsupportedAppUsage annotation. Existing annotations in libcore/ and frameworks/ will deleted after the migration. This also means that any java library that compiles @UnsupportedAppUsage requires a direct dependency on "unsupportedappusage" java_library. Bug: 145132366 Test: m && diff unsupportedappusage_index.csv Change-Id: I8789f8499d4dca08580672e9e45ed9a7026dd686 --- core/java/android/app/usage/NetworkStatsManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java/android/app/usage/NetworkStatsManager.java b/core/java/android/app/usage/NetworkStatsManager.java index 6bade90182..74129702b4 100644 --- a/core/java/android/app/usage/NetworkStatsManager.java +++ b/core/java/android/app/usage/NetworkStatsManager.java @@ -21,8 +21,8 @@ import static com.android.internal.util.Preconditions.checkNotNull; import android.annotation.Nullable; import android.annotation.SystemService; import android.annotation.TestApi; -import android.annotation.UnsupportedAppUsage; import android.app.usage.NetworkStats.Bucket; +import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.net.ConnectivityManager; import android.net.DataUsageRequest; From fb1d015c12218139a62517b44ff085419aa84ef5 Mon Sep 17 00:00:00 2001 From: Artur Satayev Date: Tue, 10 Dec 2019 17:47:53 +0000 Subject: [PATCH 3/3] Use new UnsupportedAppUsage annotation. Existing annotations in libcore/ and frameworks/ will deleted after the migration. This also means that any java library that compiles @UnsupportedAppUsage requires a direct dependency on "unsupportedappusage" java_library. Bug: 145132366 Test: m && diff unsupportedappusage_index.csv Change-Id: I534e3fd1305e2f4af076986770033478448a665c --- core/java/android/net/nsd/NsdServiceInfo.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/java/android/net/nsd/NsdServiceInfo.java b/core/java/android/net/nsd/NsdServiceInfo.java index 459b140980..0946499f16 100644 --- a/core/java/android/net/nsd/NsdServiceInfo.java +++ b/core/java/android/net/nsd/NsdServiceInfo.java @@ -17,13 +17,13 @@ package android.net.nsd; import android.annotation.NonNull; -import android.annotation.UnsupportedAppUsage; -import android.os.Parcelable; +import android.compat.annotation.UnsupportedAppUsage; import android.os.Parcel; +import android.os.Parcelable; import android.text.TextUtils; +import android.util.ArrayMap; import android.util.Base64; import android.util.Log; -import android.util.ArrayMap; import java.io.UnsupportedEncodingException; import java.net.InetAddress;