Grant Limberg
c0c215c83c
single dns config per network
6 years ago
Grant Limberg
387039456d
Pass 1 at adding DNS to controller
6 years ago
Joseph Henry
7ed960297b
Merge changes from dev into multipath
6 years ago
Grant Limberg
ee91c81799
Initialize C arrays to NULL in NetworkConfig() constructor
6 years ago
Adam Ierymenko
52a166a71f
Relicense: GPLv3 -> ZeroTier BSL 1.1
7 years ago
Adam Ierymenko
d81549a7b1
Various other fixes including removal of more mem*() issues and netlink fixes for AARCH64.
7 years ago
Adam Ierymenko
e1091611da
More mem*() stuff...
7 years ago
Joseph Henry
0e597191b8
Updated licenses for 2019
7 years ago
Adam Ierymenko
f7019d9e80
Tie up the rest of hub and spoke designated replicator multicast mode.
8 years ago
Adam Ierymenko
65c07afe05
Copyright updates for 2018.
8 years ago
Adam Ierymenko
16613ab5fb
Clean up remote tracing code, add per-network remote trace settings, add remote trace level, and make local trace output readable again.
8 years ago
Adam Ierymenko
2d858b05ac
Another fix for ye old tyme clients.
9 years ago
Adam Ierymenko
dab0fb9e05
Remote trace: plumbing, replace old TRACE with calls to Trace object.
9 years ago
Adam Ierymenko
d2415dee00
Cleanup.
9 years ago
Adam Ierymenko
355cce3938
Rename Utils::snprintf due to it being a #define on one platform.
9 years ago
Adam Ierymenko
107e3e4106
First pass of configurable MTU and max MTU increase.
9 years ago
Adam Ierymenko
1b68d6dbdc
License header update.
9 years ago
Adam Ierymenko
10185e92fa
Certificate of ownership -- used to secure against IP address spoofing, especially for IPv4 and regular IPv6.
9 years ago
Adam Ierymenko
31db768e4d
A bit of code cleanup.
9 years ago
Adam Ierymenko
c9ee8612e4
Credential TTL (tags/capabilities) should be credential time max delta, since we could get pushed one that is newer.
10 years ago
Adam Ierymenko
68b4ca9b31
Cleanup.
10 years ago
Adam Ierymenko
9a3c652a51
Get rid of expiration in Capability and Tag and move this to NetworkConfig so it can be set network-wide and reset if needed. Also add NetworkConfig field for this and centralize checking of credential time validity.
10 years ago
Adam Ierymenko
4d498b3765
Handling of multi-part chunked network configs on the inbound side.
10 years ago
Adam Ierymenko
2ba9343607
Encode and decode of tags and capabilities in NetworkConfig.
10 years ago
Adam Ierymenko
91940cbcf5
Kill network preferred relays -- this feature is gone (and was seldom used anyway) in favor of federation.
10 years ago
Adam Ierymenko
d3b0081447
Cleanup...
10 years ago
Adam Ierymenko
eaf6d6c938
Basic L2/L3 filter for rules engine (not integrated yet) and some cleanup.
10 years ago
Adam Ierymenko
38dfebad8c
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/
10 years ago
Adam Ierymenko
330c80f3f5
Add rule type to match a COM field of the peer by ID and value because this will be powerful.
10 years ago
Adam Ierymenko
b2d048aa0e
Make Dictionary templatable so it can be used where we want a higher capacity.
10 years ago
Adam Ierymenko
37afa876a7
Linux bug fixes, small controller fix.
10 years ago
Adam Ierymenko
901b75e756
New format now integrated, and it works.
10 years ago
Adam Ierymenko
e09c1a1c11
Big refactor mostly builds. We now have a uniform backward compatible netconf.
10 years ago
Adam Ierymenko
7ee3743c3d
Refactor controller to send both old and new format netconf.
10 years ago
Adam Ierymenko
8b9519f0af
Simplify a bunch of NetworkConfig stuff by eliminating accessors, also makes network controller easier to refactor.
10 years ago
Adam Ierymenko
0f17077b3d
Merge gateways and routes in netconf since they are the same thing.
10 years ago
Adam Ierymenko
b9dba97fdb
Bunch more refactoring for an even more compact NetworkConfig representation, especially rules.
10 years ago
Adam Ierymenko
e731fc1a3a
Replace two bools in NetworkConfig with a flags field.
10 years ago
Adam Ierymenko
90e1262a8b
More refactoring to remove old Dictionary dependencies.
10 years ago
Adam Ierymenko
d736074301
Refactor rules table in-memory structure in new NetworkConfig to permit far more rules with better space efficiency.
10 years ago
Adam Ierymenko
6f854c8391
NetworkConfig refactor part 1
10 years ago
Adam Ierymenko
4e4fd51117
boring doc stuff
10 years ago
Adam Ierymenko
0034efafe4
On semi-undocumented test net, assign a RFC4193 IPv6 address too. Will be useful for our at-scale tests.
11 years ago
Adam Ierymenko
5384f185ae
Simplify Dictionary and reduce memory usage, now no more std::maps in core.
11 years ago
Adam Ierymenko
f69454ec98
(1) Make ZT_ naming convention consistent (get rid of ZT1_), (2) Make local interface a full sockaddr_storage instead of an int identifier, which turns out to be better for multi-homing and other uses.
11 years ago
Adam Ierymenko
3ba54c7e35
Eliminate some poorly thought out optimizations from the netconf/controller interaction,
...
and go ahead and bump version to 1.0.4.
For a while in 1.0.3 -dev I was trying to optimize out repeated network controller
requests by using a ratcheting mechanism. If the client received a network config
that was indeed different from the one it had, it would respond by instantlly
requesting it again.
Not sure what I was thinking. It's fundamentally unsafe to respond to a message
with another message of the same type -- it risks a race condition. In this case
that's exactly what could happen.
It just isn't worth the added complexity to avoid a tiny, tiny amount of network
overhead, so I've taken this whole path out.
A few extra bytes every two minutes isn't worth fretting about, but as I recall
the reason for this optimization was to save CPU on the controller. This can be
achieved by just caching responses in memory *there* and serving those same
responses back out if they haven't changed.
I think I developed that 'ratcheting' stuff before I went full time on this. It's
hard to develop stuff like this without hours of sustained focus.
11 years ago
Adam Ierymenko
dbee1b38b3
Fix semantics of std::unique() to actually remove duplicates (hidden memory leak?)
11 years ago
Adam Ierymenko
57c7992c78
GitHub issue #191 - kill intra-network multicast rate limits (which were not well supported or easily configurable anyway) -- this is really left over from the old collaborative multicast propagation algorithm. New algorithm (in for a while) has been sender-side replication in which sender "pays" all bandwidth, which intrinsically limits multicast.
11 years ago
Adam Ierymenko
8aa68cd5f1
Add new fields in operator==
11 years ago
Adam Ierymenko
edbc5d3588
Gateways support in NetworkConfig object.
11 years ago