Loading services/core/java/com/android/server/connectivity/tethering/UpstreamNetworkMonitor.java +8 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.server.connectivity.tethering; import static android.net.ConnectivityManager.TYPE_MOBILE_DUN; import static android.net.ConnectivityManager.TYPE_MOBILE_HIPRI; import android.content.Context; import android.net.ConnectivityManager; import android.net.ConnectivityManager.NetworkCallback; Loading Loading @@ -142,7 +145,11 @@ public class UpstreamNetworkMonitor { // message to aid in any subsequent debugging if (DBG) Log.d(TAG, "requesting mobile upstream network: " + mobileUpstreamRequest); cm().requestNetwork(mobileUpstreamRequest, mMobileNetworkCallback); // The following use of the legacy type system cannot be removed until // after upstream selection no longer finds networks by legacy type. // See also b/34364553. final int apnType = mDunRequired ? TYPE_MOBILE_DUN : TYPE_MOBILE_HIPRI; cm().requestNetwork(mobileUpstreamRequest, mMobileNetworkCallback, 0, apnType); } public void releaseMobileNetworkRequest() { Loading tests/net/java/com/android/server/connectivity/tethering/UpstreamNetworkMonitorTest.java +23 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.server.connectivity.tethering; import static android.net.ConnectivityManager.TYPE_MOBILE_DUN; import static android.net.ConnectivityManager.TYPE_MOBILE_HIPRI; import static android.net.NetworkCapabilities.NET_CAPABILITY_DUN; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; Loading Loading @@ -114,6 +116,9 @@ public class UpstreamNetworkMonitorTest { mUNM.registerMobileNetworkRequest(); assertTrue(mUNM.mobileNetworkRequested()); assertEquals(1, mCM.requested.size()); assertEquals(1, mCM.legacyTypeMap.size()); assertEquals(Integer.valueOf(TYPE_MOBILE_HIPRI), mCM.legacyTypeMap.values().iterator().next()); assertFalse(mCM.isDunRequested()); mUNM.stop(); Loading @@ -137,6 +142,9 @@ public class UpstreamNetworkMonitorTest { mUNM.registerMobileNetworkRequest(); assertTrue(mUNM.mobileNetworkRequested()); assertEquals(1, mCM.requested.size()); assertEquals(1, mCM.legacyTypeMap.size()); assertEquals(Integer.valueOf(TYPE_MOBILE_DUN), mCM.legacyTypeMap.values().iterator().next()); assertTrue(mCM.isDunRequested()); mUNM.stop(); Loading @@ -148,6 +156,7 @@ public class UpstreamNetworkMonitorTest { public Set<NetworkCallback> trackingDefault = new HashSet<>(); public Map<NetworkCallback, NetworkRequest> listening = new HashMap<>(); public Map<NetworkCallback, NetworkRequest> requested = new HashMap<>(); public Map<NetworkCallback, Integer> legacyTypeMap = new HashMap<>(); public TestConnectivityManager(Context ctx, IConnectivityManager svc) { super(ctx, svc); Loading @@ -156,7 +165,8 @@ public class UpstreamNetworkMonitorTest { boolean isEmpty() { return trackingDefault.isEmpty() && listening.isEmpty() && requested.isEmpty(); requested.isEmpty() && legacyTypeMap.isEmpty(); } boolean isListeningForDun() { Loading @@ -183,6 +193,17 @@ public class UpstreamNetworkMonitorTest { requested.put(cb, req); } @Override public void requestNetwork(NetworkRequest req, NetworkCallback cb, int timeoutMs, int legacyType) { assertFalse(requested.containsKey(cb)); requested.put(cb, req); assertFalse(legacyTypeMap.containsKey(cb)); if (legacyType != ConnectivityManager.TYPE_NONE) { legacyTypeMap.put(cb, legacyType); } } @Override public void registerNetworkCallback(NetworkRequest req, NetworkCallback cb) { assertFalse(listening.containsKey(cb)); Loading @@ -203,6 +224,7 @@ public class UpstreamNetworkMonitorTest { listening.remove(cb); } else if (requested.containsKey(cb)) { requested.remove(cb); legacyTypeMap.remove(cb); } assertFalse(trackingDefault.contains(cb)); Loading Loading
services/core/java/com/android/server/connectivity/tethering/UpstreamNetworkMonitor.java +8 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.server.connectivity.tethering; import static android.net.ConnectivityManager.TYPE_MOBILE_DUN; import static android.net.ConnectivityManager.TYPE_MOBILE_HIPRI; import android.content.Context; import android.net.ConnectivityManager; import android.net.ConnectivityManager.NetworkCallback; Loading Loading @@ -142,7 +145,11 @@ public class UpstreamNetworkMonitor { // message to aid in any subsequent debugging if (DBG) Log.d(TAG, "requesting mobile upstream network: " + mobileUpstreamRequest); cm().requestNetwork(mobileUpstreamRequest, mMobileNetworkCallback); // The following use of the legacy type system cannot be removed until // after upstream selection no longer finds networks by legacy type. // See also b/34364553. final int apnType = mDunRequired ? TYPE_MOBILE_DUN : TYPE_MOBILE_HIPRI; cm().requestNetwork(mobileUpstreamRequest, mMobileNetworkCallback, 0, apnType); } public void releaseMobileNetworkRequest() { Loading
tests/net/java/com/android/server/connectivity/tethering/UpstreamNetworkMonitorTest.java +23 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.server.connectivity.tethering; import static android.net.ConnectivityManager.TYPE_MOBILE_DUN; import static android.net.ConnectivityManager.TYPE_MOBILE_HIPRI; import static android.net.NetworkCapabilities.NET_CAPABILITY_DUN; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; Loading Loading @@ -114,6 +116,9 @@ public class UpstreamNetworkMonitorTest { mUNM.registerMobileNetworkRequest(); assertTrue(mUNM.mobileNetworkRequested()); assertEquals(1, mCM.requested.size()); assertEquals(1, mCM.legacyTypeMap.size()); assertEquals(Integer.valueOf(TYPE_MOBILE_HIPRI), mCM.legacyTypeMap.values().iterator().next()); assertFalse(mCM.isDunRequested()); mUNM.stop(); Loading @@ -137,6 +142,9 @@ public class UpstreamNetworkMonitorTest { mUNM.registerMobileNetworkRequest(); assertTrue(mUNM.mobileNetworkRequested()); assertEquals(1, mCM.requested.size()); assertEquals(1, mCM.legacyTypeMap.size()); assertEquals(Integer.valueOf(TYPE_MOBILE_DUN), mCM.legacyTypeMap.values().iterator().next()); assertTrue(mCM.isDunRequested()); mUNM.stop(); Loading @@ -148,6 +156,7 @@ public class UpstreamNetworkMonitorTest { public Set<NetworkCallback> trackingDefault = new HashSet<>(); public Map<NetworkCallback, NetworkRequest> listening = new HashMap<>(); public Map<NetworkCallback, NetworkRequest> requested = new HashMap<>(); public Map<NetworkCallback, Integer> legacyTypeMap = new HashMap<>(); public TestConnectivityManager(Context ctx, IConnectivityManager svc) { super(ctx, svc); Loading @@ -156,7 +165,8 @@ public class UpstreamNetworkMonitorTest { boolean isEmpty() { return trackingDefault.isEmpty() && listening.isEmpty() && requested.isEmpty(); requested.isEmpty() && legacyTypeMap.isEmpty(); } boolean isListeningForDun() { Loading @@ -183,6 +193,17 @@ public class UpstreamNetworkMonitorTest { requested.put(cb, req); } @Override public void requestNetwork(NetworkRequest req, NetworkCallback cb, int timeoutMs, int legacyType) { assertFalse(requested.containsKey(cb)); requested.put(cb, req); assertFalse(legacyTypeMap.containsKey(cb)); if (legacyType != ConnectivityManager.TYPE_NONE) { legacyTypeMap.put(cb, legacyType); } } @Override public void registerNetworkCallback(NetworkRequest req, NetworkCallback cb) { assertFalse(listening.containsKey(cb)); Loading @@ -203,6 +224,7 @@ public class UpstreamNetworkMonitorTest { listening.remove(cb); } else if (requested.containsKey(cb)) { requested.remove(cb); legacyTypeMap.remove(cb); } assertFalse(trackingDefault.contains(cb)); Loading