Merge "Support handover retry" am: 0c47ab0656 am: 5f6c9d224f
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1436232 Change-Id: I406f72bfbb3fc3058f5d03541dedd06b4ff326ea
This commit is contained in:
@@ -11401,6 +11401,7 @@ package android.telephony.data {
|
|||||||
method public int getCause();
|
method public int getCause();
|
||||||
method @NonNull public java.util.List<java.net.InetAddress> getDnsAddresses();
|
method @NonNull public java.util.List<java.net.InetAddress> getDnsAddresses();
|
||||||
method @NonNull public java.util.List<java.net.InetAddress> getGatewayAddresses();
|
method @NonNull public java.util.List<java.net.InetAddress> getGatewayAddresses();
|
||||||
|
method public int getHandoverFailureMode();
|
||||||
method public int getId();
|
method public int getId();
|
||||||
method @NonNull public String getInterfaceName();
|
method @NonNull public String getInterfaceName();
|
||||||
method public int getLinkStatus();
|
method public int getLinkStatus();
|
||||||
@@ -11412,6 +11413,11 @@ package android.telephony.data {
|
|||||||
method public int getSuggestedRetryTime();
|
method public int getSuggestedRetryTime();
|
||||||
method public void writeToParcel(android.os.Parcel, int);
|
method public void writeToParcel(android.os.Parcel, int);
|
||||||
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.data.DataCallResponse> CREATOR;
|
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_ACTIVE = 2; // 0x2
|
||||||
field public static final int LINK_STATUS_DORMANT = 1; // 0x1
|
field public static final int LINK_STATUS_DORMANT = 1; // 0x1
|
||||||
field public static final int LINK_STATUS_INACTIVE = 0; // 0x0
|
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 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 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 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 setId(int);
|
||||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setInterfaceName(@NonNull String);
|
method @NonNull public android.telephony.data.DataCallResponse.Builder setInterfaceName(@NonNull String);
|
||||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setLinkStatus(int);
|
method @NonNull public android.telephony.data.DataCallResponse.Builder setLinkStatus(int);
|
||||||
|
|||||||
@@ -10283,6 +10283,7 @@ package android.telephony.data {
|
|||||||
method public int getCause();
|
method public int getCause();
|
||||||
method @NonNull public java.util.List<java.net.InetAddress> getDnsAddresses();
|
method @NonNull public java.util.List<java.net.InetAddress> getDnsAddresses();
|
||||||
method @NonNull public java.util.List<java.net.InetAddress> getGatewayAddresses();
|
method @NonNull public java.util.List<java.net.InetAddress> getGatewayAddresses();
|
||||||
|
method public int getHandoverFailureMode();
|
||||||
method public int getId();
|
method public int getId();
|
||||||
method @NonNull public String getInterfaceName();
|
method @NonNull public String getInterfaceName();
|
||||||
method public int getLinkStatus();
|
method public int getLinkStatus();
|
||||||
@@ -10294,6 +10295,11 @@ package android.telephony.data {
|
|||||||
method public int getSuggestedRetryTime();
|
method public int getSuggestedRetryTime();
|
||||||
method public void writeToParcel(android.os.Parcel, int);
|
method public void writeToParcel(android.os.Parcel, int);
|
||||||
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.data.DataCallResponse> CREATOR;
|
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_ACTIVE = 2; // 0x2
|
||||||
field public static final int LINK_STATUS_DORMANT = 1; // 0x1
|
field public static final int LINK_STATUS_DORMANT = 1; // 0x1
|
||||||
field public static final int LINK_STATUS_INACTIVE = 0; // 0x0
|
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 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 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 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 setId(int);
|
||||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setInterfaceName(@NonNull String);
|
method @NonNull public android.telephony.data.DataCallResponse.Builder setInterfaceName(@NonNull String);
|
||||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setLinkStatus(int);
|
method @NonNull public android.telephony.data.DataCallResponse.Builder setLinkStatus(int);
|
||||||
|
|||||||
@@ -873,6 +873,7 @@ package android.telephony.data {
|
|||||||
method public int getCause();
|
method public int getCause();
|
||||||
method @NonNull public java.util.List<java.net.InetAddress> getDnsAddresses();
|
method @NonNull public java.util.List<java.net.InetAddress> getDnsAddresses();
|
||||||
method @NonNull public java.util.List<java.net.InetAddress> getGatewayAddresses();
|
method @NonNull public java.util.List<java.net.InetAddress> getGatewayAddresses();
|
||||||
|
method public int getHandoverFailureMode();
|
||||||
method public int getId();
|
method public int getId();
|
||||||
method @NonNull public String getInterfaceName();
|
method @NonNull public String getInterfaceName();
|
||||||
method public int getLinkStatus();
|
method public int getLinkStatus();
|
||||||
@@ -884,6 +885,11 @@ package android.telephony.data {
|
|||||||
method public int getSuggestedRetryTime();
|
method public int getSuggestedRetryTime();
|
||||||
method public void writeToParcel(android.os.Parcel, int);
|
method public void writeToParcel(android.os.Parcel, int);
|
||||||
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.data.DataCallResponse> CREATOR;
|
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_ACTIVE = 2; // 0x2
|
||||||
field public static final int LINK_STATUS_DORMANT = 1; // 0x1
|
field public static final int LINK_STATUS_DORMANT = 1; // 0x1
|
||||||
field public static final int LINK_STATUS_INACTIVE = 0; // 0x0
|
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 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 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 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 setId(int);
|
||||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setInterfaceName(@NonNull String);
|
method @NonNull public android.telephony.data.DataCallResponse.Builder setInterfaceName(@NonNull String);
|
||||||
method @NonNull public android.telephony.data.DataCallResponse.Builder setLinkStatus(int);
|
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. */
|
/** Indicates the data connection is active with physical link up. */
|
||||||
public static final int LINK_STATUS_ACTIVE = 2;
|
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 @DataFailureCause int mCause;
|
||||||
private final int mSuggestedRetryTime;
|
private final int mSuggestedRetryTime;
|
||||||
private final int mId;
|
private final int mId;
|
||||||
@@ -80,6 +121,7 @@ public final class DataCallResponse implements Parcelable {
|
|||||||
private final int mMtu;
|
private final int mMtu;
|
||||||
private final int mMtuV4;
|
private final int mMtuV4;
|
||||||
private final int mMtuV6;
|
private final int mMtuV6;
|
||||||
|
private final @HandoverFailureMode int mHandoverFailureMode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param cause Data call fail cause. {@link DataFailCause#NONE} indicates no error.
|
* @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)
|
mPcscfAddresses = (pcscfAddresses == null)
|
||||||
? new ArrayList<>() : new ArrayList<>(pcscfAddresses);
|
? new ArrayList<>() : new ArrayList<>(pcscfAddresses);
|
||||||
mMtu = mMtuV4 = mMtuV6 = mtu;
|
mMtu = mMtuV4 = mMtuV6 = mtu;
|
||||||
|
mHandoverFailureMode = HANDOVER_FAILURE_MODE_LEGACY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @hide */
|
|
||||||
private DataCallResponse(@DataFailureCause int cause, int suggestedRetryTime, int id,
|
private DataCallResponse(@DataFailureCause int cause, int suggestedRetryTime, int id,
|
||||||
@LinkStatus int linkStatus, @ProtocolType int protocolType,
|
@LinkStatus int linkStatus, @ProtocolType int protocolType,
|
||||||
@Nullable String interfaceName, @Nullable List<LinkAddress> addresses,
|
@Nullable String interfaceName, @Nullable List<LinkAddress> addresses,
|
||||||
@Nullable List<InetAddress> dnsAddresses, @Nullable List<InetAddress> gatewayAddresses,
|
@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;
|
mCause = cause;
|
||||||
mSuggestedRetryTime = suggestedRetryTime;
|
mSuggestedRetryTime = suggestedRetryTime;
|
||||||
mId = id;
|
mId = id;
|
||||||
@@ -151,6 +194,7 @@ public final class DataCallResponse implements Parcelable {
|
|||||||
mMtu = mtu;
|
mMtu = mtu;
|
||||||
mMtuV4 = mtuV4;
|
mMtuV4 = mtuV4;
|
||||||
mMtuV6 = mtuV6;
|
mMtuV6 = mtuV6;
|
||||||
|
mHandoverFailureMode = handoverFailureMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
@@ -173,6 +217,7 @@ public final class DataCallResponse implements Parcelable {
|
|||||||
mMtu = source.readInt();
|
mMtu = source.readInt();
|
||||||
mMtuV4 = source.readInt();
|
mMtuV4 = source.readInt();
|
||||||
mMtuV6 = source.readInt();
|
mMtuV6 = source.readInt();
|
||||||
|
mHandoverFailureMode = source.readInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -262,6 +307,13 @@ public final class DataCallResponse implements Parcelable {
|
|||||||
return mMtuV6;
|
return mMtuV6;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return The data handover failure mode.
|
||||||
|
*/
|
||||||
|
public @HandoverFailureMode int getHandoverFailureMode() {
|
||||||
|
return mHandoverFailureMode;
|
||||||
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
@@ -339,6 +391,7 @@ public final class DataCallResponse implements Parcelable {
|
|||||||
dest.writeInt(mMtu);
|
dest.writeInt(mMtu);
|
||||||
dest.writeInt(mMtuV4);
|
dest.writeInt(mMtuV4);
|
||||||
dest.writeInt(mMtuV6);
|
dest.writeInt(mMtuV6);
|
||||||
|
dest.writeInt(mHandoverFailureMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final @android.annotation.NonNull Parcelable.Creator<DataCallResponse> CREATOR =
|
public static final @android.annotation.NonNull Parcelable.Creator<DataCallResponse> CREATOR =
|
||||||
@@ -395,6 +448,8 @@ public final class DataCallResponse implements Parcelable {
|
|||||||
|
|
||||||
private int mMtuV6;
|
private int mMtuV6;
|
||||||
|
|
||||||
|
private @HandoverFailureMode int mHandoverFailureMode = HANDOVER_FAILURE_MODE_LEGACY;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default constructor for Builder.
|
* Default constructor for Builder.
|
||||||
*/
|
*/
|
||||||
@@ -552,6 +607,17 @@ public final class DataCallResponse implements Parcelable {
|
|||||||
return this;
|
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.
|
* Build the DataCallResponse.
|
||||||
*
|
*
|
||||||
@@ -560,7 +626,7 @@ public final class DataCallResponse implements Parcelable {
|
|||||||
public @NonNull DataCallResponse build() {
|
public @NonNull DataCallResponse build() {
|
||||||
return new DataCallResponse(mCause, mSuggestedRetryTime, mId, mLinkStatus,
|
return new DataCallResponse(mCause, mSuggestedRetryTime, mId, mLinkStatus,
|
||||||
mProtocolType, mInterfaceName, mAddresses, mDnsAddresses, mGatewayAddresses,
|
mProtocolType, mInterfaceName, mAddresses, mDnsAddresses, mGatewayAddresses,
|
||||||
mPcscfAddresses, mMtu, mMtuV4, mMtuV6);
|
mPcscfAddresses, mMtu, mMtuV4, mMtuV6, mHandoverFailureMode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user