diff --git a/core/api/current.txt b/core/api/current.txt index e3ec90ed4e55a..c9b5af52db84e 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -41837,6 +41837,9 @@ package android.telephony { field public static final int AUTHENTICATION_METHOD_CERT = 1; // 0x1 field public static final int AUTHENTICATION_METHOD_EAP_ONLY = 0; // 0x0 field public static final int EPDG_ADDRESS_CELLULAR_LOC = 3; // 0x3 + field public static final int EPDG_ADDRESS_IPV4_ONLY = 2; // 0x2 + field public static final int EPDG_ADDRESS_IPV4_PREFERRED = 0; // 0x0 + field public static final int EPDG_ADDRESS_IPV6_PREFERRED = 1; // 0x1 field public static final int EPDG_ADDRESS_PCO = 2; // 0x2 field public static final int EPDG_ADDRESS_PLMN = 1; // 0x1 field public static final int EPDG_ADDRESS_STATIC = 0; // 0x0 @@ -41851,6 +41854,7 @@ package android.telephony { field public static final String KEY_CHILD_SESSION_AES_CTR_KEY_SIZE_INT_ARRAY = "iwlan.child_session_aes_ctr_key_size_int_array"; field public static final String KEY_DIFFIE_HELLMAN_GROUPS_INT_ARRAY = "iwlan.diffie_hellman_groups_int_array"; field public static final String KEY_DPD_TIMER_SEC_INT = "iwlan.dpd_timer_sec_int"; + field public static final String KEY_EPDG_ADDRESS_IP_TYPE_PREFERENCE_INT = "iwlan.epdg_address_ip_type_preference_int"; field public static final String KEY_EPDG_ADDRESS_PRIORITY_INT_ARRAY = "iwlan.epdg_address_priority_int_array"; field public static final String KEY_EPDG_AUTHENTICATION_METHOD_INT = "iwlan.epdg_authentication_method_int"; field public static final String KEY_EPDG_PCO_ID_IPV4_INT = "iwlan.epdg_pco_id_ipv4_int"; diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 12d1bc3dc83a9..d6142f7d1d23e 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -8008,6 +8008,14 @@ public class CarrierConfigManager { public static final String KEY_SUPPORTS_EAP_AKA_FAST_REAUTH_BOOL = KEY_PREFIX + "supports_eap_aka_fast_reauth_bool"; + /** + * Type of IP preference used to prioritize ePDG servers. Possible values are + * {@link #EPDG_ADDRESS_IPV4_PREFERRED}, {@link #EPDG_ADDRESS_IPV6_PREFERRED}, + * {@link #EPDG_ADDRESS_IPV4_ONLY} + */ + public static final String KEY_EPDG_ADDRESS_IP_TYPE_PREFERENCE_INT = + KEY_PREFIX + "epdg_address_ip_type_preference_int"; + /** @hide */ @IntDef({AUTHENTICATION_METHOD_EAP_ONLY, AUTHENTICATION_METHOD_CERT}) public @interface AuthenticationMethodType {} @@ -8072,6 +8080,39 @@ public class CarrierConfigManager { */ public static final int ID_TYPE_KEY_ID = 11; + /** @hide */ + @IntDef({ + EPDG_ADDRESS_IPV4_PREFERRED, + EPDG_ADDRESS_IPV6_PREFERRED, + EPDG_ADDRESS_IPV4_ONLY, + EPDG_ADDRESS_IPV6_ONLY, + EPDG_ADDRESS_SYSTEM_PREFERRED + }) + public @interface EpdgAddressIpPreference {} + + /** Prioritize IPv4 ePDG addresses. */ + public static final int EPDG_ADDRESS_IPV4_PREFERRED = 0; + + /** Prioritize IPv6 ePDG addresses */ + public static final int EPDG_ADDRESS_IPV6_PREFERRED = 1; + + /** Use IPv4 ePDG addresses only. */ + public static final int EPDG_ADDRESS_IPV4_ONLY = 2; + + /** Use IPv6 ePDG addresses only. + * @hide + */ + public static final int EPDG_ADDRESS_IPV6_ONLY = 3; + + /** Follow the priority from DNS resolution results, which are sorted by using RFC6724 + * algorithm. + * + * @see RFC 6724, Default Address + * Selection for Internet Protocol Version 6 (IPv6) + * @hide + */ + public static final int EPDG_ADDRESS_SYSTEM_PREFERRED = 4; + private Iwlan() {} private static PersistableBundle getDefaults() { @@ -8155,7 +8196,7 @@ public class CarrierConfigManager { defaults.putInt(KEY_EPDG_PCO_ID_IPV6_INT, 0); defaults.putInt(KEY_EPDG_PCO_ID_IPV4_INT, 0); defaults.putBoolean(KEY_SUPPORTS_EAP_AKA_FAST_REAUTH_BOOL, false); - + defaults.putInt(KEY_EPDG_ADDRESS_IP_TYPE_PREFERENCE_INT, EPDG_ADDRESS_IPV4_PREFERRED); return defaults; } }