diff options
| author | 2019-01-20 12:38:10 +0900 | |
|---|---|---|
| committer | 2019-01-22 16:57:16 +0900 | |
| commit | 94a055737efbec96029c3ce912ec0a476674aca4 (patch) | |
| tree | a77ef2c01ace456fd210c6fea2bd2acd628161b7 | |
| parent | 8586a43f31d745f2327a481247b09b06717aaaac (diff) | |
Add LinkProps and NetworkCaps methods to SystemApi
Added methods are used by the NetworkStack.
Test: atest FrameworksNetTests NetworkStackTests
Bug: 112869080
Change-Id: I8822d43c1a4981ca39289525685b3f975fb0e8d5
| -rw-r--r-- | api/system-current.txt | 18 | ||||
| -rw-r--r-- | api/test-current.txt | 20 | ||||
| -rw-r--r-- | core/java/android/net/LinkProperties.java | 44 | ||||
| -rw-r--r-- | core/java/android/net/LinkPropertiesParcelable.aidl | 1 | ||||
| -rw-r--r-- | core/java/android/net/NetworkCapabilities.java | 3 | ||||
| -rw-r--r-- | services/net/java/android/net/ip/IpClient.java | 50 | ||||
| -rw-r--r-- | services/net/java/android/net/ip/IpReachabilityMonitor.java | 15 | ||||
| -rw-r--r-- | services/net/java/android/net/shared/LinkPropertiesParcelableUtil.java | 6 | ||||
| -rw-r--r-- | tests/net/java/android/net/shared/LinkPropertiesParcelableUtilTest.java | 49 |
9 files changed, 128 insertions, 78 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index 1320d146d902..72b8456059d5 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -3061,14 +3061,30 @@ package android.net { public final class LinkProperties implements android.os.Parcelable { ctor public LinkProperties(); + method public boolean addDnsServer(java.net.InetAddress); method public boolean addRoute(android.net.RouteInfo); method public void clear(); + method public String getTcpBufferSizes(); + method public java.util.List<java.net.InetAddress> getValidatedPrivateDnsServers(); + method public boolean hasGlobalIPv6Address(); + method public boolean hasIPv4Address(); + method public boolean hasIPv6DefaultRoute(); + method public boolean isIPv4Provisioned(); + method public boolean isIPv6Provisioned(); + method public boolean isProvisioned(); + method public boolean isReachable(java.net.InetAddress); + method public boolean removeDnsServer(java.net.InetAddress); + method public boolean removeRoute(android.net.RouteInfo); method public void setDnsServers(java.util.Collection<java.net.InetAddress>); method public void setDomains(String); method public void setHttpProxy(android.net.ProxyInfo); method public void setInterfaceName(String); method public void setLinkAddresses(java.util.Collection<android.net.LinkAddress>); method public void setMtu(int); + method public void setPrivateDnsServerName(@Nullable String); + method public void setTcpBufferSizes(String); + method public void setUsePrivateDns(boolean); + method public void setValidatedPrivateDnsServers(java.util.Collection<java.net.InetAddress>); } public class Network implements android.os.Parcelable { @@ -3077,6 +3093,8 @@ package android.net { public final class NetworkCapabilities implements android.os.Parcelable { method public int getSignalStrength(); + method public int[] getTransportTypes(); + method public boolean satisfiedByNetworkCapabilities(android.net.NetworkCapabilities); field public static final int NET_CAPABILITY_OEM_PAID = 22; // 0x16 } diff --git a/api/test-current.txt b/api/test-current.txt index 46f98e52fb70..aea3def47ce7 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -620,6 +620,25 @@ package android.net { method public boolean isSameAddressAs(android.net.LinkAddress); } + public final class LinkProperties implements android.os.Parcelable { + method public boolean addDnsServer(java.net.InetAddress); + method public String getTcpBufferSizes(); + method public java.util.List<java.net.InetAddress> getValidatedPrivateDnsServers(); + method public boolean hasGlobalIPv6Address(); + method public boolean hasIPv4Address(); + method public boolean hasIPv6DefaultRoute(); + method public boolean isIPv4Provisioned(); + method public boolean isIPv6Provisioned(); + method public boolean isProvisioned(); + method public boolean isReachable(java.net.InetAddress); + method public boolean removeDnsServer(java.net.InetAddress); + method public boolean removeRoute(android.net.RouteInfo); + method public void setPrivateDnsServerName(@Nullable String); + method public void setTcpBufferSizes(String); + method public void setUsePrivateDns(boolean); + method public void setValidatedPrivateDnsServers(java.util.Collection<java.net.InetAddress>); + } + public class Network implements android.os.Parcelable { method public android.net.Network getPrivateDnsBypassingCopy(); } @@ -627,6 +646,7 @@ package android.net { public final class NetworkCapabilities implements android.os.Parcelable { method public int[] getCapabilities(); method public int[] getTransportTypes(); + method public boolean satisfiedByNetworkCapabilities(android.net.NetworkCapabilities); } public final class RouteInfo implements android.os.Parcelable { diff --git a/core/java/android/net/LinkProperties.java b/core/java/android/net/LinkProperties.java index c2963fd605c0..21b6a8eb1990 100644 --- a/core/java/android/net/LinkProperties.java +++ b/core/java/android/net/LinkProperties.java @@ -19,6 +19,7 @@ package android.net; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; +import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.os.Build; import android.os.Parcel; @@ -368,7 +369,8 @@ public final class LinkProperties implements Parcelable { * @return true if the DNS server was added, false if it was already present. * @hide */ - @UnsupportedAppUsage + @TestApi + @SystemApi public boolean addDnsServer(InetAddress dnsServer) { if (dnsServer != null && !mDnses.contains(dnsServer)) { mDnses.add(dnsServer); @@ -384,7 +386,8 @@ public final class LinkProperties implements Parcelable { * @return true if the DNS server was removed, false if it did not exist. * @hide */ - @UnsupportedAppUsage + @TestApi + @SystemApi public boolean removeDnsServer(InetAddress dnsServer) { if (dnsServer != null) { return mDnses.remove(dnsServer); @@ -423,6 +426,8 @@ public final class LinkProperties implements Parcelable { * @param usePrivateDns The private DNS state. * @hide */ + @TestApi + @SystemApi public void setUsePrivateDns(boolean usePrivateDns) { mUsePrivateDns = usePrivateDns; } @@ -448,6 +453,8 @@ public final class LinkProperties implements Parcelable { * @param privateDnsServerName The private DNS server name. * @hide */ + @TestApi + @SystemApi public void setPrivateDnsServerName(@Nullable String privateDnsServerName) { mPrivateDnsServerName = privateDnsServerName; } @@ -510,6 +517,8 @@ public final class LinkProperties implements Parcelable { * object. * @hide */ + @TestApi + @SystemApi public void setValidatedPrivateDnsServers(Collection<InetAddress> dnsServers) { mValidatedPrivateDnses.clear(); for (InetAddress dnsServer: dnsServers) { @@ -525,6 +534,8 @@ public final class LinkProperties implements Parcelable { * DNS servers on this link. * @hide */ + @TestApi + @SystemApi public List<InetAddress> getValidatedPrivateDnsServers() { return Collections.unmodifiableList(mValidatedPrivateDnses); } @@ -636,7 +647,8 @@ public final class LinkProperties implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @TestApi + @SystemApi public void setTcpBufferSizes(String tcpBufferSizes) { mTcpBufferSizes = tcpBufferSizes; } @@ -648,7 +660,8 @@ public final class LinkProperties implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @TestApi + @SystemApi public String getTcpBufferSizes() { return mTcpBufferSizes; } @@ -699,7 +712,8 @@ public final class LinkProperties implements Parcelable { * * @hide */ - @UnsupportedAppUsage + @TestApi + @SystemApi public boolean removeRoute(RouteInfo route) { return route != null && Objects.equals(mIfaceName, route.getInterface()) && @@ -960,7 +974,8 @@ public final class LinkProperties implements Parcelable { * @return {@code true} if there is an IPv4 address, {@code false} otherwise. * @hide */ - @UnsupportedAppUsage + @TestApi + @SystemApi public boolean hasIPv4Address() { for (LinkAddress address : mLinkAddresses) { if (address.getAddress() instanceof Inet4Address) { @@ -988,7 +1003,8 @@ public final class LinkProperties implements Parcelable { * @return {@code true} if there is a global preferred IPv6 address, {@code false} otherwise. * @hide */ - @UnsupportedAppUsage + @TestApi + @SystemApi public boolean hasGlobalIPv6Address() { for (LinkAddress address : mLinkAddresses) { if (address.getAddress() instanceof Inet6Address && address.isGlobalPreferred()) { @@ -1020,7 +1036,8 @@ public final class LinkProperties implements Parcelable { * @return {@code true} if there is an IPv6 default route, {@code false} otherwise. * @hide */ - @UnsupportedAppUsage + @TestApi + @SystemApi public boolean hasIPv6DefaultRoute() { for (RouteInfo r : mRoutes) { if (r.isIPv6Default()) { @@ -1099,6 +1116,8 @@ public final class LinkProperties implements Parcelable { * @return {@code true} if the link is provisioned, {@code false} otherwise. * @hide */ + @TestApi + @SystemApi public boolean isIPv4Provisioned() { return (hasIPv4Address() && hasIPv4DefaultRoute() && @@ -1112,7 +1131,8 @@ public final class LinkProperties implements Parcelable { * @return {@code true} if the link is provisioned, {@code false} otherwise. * @hide */ - @UnsupportedAppUsage + @TestApi + @SystemApi public boolean isIPv6Provisioned() { return (hasGlobalIPv6Address() && hasIPv6DefaultRoute() && @@ -1126,7 +1146,8 @@ public final class LinkProperties implements Parcelable { * @return {@code true} if the link is provisioned, {@code false} otherwise. * @hide */ - @UnsupportedAppUsage + @TestApi + @SystemApi public boolean isProvisioned() { return (isIPv4Provisioned() || isIPv6Provisioned()); } @@ -1138,7 +1159,8 @@ public final class LinkProperties implements Parcelable { * {@code false} otherwise. * @hide */ - @UnsupportedAppUsage + @TestApi + @SystemApi public boolean isReachable(InetAddress ip) { final List<RouteInfo> allRoutes = getAllRoutes(); // If we don't have a route to this IP address, it's not reachable. diff --git a/core/java/android/net/LinkPropertiesParcelable.aidl b/core/java/android/net/LinkPropertiesParcelable.aidl index b153dc70e1b8..6b52239b4168 100644 --- a/core/java/android/net/LinkPropertiesParcelable.aidl +++ b/core/java/android/net/LinkPropertiesParcelable.aidl @@ -35,5 +35,4 @@ parcelable LinkPropertiesParcelable { int mtu; String tcpBufferSizes; IpPrefixParcelable nat64Prefix; - LinkPropertiesParcelable[] stackedLinks; }
\ No newline at end of file diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java index 1b44c920a205..7e9bda14b199 100644 --- a/core/java/android/net/NetworkCapabilities.java +++ b/core/java/android/net/NetworkCapabilities.java @@ -712,6 +712,7 @@ public final class NetworkCapabilities implements Parcelable { * @hide */ @TestApi + @SystemApi public @Transport int[] getTransportTypes() { return BitUtils.unpackBits(mTransportTypes); } @@ -1312,6 +1313,8 @@ public final class NetworkCapabilities implements Parcelable { * * @hide */ + @TestApi + @SystemApi public boolean satisfiedByNetworkCapabilities(NetworkCapabilities nc) { return satisfiedByNetworkCapabilities(nc, false); } diff --git a/services/net/java/android/net/ip/IpClient.java b/services/net/java/android/net/ip/IpClient.java index 9f1557354dc4..b0c095756525 100644 --- a/services/net/java/android/net/ip/IpClient.java +++ b/services/net/java/android/net/ip/IpClient.java @@ -24,7 +24,6 @@ import android.net.INetd; import android.net.IpPrefix; import android.net.LinkAddress; import android.net.LinkProperties; -import android.net.LinkProperties.ProvisioningChange; import android.net.Network; import android.net.ProvisioningConfigurationParcelable; import android.net.ProxyInfo; @@ -371,6 +370,11 @@ public class IpClient extends StateMachine { private static final int IMMEDIATE_FAILURE_DURATION = 0; + private static final int PROV_CHANGE_STILL_NOT_PROVISIONED = 1; + private static final int PROV_CHANGE_LOST_PROVISIONING = 2; + private static final int PROV_CHANGE_GAINED_PROVISIONING = 3; + private static final int PROV_CHANGE_STILL_PROVISIONED = 4; + private final State mStoppedState = new StoppedState(); private final State mStoppingState = new StoppingState(); private final State mStartedState = new StartedState(); @@ -911,18 +915,18 @@ public class IpClient extends StateMachine { // object that is a correct and complete assessment of what changed, taking // account of the asymmetries described in the comments in this function. // Then switch to using it everywhere (IpReachabilityMonitor, etc.). - private ProvisioningChange compareProvisioning(LinkProperties oldLp, LinkProperties newLp) { - ProvisioningChange delta; + private int compareProvisioning(LinkProperties oldLp, LinkProperties newLp) { + int delta; InitialConfiguration config = mConfiguration != null ? mConfiguration.mInitialConfig : null; final boolean wasProvisioned = isProvisioned(oldLp, config); final boolean isProvisioned = isProvisioned(newLp, config); if (!wasProvisioned && isProvisioned) { - delta = ProvisioningChange.GAINED_PROVISIONING; + delta = PROV_CHANGE_GAINED_PROVISIONING; } else if (wasProvisioned && isProvisioned) { - delta = ProvisioningChange.STILL_PROVISIONED; + delta = PROV_CHANGE_STILL_PROVISIONED; } else if (!wasProvisioned && !isProvisioned) { - delta = ProvisioningChange.STILL_NOT_PROVISIONED; + delta = PROV_CHANGE_STILL_NOT_PROVISIONED; } else { // (wasProvisioned && !isProvisioned) // @@ -934,7 +938,7 @@ public class IpClient extends StateMachine { // that to be a network without DNS servers and connect anyway. // // See the comment below. - delta = ProvisioningChange.LOST_PROVISIONING; + delta = PROV_CHANGE_LOST_PROVISIONING; } final boolean lostIPv6 = oldLp.isIPv6Provisioned() && !newLp.isIPv6Provisioned(); @@ -970,7 +974,7 @@ public class IpClient extends StateMachine { // delta will never be LOST_PROVISIONING. So check for loss of // provisioning here too. if (lostIPv4Address || (lostIPv6 && !ignoreIPv6ProvisioningLoss)) { - delta = ProvisioningChange.LOST_PROVISIONING; + delta = PROV_CHANGE_LOST_PROVISIONING; } // Additionally: @@ -979,15 +983,15 @@ public class IpClient extends StateMachine { // IPv6 default route then also consider the loss of that default route // to be a loss of provisioning. See b/27962810. if (oldLp.hasGlobalIPv6Address() && (lostIPv6Router && !ignoreIPv6ProvisioningLoss)) { - delta = ProvisioningChange.LOST_PROVISIONING; + delta = PROV_CHANGE_LOST_PROVISIONING; } return delta; } - private void dispatchCallback(ProvisioningChange delta, LinkProperties newLp) { + private void dispatchCallback(int delta, LinkProperties newLp) { switch (delta) { - case GAINED_PROVISIONING: + case PROV_CHANGE_GAINED_PROVISIONING: if (DBG) { Log.d(mTag, "onProvisioningSuccess()"); } @@ -995,7 +999,7 @@ public class IpClient extends StateMachine { mCallback.onProvisioningSuccess(newLp); break; - case LOST_PROVISIONING: + case PROV_CHANGE_LOST_PROVISIONING: if (DBG) { Log.d(mTag, "onProvisioningFailure()"); } @@ -1015,7 +1019,7 @@ public class IpClient extends StateMachine { // Updates all IpClient-related state concerned with LinkProperties. // Returns a ProvisioningChange for possibly notifying other interested // parties that are not fronted by IpClient. - private ProvisioningChange setLinkProperties(LinkProperties newLp) { + private int setLinkProperties(LinkProperties newLp) { if (mApfFilter != null) { mApfFilter.setLinkProperties(newLp); } @@ -1023,10 +1027,10 @@ public class IpClient extends StateMachine { mIpReachabilityMonitor.updateLinkProperties(newLp); } - ProvisioningChange delta = compareProvisioning(mLinkProperties, newLp); + int delta = compareProvisioning(mLinkProperties, newLp); mLinkProperties = new LinkProperties(newLp); - if (delta == ProvisioningChange.GAINED_PROVISIONING) { + if (delta == PROV_CHANGE_GAINED_PROVISIONING) { // TODO: Add a proper ProvisionedState and cancel the alarm in // its enter() method. mProvisioningTimeoutAlarm.cancel(); @@ -1122,17 +1126,17 @@ public class IpClient extends StateMachine { if (Objects.equals(newLp, mLinkProperties)) { return true; } - final ProvisioningChange delta = setLinkProperties(newLp); + final int delta = setLinkProperties(newLp); if (sendCallbacks) { dispatchCallback(delta, newLp); } - return (delta != ProvisioningChange.LOST_PROVISIONING); + return (delta != PROV_CHANGE_LOST_PROVISIONING); } private void handleIPv4Success(DhcpResults dhcpResults) { mDhcpResults = new DhcpResults(dhcpResults); final LinkProperties newLp = assembleLinkProperties(); - final ProvisioningChange delta = setLinkProperties(newLp); + final int delta = setLinkProperties(newLp); if (DBG) { Log.d(mTag, "onNewDhcpResults(" + Objects.toString(dhcpResults) + ")"); @@ -1160,7 +1164,7 @@ public class IpClient extends StateMachine { private void handleProvisioningFailure() { final LinkProperties newLp = assembleLinkProperties(); - ProvisioningChange delta = setLinkProperties(newLp); + int delta = setLinkProperties(newLp); // If we've gotten here and we're still not provisioned treat that as // a total loss of provisioning. // @@ -1169,12 +1173,12 @@ public class IpClient extends StateMachine { // timeout expired. // // Regardless: GAME OVER. - if (delta == ProvisioningChange.STILL_NOT_PROVISIONED) { - delta = ProvisioningChange.LOST_PROVISIONING; + if (delta == PROV_CHANGE_STILL_NOT_PROVISIONED) { + delta = PROV_CHANGE_LOST_PROVISIONING; } dispatchCallback(delta, newLp); - if (delta == ProvisioningChange.LOST_PROVISIONING) { + if (delta == PROV_CHANGE_LOST_PROVISIONING) { transitionTo(mStoppingState); } } @@ -1646,7 +1650,7 @@ public class IpClient extends StateMachine { mDhcpClient.sendMessage(DhcpClient.EVENT_LINKADDRESS_CONFIGURED); } else { logError("Failed to set IPv4 address."); - dispatchCallback(ProvisioningChange.LOST_PROVISIONING, + dispatchCallback(PROV_CHANGE_LOST_PROVISIONING, new LinkProperties(mLinkProperties)); transitionTo(mStoppingState); } diff --git a/services/net/java/android/net/ip/IpReachabilityMonitor.java b/services/net/java/android/net/ip/IpReachabilityMonitor.java index 8b02156430f1..29e2f0c308d5 100644 --- a/services/net/java/android/net/ip/IpReachabilityMonitor.java +++ b/services/net/java/android/net/ip/IpReachabilityMonitor.java @@ -23,7 +23,6 @@ import static android.net.metrics.IpReachabilityEvent.PROVISIONING_LOST_ORGANIC; import android.content.Context; import android.net.LinkProperties; -import android.net.LinkProperties.ProvisioningChange; import android.net.RouteInfo; import android.net.ip.IpNeighborMonitor.NeighborEvent; import android.net.metrics.IpConnectivityLog; @@ -308,10 +307,11 @@ public class IpReachabilityMonitor { } } - final ProvisioningChange delta = LinkProperties.compareProvisioning( - mLinkProperties, whatIfLp); + final boolean lostProvisioning = + (mLinkProperties.isIPv4Provisioned() && !whatIfLp.isIPv4Provisioned()) + || (mLinkProperties.isIPv6Provisioned() && !whatIfLp.isIPv6Provisioned()); - if (delta == ProvisioningChange.LOST_PROVISIONING) { + if (lostProvisioning) { final String logMsg = "FAILURE: LOST_PROVISIONING, " + event; Log.w(TAG, logMsg); if (mCallback != null) { @@ -320,7 +320,7 @@ public class IpReachabilityMonitor { mCallback.notifyLost(ip, logMsg); } } - logNudFailed(delta); + logNudFailed(lostProvisioning); } private boolean avoidingBadLinks() { @@ -370,11 +370,10 @@ public class IpReachabilityMonitor { mMetricsLog.log(mInterfaceParams.name, new IpReachabilityEvent(eventType)); } - private void logNudFailed(ProvisioningChange delta) { + private void logNudFailed(boolean lostProvisioning) { long duration = SystemClock.elapsedRealtime() - mLastProbeTimeMs; boolean isFromProbe = (duration < getProbeWakeLockDuration()); - boolean isProvisioningLost = (delta == ProvisioningChange.LOST_PROVISIONING); - int eventType = nudFailureEventType(isFromProbe, isProvisioningLost); + int eventType = nudFailureEventType(isFromProbe, lostProvisioning); mMetricsLog.log(mInterfaceParams.name, new IpReachabilityEvent(eventType)); } diff --git a/services/net/java/android/net/shared/LinkPropertiesParcelableUtil.java b/services/net/java/android/net/shared/LinkPropertiesParcelableUtil.java index d5213dfcebf8..51d955d5c2ad 100644 --- a/services/net/java/android/net/shared/LinkPropertiesParcelableUtil.java +++ b/services/net/java/android/net/shared/LinkPropertiesParcelableUtil.java @@ -182,9 +182,6 @@ public final class LinkPropertiesParcelableUtil { parcel.mtu = lp.getMtu(); parcel.tcpBufferSizes = lp.getTcpBufferSizes(); parcel.nat64Prefix = toStableParcelable(lp.getNat64Prefix()); - parcel.stackedLinks = toParcelableArray( - lp.getStackedLinks(), LinkPropertiesParcelableUtil::toStableParcelable, - LinkPropertiesParcelable.class); return parcel; } @@ -216,9 +213,6 @@ public final class LinkPropertiesParcelableUtil { lp.setMtu(parcel.mtu); lp.setTcpBufferSizes(parcel.tcpBufferSizes); lp.setNat64Prefix(fromStableParcelable(parcel.nat64Prefix)); - for (LinkPropertiesParcelable stackedLink : parcel.stackedLinks) { - lp.addStackedLink(fromStableParcelable(stackedLink)); - } return lp; } } diff --git a/tests/net/java/android/net/shared/LinkPropertiesParcelableUtilTest.java b/tests/net/java/android/net/shared/LinkPropertiesParcelableUtilTest.java index 6f711c0b5743..b6d01dbc1cac 100644 --- a/tests/net/java/android/net/shared/LinkPropertiesParcelableUtilTest.java +++ b/tests/net/java/android/net/shared/LinkPropertiesParcelableUtilTest.java @@ -48,61 +48,52 @@ public class LinkPropertiesParcelableUtilTest { private LinkProperties mLinkProperties; private static final String TEST_LINKPROPS_IFACE = "TEST_IFACE"; - private static final String TEST_STACKED_LINK_1_IFACE = "TEST_STACKED_IFACE_1"; - private static final String TEST_STACKED_LINK_2_IFACE = "TEST_STACKED_IFACE_2"; @Before public void setUp() { - mLinkProperties = makeLinkProperties(TEST_LINKPROPS_IFACE); - mLinkProperties.addStackedLink(makeLinkProperties(TEST_STACKED_LINK_1_IFACE)); - mLinkProperties.addStackedLink(makeLinkProperties(TEST_STACKED_LINK_2_IFACE)); - } - - private static LinkProperties makeLinkProperties(String iface) { - final LinkProperties lp = new LinkProperties(); - lp.setInterfaceName(iface); - lp.setLinkAddresses(Arrays.asList( + mLinkProperties = new LinkProperties(); + mLinkProperties.setInterfaceName(TEST_LINKPROPS_IFACE); + mLinkProperties.setLinkAddresses(Arrays.asList( new LinkAddress(InetAddresses.parseNumericAddress("192.168.0.42"), 16), new LinkAddress(InetAddresses.parseNumericAddress("2001:db8::7"), 42))); - lp.setDnsServers(Arrays.asList( + mLinkProperties.setDnsServers(Arrays.asList( InetAddresses.parseNumericAddress("2001:db8::42"), InetAddresses.parseNumericAddress("192.168.1.1") )); - lp.setValidatedPrivateDnsServers(Arrays.asList( + mLinkProperties.setValidatedPrivateDnsServers(Arrays.asList( InetAddresses.parseNumericAddress("2001:db8::43"), InetAddresses.parseNumericAddress("192.168.42.43") )); - lp.setPcscfServers(Arrays.asList( + mLinkProperties.setPcscfServers(Arrays.asList( InetAddresses.parseNumericAddress("2001:db8::47"), InetAddresses.parseNumericAddress("192.168.42.47") )); - lp.setUsePrivateDns(true); - lp.setPrivateDnsServerName("test.example.com"); - lp.setDomains("test1.example.com,test2.example.com"); - lp.addRoute(new RouteInfo( + mLinkProperties.setUsePrivateDns(true); + mLinkProperties.setPrivateDnsServerName("test.example.com"); + mLinkProperties.setDomains("test1.example.com,test2.example.com"); + mLinkProperties.addRoute(new RouteInfo( new IpPrefix(InetAddresses.parseNumericAddress("2001:db8::44"), 45), InetAddresses.parseNumericAddress("2001:db8::45"), - iface, + TEST_LINKPROPS_IFACE, RouteInfo.RTN_UNICAST )); - lp.addRoute(new RouteInfo( + mLinkProperties.addRoute(new RouteInfo( new IpPrefix(InetAddresses.parseNumericAddress("192.168.44.45"), 16), InetAddresses.parseNumericAddress("192.168.45.1"), - iface, + TEST_LINKPROPS_IFACE, RouteInfo.RTN_THROW )); - lp.setHttpProxy(new ProxyInfo("test3.example.com", 8000, + mLinkProperties.setHttpProxy(new ProxyInfo("test3.example.com", 8000, "excl1.example.com,excl2.example.com")); - lp.setMtu(5000); - lp.setTcpBufferSizes("1,2,3,4,5,6"); - lp.setNat64Prefix(new IpPrefix(InetAddresses.parseNumericAddress("2001:db8::48"), 96)); + mLinkProperties.setMtu(5000); + mLinkProperties.setTcpBufferSizes("1,2,3,4,5,6"); + mLinkProperties.setNat64Prefix( + new IpPrefix(InetAddresses.parseNumericAddress("2001:db8::48"), 96)); // Verify that this test does not miss any new field added later. // If any added field is not included in LinkProperties#equals, assertLinkPropertiesEquals // must also be updated. assertFieldCountEquals(14, LinkProperties.class); - - return lp; } @Test @@ -186,7 +177,7 @@ public class LinkPropertiesParcelableUtilTest { private static void assertLinkPropertiesEquals(LinkProperties expected, LinkProperties actual) { assertEquals(expected, actual); - // LinkProperties equals() does not include stacked links - assertEquals(expected.getStackedLinks(), actual.getStackedLinks()); + // Equality on stacked links is not tested as they should not be passed to processes using + // LinkPropertiesParcelable. } } |