Merge "Remove TunnelConnectionParams interface" am: b8f67d1bd7
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1684427 Change-Id: I2e1a6d8c02e5208e99ce6387d18062fecb2e9a6d
This commit is contained in:
@@ -25146,9 +25146,6 @@ package android.net {
|
|||||||
field public static final int UNSUPPORTED = -1; // 0xffffffff
|
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 {
|
public abstract class Uri implements java.lang.Comparable<android.net.Uri> android.os.Parcelable {
|
||||||
method public abstract android.net.Uri.Builder buildUpon();
|
method public abstract android.net.Uri.Builder buildUpon();
|
||||||
method public int compareTo(android.net.Uri);
|
method public int compareTo(android.net.Uri);
|
||||||
@@ -25717,7 +25714,7 @@ package android.net.vcn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static final class VcnGatewayConnectionConfig.Builder {
|
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.Builder addExposedCapability(int);
|
||||||
method @NonNull public android.net.vcn.VcnGatewayConnectionConfig build();
|
method @NonNull public android.net.vcn.VcnGatewayConnectionConfig build();
|
||||||
method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder removeExposedCapability(int);
|
method @NonNull public android.net.vcn.VcnGatewayConnectionConfig.Builder removeExposedCapability(int);
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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 {}
|
|
||||||
@@ -24,7 +24,7 @@ import android.annotation.Nullable;
|
|||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.net.Network;
|
import android.net.Network;
|
||||||
import android.net.NetworkCapabilities;
|
import android.net.NetworkCapabilities;
|
||||||
import android.net.TunnelConnectionParams;
|
import android.net.ipsec.ike.IkeTunnelConnectionParams;
|
||||||
import android.net.vcn.persistablebundleutils.TunnelConnectionParamsUtils;
|
import android.net.vcn.persistablebundleutils.TunnelConnectionParamsUtils;
|
||||||
import android.os.PersistableBundle;
|
import android.os.PersistableBundle;
|
||||||
import android.util.ArraySet;
|
import android.util.ArraySet;
|
||||||
@@ -154,7 +154,7 @@ public final class VcnGatewayConnectionConfig {
|
|||||||
@NonNull private final String mGatewayConnectionName;
|
@NonNull private final String mGatewayConnectionName;
|
||||||
|
|
||||||
private static final String TUNNEL_CONNECTION_PARAMS_KEY = "mTunnelConnectionParams";
|
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";
|
private static final String EXPOSED_CAPABILITIES_KEY = "mExposedCapabilities";
|
||||||
@NonNull private final SortedSet<Integer> mExposedCapabilities;
|
@NonNull private final SortedSet<Integer> mExposedCapabilities;
|
||||||
@@ -171,7 +171,7 @@ public final class VcnGatewayConnectionConfig {
|
|||||||
/** Builds a VcnGatewayConnectionConfig with the specified parameters. */
|
/** Builds a VcnGatewayConnectionConfig with the specified parameters. */
|
||||||
private VcnGatewayConnectionConfig(
|
private VcnGatewayConnectionConfig(
|
||||||
@NonNull String gatewayConnectionName,
|
@NonNull String gatewayConnectionName,
|
||||||
@NonNull TunnelConnectionParams tunnelConnectionParams,
|
@NonNull IkeTunnelConnectionParams tunnelConnectionParams,
|
||||||
@NonNull Set<Integer> exposedCapabilities,
|
@NonNull Set<Integer> exposedCapabilities,
|
||||||
@NonNull Set<Integer> underlyingCapabilities,
|
@NonNull Set<Integer> underlyingCapabilities,
|
||||||
@NonNull long[] retryIntervalsMs,
|
@NonNull long[] retryIntervalsMs,
|
||||||
@@ -271,7 +271,7 @@ public final class VcnGatewayConnectionConfig {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public TunnelConnectionParams getTunnelConnectionParams() {
|
public IkeTunnelConnectionParams getTunnelConnectionParams() {
|
||||||
return mTunnelConnectionParams;
|
return mTunnelConnectionParams;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -414,7 +414,7 @@ public final class VcnGatewayConnectionConfig {
|
|||||||
*/
|
*/
|
||||||
public static final class Builder {
|
public static final class Builder {
|
||||||
@NonNull private final String mGatewayConnectionName;
|
@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> mExposedCapabilities = new ArraySet();
|
||||||
@NonNull private final Set<Integer> mUnderlyingCapabilities = new ArraySet();
|
@NonNull private final Set<Integer> mUnderlyingCapabilities = new ArraySet();
|
||||||
@NonNull private long[] mRetryIntervalsMs = DEFAULT_RETRY_INTERVALS_MS;
|
@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
|
* VcnConfig} must be given a unique name. This name is used by the caller to
|
||||||
* distinguish between VcnGatewayConnectionConfigs configured on a single {@link
|
* distinguish between VcnGatewayConnectionConfigs configured on a single {@link
|
||||||
* VcnConfig}. This will be used as the identifier in VcnStatusCallback invocations.
|
* VcnConfig}. This will be used as the identifier in VcnStatusCallback invocations.
|
||||||
* @param tunnelConnectionParams the tunnel connection configuration
|
* @param tunnelConnectionParams the IKE tunnel connection configuration
|
||||||
* @see TunnelConnectionParams
|
* @see IkeTunnelConnectionParams
|
||||||
* @see VcnManager.VcnStatusCallback#onGatewayConnectionError
|
* @see VcnManager.VcnStatusCallback#onGatewayConnectionError
|
||||||
*/
|
*/
|
||||||
public Builder(
|
public Builder(
|
||||||
@NonNull String gatewayConnectionName,
|
@NonNull String gatewayConnectionName,
|
||||||
@NonNull TunnelConnectionParams tunnelConnectionParams) {
|
@NonNull IkeTunnelConnectionParams tunnelConnectionParams) {
|
||||||
Objects.requireNonNull(gatewayConnectionName, "gatewayConnectionName was null");
|
Objects.requireNonNull(gatewayConnectionName, "gatewayConnectionName was null");
|
||||||
Objects.requireNonNull(tunnelConnectionParams, "tunnelConnectionParams was null");
|
Objects.requireNonNull(tunnelConnectionParams, "tunnelConnectionParams was null");
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
package android.net.vcn.persistablebundleutils;
|
package android.net.vcn.persistablebundleutils;
|
||||||
|
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.net.TunnelConnectionParams;
|
|
||||||
import android.net.ipsec.ike.IkeSessionParams;
|
import android.net.ipsec.ike.IkeSessionParams;
|
||||||
import android.net.ipsec.ike.IkeTunnelConnectionParams;
|
import android.net.ipsec.ike.IkeTunnelConnectionParams;
|
||||||
import android.net.ipsec.ike.TunnelModeChildSessionParams;
|
import android.net.ipsec.ike.TunnelModeChildSessionParams;
|
||||||
@@ -25,7 +24,7 @@ import android.os.PersistableBundle;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utility class to convert TunnelConnectionParams to/from PersistableBundle
|
* Utility class to convert Tunnel Connection Params to/from PersistableBundle
|
||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@@ -34,30 +33,28 @@ public final class TunnelConnectionParamsUtils {
|
|||||||
|
|
||||||
private static final String PARAMS_TYPE_IKE = "IKE";
|
private static final String PARAMS_TYPE_IKE = "IKE";
|
||||||
|
|
||||||
/** Serializes an TunnelConnectionParams to a PersistableBundle. */
|
/** Serializes an IkeTunnelConnectionParams to a PersistableBundle. */
|
||||||
@NonNull
|
@NonNull
|
||||||
public static PersistableBundle toPersistableBundle(@NonNull TunnelConnectionParams params) {
|
public static PersistableBundle toPersistableBundle(@NonNull IkeTunnelConnectionParams params) {
|
||||||
final PersistableBundle result = new PersistableBundle();
|
final PersistableBundle result = new PersistableBundle();
|
||||||
|
|
||||||
if (params instanceof IkeTunnelConnectionParams) {
|
result.putPersistableBundle(
|
||||||
result.putPersistableBundle(
|
PARAMS_TYPE_IKE,
|
||||||
PARAMS_TYPE_IKE,
|
IkeTunnelConnectionParamsUtils.serializeIkeParams(
|
||||||
IkeTunnelConnectionParamsUtils.serializeIkeParams(
|
(IkeTunnelConnectionParams) params));
|
||||||
(IkeTunnelConnectionParams) params));
|
return result;
|
||||||
return result;
|
|
||||||
} else {
|
|
||||||
throw new UnsupportedOperationException("Invalid TunnelConnectionParams type");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Constructs an TunnelConnectionParams by deserializing a PersistableBundle. */
|
/** Constructs an IkeTunnelConnectionParams by deserializing a PersistableBundle. */
|
||||||
@NonNull
|
@NonNull
|
||||||
public static TunnelConnectionParams fromPersistableBundle(@NonNull PersistableBundle in) {
|
public static IkeTunnelConnectionParams fromPersistableBundle(@NonNull PersistableBundle in) {
|
||||||
Objects.requireNonNull(in, "PersistableBundle was null");
|
Objects.requireNonNull(in, "PersistableBundle was null");
|
||||||
|
|
||||||
if (in.keySet().size() != EXPECTED_BUNDLE_KEY_CNT) {
|
if (in.keySet().size() != EXPECTED_BUNDLE_KEY_CNT) {
|
||||||
throw new IllegalArgumentException(
|
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) {
|
if (in.get(PARAMS_TYPE_IKE) != null) {
|
||||||
@@ -66,7 +63,7 @@ public final class TunnelConnectionParamsUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
throw new IllegalArgumentException(
|
throw new IllegalArgumentException(
|
||||||
"Invalid TunnelConnectionParams type " + in.keySet().iterator().next());
|
"Invalid Tunnel Connection Params type " + in.keySet().iterator().next());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final class IkeTunnelConnectionParamsUtils {
|
private static final class IkeTunnelConnectionParamsUtils {
|
||||||
|
|||||||
@@ -52,7 +52,6 @@ import android.net.NetworkProvider;
|
|||||||
import android.net.NetworkScore;
|
import android.net.NetworkScore;
|
||||||
import android.net.RouteInfo;
|
import android.net.RouteInfo;
|
||||||
import android.net.TelephonyNetworkSpecifier;
|
import android.net.TelephonyNetworkSpecifier;
|
||||||
import android.net.TunnelConnectionParams;
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.net.annotations.PolicyDirection;
|
import android.net.annotations.PolicyDirection;
|
||||||
import android.net.ipsec.ike.ChildSessionCallback;
|
import android.net.ipsec.ike.ChildSessionCallback;
|
||||||
@@ -1924,14 +1923,8 @@ public class VcnGatewayConnection extends StateMachine {
|
|||||||
@NonNull IpSecTunnelInterface tunnelIface,
|
@NonNull IpSecTunnelInterface tunnelIface,
|
||||||
@NonNull VcnChildSessionConfiguration childConfig,
|
@NonNull VcnChildSessionConfiguration childConfig,
|
||||||
@Nullable UnderlyingNetworkRecord underlying) {
|
@Nullable UnderlyingNetworkRecord underlying) {
|
||||||
final TunnelConnectionParams tunnelParams =
|
final IkeTunnelConnectionParams ikeTunnelParams =
|
||||||
gatewayConnectionConfig.getTunnelConnectionParams();
|
gatewayConnectionConfig.getTunnelConnectionParams();
|
||||||
if (!(tunnelParams instanceof IkeTunnelConnectionParams)) {
|
|
||||||
throw new IllegalStateException(
|
|
||||||
"TunnelConnectionParams is not IkeTunnelConnectionParams");
|
|
||||||
}
|
|
||||||
|
|
||||||
final IkeTunnelConnectionParams ikeTunnelParams = (IkeTunnelConnectionParams) tunnelParams;
|
|
||||||
final LinkProperties lp = new LinkProperties();
|
final LinkProperties lp = new LinkProperties();
|
||||||
|
|
||||||
lp.setInterfaceName(tunnelIface.getInterfaceName());
|
lp.setInterfaceName(tunnelIface.getInterfaceName());
|
||||||
@@ -2138,32 +2131,16 @@ public class VcnGatewayConnection extends StateMachine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private IkeSessionParams buildIkeParams(@NonNull Network network) {
|
private IkeSessionParams buildIkeParams(@NonNull Network network) {
|
||||||
final TunnelConnectionParams tunnelConnectionParams =
|
final IkeTunnelConnectionParams ikeTunnelConnectionParams =
|
||||||
mConnectionConfig.getTunnelConnectionParams();
|
mConnectionConfig.getTunnelConnectionParams();
|
||||||
|
final IkeSessionParams.Builder builder =
|
||||||
if (tunnelConnectionParams instanceof IkeTunnelConnectionParams) {
|
new IkeSessionParams.Builder(ikeTunnelConnectionParams.getIkeSessionParams());
|
||||||
final IkeTunnelConnectionParams ikeTunnelConnectionParams =
|
builder.setNetwork(network);
|
||||||
(IkeTunnelConnectionParams) tunnelConnectionParams;
|
return builder.build();
|
||||||
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() {
|
private ChildSessionParams buildChildParams() {
|
||||||
final TunnelConnectionParams tunnelConnectionParams =
|
return mConnectionConfig.getTunnelConnectionParams().getTunnelModeChildSessionParams();
|
||||||
mConnectionConfig.getTunnelConnectionParams();
|
|
||||||
|
|
||||||
if (tunnelConnectionParams instanceof IkeTunnelConnectionParams) {
|
|
||||||
return ((IkeTunnelConnectionParams) tunnelConnectionParams)
|
|
||||||
.getTunnelModeChildSessionParams();
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new IllegalStateException("TunnelConnectionParams is not IkeTunnelConnectionParams");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting(visibility = Visibility.PRIVATE)
|
@VisibleForTesting(visibility = Visibility.PRIVATE)
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import static org.junit.Assert.assertTrue;
|
|||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
|
|
||||||
import android.net.NetworkCapabilities;
|
import android.net.NetworkCapabilities;
|
||||||
import android.net.TunnelConnectionParams;
|
import android.net.ipsec.ike.IkeTunnelConnectionParams;
|
||||||
import android.net.vcn.persistablebundleutils.TunnelConnectionParamsUtilsTest;
|
import android.net.vcn.persistablebundleutils.TunnelConnectionParamsUtilsTest;
|
||||||
|
|
||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
@@ -60,7 +60,7 @@ public class VcnGatewayConnectionConfigTest {
|
|||||||
};
|
};
|
||||||
public static final int MAX_MTU = 1360;
|
public static final int MAX_MTU = 1360;
|
||||||
|
|
||||||
public static final TunnelConnectionParams TUNNEL_CONNECTION_PARAMS =
|
public static final IkeTunnelConnectionParams TUNNEL_CONNECTION_PARAMS =
|
||||||
TunnelConnectionParamsUtilsTest.buildTestParams();
|
TunnelConnectionParamsUtilsTest.buildTestParams();
|
||||||
|
|
||||||
public static final String GATEWAY_CONNECTION_NAME_PREFIX = "gatewayConnectionName-";
|
public static final String GATEWAY_CONNECTION_NAME_PREFIX = "gatewayConnectionName-";
|
||||||
|
|||||||
@@ -51,7 +51,6 @@ import android.net.LinkProperties;
|
|||||||
import android.net.NetworkAgent;
|
import android.net.NetworkAgent;
|
||||||
import android.net.NetworkCapabilities;
|
import android.net.NetworkCapabilities;
|
||||||
import android.net.ipsec.ike.ChildSaProposal;
|
import android.net.ipsec.ike.ChildSaProposal;
|
||||||
import android.net.ipsec.ike.IkeTunnelConnectionParams;
|
|
||||||
import android.net.ipsec.ike.exceptions.IkeException;
|
import android.net.ipsec.ike.exceptions.IkeException;
|
||||||
import android.net.ipsec.ike.exceptions.IkeInternalException;
|
import android.net.ipsec.ike.exceptions.IkeInternalException;
|
||||||
import android.net.ipsec.ike.exceptions.IkeProtocolException;
|
import android.net.ipsec.ike.exceptions.IkeProtocolException;
|
||||||
@@ -181,7 +180,7 @@ public class VcnGatewayConnectionConnectedStateTest extends VcnGatewayConnection
|
|||||||
assertEquals(mGatewayConnection.mConnectedState, mGatewayConnection.getCurrentState());
|
assertEquals(mGatewayConnection.mConnectedState, mGatewayConnection.getCurrentState());
|
||||||
|
|
||||||
final List<ChildSaProposal> saProposals =
|
final List<ChildSaProposal> saProposals =
|
||||||
((IkeTunnelConnectionParams) mConfig.getTunnelConnectionParams())
|
mConfig.getTunnelConnectionParams()
|
||||||
.getTunnelModeChildSessionParams()
|
.getTunnelModeChildSessionParams()
|
||||||
.getSaProposals();
|
.getSaProposals();
|
||||||
final int expectedMtu =
|
final int expectedMtu =
|
||||||
|
|||||||
Reference in New Issue
Block a user