From 78843c1e4f208ddec65bb0218bcc4c43afc335fc Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Fri, 23 Oct 2020 17:12:20 -0700 Subject: [PATCH] Added global retry support The retry timer suggested by the network will persist accross network requests. Also changed the retry timer to a 64-bit value to be consistent with types used in Android time APIs. (clean cherry-pick) Test: FrameworksTelephonytests Fix: 159672248 Merged-In: I763afdf34378512c60c0838830cb84875b1c66f0 Change-Id: I763afdf34378512c60c0838830cb84875b1c66f0 --- radio/1.6/types.hal | 71 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/radio/1.6/types.hal b/radio/1.6/types.hal index 32da2955d1..da03190153 100644 --- a/radio/1.6/types.hal +++ b/radio/1.6/types.hal @@ -18,7 +18,10 @@ package android.hardware.radio@1.6; import @1.0::RadioError; import @1.0::RadioResponseType; -import @1.5::SetupDataCallResult; +import @1.4::DataCallFailCause; +import @1.4::DataConnActiveStatus; +import @1.4::PdpProtocolType; +import @1.5::LinkAddress; import android.hidl.safe_union@1.0::Monostate; @@ -240,8 +243,72 @@ enum HandoverFailureMode : int32_t { NO_FALLBACK_RETRY_SETUP_NORMAL = 3 }; +/** + * Overwritten from @1.5::SetupDataCallResult in order to change the suggestedRetryTime + * to 64-bit value. In the future, this must be extended instead of overwritten. + * Also added defaultQos, qosSessions, and handoverFailureMode in this version. + */ struct SetupDataCallResult { - @1.5::SetupDataCallResult base; + /** Data call fail cause. DataCallFailCause.NONE if no error. */ + DataCallFailCause cause; + + /** + * If cause is not DataCallFailCause.NONE, this field indicates the network suggested data + * retry back-off time in milliseconds. Negative value indicates network does not give any + * suggestion. 0 indicates retry should be performed immediately. 0x7fffffffffffffff indicates + * the device should not retry data setup anymore. + */ + uint64_t suggestedRetryTime; + + /** Context ID, uniquely identifies this data connection. */ + int32_t cid; + + /** Data connection active status. */ + DataConnActiveStatus active; + + /** + * PDP protocol type. If cause is DataCallFailCause.ONLY_SINGLE_BEARER_ALLOWED, this is the + * protocol type supported, such as "IP" or "IPV6". + */ + PdpProtocolType type; + + /** The network interface name. */ + string ifname; + + /** + * List of link address. + */ + vec addresses; + + /** + * List of DNS server addresses, e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1". Empty if no dns + * server addresses returned. + */ + vec dnses; + + /** + * List of default gateway addresses, e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1". + * When empty, the addresses represent point to point connections. + */ + vec gateways; + + /** + * List of P-CSCF(Proxy Call State Control Function) addresses via PCO(Protocol Configuration + * Option), e.g., "2001:db8::1 2001:db8::2 2001:db8::3". Empty if not IMS client. + */ + vec pcscf; + + /** + * MTU received from network for IPv4. + * Value <= 0 means network has either not sent a value or sent an invalid value. + */ + int32_t mtuV4; + + /** + * MTU received from network for IPv6. + * Value <= 0 means network has either not sent a value or sent an invalid value. + */ + int32_t mtuV6; /** Default bearer QoS. Applicable to LTE and NR */ Qos defaultQos;