508fa6a7fe
A few fixes for cluster mode.
2017-10-25 15:44:10 -07:00
459f1e7bfb
Refactor path stability stuff and add basic multipath support.
2017-10-25 12:42:14 -07:00
b1d60df44c
timestamps changed from uint64_t to int64_t
...
There were cases in the code where time calculations and comparisons were overflowing and causing connection instability. This will keep time calculations within expected ranges.
2017-10-02 15:52:57 -07:00
640ad577d1
.
2017-07-06 11:56:46 -07:00
f18158a52d
.
2017-07-06 11:45:22 -07:00
2f20258807
.
2017-07-06 10:25:36 -07:00
baa10c2995
.
2017-06-30 17:32:07 -07:00
1b68d6dbdc
License header update.
2017-04-27 20:47:25 -07:00
e4896b257f
Add thread PTR that gets passed through the entire ZT core call stack and then passed to handler functions resulting from a call.
2017-03-27 17:03:17 -07:00
a97918f812
Windows build fixes.
2017-03-07 13:57:31 -08:00
1d39be61b2
ZeroTier now has link quality measurement. We are not using this yet but decided to put it in to prep for future QoS support and SD-WAN stuff.
2017-03-01 14:36:52 -08:00
2bf9145ae6
Outgoing side of packet counter for link quality reporting. Also some cleanup and a cluster mode build fix.
2017-03-01 10:22:57 -08:00
5b6d27e659
Implement relay policy, and setting multicast limit to 0 now disables multicast on the network as would be expected.
2016-09-13 14:27:18 -07:00
8ef0e4bbaf
Get rid of HELLO rate gate on path since its basically worthless. There are 65535 ports per IP.
2016-09-13 10:46:36 -07:00
ab9afbc749
(1) Public networks now get COMs even though they do not gate with them since they will need them to push auth for multicast stuff, (2) added a bunch of rate limit circuit breakers for anti-DOS, (3) cleanup.
2016-09-09 11:36:10 -07:00
a7d988745b
Use ECHO instead of HELLO where possible.
2016-09-07 12:01:03 -07:00
48a374c82c
(1) fix crazy bug introduced in doRENDEZVOUS(), (2) reclaim Paths after paths[] condense, (3) fix an edge case around symmetric NAT and external IP change detection.
2016-09-06 14:05:58 -07:00
43780742b0
comments, docs
2016-09-06 11:10:04 -07:00
d7f2287ce9
More tweaks to path behavior.
2016-09-05 15:47:22 -07:00
4992ac2d9f
Cluster sub-optimal is in fact necessary...
2016-09-02 14:20:55 -07:00
e8f6b4b5d3
Rest of big Path canonicalization refactor.
2016-09-02 11:51:33 -07:00
a3bdae9735
Work in progress: Path canonicalization refactor.
2016-09-01 15:43:07 -07:00
584228b2b5
Dead code removal, and get rid of reliable() because we will no longer make that distinction.
2016-08-24 17:56:35 -07:00
2c995f1f91
IPv6 links are unfortunately not "reliable." Many IPv6 gateways, while not
...
implementing NAT, do implement stateful firewalling with absurdly short
timeouts (<60s). Keepalives are still required in IPv6.
Network engineers continue to mindlessly carry forward cruft and baggage
from IPv4 to IPv6.
2016-05-31 10:30:00 -07:00
2f18a92e20
Cleanup in numerous places, reduce network chattiness around MULTICAST_LIKE, and fix a "how was that working" latent bug causing some control traffic to take the scenic route.
2016-04-19 12:09:35 -07:00
4c455876f9
Revise peer path weighting to always prioritize cluster-optimal paths.
2016-04-19 09:22:51 -07:00
82348e1537
Temporarily blacklist he.net IPv6 tunnel addresses for paths: these usually have a very low MTU which causes packet loss and other issues.
2016-02-10 11:06:26 -08:00
63ec7e58d4
Make activity no longer a function of ping frequency, since this causes compatibility bugs when the latter was modified due to timer interactions with other versions.
2016-02-08 10:03:01 -08:00
4e4fd51117
boring doc stuff
2016-01-12 14:04:55 -08:00
05b2c0743f
Tighten up dead path detection. Should now auto-detect dead paths in less than 10 seconds at a very small cost in ECHO requests (or HELLOs for older peers). GitHib issue #272
2016-01-06 10:00:03 -08:00
d8143a5e18
Implement first pass on rapid dead path detection, and increment version to 1.1.3 (dev)
2016-01-05 16:41:54 -08:00
436c1fac1d
Selectively move over changes from "edge" to "dev" excluding netcon.
2015-12-21 16:15:39 -08:00
35c4e28f31
Mark geo-redirected paths as suboptimal and do not report that we have a peer if all we have is one of these. Also a few other small fixes.
2015-11-09 14:25:28 -08:00
9f0f0197fe
More dead code removal.
2015-10-29 09:44:25 -07:00
a994573a43
Eliminate some more dead code. We may do path trust, but not like that.
2015-10-29 09:42:15 -07:00
51fcc75354
Some cleanup, and use getPeerNoCache() exclusively in Cluster.
2015-10-27 17:36:47 -07:00
16bc3e0398
Factor out RemotePath subclass of Path -- no longer needed, just cruft.
2015-10-27 15:00:16 -07:00
0b2e5ed499
Fix some broken logic in Path::reliable()
2015-10-19 15:11:43 -07:00
5076c49210
Peer serialization and related changes.
2015-10-01 15:40:54 -07:00
a3db7d0728
Refactor: move network COMs out of Network and into Peer in prep for tightening up multicast lookup and other things.
2015-10-01 11:11:52 -07:00
11ff96ba1d
Consider IPv6 paths reliable (no constant keepalives needed)
2015-09-30 15:20:08 -07:00
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.
2015-09-24 16:21:36 -07:00
0e5aac6a11
Prefer IPv6 paths if available.
2015-09-23 16:16:36 -07:00
0b354803f3
Clean up some YAGNI issues with implementation of GitHub issue #180 , and make best path choice aware of path rank.
2015-07-13 10:03:04 -07:00
c863ff3f02
A bunch of comments and cleanup, including some to yesterday's direct path pushing changes. Move path viability check to one place, and stop trying to use link-local addresses since they are not reliable.
2015-07-07 08:54:48 -07:00
235f4762b7
Plumbing for local interface addresses -- GitHub issue #180
2015-07-06 15:51:04 -07:00
93bb934d4e
Some cleanup, docs, and Path -> Path > RemotePath refactor.
2015-07-06 14:08:13 -07:00
feddd946f9
For curiosity add Salsa20/8 to benchmarks.
2015-07-06 13:51:25 -07:00
d9006712f6
Completely factor out "desperation" from the core. I thought of a significantly simpler way to move all of this logic entirely into the containing service, liberating the core from any concern over the nature of its pipe to the outside world.
2015-05-21 15:58:26 -07:00
49f031ccb4
Tons of refactoring, change to desperation algorithm to use max of core or link, porting over core loop code from old Node.cpp to new CAPI version, etc.
2015-04-07 19:31:11 -07:00