From 09d4564282f52562711acfa1b1ed6011c7c7d44b Mon Sep 17 00:00:00 2001 From: vadym Date: Sun, 30 Oct 2022 22:22:56 +0200 Subject: [PATCH] 1. added NetworkDomain and default values --- src/config/config.go | 5 +++++ src/defaults/defaults.go | 5 +++++ src/defaults/defaults_darwin.go | 5 +++++ src/defaults/defaults_freebsd.go | 5 +++++ src/defaults/defaults_linux.go | 5 +++++ src/defaults/defaults_openbsd.go | 5 +++++ src/defaults/defaults_other.go | 5 +++++ src/defaults/defaults_windows.go | 5 +++++ 8 files changed, 40 insertions(+) diff --git a/src/config/config.go b/src/config/config.go index cf88f2c4..f1a5249a 100644 --- a/src/config/config.go +++ b/src/config/config.go @@ -39,6 +39,7 @@ type NodeConfig struct { IfMTU uint64 `comment:"Maximum Transmission Unit (MTU) size for your local TUN interface.\nDefault is the largest supported size for your platform. The lowest\npossible value is 1280."` NodeInfoPrivacy bool `comment:"By default, nodeinfo contains some defaults including the platform,\narchitecture and RiV-mesh version. These can help when surveying\nthe network and diagnosing network routing problems. Enabling\nnodeinfo privacy prevents this, so that only items specified in\n\"NodeInfo\" are sent back if specified."` NodeInfo map[string]interface{} `comment:"Optional node info. This must be a { \"key\": \"value\", ... } map\nor set as null. This is entirely optional but, if set, is visible\nto the whole network on request."` + NetworkDomain NetworkDomainConfig `comment:"Address prefix used by mesh.\nThe current implementation requires this to be a multiple of 8 bits + 7 bits.4\nNodes that configure this differently will be unable to communicate with each other using IP packets."` } type MulticastInterfaceConfig struct { @@ -49,6 +50,10 @@ type MulticastInterfaceConfig struct { Priority uint8 } +type NetworkDomainConfig struct { + Prefix [1]byte +} + // NewSigningKeys replaces the signing keypair in the NodeConfig with a new // signing keypair. The signing keys are used by the switch to derive the // structure of the spanning tree. diff --git a/src/defaults/defaults.go b/src/defaults/defaults.go index fa097e5c..ef358ed8 100644 --- a/src/defaults/defaults.go +++ b/src/defaults/defaults.go @@ -3,6 +3,7 @@ package defaults import "github.com/RiV-chain/RiV-mesh/src/config" type MulticastInterfaceConfig = config.MulticastInterfaceConfig +type NetworkDomainConfig = config.NetworkDomainConfig var defaultConfig = "" // LDFLAGS='-X github.com/yggdrasil-network/yggdrasil-go/src/defaults.defaultConfig=/path/to/config var defaultAdminListen = "" // LDFLAGS='-X github.com/yggdrasil-network/yggdrasil-go/src/defaults.defaultAdminListen=unix://path/to/sock' @@ -20,6 +21,9 @@ type platformDefaultParameters struct { // Multicast interfaces DefaultMulticastInterfaces []MulticastInterfaceConfig + //Network domain + DefaultNetworkDomain NetworkDomainConfig + // TUN MaximumIfMTU uint64 DefaultIfMTU uint64 @@ -52,6 +56,7 @@ func GenerateConfig() *config.NodeConfig { cfg.InterfacePeers = map[string][]string{} cfg.AllowedPublicKeys = []string{} cfg.MulticastInterfaces = defaults.DefaultMulticastInterfaces + cfg.NetworkDomain = defaults.DefaultNetworkDomain cfg.IfName = defaults.DefaultIfName cfg.IfMTU = defaults.DefaultIfMTU cfg.NodeInfoPrivacy = false diff --git a/src/defaults/defaults_darwin.go b/src/defaults/defaults_darwin.go index 9698d2ba..660d7644 100644 --- a/src/defaults/defaults_darwin.go +++ b/src/defaults/defaults_darwin.go @@ -19,6 +19,11 @@ func getDefaults() platformDefaultParameters { {Regex: "bridge.*", Beacon: true, Listen: true}, }, + // Network domain + DefaultNetworkDomain: NetworkDomainConfig{ + Prefix: [...]byte{0xfc}, + }, + // TUN MaximumIfMTU: 65535, DefaultIfMTU: 65535, diff --git a/src/defaults/defaults_freebsd.go b/src/defaults/defaults_freebsd.go index a0b8658b..15be4ffe 100644 --- a/src/defaults/defaults_freebsd.go +++ b/src/defaults/defaults_freebsd.go @@ -18,6 +18,11 @@ func getDefaults() platformDefaultParameters { {Regex: ".*", Beacon: true, Listen: true}, }, + // Network domain + DefaultNetworkDomain: NetworkDomainConfig{ + Prefix: [...]byte{0xfc}, + }, + // TUN MaximumIfMTU: 32767, DefaultIfMTU: 32767, diff --git a/src/defaults/defaults_linux.go b/src/defaults/defaults_linux.go index 8ade70c1..9fb40565 100644 --- a/src/defaults/defaults_linux.go +++ b/src/defaults/defaults_linux.go @@ -18,6 +18,11 @@ func getDefaults() platformDefaultParameters { {Regex: ".*", Beacon: true, Listen: true}, }, + // Network domain + DefaultNetworkDomain: NetworkDomainConfig{ + Prefix: [...]byte{0xfc}, + }, + // TUN MaximumIfMTU: 65535, DefaultIfMTU: 65535, diff --git a/src/defaults/defaults_openbsd.go b/src/defaults/defaults_openbsd.go index a07092ad..ce5db723 100644 --- a/src/defaults/defaults_openbsd.go +++ b/src/defaults/defaults_openbsd.go @@ -18,6 +18,11 @@ func getDefaults() platformDefaultParameters { {Regex: ".*", Beacon: true, Listen: true}, }, + // Network domain + DefaultNetworkDomain: NetworkDomainConfig{ + Prefix: [...]byte{0xfc}, + }, + // TUN MaximumIfMTU: 16384, DefaultIfMTU: 16384, diff --git a/src/defaults/defaults_other.go b/src/defaults/defaults_other.go index 53b68be4..3adb05e7 100644 --- a/src/defaults/defaults_other.go +++ b/src/defaults/defaults_other.go @@ -18,6 +18,11 @@ func getDefaults() platformDefaultParameters { {Regex: ".*", Beacon: true, Listen: true}, }, + // Network domain + DefaultNetworkDomain: NetworkDomainConfig{ + Prefix: [...]byte{0xfc}, + }, + // TUN MaximumIfMTU: 65535, DefaultIfMTU: 65535, diff --git a/src/defaults/defaults_windows.go b/src/defaults/defaults_windows.go index 911a3cdb..82b05de7 100644 --- a/src/defaults/defaults_windows.go +++ b/src/defaults/defaults_windows.go @@ -18,6 +18,11 @@ func getDefaults() platformDefaultParameters { {Regex: ".*", Beacon: true, Listen: true}, }, + // Network domain + DefaultNetworkDomain: NetworkDomainConfig{ + Prefix: [...]byte{0xfc}, + }, + // TUN MaximumIfMTU: 65535, DefaultIfMTU: 65535,