Merge "Cache UdpEncapsulationSocket for MOBIKE Child rekeys."
diff --git a/apex/apex_manifest.json b/apex/apex_manifest.json
index efa3993..db47ed5 100644
--- a/apex/apex_manifest.json
+++ b/apex/apex_manifest.json
@@ -1,4 +1,4 @@
 {
     "name": "com.android.ipsec",
-    "version": 300900700
+    "version": 309999900
 }
diff --git a/api/current.txt b/api/current.txt
index 81a5d61..6a1d8a1 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -19,7 +19,9 @@
     method @NonNull public android.net.eap.EapSessionConfig.Builder setEapSimConfig(int, int);
   }
 
-  public static class EapSessionConfig.EapAkaConfig extends android.net.eap.EapSessionConfig.EapUiccConfig {
+  public static class EapSessionConfig.EapAkaConfig extends android.net.eap.EapSessionConfig.EapMethodConfig {
+    method public int getAppType();
+    method public int getSubId();
   }
 
   public static class EapSessionConfig.EapAkaPrimeConfig extends android.net.eap.EapSessionConfig.EapAkaConfig {
@@ -36,10 +38,7 @@
     method @NonNull public String getUsername();
   }
 
-  public static class EapSessionConfig.EapSimConfig extends android.net.eap.EapSessionConfig.EapUiccConfig {
-  }
-
-  public abstract static class EapSessionConfig.EapUiccConfig extends android.net.eap.EapSessionConfig.EapMethodConfig {
+  public static class EapSessionConfig.EapSimConfig extends android.net.eap.EapSessionConfig.EapMethodConfig {
     method public int getAppType();
     method public int getSubId();
   }
diff --git a/api/system-current.txt b/api/system-current.txt
index 342858d..684c496 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -5,6 +5,11 @@
     method @Deprecated @Nullable public android.net.eap.EapSessionConfig.EapMsChapV2Config getEapMsChapV2onfig();
   }
 
+  @Deprecated public abstract static class EapSessionConfig.EapUiccConfig extends android.net.eap.EapSessionConfig.EapMethodConfig {
+    method @Deprecated public int getAppType();
+    method @Deprecated public int getSubId();
+  }
+
 }
 
 package android.net.ipsec.ike {
diff --git a/src/java/android/net/eap/EapSessionConfig.java b/src/java/android/net/eap/EapSessionConfig.java
index 538f2cc..cfa2fcc 100644
--- a/src/java/android/net/eap/EapSessionConfig.java
+++ b/src/java/android/net/eap/EapSessionConfig.java
@@ -450,7 +450,13 @@
     /**
      * EapUiccConfig represents the configs needed for EAP methods that rely on UICC cards for
      * authentication.
+     *
+     * @hide
+     * @deprecated This class is not useful. Callers should only use its two subclasses {@link
+     *     EapSimConfig} and {@link EapAkaConfig}
      */
+    @Deprecated
+    @SystemApi
     public abstract static class EapUiccConfig extends EapMethodConfig {
         /** @hide */
         protected static final String SUB_ID_KEY = "subId";
diff --git a/src/java/android/net/ipsec/ike/IkeSessionParams.java b/src/java/android/net/ipsec/ike/IkeSessionParams.java
index 724aad5..7dea30c 100644
--- a/src/java/android/net/ipsec/ike/IkeSessionParams.java
+++ b/src/java/android/net/ipsec/ike/IkeSessionParams.java
@@ -394,7 +394,10 @@
      * Network.
      *
      * @hide
-     * @deprecated Callers should use {@link #getConfiguredNetwork}
+     * @deprecated Callers should use {@link #getConfiguredNetwork}. This method is deprecated
+     *     because its name makes it sound like it will return the actual network the session is
+     *     running on, when it will only return the network that was configured or resolved in the
+     *     builder.
      */
     @Deprecated
     @SystemApi
@@ -1139,15 +1142,13 @@
         }
 
         /**
-         * Sets the {@link Network} for the {@link IkeSessionParams} being built.
-         *
-         * <p>If no {@link Network} is provided, the default Network (as per {@link
-         * ConnectivityManager#getActiveNetwork()}) will be used.
+         * Behaves identically to setConfiguredNetwork.
          *
          * @param network the {@link Network} that IKE Session will use.
          * @return Builder this, to facilitate chaining.
          * @hide
-         * @deprecated Callers should use {@link #setConfiguredNetwork}
+         * @deprecated Callers should use {@link #setConfiguredNetwork}. This method is deprecated
+         *     because its name fail to match the corresponding getter name {@link #getNetwork()}
          */
         @Deprecated
         @SystemApi