Merge "Remove underlying network caps"
This commit is contained in:
@@ -161,9 +161,6 @@ public final class VcnGatewayConnectionConfig {
|
||||
private static final String EXPOSED_CAPABILITIES_KEY = "mExposedCapabilities";
|
||||
@NonNull private final SortedSet<Integer> mExposedCapabilities;
|
||||
|
||||
private static final String UNDERLYING_CAPABILITIES_KEY = "mUnderlyingCapabilities";
|
||||
@NonNull private final SortedSet<Integer> mUnderlyingCapabilities;
|
||||
|
||||
private static final String MAX_MTU_KEY = "mMaxMtu";
|
||||
private final int mMaxMtu;
|
||||
|
||||
@@ -175,13 +172,11 @@ public final class VcnGatewayConnectionConfig {
|
||||
@NonNull String gatewayConnectionName,
|
||||
@NonNull IkeTunnelConnectionParams tunnelConnectionParams,
|
||||
@NonNull Set<Integer> exposedCapabilities,
|
||||
@NonNull Set<Integer> underlyingCapabilities,
|
||||
@NonNull long[] retryIntervalsMs,
|
||||
@IntRange(from = MIN_MTU_V6) int maxMtu) {
|
||||
mGatewayConnectionName = gatewayConnectionName;
|
||||
mTunnelConnectionParams = tunnelConnectionParams;
|
||||
mExposedCapabilities = new TreeSet(exposedCapabilities);
|
||||
mUnderlyingCapabilities = new TreeSet(underlyingCapabilities);
|
||||
mRetryIntervalsMs = retryIntervalsMs;
|
||||
mMaxMtu = maxMtu;
|
||||
|
||||
@@ -198,16 +193,12 @@ public final class VcnGatewayConnectionConfig {
|
||||
|
||||
final PersistableBundle exposedCapsBundle =
|
||||
in.getPersistableBundle(EXPOSED_CAPABILITIES_KEY);
|
||||
final PersistableBundle underlyingCapsBundle =
|
||||
in.getPersistableBundle(UNDERLYING_CAPABILITIES_KEY);
|
||||
|
||||
mGatewayConnectionName = in.getString(GATEWAY_CONNECTION_NAME_KEY);
|
||||
mTunnelConnectionParams =
|
||||
TunnelConnectionParamsUtils.fromPersistableBundle(tunnelConnectionParamsBundle);
|
||||
mExposedCapabilities = new TreeSet<>(PersistableBundleUtils.toList(
|
||||
exposedCapsBundle, PersistableBundleUtils.INTEGER_DESERIALIZER));
|
||||
mUnderlyingCapabilities = new TreeSet<>(PersistableBundleUtils.toList(
|
||||
underlyingCapsBundle, PersistableBundleUtils.INTEGER_DESERIALIZER));
|
||||
mRetryIntervalsMs = in.getLongArray(RETRY_INTERVAL_MS_KEY);
|
||||
mMaxMtu = in.getInt(MAX_MTU_KEY);
|
||||
|
||||
@@ -306,36 +297,6 @@ public final class VcnGatewayConnectionConfig {
|
||||
return Collections.unmodifiableSet(mExposedCapabilities);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all capabilities required of underlying networks.
|
||||
*
|
||||
* <p>The returned integer-value capabilities will be sorted in ascending numerical order.
|
||||
*
|
||||
* @see Builder#addRequiredUnderlyingCapability(int)
|
||||
* @see Builder#removeRequiredUnderlyingCapability(int)
|
||||
* @hide
|
||||
*/
|
||||
// TODO(b/182219992): Remove, and add when per-transport capabilities are supported
|
||||
@NonNull
|
||||
public int[] getRequiredUnderlyingCapabilities() {
|
||||
// Sorted set guarantees ordering
|
||||
return ArrayUtils.convertToIntArray(new ArrayList<>(mUnderlyingCapabilities));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all capabilities required of underlying networks.
|
||||
*
|
||||
* <p>Left to prevent the need to make major changes while changes are actively in flight.
|
||||
*
|
||||
* @deprecated use getRequiredUnderlyingCapabilities() instead
|
||||
* @hide
|
||||
*/
|
||||
@Deprecated
|
||||
@NonNull
|
||||
public Set<Integer> getAllUnderlyingCapabilities() {
|
||||
return Collections.unmodifiableSet(mUnderlyingCapabilities);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the configured retry intervals.
|
||||
*
|
||||
@@ -372,15 +333,10 @@ public final class VcnGatewayConnectionConfig {
|
||||
PersistableBundleUtils.fromList(
|
||||
new ArrayList<>(mExposedCapabilities),
|
||||
PersistableBundleUtils.INTEGER_SERIALIZER);
|
||||
final PersistableBundle underlyingCapsBundle =
|
||||
PersistableBundleUtils.fromList(
|
||||
new ArrayList<>(mUnderlyingCapabilities),
|
||||
PersistableBundleUtils.INTEGER_SERIALIZER);
|
||||
|
||||
result.putString(GATEWAY_CONNECTION_NAME_KEY, mGatewayConnectionName);
|
||||
result.putPersistableBundle(TUNNEL_CONNECTION_PARAMS_KEY, tunnelConnectionParamsBundle);
|
||||
result.putPersistableBundle(EXPOSED_CAPABILITIES_KEY, exposedCapsBundle);
|
||||
result.putPersistableBundle(UNDERLYING_CAPABILITIES_KEY, underlyingCapsBundle);
|
||||
result.putLongArray(RETRY_INTERVAL_MS_KEY, mRetryIntervalsMs);
|
||||
result.putInt(MAX_MTU_KEY, mMaxMtu);
|
||||
|
||||
@@ -392,7 +348,6 @@ public final class VcnGatewayConnectionConfig {
|
||||
return Objects.hash(
|
||||
mGatewayConnectionName,
|
||||
mExposedCapabilities,
|
||||
mUnderlyingCapabilities,
|
||||
Arrays.hashCode(mRetryIntervalsMs),
|
||||
mMaxMtu);
|
||||
}
|
||||
@@ -406,7 +361,6 @@ public final class VcnGatewayConnectionConfig {
|
||||
final VcnGatewayConnectionConfig rhs = (VcnGatewayConnectionConfig) other;
|
||||
return mGatewayConnectionName.equals(rhs.mGatewayConnectionName)
|
||||
&& mExposedCapabilities.equals(rhs.mExposedCapabilities)
|
||||
&& mUnderlyingCapabilities.equals(rhs.mUnderlyingCapabilities)
|
||||
&& Arrays.equals(mRetryIntervalsMs, rhs.mRetryIntervalsMs)
|
||||
&& mMaxMtu == rhs.mMaxMtu;
|
||||
}
|
||||
@@ -418,7 +372,6 @@ public final class VcnGatewayConnectionConfig {
|
||||
@NonNull private final String mGatewayConnectionName;
|
||||
@NonNull private final IkeTunnelConnectionParams mTunnelConnectionParams;
|
||||
@NonNull private final Set<Integer> mExposedCapabilities = new ArraySet();
|
||||
@NonNull private final Set<Integer> mUnderlyingCapabilities = new ArraySet();
|
||||
@NonNull private long[] mRetryIntervalsMs = DEFAULT_RETRY_INTERVALS_MS;
|
||||
private int mMaxMtu = DEFAULT_MAX_MTU;
|
||||
|
||||
@@ -489,51 +442,6 @@ public final class VcnGatewayConnectionConfig {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Require a capability for Networks underlying this VCN Gateway Connection.
|
||||
*
|
||||
* @param underlyingCapability the capability that a network MUST have in order to be an
|
||||
* underlying network for this VCN Gateway Connection.
|
||||
* @return this {@link Builder} instance, for chaining
|
||||
* @see VcnGatewayConnectionConfig for a list of capabilities may be required of underlying
|
||||
* networks
|
||||
* @hide
|
||||
*/
|
||||
// TODO(b/182219992): Remove, and add when per-transport capabilities are supported
|
||||
@NonNull
|
||||
public Builder addRequiredUnderlyingCapability(
|
||||
@VcnSupportedCapability int underlyingCapability) {
|
||||
checkValidCapability(underlyingCapability);
|
||||
|
||||
mUnderlyingCapabilities.add(underlyingCapability);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a requirement of a capability for Networks underlying this VCN Gateway Connection.
|
||||
*
|
||||
* <p>Calling this method will allow Networks that do NOT have this capability to be
|
||||
* selected as an underlying network for this VCN Gateway Connection. However, underlying
|
||||
* networks MAY still have the removed capability.
|
||||
*
|
||||
* @param underlyingCapability the capability that a network DOES NOT need to have in order
|
||||
* to be an underlying network for this VCN Gateway Connection.
|
||||
* @return this {@link Builder} instance, for chaining
|
||||
* @see VcnGatewayConnectionConfig for a list of capabilities may be required of underlying
|
||||
* networks
|
||||
* @hide
|
||||
*/
|
||||
// TODO(b/182219992): Remove, and add when per-transport capabilities are supported
|
||||
@NonNull
|
||||
@SuppressLint("BuilderSetStyle") // For consistency with NetCaps.Builder add/removeCap
|
||||
public Builder removeRequiredUnderlyingCapability(
|
||||
@VcnSupportedCapability int underlyingCapability) {
|
||||
checkValidCapability(underlyingCapability);
|
||||
|
||||
mUnderlyingCapabilities.remove(underlyingCapability);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the retry interval between VCN establishment attempts upon successive failures.
|
||||
*
|
||||
@@ -598,7 +506,6 @@ public final class VcnGatewayConnectionConfig {
|
||||
mGatewayConnectionName,
|
||||
mTunnelConnectionParams,
|
||||
mExposedCapabilities,
|
||||
mUnderlyingCapabilities,
|
||||
mRetryIntervalsMs,
|
||||
mMaxMtu);
|
||||
}
|
||||
|
||||
@@ -108,7 +108,6 @@ public class UnderlyingNetworkTracker {
|
||||
|
||||
@NonNull private final VcnContext mVcnContext;
|
||||
@NonNull private final ParcelUuid mSubscriptionGroup;
|
||||
@NonNull private final Set<Integer> mRequiredUnderlyingNetworkCapabilities;
|
||||
@NonNull private final UnderlyingNetworkTrackerCallback mCb;
|
||||
@NonNull private final Dependencies mDeps;
|
||||
@NonNull private final Handler mHandler;
|
||||
@@ -133,13 +132,11 @@ public class UnderlyingNetworkTracker {
|
||||
@NonNull VcnContext vcnContext,
|
||||
@NonNull ParcelUuid subscriptionGroup,
|
||||
@NonNull TelephonySubscriptionSnapshot snapshot,
|
||||
@NonNull Set<Integer> requiredUnderlyingNetworkCapabilities,
|
||||
@NonNull UnderlyingNetworkTrackerCallback cb) {
|
||||
this(
|
||||
vcnContext,
|
||||
subscriptionGroup,
|
||||
snapshot,
|
||||
requiredUnderlyingNetworkCapabilities,
|
||||
cb,
|
||||
new Dependencies());
|
||||
}
|
||||
@@ -148,16 +145,11 @@ public class UnderlyingNetworkTracker {
|
||||
@NonNull VcnContext vcnContext,
|
||||
@NonNull ParcelUuid subscriptionGroup,
|
||||
@NonNull TelephonySubscriptionSnapshot snapshot,
|
||||
@NonNull Set<Integer> requiredUnderlyingNetworkCapabilities,
|
||||
@NonNull UnderlyingNetworkTrackerCallback cb,
|
||||
@NonNull Dependencies deps) {
|
||||
mVcnContext = Objects.requireNonNull(vcnContext, "Missing vcnContext");
|
||||
mSubscriptionGroup = Objects.requireNonNull(subscriptionGroup, "Missing subscriptionGroup");
|
||||
mLastSnapshot = Objects.requireNonNull(snapshot, "Missing snapshot");
|
||||
mRequiredUnderlyingNetworkCapabilities =
|
||||
Objects.requireNonNull(
|
||||
requiredUnderlyingNetworkCapabilities,
|
||||
"Missing requiredUnderlyingNetworkCapabilities");
|
||||
mCb = Objects.requireNonNull(cb, "Missing cb");
|
||||
mDeps = Objects.requireNonNull(deps, "Missing deps");
|
||||
|
||||
|
||||
@@ -673,7 +673,6 @@ public class VcnGatewayConnection extends StateMachine {
|
||||
mVcnContext,
|
||||
subscriptionGroup,
|
||||
mLastSnapshot,
|
||||
mConnectionConfig.getAllUnderlyingCapabilities(),
|
||||
mUnderlyingNetworkTrackerCallback);
|
||||
mIpSecManager = mVcnContext.getContext().getSystemService(IpSecManager.class);
|
||||
|
||||
@@ -2274,13 +2273,11 @@ public class VcnGatewayConnection extends StateMachine {
|
||||
VcnContext vcnContext,
|
||||
ParcelUuid subscriptionGroup,
|
||||
TelephonySubscriptionSnapshot snapshot,
|
||||
Set<Integer> requiredUnderlyingNetworkCapabilities,
|
||||
UnderlyingNetworkTrackerCallback callback) {
|
||||
return new UnderlyingNetworkTracker(
|
||||
vcnContext,
|
||||
subscriptionGroup,
|
||||
snapshot,
|
||||
requiredUnderlyingNetworkCapabilities,
|
||||
callback);
|
||||
}
|
||||
|
||||
|
||||
@@ -92,10 +92,6 @@ public class VcnGatewayConnectionConfigTest {
|
||||
builder.addExposedCapability(caps);
|
||||
}
|
||||
|
||||
for (int caps : UNDERLYING_CAPS) {
|
||||
builder.addRequiredUnderlyingCapability(caps);
|
||||
}
|
||||
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
@@ -141,9 +137,7 @@ public class VcnGatewayConnectionConfigTest {
|
||||
@Test
|
||||
public void testBuilderRequiresNonEmptyExposedCaps() {
|
||||
try {
|
||||
newBuilder()
|
||||
.addRequiredUnderlyingCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
|
||||
.build();
|
||||
newBuilder().build();
|
||||
|
||||
fail("Expected exception due to invalid exposed capabilities");
|
||||
} catch (IllegalArgumentException e) {
|
||||
@@ -187,10 +181,6 @@ public class VcnGatewayConnectionConfigTest {
|
||||
Arrays.sort(exposedCaps);
|
||||
assertArrayEquals(EXPOSED_CAPS, exposedCaps);
|
||||
|
||||
int[] underlyingCaps = config.getRequiredUnderlyingCapabilities();
|
||||
Arrays.sort(underlyingCaps);
|
||||
assertArrayEquals(UNDERLYING_CAPS, underlyingCaps);
|
||||
|
||||
assertEquals(TUNNEL_CONNECTION_PARAMS, config.getTunnelConnectionParams());
|
||||
|
||||
assertArrayEquals(RETRY_INTERVALS_MS, config.getRetryIntervalsMillis());
|
||||
|
||||
@@ -61,7 +61,6 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
@@ -146,7 +145,6 @@ public class UnderlyingNetworkTrackerTest {
|
||||
mVcnContext,
|
||||
SUB_GROUP,
|
||||
mSubscriptionSnapshot,
|
||||
Collections.singleton(NetworkCapabilities.NET_CAPABILITY_INTERNET),
|
||||
mNetworkTrackerCb);
|
||||
}
|
||||
|
||||
@@ -187,7 +185,6 @@ public class UnderlyingNetworkTrackerTest {
|
||||
vcnContext,
|
||||
SUB_GROUP,
|
||||
mSubscriptionSnapshot,
|
||||
Collections.singleton(NetworkCapabilities.NET_CAPABILITY_INTERNET),
|
||||
mNetworkTrackerCb);
|
||||
|
||||
verify(cm)
|
||||
|
||||
@@ -173,7 +173,7 @@ public class VcnGatewayConnectionTestBase {
|
||||
|
||||
doReturn(mUnderlyingNetworkTracker)
|
||||
.when(mDeps)
|
||||
.newUnderlyingNetworkTracker(any(), any(), any(), any(), any());
|
||||
.newUnderlyingNetworkTracker(any(), any(), any(), any());
|
||||
doReturn(mWakeLock)
|
||||
.when(mDeps)
|
||||
.newWakeLock(eq(mContext), eq(PowerManager.PARTIAL_WAKE_LOCK), any());
|
||||
|
||||
Reference in New Issue
Block a user