Merge "Configure MTU based on network MTU parameter" into lmp-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
36a05df3f3
@@ -56,6 +56,10 @@ public final class LinkProperties implements Parcelable {
|
||||
private ProxyInfo mHttpProxy;
|
||||
private int mMtu;
|
||||
|
||||
private static final int MIN_MTU = 68;
|
||||
private static final int MIN_MTU_V6 = 1280;
|
||||
private static final int MAX_MTU = 10000;
|
||||
|
||||
// Stores the properties of links that are "stacked" above this link.
|
||||
// Indexed by interface name to allow modification and to prevent duplicates being added.
|
||||
private Hashtable<String, LinkProperties> mStackedLinks =
|
||||
@@ -996,4 +1000,17 @@ public final class LinkProperties implements Parcelable {
|
||||
return new LinkProperties[size];
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Check the valid MTU range based on IPv4 or IPv6.
|
||||
* @hide
|
||||
*/
|
||||
public static boolean isValidMtu(int mtu, boolean ipv6) {
|
||||
if (ipv6) {
|
||||
if ((mtu >= MIN_MTU_V6 && mtu <= MAX_MTU)) return true;
|
||||
} else {
|
||||
if ((mtu >= MIN_MTU && mtu <= MAX_MTU)) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1534,11 +1534,17 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
||||
return;
|
||||
}
|
||||
|
||||
if (mtu < 68 || mtu > 10000) {
|
||||
if (LinkProperties.isValidMtu(mtu, newLp.hasGlobalIPv6Address())) {
|
||||
loge("Unexpected mtu value: " + mtu + ", " + iface);
|
||||
return;
|
||||
}
|
||||
|
||||
// Cannot set MTU without interface name
|
||||
if (TextUtils.isEmpty(iface)) {
|
||||
loge("Setting MTU size with null iface.");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
if (VDBG) log("Setting MTU size: " + iface + ", " + mtu);
|
||||
mNetd.setMtu(iface, mtu);
|
||||
|
||||
Reference in New Issue
Block a user