Merge "Use IPv6 hop limit from upstream interface."
am: 53f6d1b060
Change-Id: I827f0ad4c60f7fcc0b470b597ebaacfc0fc7dac7
This commit is contained in:
@@ -430,6 +430,8 @@ public class IpServer extends StateMachine {
|
|||||||
params.mtu = v6only.getMtu();
|
params.mtu = v6only.getMtu();
|
||||||
params.hasDefaultRoute = v6only.hasIPv6DefaultRoute();
|
params.hasDefaultRoute = v6only.hasIPv6DefaultRoute();
|
||||||
|
|
||||||
|
if (params.hasDefaultRoute) params.hopLimit = getHopLimit(v6only.getInterfaceName());
|
||||||
|
|
||||||
for (LinkAddress linkAddr : v6only.getLinkAddresses()) {
|
for (LinkAddress linkAddr : v6only.getLinkAddresses()) {
|
||||||
if (linkAddr.getPrefixLength() != RFC7421_PREFIX_LENGTH) continue;
|
if (linkAddr.getPrefixLength() != RFC7421_PREFIX_LENGTH) continue;
|
||||||
|
|
||||||
@@ -549,6 +551,20 @@ public class IpServer extends StateMachine {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private byte getHopLimit(String upstreamIface) {
|
||||||
|
try {
|
||||||
|
int upstreamHopLimit = Integer.parseUnsignedInt(
|
||||||
|
mNetd.getProcSysNet(INetd.IPV6, INetd.CONF, upstreamIface, "hop_limit"));
|
||||||
|
// Add one hop to account for this forwarding device
|
||||||
|
upstreamHopLimit++;
|
||||||
|
// Cap the hop limit to 255.
|
||||||
|
return (byte) Integer.min(upstreamHopLimit, 255);
|
||||||
|
} catch (Exception e) {
|
||||||
|
mLog.e("Failed to find upstream interface hop limit", e);
|
||||||
|
}
|
||||||
|
return RaParams.DEFAULT_HOPLIMIT;
|
||||||
|
}
|
||||||
|
|
||||||
private void setRaParams(RaParams newParams) {
|
private void setRaParams(RaParams newParams) {
|
||||||
if (mRaDaemon != null) {
|
if (mRaDaemon != null) {
|
||||||
final RaParams deprecatedParams =
|
final RaParams deprecatedParams =
|
||||||
|
|||||||
Reference in New Issue
Block a user