From 74891f273019328cd7b6d383b0de0d1938c93c61 Mon Sep 17 00:00:00 2001 From: Sooraj Sasindran Date: Tue, 19 Nov 2019 10:23:22 -0800 Subject: [PATCH] Add back off timer configs as carrier config Add time to determine as ping pong as a carrier config Add max back off hysteresis time as a carrier config Test: build Bug: 143578171 Change-Id: I599aa88c4a8f29ca62aaa2948cc5c7f292b6a827 --- .../telephony/CarrierConfigManager.java | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 46e6439b91507..907808af4022e 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -2768,18 +2768,44 @@ public class CarrierConfigManager { public static final String KEY_SWITCH_DATA_TO_PRIMARY_IF_PRIMARY_IS_OOS_BOOL = "switch_data_to_primary_if_primary_is_oos_bool"; + /** + * Controls the ping pong determination of opportunistic network. + * If opportunistic network is determined as out of service or below + * #KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_RSRP_INT or + * #KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_RSSNR_INT within + * #KEY_OPPORTUNISTIC_NETWORK_PING_PONG_TIME_LONG of switching to opportunistic network, + * it will be determined as ping pong situation by system app or 1st party app. + * @hide + */ + public static final String KEY_OPPORTUNISTIC_NETWORK_PING_PONG_TIME_LONG = + "opportunistic_network_ping_pong_time_long"; /** * Controls back off time in milli seconds for switching back to * opportunistic subscription. This time will be added to * {@link CarrierConfigManager#KEY_OPPORTUNISTIC_NETWORK_DATA_SWITCH_HYSTERESIS_TIME_LONG} to - * determine hysteresis time if there is frequent switching + * determine hysteresis time if there is ping pong situation * (determined by system app or 1st party app) between primary and opportunistic - * subscription. + * subscription. Ping ping situation is defined in + * #KEY_OPPORTUNISTIC_NETWORK_PING_PONG_TIME_LONG. + * If ping pong situation continuous #KEY_OPPORTUNISTIC_NETWORK_BACKOFF_TIME_LONG + * will be added to previously determined hysteresis time. * @hide */ public static final String KEY_OPPORTUNISTIC_NETWORK_BACKOFF_TIME_LONG = "opportunistic_network_backoff_time_long"; + /** + * Controls the max back off time in milli seconds for switching back to + * opportunistic subscription. + * This time will be the max hysteresis that can be determined irrespective of there is + * continuous ping pong situation or not as described in + * #KEY_OPPORTUNISTIC_NETWORK_PING_PONG_TIME_LONG and + * #KEY_OPPORTUNISTIC_NETWORK_BACKOFF_TIME_LONG. + * @hide + */ + public static final String KEY_OPPORTUNISTIC_NETWORK_MAX_BACKOFF_TIME_LONG = + "opportunistic_network_max_backoff_time_long"; + /** * Indicates zero or more emergency number prefix(es), because some carrier requires * if users dial an emergency number address with a specific prefix, the combination of the @@ -3551,8 +3577,12 @@ public class CarrierConfigManager { sDefaults.putLong(KEY_OPPORTUNISTIC_NETWORK_DATA_SWITCH_EXIT_HYSTERESIS_TIME_LONG, 3000); sDefaults.putBoolean(KEY_PING_TEST_BEFORE_DATA_SWITCH_BOOL, true); sDefaults.putBoolean(KEY_SWITCH_DATA_TO_PRIMARY_IF_PRIMARY_IS_OOS_BOOL, true); + /* Default value is 60 seconds. */ + sDefaults.putLong(KEY_OPPORTUNISTIC_NETWORK_PING_PONG_TIME_LONG, 60000); /* Default value is 10 seconds. */ sDefaults.putLong(KEY_OPPORTUNISTIC_NETWORK_BACKOFF_TIME_LONG, 10000); + /* Default value is 60 seconds. */ + sDefaults.putLong(KEY_OPPORTUNISTIC_NETWORK_MAX_BACKOFF_TIME_LONG, 60000); sDefaults.putAll(Gps.getDefaults()); sDefaults.putAll(Wifi.getDefaults()); sDefaults.putIntArray(KEY_CDMA_ENHANCED_ROAMING_INDICATOR_FOR_HOME_NETWORK_INT_ARRAY,