From 38dfebad8c285b0037a69c4577e7daeb38040d45 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Thu, 23 Jun 2016 22:41:14 -0700 Subject: IPv6 NDP emulation flag in NetworkConfig, and implement Docker-friendly (and other host friendly) IPv6 /80 magic subnetting to allow massive multicast-free NDP emulated IPv6 networks where each host can have a /48 worth of IPv6 IPs for internal containers, VMs, etc. Alan Kay, thou art avenged. https://ivanovivan.wordpress.com/2010/09/13/alan-kay-quotes/ --- node/NetworkConfig.hpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'node/NetworkConfig.hpp') diff --git a/node/NetworkConfig.hpp b/node/NetworkConfig.hpp index c137a2a5..117b18d2 100644 --- a/node/NetworkConfig.hpp +++ b/node/NetworkConfig.hpp @@ -47,6 +47,11 @@ */ #define ZT_NETWORKCONFIG_FLAG_ENABLE_BROADCAST 0x0000000000000002ULL +/** + * Flag: enable IPv6 NDP emulation for certain V6 address patterns + */ +#define ZT_NETWORKCONFIG_FLAG_ENABLE_IPV6_NDP_EMULATION 0x0000000000000004ULL + /** * Device is a network preferred relay */ @@ -257,6 +262,11 @@ public: */ inline bool enableBroadcast() const throw() { return ((this->flags & ZT_NETWORKCONFIG_FLAG_ENABLE_BROADCAST) != 0); } + /** + * @return True if IPv6 NDP emulation should be allowed for certain "magic" IPv6 address patterns + */ + inline bool ndpEmulation() const throw() { return ((this->flags & ZT_NETWORKCONFIG_FLAG_ENABLE_IPV6_NDP_EMULATION) != 0); } + /** * @return Network type is public (no access control) */ -- cgit v1.2.3