Make the IP subnet persistent till reboot
Make the IP subnet persistent if it do not conflict with upstream. It allow client to reuse its IP that usually reduce DHCP procedure. Bug: 168169687 Test: atest TetheringTests Change-Id: Iddc5304730dce7b11c5d124b7eddce057d752bbd
This commit is contained in:
@@ -616,7 +616,7 @@ public class IpServer extends StateMachine {
|
||||
if (VDBG) Log.d(TAG, "configureIPv4(" + enabled + ")");
|
||||
|
||||
if (enabled) {
|
||||
mIpv4Address = requestIpv4Address();
|
||||
mIpv4Address = requestIpv4Address(true /* useLastAddress */);
|
||||
}
|
||||
|
||||
if (mIpv4Address == null) {
|
||||
@@ -661,14 +661,14 @@ public class IpServer extends StateMachine {
|
||||
return configureDhcp(enabled, mIpv4Address, mStaticIpv4ClientAddr);
|
||||
}
|
||||
|
||||
private LinkAddress requestIpv4Address() {
|
||||
private LinkAddress requestIpv4Address(final boolean useLastAddress) {
|
||||
if (mStaticIpv4ServerAddr != null) return mStaticIpv4ServerAddr;
|
||||
|
||||
if (mInterfaceType == TetheringManager.TETHERING_BLUETOOTH) {
|
||||
return new LinkAddress(BLUETOOTH_IFACE_ADDR);
|
||||
}
|
||||
|
||||
return mPrivateAddressCoordinator.requestDownstreamAddress(this);
|
||||
return mPrivateAddressCoordinator.requestDownstreamAddress(this, useLastAddress);
|
||||
}
|
||||
|
||||
private boolean startIPv6() {
|
||||
@@ -957,7 +957,7 @@ public class IpServer extends StateMachine {
|
||||
}
|
||||
|
||||
final LinkAddress deprecatedLinkAddress = mIpv4Address;
|
||||
mIpv4Address = requestIpv4Address();
|
||||
mIpv4Address = requestIpv4Address(false);
|
||||
if (mIpv4Address == null) {
|
||||
mLog.e("Fail to request a new downstream prefix");
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user