summaryrefslogtreecommitdiff
path: root/server/InterfaceController.cpp
diff options
context:
space:
mode:
authorErik Kline <ek@google.com>2015-05-13 07:20:22 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-05-13 07:20:24 +0000
commitfef7e149224681ba49bc39856c25610bb04c3735 (patch)
tree8a01c6e5a5eb649848ae4238d1fbea684d5b6914 /server/InterfaceController.cpp
parent660064bc50ce27913594399dece629254b00ad49 (diff)
parent145fd25509e08fb2d76fcff8d011e1aa9a2e6455 (diff)
Merge "InterfaceController::setBaseReachableTimeMs()" into mnc-dev
Diffstat (limited to 'server/InterfaceController.cpp')
-rw-r--r--server/InterfaceController.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/server/InterfaceController.cpp b/server/InterfaceController.cpp
index 373bfd0c..640bf8c6 100644
--- a/server/InterfaceController.cpp
+++ b/server/InterfaceController.cpp
@@ -34,6 +34,10 @@ namespace {
const char ipv6_proc_path[] = "/proc/sys/net/ipv6/conf";
+const char ipv4_neigh_conf_dir[] = "/proc/sys/net/ipv4/neigh";
+
+const char ipv6_neigh_conf_dir[] = "/proc/sys/net/ipv6/neigh";
+
const char sys_net_path[] = "/sys/class/net";
const char wl_util_path[] = "/system/xbin/wlutil";
@@ -86,6 +90,9 @@ InterfaceController::InterfaceController() {
// Enable optimistic DAD for IPv6 addresses on all interfaces.
setIPv6OptimisticMode("1");
+
+ // Reduce the ARP/ND base reachable time from the default (30sec) to 15sec.
+ setBaseReachableTimeMs(15 * 1000);
}
InterfaceController::~InterfaceController() {
@@ -160,6 +167,12 @@ int InterfaceController::setMtu(const char *interface, const char *mtu)
return writeValueToPath(sys_net_path, interface, "mtu", mtu);
}
+void InterfaceController::setBaseReachableTimeMs(unsigned int millis) {
+ std::string value(StringPrintf("%u", millis));
+ setOnAllInterfaces(ipv4_neigh_conf_dir, "base_reachable_time_ms", value.c_str());
+ setOnAllInterfaces(ipv6_neigh_conf_dir, "base_reachable_time_ms", value.c_str());
+}
+
void InterfaceController::setIPv6OptimisticMode(const char *value) {
setOnAllInterfaces(ipv6_proc_path, "optimistic_dad", value);
setOnAllInterfaces(ipv6_proc_path, "use_optimistic", value);