Added the Carrier Config for DataStallRecoveryManager

- KEY_DATA_STALL_RECOVERY_TIMERS_LONG_ARRAY
- KEY_DATA_STALL_RECOVERY_SHOULD_SKIP_BOOL_ARRAY

Bug: 178670629
Test: Build pass.
      atest com.android.internal.telephony.data --iterations 100
Change-Id: I575850cca4edc8400ae020c4ffdb5088c5b11500
This commit is contained in:
Willy Hu
2021-12-22 02:52:06 +08:00
parent 8d6ac79f1b
commit a7846ec90f

View File

@@ -4180,6 +4180,56 @@ public class CarrierConfigManager {
public static final String KEY_GBA_UA_TLS_CIPHER_SUITE_INT =
"gba_ua_tls_cipher_suite_int";
/**
* The data stall recovery timers array in milliseconds, each element is the delay before
* performining next recovery action.
*
* The default value of timers array are: [180000ms, 180000ms, 180000ms] (3 minutes)
* Array[0]: It's the timer between RECOVERY_ACTION GET_DATA_CALL_LIST and CLEANUP, if data
* stall symptom still occurred, it will perform next recovery action after 180000ms.
* Array[1]: It's the timer between RECOVERY_ACTION CLEANUP and RADIO_RESTART, if data stall
* symptom still occurred, it will perform next recovery action after 180000ms.
* Array[2]: It's the timer between RECOVERY_ACTION RADIO_RESTART and RESET_MODEM, if data stall
* symptom still occurred, it will perform next recovery action after 180000ms.
*
* See the {@code RECOVERY_ACTION_*} constants in
* {@link com.android.internal.telephony.data.DataStallRecoveryManager}
* @hide
*/
public static final String KEY_DATA_STALL_RECOVERY_TIMERS_LONG_ARRAY =
"data_stall_recovery_timers_long_array";
/**
* The data stall recovery action boolean array, we use this array to determine if the
* data stall recovery action needs to be skipped.
*
* For example, if the carrier use the same APN for both of IA and default type,
* the data call will not disconnect in modem side (so the RECOVERY_ACTION_CLEANUP
* did not effect). In this case, we can config the boolean variable of action
* RECOVERY_ACTION_CLEANUP to true, then it can be ignored to speed up the recovery
* action procedure.
*
* The default value of boolean array are: [false, false, false, false]
* Array[0]: When performing the recovery action, we can use this boolean value to determine
* if we need to perform RECOVERY_ACTION_GET_DATA_CALL_LIST.
* Array[1]: If data stall symptom still occurred, we can use this boolean value to determine
* if we need to perform RECOVERY_ACTION_CLEANUP. For example, if the carrier use the same APN
* for both of IA and default type, the data call will not disconnect in modem side
* (so the RECOVERY_ACTION_CLEANUP did not effect). In this case, we can config the boolean
* variable of action RECOVERY_ACTION_CLEANUP to true, then it can be ignored to speed up the
* recovery action procedure.
* Array[2]: If data stall symptom still occurred, we can use this boolean value to determine
* if we need to perform RECOVERY_ACTION_RADIO_RESTART.
* Array[3]: If data stall symptom still occurred, we can use this boolean value to determine
* if we need to perform RECOVERY_ACTION_MODEM_RESET.
*
* See the {@code RECOVERY_ACTION_*} constants in
* {@link com.android.internal.telephony.data.DataStallRecoveryManager}
* @hide
*/
public static final String KEY_DATA_STALL_RECOVERY_SHOULD_SKIP_BOOL_ARRAY =
"data_stall_recovery_should_skip_bool_array";
/**
* Configs used by ImsServiceEntitlement.
*/
@@ -6172,6 +6222,11 @@ public class CarrierConfigManager {
+ "target=GERAN|UTRAN|EUTRAN|NGRAN|IWLAN, type=allowed"});
sDefaults.putInt(KEY_CELLULAR_USAGE_SETTING_INT,
SubscriptionManager.USAGE_SETTING_UNKNOWN);
// Default data stall recovery configurations.
sDefaults.putLongArray(KEY_DATA_STALL_RECOVERY_TIMERS_LONG_ARRAY,
new long[] {180000, 180000, 180000});
sDefaults.putBooleanArray(KEY_DATA_STALL_RECOVERY_SHOULD_SKIP_BOOL_ARRAY,
new boolean[] {false, false, false, false});
}
/**