From 59273ede02fc91d2a3297547d959159c8c6f69f3 Mon Sep 17 00:00:00 2001 From: Erik Kline Date: Mon, 8 Dec 2014 16:05:28 +0900 Subject: [PATCH] Re-add netd support for enabling IPv6 optimistic mode. Enables optimistic_dad and use_optimistic on all interfaces by default. --- This functionality was originally submitted in ag/569594. Owing to issues with bind()ing to optimistic addresses (see b/18609055) this was reverted in ag/598690. This reverts the revert. :-) Bug: 17769720 Change-Id: I156e5636341a846f41fb9a15c84cf06878b239d8 --- server/InterfaceController.cpp | 8 ++++++++ server/InterfaceController.h | 1 + 2 files changed, 9 insertions(+) diff --git a/server/InterfaceController.cpp b/server/InterfaceController.cpp index b38c137..b7a4d0b 100644 --- a/server/InterfaceController.cpp +++ b/server/InterfaceController.cpp @@ -38,6 +38,9 @@ InterfaceController::InterfaceController() { setAcceptRA("2"); setAcceptRARouteTable(-RouteController::ROUTE_TABLE_OFFSET_FROM_INDEX); + + // Enable optimistic DAD for IPv6 addresses on all interfaces. + setIPv6OptimisticMode("1"); } InterfaceController::~InterfaceController() { @@ -147,3 +150,8 @@ int InterfaceController::setMtu(const char *interface, const char *mtu) free(path); return success; } + +void InterfaceController::setIPv6OptimisticMode(const char *value) { + setOnAllInterfaces("optimistic_dad", value); + setOnAllInterfaces("use_optimistic", value); +} diff --git a/server/InterfaceController.h b/server/InterfaceController.h index 71e4344..60e2131 100644 --- a/server/InterfaceController.h +++ b/server/InterfaceController.h @@ -32,6 +32,7 @@ class InterfaceController { void setOnAllInterfaces(const char* filename, const char* value); void setAcceptRA(const char* value); void setAcceptRARouteTable(int tableOrOffset); + void setIPv6OptimisticMode(const char *value); }; #endif -- 2.11.0