Merge "Support handover retry" am: 0c47ab0656
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1436232 Change-Id: I5a8dac348fa95f4ed4fc4a0afe7848a4f071fae1
This commit is contained in:
@@ -11401,6 +11401,7 @@ package android.telephony.data {
|
||||
method public int getCause();
|
||||
method @NonNull public java.util.List<java.net.InetAddress> getDnsAddresses();
|
||||
method @NonNull public java.util.List<java.net.InetAddress> getGatewayAddresses();
|
||||
method public int getHandoverFailureMode();
|
||||
method public int getId();
|
||||
method @NonNull public String getInterfaceName();
|
||||
method public int getLinkStatus();
|
||||
@@ -11412,6 +11413,11 @@ package android.telephony.data {
|
||||
method public int getSuggestedRetryTime();
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.data.DataCallResponse> CREATOR;
|
||||
field public static final int HANDOVER_FAILURE_MODE_DO_FALLBACK = 2; // 0x2
|
||||
field public static final int HANDOVER_FAILURE_MODE_LEGACY = 1; // 0x1
|
||||
field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 3; // 0x3
|
||||
field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 4; // 0x4
|
||||
field public static final int HANDOVER_FAILURE_MODE_UNKNOWN = 0; // 0x0
|
||||
field public static final int LINK_STATUS_ACTIVE = 2; // 0x2
|
||||
field public static final int LINK_STATUS_DORMANT = 1; // 0x1
|
||||
field public static final int LINK_STATUS_INACTIVE = 0; // 0x0
|
||||
@@ -11425,6 +11431,7 @@ package android.telephony.data {
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setCause(int);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setDnsAddresses(@NonNull java.util.List<java.net.InetAddress>);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setGatewayAddresses(@NonNull java.util.List<java.net.InetAddress>);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setHandoverFailureMode(int);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setId(int);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setInterfaceName(@NonNull String);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setLinkStatus(int);
|
||||
|
||||
@@ -10283,6 +10283,7 @@ package android.telephony.data {
|
||||
method public int getCause();
|
||||
method @NonNull public java.util.List<java.net.InetAddress> getDnsAddresses();
|
||||
method @NonNull public java.util.List<java.net.InetAddress> getGatewayAddresses();
|
||||
method public int getHandoverFailureMode();
|
||||
method public int getId();
|
||||
method @NonNull public String getInterfaceName();
|
||||
method public int getLinkStatus();
|
||||
@@ -10294,6 +10295,11 @@ package android.telephony.data {
|
||||
method public int getSuggestedRetryTime();
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.data.DataCallResponse> CREATOR;
|
||||
field public static final int HANDOVER_FAILURE_MODE_DO_FALLBACK = 2; // 0x2
|
||||
field public static final int HANDOVER_FAILURE_MODE_LEGACY = 1; // 0x1
|
||||
field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 3; // 0x3
|
||||
field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 4; // 0x4
|
||||
field public static final int HANDOVER_FAILURE_MODE_UNKNOWN = 0; // 0x0
|
||||
field public static final int LINK_STATUS_ACTIVE = 2; // 0x2
|
||||
field public static final int LINK_STATUS_DORMANT = 1; // 0x1
|
||||
field public static final int LINK_STATUS_INACTIVE = 0; // 0x0
|
||||
@@ -10307,6 +10313,7 @@ package android.telephony.data {
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setCause(int);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setDnsAddresses(@NonNull java.util.List<java.net.InetAddress>);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setGatewayAddresses(@NonNull java.util.List<java.net.InetAddress>);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setHandoverFailureMode(int);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setId(int);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setInterfaceName(@NonNull String);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setLinkStatus(int);
|
||||
|
||||
@@ -873,6 +873,7 @@ package android.telephony.data {
|
||||
method public int getCause();
|
||||
method @NonNull public java.util.List<java.net.InetAddress> getDnsAddresses();
|
||||
method @NonNull public java.util.List<java.net.InetAddress> getGatewayAddresses();
|
||||
method public int getHandoverFailureMode();
|
||||
method public int getId();
|
||||
method @NonNull public String getInterfaceName();
|
||||
method public int getLinkStatus();
|
||||
@@ -884,6 +885,11 @@ package android.telephony.data {
|
||||
method public int getSuggestedRetryTime();
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.data.DataCallResponse> CREATOR;
|
||||
field public static final int HANDOVER_FAILURE_MODE_DO_FALLBACK = 2; // 0x2
|
||||
field public static final int HANDOVER_FAILURE_MODE_LEGACY = 1; // 0x1
|
||||
field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 3; // 0x3
|
||||
field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 4; // 0x4
|
||||
field public static final int HANDOVER_FAILURE_MODE_UNKNOWN = 0; // 0x0
|
||||
field public static final int LINK_STATUS_ACTIVE = 2; // 0x2
|
||||
field public static final int LINK_STATUS_DORMANT = 1; // 0x1
|
||||
field public static final int LINK_STATUS_INACTIVE = 0; // 0x0
|
||||
@@ -897,6 +903,7 @@ package android.telephony.data {
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setCause(int);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setDnsAddresses(@NonNull java.util.List<java.net.InetAddress>);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setGatewayAddresses(@NonNull java.util.List<java.net.InetAddress>);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setHandoverFailureMode(int);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setId(int);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setInterfaceName(@NonNull String);
|
||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setLinkStatus(int);
|
||||
|
||||
@@ -67,6 +67,47 @@ public final class DataCallResponse implements Parcelable {
|
||||
/** Indicates the data connection is active with physical link up. */
|
||||
public static final int LINK_STATUS_ACTIVE = 2;
|
||||
|
||||
/** {@hide} */
|
||||
@IntDef(prefix = "HANDOVER_FAILURE_MODE_", value = {
|
||||
HANDOVER_FAILURE_MODE_LEGACY,
|
||||
HANDOVER_FAILURE_MODE_DO_FALLBACK,
|
||||
HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER,
|
||||
HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface HandoverFailureMode {}
|
||||
|
||||
/**
|
||||
* Data handover failure mode is unknown.
|
||||
*/
|
||||
public static final int HANDOVER_FAILURE_MODE_UNKNOWN = 0;
|
||||
|
||||
/**
|
||||
* Perform fallback to the source data transport on data handover failure using
|
||||
* the legacy logic, which is fallback if the fail cause is
|
||||
* {@link DataFailCause#HANDOFF_PREFERENCE_CHANGED}.
|
||||
*/
|
||||
public static final int HANDOVER_FAILURE_MODE_LEGACY = 1;
|
||||
|
||||
/**
|
||||
* Perform fallback to the source data transport on data handover failure.
|
||||
*/
|
||||
public static final int HANDOVER_FAILURE_MODE_DO_FALLBACK = 2;
|
||||
|
||||
/**
|
||||
* Do not perform fallback to the source data transport on data handover failure.
|
||||
* Frameworks should keep retrying handover by sending
|
||||
* {@link DataService#REQUEST_REASON_HANDOVER} request to the underlying {@link DataService}.
|
||||
*/
|
||||
public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 3;
|
||||
|
||||
/**
|
||||
* Do not perform fallback to the source transport on data handover failure.
|
||||
* Frameworks should retry setup a new data connection by sending
|
||||
* {@link DataService#REQUEST_REASON_NORMAL} request to the underlying {@link DataService}.
|
||||
*/
|
||||
public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 4;
|
||||
|
||||
private final @DataFailureCause int mCause;
|
||||
private final int mSuggestedRetryTime;
|
||||
private final int mId;
|
||||
@@ -80,6 +121,7 @@ public final class DataCallResponse implements Parcelable {
|
||||
private final int mMtu;
|
||||
private final int mMtuV4;
|
||||
private final int mMtuV6;
|
||||
private final @HandoverFailureMode int mHandoverFailureMode;
|
||||
|
||||
/**
|
||||
* @param cause Data call fail cause. {@link DataFailCause#NONE} indicates no error.
|
||||
@@ -126,14 +168,15 @@ public final class DataCallResponse implements Parcelable {
|
||||
mPcscfAddresses = (pcscfAddresses == null)
|
||||
? new ArrayList<>() : new ArrayList<>(pcscfAddresses);
|
||||
mMtu = mMtuV4 = mMtuV6 = mtu;
|
||||
mHandoverFailureMode = HANDOVER_FAILURE_MODE_LEGACY;
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
private DataCallResponse(@DataFailureCause int cause, int suggestedRetryTime, int id,
|
||||
@LinkStatus int linkStatus, @ProtocolType int protocolType,
|
||||
@Nullable String interfaceName, @Nullable List<LinkAddress> addresses,
|
||||
@Nullable List<InetAddress> dnsAddresses, @Nullable List<InetAddress> gatewayAddresses,
|
||||
@Nullable List<InetAddress> pcscfAddresses, int mtu, int mtuV4, int mtuV6) {
|
||||
@Nullable List<InetAddress> pcscfAddresses, int mtu, int mtuV4, int mtuV6,
|
||||
@HandoverFailureMode int handoverFailureMode) {
|
||||
mCause = cause;
|
||||
mSuggestedRetryTime = suggestedRetryTime;
|
||||
mId = id;
|
||||
@@ -151,6 +194,7 @@ public final class DataCallResponse implements Parcelable {
|
||||
mMtu = mtu;
|
||||
mMtuV4 = mtuV4;
|
||||
mMtuV6 = mtuV6;
|
||||
mHandoverFailureMode = handoverFailureMode;
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
@@ -173,6 +217,7 @@ public final class DataCallResponse implements Parcelable {
|
||||
mMtu = source.readInt();
|
||||
mMtuV4 = source.readInt();
|
||||
mMtuV6 = source.readInt();
|
||||
mHandoverFailureMode = source.readInt();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -262,6 +307,13 @@ public final class DataCallResponse implements Parcelable {
|
||||
return mMtuV6;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The data handover failure mode.
|
||||
*/
|
||||
public @HandoverFailureMode int getHandoverFailureMode() {
|
||||
return mHandoverFailureMode;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public String toString() {
|
||||
@@ -339,6 +391,7 @@ public final class DataCallResponse implements Parcelable {
|
||||
dest.writeInt(mMtu);
|
||||
dest.writeInt(mMtuV4);
|
||||
dest.writeInt(mMtuV6);
|
||||
dest.writeInt(mHandoverFailureMode);
|
||||
}
|
||||
|
||||
public static final @android.annotation.NonNull Parcelable.Creator<DataCallResponse> CREATOR =
|
||||
@@ -395,6 +448,8 @@ public final class DataCallResponse implements Parcelable {
|
||||
|
||||
private int mMtuV6;
|
||||
|
||||
private @HandoverFailureMode int mHandoverFailureMode = HANDOVER_FAILURE_MODE_LEGACY;
|
||||
|
||||
/**
|
||||
* Default constructor for Builder.
|
||||
*/
|
||||
@@ -552,6 +607,17 @@ public final class DataCallResponse implements Parcelable {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set data handover failure mode for the data call response.
|
||||
*
|
||||
* @param failureMode Handover failure mode.
|
||||
* @return The same instance of the builder.
|
||||
*/
|
||||
public @NonNull Builder setHandoverFailureMode(@HandoverFailureMode int failureMode) {
|
||||
mHandoverFailureMode = failureMode;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the DataCallResponse.
|
||||
*
|
||||
@@ -560,7 +626,7 @@ public final class DataCallResponse implements Parcelable {
|
||||
public @NonNull DataCallResponse build() {
|
||||
return new DataCallResponse(mCause, mSuggestedRetryTime, mId, mLinkStatus,
|
||||
mProtocolType, mInterfaceName, mAddresses, mDnsAddresses, mGatewayAddresses,
|
||||
mPcscfAddresses, mMtu, mMtuV4, mMtuV6);
|
||||
mPcscfAddresses, mMtu, mMtuV4, mMtuV6, mHandoverFailureMode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user