OSDN Git Service

Re-add netd support for enabling IPv6 optimistic mode.
authorErik Kline <ek@google.com>
Mon, 8 Dec 2014 07:05:28 +0000 (16:05 +0900)
committerErik Kline <ek@google.com>
Mon, 8 Dec 2014 07:06:05 +0000 (16:06 +0900)
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
server/InterfaceController.h

index b38c137..b7a4d0b 100644 (file)
@@ -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);
+}
index 71e4344..60e2131 100644 (file)
@@ -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