Loading core/java/android/net/vcn/VcnCellUnderlyingNetworkTemplate.java +1 −0 Original line number Diff line number Diff line Loading @@ -354,6 +354,7 @@ public final class VcnCellUnderlyingNetworkTemplate extends VcnUnderlyingNetwork } /** @hide */ @Override public Map<Integer, Integer> getCapabilitiesMatchCriteria() { return Collections.unmodifiableMap(new HashMap<>(mCapabilitiesMatchCriteria)); } Loading core/java/android/net/vcn/VcnUnderlyingNetworkTemplate.java +4 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.internal.util.Preconditions; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Map; import java.util.Objects; /** Loading Loading @@ -307,4 +308,7 @@ public abstract class VcnUnderlyingNetworkTemplate { public int getMinExitDownstreamBandwidthKbps() { return mMinExitDownstreamBandwidthKbps; } /** @hide */ public abstract Map<Integer, Integer> getCapabilitiesMatchCriteria(); } core/java/android/net/vcn/VcnWifiUnderlyingNetworkTemplate.java +11 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,9 @@ */ package android.net.vcn; import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET; import static android.net.vcn.VcnUnderlyingNetworkTemplate.MATCH_ANY; import static com.android.internal.annotations.VisibleForTesting.Visibility; import static com.android.server.vcn.util.PersistableBundleUtils.STRING_DESERIALIZER; import static com.android.server.vcn.util.PersistableBundleUtils.STRING_SERIALIZER; Loading @@ -23,6 +26,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SuppressLint; import android.net.NetworkCapabilities; import android.net.vcn.VcnUnderlyingNetworkTemplate.MatchCriteria; import android.os.PersistableBundle; import android.util.ArraySet; Loading @@ -32,6 +36,7 @@ import com.android.server.vcn.util.PersistableBundleUtils; import java.util.ArrayList; import java.util.Collections; import java.util.Map; import java.util.Objects; import java.util.Set; Loading Loading @@ -162,6 +167,12 @@ public final class VcnWifiUnderlyingNetworkTemplate extends VcnUnderlyingNetwork return Collections.unmodifiableSet(mSsids); } /** @hide */ @Override public Map<Integer, Integer> getCapabilitiesMatchCriteria() { return Collections.singletonMap(NET_CAPABILITY_INTERNET, MATCH_REQUIRED); } /** This class is used to incrementally build VcnWifiUnderlyingNetworkTemplate objects. */ public static final class Builder { private int mMeteredMatchCriteria = MATCH_ANY; Loading services/core/java/com/android/server/vcn/routeselection/NetworkPriorityClassifier.java +12 −12 Original line number Diff line number Diff line Loading @@ -171,6 +171,18 @@ class NetworkPriorityClassifier { return false; } for (Map.Entry<Integer, Integer> entry : networkPriority.getCapabilitiesMatchCriteria().entrySet()) { final int cap = entry.getKey(); final int matchCriteria = entry.getValue(); if (matchCriteria == MATCH_REQUIRED && !caps.hasCapability(cap)) { return false; } else if (matchCriteria == MATCH_FORBIDDEN && caps.hasCapability(cap)) { return false; } } if (vcnContext.isInTestMode() && caps.hasTransport(TRANSPORT_TEST)) { return true; } Loading Loading @@ -319,18 +331,6 @@ class NetworkPriorityClassifier { return false; } for (Map.Entry<Integer, Integer> entry : networkPriority.getCapabilitiesMatchCriteria().entrySet()) { final int cap = entry.getKey(); final int matchCriteria = entry.getValue(); if (matchCriteria == MATCH_REQUIRED && !caps.hasCapability(cap)) { return false; } else if (matchCriteria == MATCH_FORBIDDEN && caps.hasCapability(cap)) { return false; } } return true; } Loading tests/vcn/java/com/android/server/vcn/routeselection/NetworkPriorityClassifierTest.java +5 −2 Original line number Diff line number Diff line Loading @@ -95,6 +95,7 @@ public class NetworkPriorityClassifierTest { private static final NetworkCapabilities WIFI_NETWORK_CAPABILITIES = new NetworkCapabilities.Builder() .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .setSignalStrength(WIFI_RSSI) .setSsid(SSID) .setLinkUpstreamBandwidthKbps(LINK_UPSTREAM_BANDWIDTH_KBPS) Loading Loading @@ -509,12 +510,14 @@ public class NetworkPriorityClassifierTest { VcnCellUnderlyingNetworkTemplate template, boolean expectMatch) { assertEquals( expectMatch, checkMatchesCellPriorityRule( checkMatchesPriorityRule( mVcnContext, template, mCellNetworkRecord, SUB_GROUP, mSubscriptionSnapshot)); mSubscriptionSnapshot, null /* currentlySelected */, null /* carrierConfig */)); } @Test Loading Loading
core/java/android/net/vcn/VcnCellUnderlyingNetworkTemplate.java +1 −0 Original line number Diff line number Diff line Loading @@ -354,6 +354,7 @@ public final class VcnCellUnderlyingNetworkTemplate extends VcnUnderlyingNetwork } /** @hide */ @Override public Map<Integer, Integer> getCapabilitiesMatchCriteria() { return Collections.unmodifiableMap(new HashMap<>(mCapabilitiesMatchCriteria)); } Loading
core/java/android/net/vcn/VcnUnderlyingNetworkTemplate.java +4 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import com.android.internal.util.Preconditions; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Map; import java.util.Objects; /** Loading Loading @@ -307,4 +308,7 @@ public abstract class VcnUnderlyingNetworkTemplate { public int getMinExitDownstreamBandwidthKbps() { return mMinExitDownstreamBandwidthKbps; } /** @hide */ public abstract Map<Integer, Integer> getCapabilitiesMatchCriteria(); }
core/java/android/net/vcn/VcnWifiUnderlyingNetworkTemplate.java +11 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,9 @@ */ package android.net.vcn; import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET; import static android.net.vcn.VcnUnderlyingNetworkTemplate.MATCH_ANY; import static com.android.internal.annotations.VisibleForTesting.Visibility; import static com.android.server.vcn.util.PersistableBundleUtils.STRING_DESERIALIZER; import static com.android.server.vcn.util.PersistableBundleUtils.STRING_SERIALIZER; Loading @@ -23,6 +26,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SuppressLint; import android.net.NetworkCapabilities; import android.net.vcn.VcnUnderlyingNetworkTemplate.MatchCriteria; import android.os.PersistableBundle; import android.util.ArraySet; Loading @@ -32,6 +36,7 @@ import com.android.server.vcn.util.PersistableBundleUtils; import java.util.ArrayList; import java.util.Collections; import java.util.Map; import java.util.Objects; import java.util.Set; Loading Loading @@ -162,6 +167,12 @@ public final class VcnWifiUnderlyingNetworkTemplate extends VcnUnderlyingNetwork return Collections.unmodifiableSet(mSsids); } /** @hide */ @Override public Map<Integer, Integer> getCapabilitiesMatchCriteria() { return Collections.singletonMap(NET_CAPABILITY_INTERNET, MATCH_REQUIRED); } /** This class is used to incrementally build VcnWifiUnderlyingNetworkTemplate objects. */ public static final class Builder { private int mMeteredMatchCriteria = MATCH_ANY; Loading
services/core/java/com/android/server/vcn/routeselection/NetworkPriorityClassifier.java +12 −12 Original line number Diff line number Diff line Loading @@ -171,6 +171,18 @@ class NetworkPriorityClassifier { return false; } for (Map.Entry<Integer, Integer> entry : networkPriority.getCapabilitiesMatchCriteria().entrySet()) { final int cap = entry.getKey(); final int matchCriteria = entry.getValue(); if (matchCriteria == MATCH_REQUIRED && !caps.hasCapability(cap)) { return false; } else if (matchCriteria == MATCH_FORBIDDEN && caps.hasCapability(cap)) { return false; } } if (vcnContext.isInTestMode() && caps.hasTransport(TRANSPORT_TEST)) { return true; } Loading Loading @@ -319,18 +331,6 @@ class NetworkPriorityClassifier { return false; } for (Map.Entry<Integer, Integer> entry : networkPriority.getCapabilitiesMatchCriteria().entrySet()) { final int cap = entry.getKey(); final int matchCriteria = entry.getValue(); if (matchCriteria == MATCH_REQUIRED && !caps.hasCapability(cap)) { return false; } else if (matchCriteria == MATCH_FORBIDDEN && caps.hasCapability(cap)) { return false; } } return true; } Loading
tests/vcn/java/com/android/server/vcn/routeselection/NetworkPriorityClassifierTest.java +5 −2 Original line number Diff line number Diff line Loading @@ -95,6 +95,7 @@ public class NetworkPriorityClassifierTest { private static final NetworkCapabilities WIFI_NETWORK_CAPABILITIES = new NetworkCapabilities.Builder() .addTransportType(NetworkCapabilities.TRANSPORT_WIFI) .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .setSignalStrength(WIFI_RSSI) .setSsid(SSID) .setLinkUpstreamBandwidthKbps(LINK_UPSTREAM_BANDWIDTH_KBPS) Loading Loading @@ -509,12 +510,14 @@ public class NetworkPriorityClassifierTest { VcnCellUnderlyingNetworkTemplate template, boolean expectMatch) { assertEquals( expectMatch, checkMatchesCellPriorityRule( checkMatchesPriorityRule( mVcnContext, template, mCellNetworkRecord, SUB_GROUP, mSubscriptionSnapshot)); mSubscriptionSnapshot, null /* currentlySelected */, null /* carrierConfig */)); } @Test Loading