Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 886e94b0 authored by Benedict Wong's avatar Benedict Wong Committed by Gerrit Code Review
Browse files

Merge "Remove underlying network caps"

parents 4b8d448b b2632543
Loading
Loading
Loading
Loading
+0 −93
Original line number Diff line number Diff line
@@ -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);
        }
+0 −8
Original line number Diff line number Diff line
@@ -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");

+0 −3
Original line number Diff line number Diff line
@@ -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);
        }

+1 −11
Original line number Diff line number Diff line
@@ -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());
+0 −3
Original line number Diff line number Diff line
@@ -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)
Loading