Merge "Revert "Restore the default interface MTU when disconnecting from Wi-Fi AP.""
diff --git a/src/android/net/ip/IpClient.java b/src/android/net/ip/IpClient.java
index bff30b6..799184e 100644
--- a/src/android/net/ip/IpClient.java
+++ b/src/android/net/ip/IpClient.java
@@ -19,7 +19,6 @@
import static android.net.RouteInfo.RTN_UNICAST;
import static android.net.shared.IpConfigurationParcelableUtil.toStableParcelable;
-import static com.android.server.util.NetworkStackConstants.ETHER_MTU;
import static com.android.server.util.PermissionUtil.checkNetworkStackCallingPermission;
import android.annotation.NonNull;
@@ -49,7 +48,6 @@
import android.os.IBinder;
import android.os.Message;
import android.os.RemoteException;
-import android.os.ServiceSpecificException;
import android.os.SystemClock;
import android.text.TextUtils;
import android.util.LocalLog;
@@ -71,8 +69,6 @@
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.net.InetAddress;
-import java.net.NetworkInterface;
-import java.net.SocketException;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
@@ -384,8 +380,6 @@
private final ConditionVariable mApfDataSnapshotComplete = new ConditionVariable();
public static class Dependencies {
- private static final String TAG = "IpClient.Dependencies";
-
/**
* Get interface parameters for the specified interface.
*/
@@ -394,18 +388,6 @@
}
/**
- * Get the current MTU for the specified interface.
- */
- public int getInterfaceMtu(String ifname) {
- try {
- return NetworkInterface.getByName(ifname).getMTU();
- } catch (SocketException e) {
- Log.e(TAG, "unexpected failure to get the interface MTU");
- return ETHER_MTU;
- }
- }
-
- /**
* Get a INetd connector.
*/
public INetd getNetd(Context context) {
@@ -868,14 +850,10 @@
return shouldLog;
}
- private void logError(String fmt, Throwable e, Object... args) {
- final String msg = "ERROR " + String.format(fmt, args);
- Log.e(mTag, msg, e);
- mLog.e(msg, e);
- }
-
private void logError(String fmt, Object... args) {
- logError(fmt, null, args);
+ final String msg = "ERROR " + String.format(fmt, args);
+ Log.e(mTag, msg);
+ mLog.log(msg);
}
// This needs to be called with care to ensure that our LinkProperties
@@ -1373,17 +1351,6 @@
// There's no DHCPv4 for which to wait; proceed to stopped.
deferMessage(obtainMessage(CMD_JUMP_STOPPING_TO_STOPPED));
}
-
- // Restore the interface MTU to initial value if it has changed.
- final int mtu = mDependencies.getInterfaceMtu(mInterfaceName);
- try {
- if (mtu != mInterfaceParams.defaultMtu) {
- mNetd.interfaceSetMtu(mInterfaceName, mInterfaceParams.defaultMtu);
- }
- } catch (RemoteException | ServiceSpecificException e) {
- logError("Couldn't reset MTU from "
- + mtu + " to " + mInterfaceParams.defaultMtu + ": " + e);
- }
}
@Override
diff --git a/src/com/android/server/util/NetworkStackConstants.java b/src/com/android/server/util/NetworkStackConstants.java
index 3174a9b..804765e 100644
--- a/src/com/android/server/util/NetworkStackConstants.java
+++ b/src/com/android/server/util/NetworkStackConstants.java
@@ -54,7 +54,6 @@
public static final int ETHER_TYPE_IPV4 = 0x0800;
public static final int ETHER_TYPE_IPV6 = 0x86dd;
public static final int ETHER_HEADER_LEN = 14;
- public static final int ETHER_MTU = 1500;
/**
* ARP constants.
@@ -98,7 +97,6 @@
public static final int IPV6_PROTOCOL_OFFSET = 6;
public static final int IPV6_SRC_ADDR_OFFSET = 8;
public static final int IPV6_DST_ADDR_OFFSET = 24;
- public static final int IPV6_MIN_MTU = 1280;
/**
* ICMPv6 constants.
diff --git a/tests/integration/Android.bp b/tests/integration/Android.bp
index ec16467..ec8257f 100644
--- a/tests/integration/Android.bp
+++ b/tests/integration/Android.bp
@@ -23,7 +23,6 @@
"androidx.annotation_annotation",
"androidx.test.rules",
"mockito-target-extended-minus-junit4",
- "net-tests-utils",
"NetworkStackBase",
"testables",
],
diff --git a/tests/integration/src/android/net/ip/IpClientIntegrationTest.java b/tests/integration/src/android/net/ip/IpClientIntegrationTest.java
index 48fd7da..16e92ef 100644
--- a/tests/integration/src/android/net/ip/IpClientIntegrationTest.java
+++ b/tests/integration/src/android/net/ip/IpClientIntegrationTest.java
@@ -77,7 +77,6 @@
import com.android.server.NetworkObserverRegistry;
import com.android.server.NetworkStackService.NetworkStackServiceManager;
import com.android.server.connectivity.ipmemorystore.IpMemoryStoreService;
-import com.android.testutils.HandlerUtilsKt;
import org.junit.After;
import org.junit.Before;
@@ -159,8 +158,7 @@
private static final Inet4Address BROADCAST_ADDR = getBroadcastAddress(
SERVER_ADDR, PREFIX_LENGTH);
private static final String HOSTNAME = "testhostname";
- private static final int TEST_DEFAULT_MTU = 1500;
- private static final int TEST_MIN_MTU = 1280;
+ private static final short MTU = 1500;
private static class TapPacketReader extends PacketReader {
private final ParcelFileDescriptor mTapFd;
@@ -205,7 +203,6 @@
private class Dependencies extends IpClient.Dependencies {
private boolean mIsDhcpLeaseCacheEnabled;
private boolean mIsDhcpRapidCommitEnabled;
- private int mMtu = TEST_DEFAULT_MTU;
public void setDhcpLeaseCacheEnabled(final boolean enable) {
mIsDhcpLeaseCacheEnabled = enable;
@@ -215,10 +212,6 @@
mIsDhcpRapidCommitEnabled = enable;
}
- public void setMtu(final int mtu) {
- mMtu = mtu;
- }
-
@Override
public INetd getNetd(Context context) {
return mNetd;
@@ -249,11 +242,6 @@
}
};
}
-
- @Override
- public int getInterfaceMtu(String ifName) {
- return mMtu;
- }
}
@Before
@@ -357,7 +345,7 @@
}
private static ByteBuffer buildDhcpOfferPacket(final DhcpPacket packet,
- final Integer leaseTimeSec, final short mtu) {
+ final Integer leaseTimeSec) {
return DhcpPacket.buildOfferPacket(DhcpPacket.ENCAP_L2, packet.getTransactionId(),
false /* broadcast */, SERVER_ADDR, INADDR_ANY /* relayIp */,
CLIENT_ADDR /* yourIp */, packet.getClientMac(), leaseTimeSec,
@@ -365,11 +353,11 @@
Collections.singletonList(SERVER_ADDR) /* gateways */,
Collections.singletonList(SERVER_ADDR) /* dnsServers */,
SERVER_ADDR /* dhcpServerIdentifier */, null /* domainName */, HOSTNAME,
- false /* metered */, mtu);
+ false /* metered */, MTU);
}
private static ByteBuffer buildDhcpAckPacket(final DhcpPacket packet,
- final Integer leaseTimeSec, final short mtu) {
+ final Integer leaseTimeSec) {
return DhcpPacket.buildAckPacket(DhcpPacket.ENCAP_L2, packet.getTransactionId(),
false /* broadcast */, SERVER_ADDR, INADDR_ANY /* relayIp */,
CLIENT_ADDR /* yourIp */, CLIENT_ADDR /* requestIp */, packet.getClientMac(),
@@ -377,7 +365,7 @@
Collections.singletonList(SERVER_ADDR) /* gateways */,
Collections.singletonList(SERVER_ADDR) /* dnsServers */,
SERVER_ADDR /* dhcpServerIdentifier */, null /* domainName */, HOSTNAME,
- false /* metered */, mtu);
+ false /* metered */, MTU);
}
private static ByteBuffer buildDhcpNakPacket(final DhcpPacket packet) {
@@ -409,7 +397,7 @@
}
private void assertIpMemoryStoreNetworkAttributes(final Integer leaseTimeSec,
- final long startTime, final int mtu) {
+ final long startTime) {
final ArgumentCaptor<NetworkAttributes> networkAttributes =
ArgumentCaptor.forClass(NetworkAttributes.class);
@@ -428,7 +416,7 @@
assertTrue(lowerBound < expiry);
}
assertEquals(Collections.singletonList(SERVER_ADDR), naValueCaptured.dnsAddresses);
- assertEquals(new Integer(mtu), naValueCaptured.mtu);
+ assertEquals(new Integer((int) MTU), naValueCaptured.mtu);
}
private void assertIpMemoryNeverStoreNetworkAttributes() {
@@ -445,16 +433,13 @@
while ((packet = getNextDhcpPacket()) != null) {
if (packet instanceof DhcpDiscoverPacket) {
if (isDhcpRapidCommitEnabled) {
- sendResponse(buildDhcpAckPacket(packet, leaseTimeSec,
- (short) mDependencies.getInterfaceMtu(mIfaceName)));
+ sendResponse(buildDhcpAckPacket(packet, leaseTimeSec));
} else {
- sendResponse(buildDhcpOfferPacket(packet, leaseTimeSec,
- (short) mDependencies.getInterfaceMtu(mIfaceName)));
+ sendResponse(buildDhcpOfferPacket(packet, leaseTimeSec));
}
} else if (packet instanceof DhcpRequestPacket) {
final ByteBuffer byteBuffer = isSuccessLease
- ? buildDhcpAckPacket(packet, leaseTimeSec,
- (short) mDependencies.getInterfaceMtu(mIfaceName))
+ ? buildDhcpAckPacket(packet, leaseTimeSec)
: buildDhcpNakPacket(packet);
sendResponse(byteBuffer);
} else {
@@ -502,7 +487,7 @@
final long currentTime = System.currentTimeMillis();
performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S,
true /* isDhcpLeaseCacheEnabled */, false /* isDhcpRapidCommitEnabled */);
- assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU);
+ assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime);
}
@Test
@@ -517,7 +502,7 @@
final long currentTime = System.currentTimeMillis();
performDhcpHandshake(true /* isSuccessLease */, INFINITE_LEASE,
true /* isDhcpLeaseCacheEnabled */, false /* isDhcpRapidCommitEnabled */);
- assertIpMemoryStoreNetworkAttributes(INFINITE_LEASE, currentTime, TEST_DEFAULT_MTU);
+ assertIpMemoryStoreNetworkAttributes(INFINITE_LEASE, currentTime);
}
@Test
@@ -525,7 +510,7 @@
final long currentTime = System.currentTimeMillis();
performDhcpHandshake(true /* isSuccessLease */, null /* no lease time */,
true /* isDhcpLeaseCacheEnabled */, false /* isDhcpRapidCommitEnabled */);
- assertIpMemoryStoreNetworkAttributes(null, currentTime, TEST_DEFAULT_MTU);
+ assertIpMemoryStoreNetworkAttributes(null, currentTime);
}
@Test
@@ -542,7 +527,7 @@
final long currentTime = System.currentTimeMillis();
performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S,
true /* isDhcpLeaseCacheEnabled */, true /* isDhcpRapidCommitEnabled */);
- assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_DEFAULT_MTU);
+ assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime);
}
@Test
@@ -551,7 +536,7 @@
new NetworkAttributes.Builder()
.setAssignedV4Address(CLIENT_ADDR)
.setAssignedV4AddressExpiry(Long.MAX_VALUE) // lease is always valid
- .setMtu(new Integer(TEST_DEFAULT_MTU))
+ .setMtu(new Integer(MTU))
.setGroupHint(TEST_GROUPHINT)
.setDnsAddresses(Collections.singletonList(SERVER_ADDR))
.build(), false /* timeout */);
@@ -564,7 +549,7 @@
new NetworkAttributes.Builder()
.setAssignedV4Address(CLIENT_ADDR)
.setAssignedV4AddressExpiry(EXPIRED_LEASE)
- .setMtu(new Integer(TEST_DEFAULT_MTU))
+ .setMtu(new Integer(MTU))
.setGroupHint(TEST_GROUPHINT)
.setDnsAddresses(Collections.singletonList(SERVER_ADDR))
.build(), false /* timeout */);
@@ -583,7 +568,7 @@
new NetworkAttributes.Builder()
.setAssignedV4Address(CLIENT_ADDR)
.setAssignedV4AddressExpiry(System.currentTimeMillis() + 3_600_000)
- .setMtu(new Integer(TEST_DEFAULT_MTU))
+ .setMtu(new Integer(MTU))
.setGroupHint(TEST_GROUPHINT)
.setDnsAddresses(Collections.singletonList(SERVER_ADDR))
.build(), true /* timeout */);
@@ -594,7 +579,7 @@
public void testDhcpClientStartWithCachedLeaseWithoutIPAddress() throws Exception {
final DhcpPacket packet = getReplyFromDhcpLease(
new NetworkAttributes.Builder()
- .setMtu(new Integer(TEST_DEFAULT_MTU))
+ .setMtu(new Integer(MTU))
.setGroupHint(TEST_GROUPHINT)
.setDnsAddresses(Collections.singletonList(SERVER_ADDR))
.build(), false /* timeout */);
@@ -608,23 +593,4 @@
final DhcpPacket packet = getNextDhcpPacket();
assertTrue(DhcpDiscoverPacket.class.isInstance(packet));
}
-
- @Test
- public void testRestoreInitialInterfaceMtu() throws Exception {
- final long currentTime = System.currentTimeMillis();
-
- // check the initial interface MTU
- assertTrue(mDependencies.getInterfaceMtu(mIfaceName) == TEST_DEFAULT_MTU);
-
- // change the MTU and pass the new MTU into DHCPOFFER and DHCPACK packet
- mDependencies.setMtu(TEST_MIN_MTU);
- performDhcpHandshake(true /* isSuccessLease */, TEST_LEASE_DURATION_S,
- true /* isDhcpLeaseCacheEnabled */, false /* isDhcpRapidCommitEnabled */);
- assertIpMemoryStoreNetworkAttributes(TEST_LEASE_DURATION_S, currentTime, TEST_MIN_MTU);
-
- mIpc.shutdown();
- HandlerUtilsKt.waitForIdle(mIpc.getHandler(), TEST_TIMEOUT_MS);
- // verify that mtu indeed has been restored
- verify(mNetd, times(1)).interfaceSetMtu(mIfaceName, TEST_DEFAULT_MTU);
- }
}
diff --git a/tests/unit/src/android/net/ip/IpClientTest.java b/tests/unit/src/android/net/ip/IpClientTest.java
index 212e0ed..1d6ce6e 100644
--- a/tests/unit/src/android/net/ip/IpClientTest.java
+++ b/tests/unit/src/android/net/ip/IpClientTest.java
@@ -83,7 +83,6 @@
private static final String INVALID = "INVALID";
private static final String TEST_IFNAME = "test_wlan0";
private static final int TEST_IFINDEX = 1001;
- private static final int TEST_MTU = 1500;
// See RFC 7042#section-2.1.2 for EUI-48 documentation values.
private static final MacAddress TEST_MAC = MacAddress.fromString("00:00:5E:00:53:01");
private static final int TEST_TIMEOUT_MS = 400;
@@ -123,7 +122,6 @@
when(mDependencies.getInterfaceParams(any())).thenReturn(mInterfaceParams);
when(mDependencies.getIpMemoryStore(mContext, mNetworkStackServiceManager))
.thenReturn(mIpMemoryStore);
- when(mDependencies.getInterfaceMtu(TEST_IFNAME)).thenReturn(TEST_MTU);
mIfParams = null;
}