diff options
author | Daniel Bright <dbright@google.com> | 2020-09-02 17:10:54 -0700 |
---|---|---|
committer | Daniel Bright <dbright@google.com> | 2020-10-22 19:49:53 +0000 |
commit | bd26ad22bafbaeb8d1a7222cbd3e55ec10e83d2a (patch) | |
tree | 2b6f73a80de59bac4c7ec1b30e4b642c6962c4c5 | |
parent | e0ae42884dd5322d5183fa868a8be444d4d61098 (diff) |
Add Handover Failure Mode to Radio Hal
On a handover request failure, the modem can now determine
whether or not to fallback. There is also the option to revert
to the legacy logic. Following the legacy logic is the default
behavior.
Test: FrameworkTelephonyTests
Bug: 161572465
Change-Id: I194aca34131301a3507ad3ba99be278cbf6fa87b
Merged-In: I194aca34131301a3507ad3ba99be278cbf6fa87b
-rw-r--r-- | Android.bp | 1 | ||||
-rwxr-xr-x | api/system-current.txt | 10 | ||||
-rw-r--r-- | non-updatable-api/system-current.txt | 10 | ||||
-rw-r--r-- | telephony/api/system-current.txt | 10 | ||||
-rw-r--r-- | telephony/java/android/telephony/data/DataCallResponse.java | 20 |
5 files changed, 27 insertions, 24 deletions
diff --git a/Android.bp b/Android.bp index 8e17f5524a38..c4b3e322794b 100644 --- a/Android.bp +++ b/Android.bp @@ -465,6 +465,7 @@ java_library { "android.hardware.radio-V1.3-java", "android.hardware.radio-V1.4-java", "android.hardware.radio-V1.5-java", + "android.hardware.radio-V1.6-java", "android.hardware.thermal-V1.0-java-constants", "android.hardware.thermal-V1.0-java", "android.hardware.thermal-V1.1-java", diff --git a/api/system-current.txt b/api/system-current.txt index 8db99aa097a7..06ca0cc8f6ff 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -11412,11 +11412,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 HANDOVER_FAILURE_MODE_DO_FALLBACK = 1; // 0x1 + field public static final int HANDOVER_FAILURE_MODE_LEGACY = 0; // 0x0 + field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 2; // 0x2 + field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 3; // 0x3 + field public static final int HANDOVER_FAILURE_MODE_UNKNOWN = -1; // 0xffffffff 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 diff --git a/non-updatable-api/system-current.txt b/non-updatable-api/system-current.txt index 6a217b2ce847..b9bc735a4e84 100644 --- a/non-updatable-api/system-current.txt +++ b/non-updatable-api/system-current.txt @@ -10294,11 +10294,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 HANDOVER_FAILURE_MODE_DO_FALLBACK = 1; // 0x1 + field public static final int HANDOVER_FAILURE_MODE_LEGACY = 0; // 0x0 + field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 2; // 0x2 + field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 3; // 0x3 + field public static final int HANDOVER_FAILURE_MODE_UNKNOWN = -1; // 0xffffffff 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 diff --git a/telephony/api/system-current.txt b/telephony/api/system-current.txt index 5ad377273b90..c85e4c785153 100644 --- a/telephony/api/system-current.txt +++ b/telephony/api/system-current.txt @@ -885,11 +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 HANDOVER_FAILURE_MODE_DO_FALLBACK = 1; // 0x1 + field public static final int HANDOVER_FAILURE_MODE_LEGACY = 0; // 0x0 + field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 2; // 0x2 + field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 3; // 0x3 + field public static final int HANDOVER_FAILURE_MODE_UNKNOWN = -1; // 0xffffffff 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 diff --git a/telephony/java/android/telephony/data/DataCallResponse.java b/telephony/java/android/telephony/data/DataCallResponse.java index 5ead8decdb63..39859b1e4fdb 100644 --- a/telephony/java/android/telephony/data/DataCallResponse.java +++ b/telephony/java/android/telephony/data/DataCallResponse.java @@ -80,33 +80,33 @@ public final class DataCallResponse implements Parcelable { /** * Data handover failure mode is unknown. */ - public static final int HANDOVER_FAILURE_MODE_UNKNOWN = 0; + public static final int HANDOVER_FAILURE_MODE_UNKNOWN = -1; /** * 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; + public static final int HANDOVER_FAILURE_MODE_LEGACY = 0; /** * Perform fallback to the source data transport on data handover failure. */ - public static final int HANDOVER_FAILURE_MODE_DO_FALLBACK = 2; + public static final int HANDOVER_FAILURE_MODE_DO_FALLBACK = 1; /** * Do not perform fallback to the source data transport on data handover failure. - * Frameworks should keep retrying handover by sending + * Framework will retry setting up a new data connection 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; + public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 2; /** * Do not perform fallback to the source transport on data handover failure. - * Frameworks should retry setup a new data connection by sending + * Framework will retry setting up 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; + public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 3; private final @DataFailureCause int mCause; private final int mSuggestedRetryTime; @@ -332,6 +332,7 @@ public final class DataCallResponse implements Parcelable { .append(" mtu=").append(getMtu()) .append(" mtuV4=").append(getMtuV4()) .append(" mtuV6=").append(getMtuV6()) + .append(" handoverFailureMode=").append(getHandoverFailureMode()) .append("}"); return sb.toString(); } @@ -361,14 +362,15 @@ public final class DataCallResponse implements Parcelable { && mPcscfAddresses.containsAll(other.mPcscfAddresses) && mMtu == other.mMtu && mMtuV4 == other.mMtuV4 - && mMtuV6 == other.mMtuV6; + && mMtuV6 == other.mMtuV6 + && mHandoverFailureMode == other.mHandoverFailureMode; } @Override public int hashCode() { return Objects.hash(mCause, mSuggestedRetryTime, mId, mLinkStatus, mProtocolType, mInterfaceName, mAddresses, mDnsAddresses, mGatewayAddresses, mPcscfAddresses, - mMtu, mMtuV4, mMtuV6); + mMtu, mMtuV4, mMtuV6, mHandoverFailureMode); } @Override |