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

Commit b8f67d1b authored by Yan Yan's avatar Yan Yan Committed by Gerrit Code Review
Browse files

Merge "Remove TunnelConnectionParams interface"

parents 53c985aa de7222cb
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -25146,9 +25146,6 @@ package android.net {
    field public static final int UNSUPPORTED = -1; // 0xffffffff
  }
  public interface TunnelConnectionParams {
  }
  public abstract class Uri implements java.lang.Comparable<android.net.Uri> android.os.Parcelable {
    method public abstract android.net.Uri.Builder buildUpon();
    method public int compareTo(android.net.Uri);
@@ -25717,7 +25714,7 @@ package android.net.vcn {
  }
  public static final class VcnGatewayConnectionConfig.Builder {
    ctor public VcnGatewayConnectionConfig.Builder(@NonNull String, @NonNull android.net.TunnelConnectionParams);
    ctor public VcnGatewayConnectionConfig.Builder(@NonNull String, @NonNull android.net.ipsec.ike.IkeTunnelConnectionParams);
    method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder addExposedCapability(int);
    method @NonNull public android.net.vcn.VcnGatewayConnectionConfig build();
    method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder removeExposedCapability(int);
+0 −29
Original line number Diff line number Diff line
/*
 * Copyright (C) 2021 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package android.net;

/**
 * TunnelConnectionParams represents a configuration to set up a tunnel connection.
 *
 * <p>Concrete implementations for a control plane protocol should implement this interface.
 * Subclasses should be immutable data classes containing connection, authentication and
 * authorization parameters required to establish a tunnel connection.
 *
 * @see android.net.ipsec.ike.IkeTunnelConnectionParams
 */
// TODO:b/186071626 Remove TunnelConnectionParams when non-updatable API stub can resolve
// IkeTunnelConnectionParams
public interface TunnelConnectionParams {}
+8 −8
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@ import android.annotation.Nullable;
import android.annotation.SuppressLint;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.TunnelConnectionParams;
import android.net.ipsec.ike.IkeTunnelConnectionParams;
import android.net.vcn.persistablebundleutils.TunnelConnectionParamsUtils;
import android.os.PersistableBundle;
import android.util.ArraySet;
@@ -154,7 +154,7 @@ public final class VcnGatewayConnectionConfig {
    @NonNull private final String mGatewayConnectionName;

    private static final String TUNNEL_CONNECTION_PARAMS_KEY = "mTunnelConnectionParams";
    @NonNull private TunnelConnectionParams mTunnelConnectionParams;
    @NonNull private IkeTunnelConnectionParams mTunnelConnectionParams;

    private static final String EXPOSED_CAPABILITIES_KEY = "mExposedCapabilities";
    @NonNull private final SortedSet<Integer> mExposedCapabilities;
@@ -171,7 +171,7 @@ public final class VcnGatewayConnectionConfig {
    /** Builds a VcnGatewayConnectionConfig with the specified parameters. */
    private VcnGatewayConnectionConfig(
            @NonNull String gatewayConnectionName,
            @NonNull TunnelConnectionParams tunnelConnectionParams,
            @NonNull IkeTunnelConnectionParams tunnelConnectionParams,
            @NonNull Set<Integer> exposedCapabilities,
            @NonNull Set<Integer> underlyingCapabilities,
            @NonNull long[] retryIntervalsMs,
@@ -271,7 +271,7 @@ public final class VcnGatewayConnectionConfig {
     * @hide
     */
    @NonNull
    public TunnelConnectionParams getTunnelConnectionParams() {
    public IkeTunnelConnectionParams getTunnelConnectionParams() {
        return mTunnelConnectionParams;
    }

@@ -414,7 +414,7 @@ public final class VcnGatewayConnectionConfig {
     */
    public static final class Builder {
        @NonNull private final String mGatewayConnectionName;
        @NonNull private final TunnelConnectionParams mTunnelConnectionParams;
        @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;
@@ -432,13 +432,13 @@ public final class VcnGatewayConnectionConfig {
         *     VcnConfig} must be given a unique name. This name is used by the caller to
         *     distinguish between VcnGatewayConnectionConfigs configured on a single {@link
         *     VcnConfig}. This will be used as the identifier in VcnStatusCallback invocations.
         * @param tunnelConnectionParams the tunnel connection configuration
         * @see TunnelConnectionParams
         * @param tunnelConnectionParams the IKE tunnel connection configuration
         * @see IkeTunnelConnectionParams
         * @see VcnManager.VcnStatusCallback#onGatewayConnectionError
         */
        public Builder(
                @NonNull String gatewayConnectionName,
                @NonNull TunnelConnectionParams tunnelConnectionParams) {
                @NonNull IkeTunnelConnectionParams tunnelConnectionParams) {
            Objects.requireNonNull(gatewayConnectionName, "gatewayConnectionName was null");
            Objects.requireNonNull(tunnelConnectionParams, "tunnelConnectionParams was null");

+14 −17
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@
package android.net.vcn.persistablebundleutils;

import android.annotation.NonNull;
import android.net.TunnelConnectionParams;
import android.net.ipsec.ike.IkeSessionParams;
import android.net.ipsec.ike.IkeTunnelConnectionParams;
import android.net.ipsec.ike.TunnelModeChildSessionParams;
@@ -34,30 +33,28 @@ public final class TunnelConnectionParamsUtils {

    private static final String PARAMS_TYPE_IKE = "IKE";

    /** Serializes an TunnelConnectionParams to a PersistableBundle. */
    /** Serializes an IkeTunnelConnectionParams to a PersistableBundle. */
    @NonNull
    public static PersistableBundle toPersistableBundle(@NonNull TunnelConnectionParams params) {
    public static PersistableBundle toPersistableBundle(@NonNull IkeTunnelConnectionParams params) {
        final PersistableBundle result = new PersistableBundle();

        if (params instanceof IkeTunnelConnectionParams) {
        result.putPersistableBundle(
                PARAMS_TYPE_IKE,
                IkeTunnelConnectionParamsUtils.serializeIkeParams(
                        (IkeTunnelConnectionParams) params));
        return result;
        } else {
            throw new UnsupportedOperationException("Invalid TunnelConnectionParams type");
        }
    }

    /** Constructs an TunnelConnectionParams by deserializing a PersistableBundle. */
    /** Constructs an IkeTunnelConnectionParams by deserializing a PersistableBundle. */
    @NonNull
    public static TunnelConnectionParams fromPersistableBundle(@NonNull PersistableBundle in) {
    public static IkeTunnelConnectionParams fromPersistableBundle(@NonNull PersistableBundle in) {
        Objects.requireNonNull(in, "PersistableBundle was null");

        if (in.keySet().size() != EXPECTED_BUNDLE_KEY_CNT) {
            throw new IllegalArgumentException(
                    "Expect PersistableBundle to have one element but found: " + in.keySet());
                    String.format(
                            "Expect PersistableBundle to have %d element but found: %d",
                            EXPECTED_BUNDLE_KEY_CNT, in.keySet()));
        }

        if (in.get(PARAMS_TYPE_IKE) != null) {
+7 −30
Original line number Diff line number Diff line
@@ -52,7 +52,6 @@ import android.net.NetworkProvider;
import android.net.NetworkScore;
import android.net.RouteInfo;
import android.net.TelephonyNetworkSpecifier;
import android.net.TunnelConnectionParams;
import android.net.Uri;
import android.net.annotations.PolicyDirection;
import android.net.ipsec.ike.ChildSessionCallback;
@@ -1924,14 +1923,8 @@ public class VcnGatewayConnection extends StateMachine {
            @NonNull IpSecTunnelInterface tunnelIface,
            @NonNull VcnChildSessionConfiguration childConfig,
            @Nullable UnderlyingNetworkRecord underlying) {
        final TunnelConnectionParams tunnelParams =
        final IkeTunnelConnectionParams ikeTunnelParams =
                gatewayConnectionConfig.getTunnelConnectionParams();
        if (!(tunnelParams instanceof IkeTunnelConnectionParams)) {
            throw new IllegalStateException(
                    "TunnelConnectionParams is not IkeTunnelConnectionParams");
        }

        final IkeTunnelConnectionParams ikeTunnelParams = (IkeTunnelConnectionParams) tunnelParams;
        final LinkProperties lp = new LinkProperties();

        lp.setInterfaceName(tunnelIface.getInterfaceName());
@@ -2138,32 +2131,16 @@ public class VcnGatewayConnection extends StateMachine {
    }

    private IkeSessionParams buildIkeParams(@NonNull Network network) {
        final TunnelConnectionParams tunnelConnectionParams =
                mConnectionConfig.getTunnelConnectionParams();

        if (tunnelConnectionParams instanceof IkeTunnelConnectionParams) {
        final IkeTunnelConnectionParams ikeTunnelConnectionParams =
                    (IkeTunnelConnectionParams) tunnelConnectionParams;
                mConnectionConfig.getTunnelConnectionParams();
        final IkeSessionParams.Builder builder =
                new IkeSessionParams.Builder(ikeTunnelConnectionParams.getIkeSessionParams());
        builder.setNetwork(network);

        return builder.build();
    }

        throw new IllegalStateException("TunnelConnectionParams is not IkeTunnelConnectionParams");
    }

    private ChildSessionParams buildChildParams() {
        final TunnelConnectionParams tunnelConnectionParams =
                mConnectionConfig.getTunnelConnectionParams();

        if (tunnelConnectionParams instanceof IkeTunnelConnectionParams) {
            return ((IkeTunnelConnectionParams) tunnelConnectionParams)
                    .getTunnelModeChildSessionParams();
        }

        throw new IllegalStateException("TunnelConnectionParams is not IkeTunnelConnectionParams");
        return mConnectionConfig.getTunnelConnectionParams().getTunnelModeChildSessionParams();
    }

    @VisibleForTesting(visibility = Visibility.PRIVATE)
Loading