Merge "Reduce excess local prefix computations"
am: 35d9291ca7
Change-Id: I15aadca0ff577fb6038e1aa8e9e40964309f042b
This commit is contained in:
@@ -399,9 +399,12 @@ public class UpstreamNetworkMonitor {
|
||||
@Override
|
||||
public void onLinkPropertiesChanged(Network network, LinkProperties newLp) {
|
||||
handleLinkProp(network, newLp);
|
||||
// TODO(b/110335330): reduce the number of times this is called by
|
||||
// only recomputing on the LISTEN_ALL callback.
|
||||
recomputeLocalPrefixes();
|
||||
// Any non-LISTEN_ALL callback will necessarily concern a network that will
|
||||
// also match the LISTEN_ALL callback by construction of the LISTEN_ALL callback.
|
||||
// So it's not useful to do this work for non-LISTEN_ALL callbacks.
|
||||
if (mCallbackType == CALLBACK_LISTEN_ALL) {
|
||||
recomputeLocalPrefixes();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -417,9 +420,12 @@ public class UpstreamNetworkMonitor {
|
||||
@Override
|
||||
public void onLost(Network network) {
|
||||
handleLost(mCallbackType, network);
|
||||
// TODO(b/110335330): reduce the number of times this is called by
|
||||
// only recomputing on the LISTEN_ALL callback.
|
||||
recomputeLocalPrefixes();
|
||||
// Any non-LISTEN_ALL callback will necessarily concern a network that will
|
||||
// also match the LISTEN_ALL callback by construction of the LISTEN_ALL callback.
|
||||
// So it's not useful to do this work for non-LISTEN_ALL callbacks.
|
||||
if (mCallbackType == CALLBACK_LISTEN_ALL) {
|
||||
recomputeLocalPrefixes();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -475,6 +475,18 @@ public class UpstreamNetworkMonitorTest {
|
||||
assertPrefixSet(local, EXCLUDES, wifiLinkPrefixes);
|
||||
assertPrefixSet(local, INCLUDES, cellLinkPrefixes);
|
||||
assertPrefixSet(local, INCLUDES, dunLinkPrefixes);
|
||||
|
||||
// [5] Pretend mobile disconnected.
|
||||
cellAgent.fakeDisconnect();
|
||||
local = mUNM.getLocalPrefixes();
|
||||
assertPrefixSet(local, EXCLUDES, wifiLinkPrefixes);
|
||||
assertPrefixSet(local, EXCLUDES, cellLinkPrefixes);
|
||||
assertPrefixSet(local, INCLUDES, dunLinkPrefixes);
|
||||
|
||||
// [6] Pretend DUN disconnected.
|
||||
dunAgent.fakeDisconnect();
|
||||
local = mUNM.getLocalPrefixes();
|
||||
assertTrue(local.isEmpty());
|
||||
}
|
||||
|
||||
private void assertSatisfiesLegacyType(int legacyType, NetworkState ns) {
|
||||
|
||||
Reference in New Issue
Block a user