diff options
author | Xiao Ma <xiaom@google.com> | 2020-04-09 01:55:06 +0000 |
---|---|---|
committer | Xiao Ma <xiaom@google.com> | 2020-04-16 05:20:13 +0000 |
commit | cc394973d41f881b9bf6254d75a8eb0614c7b747 (patch) | |
tree | 28acdd31c6546d1c1cb1d23136f72d955e209c32 /src | |
parent | 9aef7f0ee06f4715e5e447303752f33656689d91 (diff) |
Add a new field changePrefixOnDecline in DhcpServingParamsParcel.
A new boolean flag (changePrefixOnDecline) to be added in
the DhcpServingParamsParcel, indicating whether or not the DHCP
server should request a new prefix (e.g. a different subnet
prefix) from IpServer when receiving DHCPDECLINE message.
Bug: 130741856
Test: atest NetworkStackTests NetworkStackNextTests
Merged-In: I8cb0f844ef98a5f17d4e07e1812a1abf73aa4c07
Change-Id: I8cb0f844ef98a5f17d4e07e1812a1abf73aa4c07
Diffstat (limited to 'src')
-rw-r--r-- | src/android/net/dhcp/DhcpServingParams.java | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/android/net/dhcp/DhcpServingParams.java b/src/android/net/dhcp/DhcpServingParams.java index 63f847d..c52cae9 100644 --- a/src/android/net/dhcp/DhcpServingParams.java +++ b/src/android/net/dhcp/DhcpServingParams.java @@ -91,6 +91,13 @@ public class DhcpServingParams { public final Inet4Address clientAddr; /** + * Indicates whether the DHCP server should request a new prefix from IpServer when receiving + * DHCPDECLINE message in certain particular link (e.g. there is only one downstream USB + * tethering client). If it's false, process DHCPDECLINE message as RFC2131#4.3.3 suggests. + */ + public final boolean changePrefixOnDecline; + + /** * Checked exception thrown when some parameters used to build {@link DhcpServingParams} are * missing or invalid. */ @@ -103,7 +110,8 @@ public class DhcpServingParams { private DhcpServingParams(@NonNull LinkAddress serverAddr, @NonNull Set<Inet4Address> defaultRouters, @NonNull Set<Inet4Address> dnsServers, @NonNull Set<Inet4Address> excludedAddrs, - long dhcpLeaseTimeSecs, int linkMtu, boolean metered, Inet4Address clientAddr) { + long dhcpLeaseTimeSecs, int linkMtu, boolean metered, Inet4Address clientAddr, + boolean changePrefixOnDecline) { this.serverAddr = serverAddr; this.defaultRouters = defaultRouters; this.dnsServers = dnsServers; @@ -112,6 +120,7 @@ public class DhcpServingParams { this.linkMtu = linkMtu; this.metered = metered; this.clientAddr = clientAddr; + this.changePrefixOnDecline = changePrefixOnDecline; } /** @@ -140,6 +149,7 @@ public class DhcpServingParams { .setLinkMtu(parcel.linkMtu) .setMetered(parcel.metered) .setClientAddr(clientAddr) + .setChangePrefixOnDecline(parcel.changePrefixOnDecline) .build(); } @@ -195,6 +205,7 @@ public class DhcpServingParams { private int mLinkMtu = MTU_UNSET; private boolean mMetered; private Inet4Address mClientAddr; + private boolean mChangePrefixOnDecline; /** * Set the server address and served prefix for the DHCP server. @@ -329,6 +340,17 @@ public class DhcpServingParams { } /** + * Set whether the DHCP server should request a new prefix from IpServer when receiving + * DHCPDECLINE message in certain particular link. + * + * <p>If not set, the default value is false. + */ + public Builder setChangePrefixOnDecline(boolean changePrefixOnDecline) { + this.mChangePrefixOnDecline = changePrefixOnDecline; + return this; + } + + /** * Create a new {@link DhcpServingParams} instance based on parameters set in the builder. * * <p>This method has no side-effects. If it does not throw, a valid @@ -382,7 +404,7 @@ public class DhcpServingParams { Collections.unmodifiableSet(new HashSet<>(mDefaultRouters)), Collections.unmodifiableSet(new HashSet<>(mDnsServers)), Collections.unmodifiableSet(excl), - mDhcpLeaseTimeSecs, mLinkMtu, mMetered, mClientAddr); + mDhcpLeaseTimeSecs, mLinkMtu, mMetered, mClientAddr, mChangePrefixOnDecline); } } |