Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 78843c1e authored by Jack Yu's avatar Jack Yu Committed by Daniel Bright
Browse files

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
parent d3e3b877
Loading
Loading
Loading
Loading
+69 −2
Original line number Diff line number Diff line
@@ -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<LinkAddress> 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<string> 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<string> 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<string> 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;