Read experiment flag(populate the link address lifetime) only once. am: ee744e5f1d

Original change: https://android-review.googlesource.com/c/platform/packages/modules/NetworkStack/+/2976831

Change-Id: I229472f052088ed82e170c287d67c1c9d12721f1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/android/net/ip/IpClient.java b/src/android/net/ip/IpClient.java
index ab01a7c..c1d18ae 100644
--- a/src/android/net/ip/IpClient.java
+++ b/src/android/net/ip/IpClient.java
@@ -952,7 +952,7 @@
                 IPCLIENT_POPULATE_LINK_ADDRESS_LIFETIME_VERSION);
 
         IpClientLinkObserver.Configuration config = new IpClientLinkObserver.Configuration(
-                mMinRdnssLifetimeSec);
+                mMinRdnssLifetimeSec, mPopulateLinkAddressLifetime);
 
         mLinkObserver = new IpClientLinkObserver(
                 mContext, getHandler(),
diff --git a/src/android/net/ip/IpClientLinkObserver.java b/src/android/net/ip/IpClientLinkObserver.java
index f91f569..738a50b 100644
--- a/src/android/net/ip/IpClientLinkObserver.java
+++ b/src/android/net/ip/IpClientLinkObserver.java
@@ -30,7 +30,6 @@
 import static com.android.net.module.util.netlink.NetlinkConstants.RT_SCOPE_UNIVERSE;
 import static com.android.networkstack.util.NetworkStackUtils.IPCLIENT_ACCEPT_IPV6_LINK_LOCAL_DNS_VERSION;
 import static com.android.networkstack.util.NetworkStackUtils.IPCLIENT_PARSE_NETLINK_EVENTS_FORCE_DISABLE;
-import static com.android.networkstack.util.NetworkStackUtils.IPCLIENT_POPULATE_LINK_ADDRESS_LIFETIME_VERSION;
 
 import android.app.AlarmManager;
 import android.content.Context;
@@ -144,9 +143,11 @@
     /** Configuration parameters for IpClientLinkObserver. */
     public static class Configuration {
         public final int minRdnssLifetime;
+        public final boolean populateLinkAddressLifetime;
 
-        public Configuration(int minRdnssLifetime) {
+        public Configuration(int minRdnssLifetime, boolean populateLinkAddressLifetime) {
             this.minRdnssLifetime = minRdnssLifetime;
+            this.populateLinkAddressLifetime = populateLinkAddressLifetime;
         }
     }
 
@@ -163,7 +164,6 @@
     private final String mClatInterfaceName;
     private final IpClientNetlinkMonitor mNetlinkMonitor;
     private final boolean mNetlinkEventParsingEnabled;
-    private final boolean mPopulateLinkAddressLifetime;
 
     private boolean mClatInterfaceExists;
 
@@ -196,8 +196,6 @@
         mDependencies = deps;
         mNetlinkEventParsingEnabled = deps.isFeatureNotChickenedOut(context,
                 IPCLIENT_PARSE_NETLINK_EVENTS_FORCE_DISABLE);
-        mPopulateLinkAddressLifetime = deps.isFeatureEnabled(context,
-                IPCLIENT_POPULATE_LINK_ADDRESS_LIFETIME_VERSION);
         mNetlinkMonitor = new IpClientNetlinkMonitor(h, log, mTag);
         mHandler.post(() -> {
             if (!mNetlinkMonitor.start()) {
@@ -642,7 +640,7 @@
         // the same as before.
         private long getDeprecationOrExpirationTime(@Nullable final StructIfacacheInfo cacheInfo,
                 long now, boolean deprecationTime) {
-            if (!mPopulateLinkAddressLifetime || (cacheInfo == null)) {
+            if (!mConfig.populateLinkAddressLifetime || (cacheInfo == null)) {
                 return LinkAddress.LIFETIME_UNKNOWN;
             }
             final long lifetime = deprecationTime ? cacheInfo.preferred : cacheInfo.valid;