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
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
@@ -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.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");
|
||||
|
||||
|
||||
@@ -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;
|
||||
@@ -25,7 +24,7 @@ import android.os.PersistableBundle;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* Utility class to convert TunnelConnectionParams to/from PersistableBundle
|
||||
* Utility class to convert Tunnel Connection Params to/from PersistableBundle
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@@ -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");
|
||||
}
|
||||
result.putPersistableBundle(
|
||||
PARAMS_TYPE_IKE,
|
||||
IkeTunnelConnectionParamsUtils.serializeIkeParams(
|
||||
(IkeTunnelConnectionParams) params));
|
||||
return result;
|
||||
}
|
||||
|
||||
/** 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) {
|
||||
@@ -66,7 +63,7 @@ public final class TunnelConnectionParamsUtils {
|
||||
}
|
||||
|
||||
throw new IllegalArgumentException(
|
||||
"Invalid TunnelConnectionParams type " + in.keySet().iterator().next());
|
||||
"Invalid Tunnel Connection Params type " + in.keySet().iterator().next());
|
||||
}
|
||||
|
||||
private static final class IkeTunnelConnectionParamsUtils {
|
||||
|
||||
@@ -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 =
|
||||
final IkeTunnelConnectionParams ikeTunnelConnectionParams =
|
||||
mConnectionConfig.getTunnelConnectionParams();
|
||||
|
||||
if (tunnelConnectionParams instanceof IkeTunnelConnectionParams) {
|
||||
final IkeTunnelConnectionParams ikeTunnelConnectionParams =
|
||||
(IkeTunnelConnectionParams) tunnelConnectionParams;
|
||||
final IkeSessionParams.Builder builder =
|
||||
new IkeSessionParams.Builder(ikeTunnelConnectionParams.getIkeSessionParams());
|
||||
builder.setNetwork(network);
|
||||
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
throw new IllegalStateException("TunnelConnectionParams is not IkeTunnelConnectionParams");
|
||||
final IkeSessionParams.Builder builder =
|
||||
new IkeSessionParams.Builder(ikeTunnelConnectionParams.getIkeSessionParams());
|
||||
builder.setNetwork(network);
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
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)
|
||||
|
||||
@@ -22,7 +22,7 @@ import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
import android.net.NetworkCapabilities;
|
||||
import android.net.TunnelConnectionParams;
|
||||
import android.net.ipsec.ike.IkeTunnelConnectionParams;
|
||||
import android.net.vcn.persistablebundleutils.TunnelConnectionParamsUtilsTest;
|
||||
|
||||
import androidx.test.filters.SmallTest;
|
||||
@@ -60,7 +60,7 @@ public class VcnGatewayConnectionConfigTest {
|
||||
};
|
||||
public static final int MAX_MTU = 1360;
|
||||
|
||||
public static final TunnelConnectionParams TUNNEL_CONNECTION_PARAMS =
|
||||
public static final IkeTunnelConnectionParams TUNNEL_CONNECTION_PARAMS =
|
||||
TunnelConnectionParamsUtilsTest.buildTestParams();
|
||||
|
||||
public static final String GATEWAY_CONNECTION_NAME_PREFIX = "gatewayConnectionName-";
|
||||
|
||||
@@ -51,7 +51,6 @@ import android.net.LinkProperties;
|
||||
import android.net.NetworkAgent;
|
||||
import android.net.NetworkCapabilities;
|
||||
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.IkeInternalException;
|
||||
import android.net.ipsec.ike.exceptions.IkeProtocolException;
|
||||
@@ -181,7 +180,7 @@ public class VcnGatewayConnectionConnectedStateTest extends VcnGatewayConnection
|
||||
assertEquals(mGatewayConnection.mConnectedState, mGatewayConnection.getCurrentState());
|
||||
|
||||
final List<ChildSaProposal> saProposals =
|
||||
((IkeTunnelConnectionParams) mConfig.getTunnelConnectionParams())
|
||||
mConfig.getTunnelConnectionParams()
|
||||
.getTunnelModeChildSessionParams()
|
||||
.getSaProposals();
|
||||
final int expectedMtu =
|
||||
|
||||
Reference in New Issue
Block a user