Adam Ierymenko
6d8e1e8783
More cleanup of old stuff.
8 years ago
Adam Ierymenko
65c07afe05
Copyright updates for 2018.
8 years ago
Adam Ierymenko
9c7ee5a21e
Tear out old "link quality" stuff since it is not currently used and will be done differently.
8 years ago
Adam Ierymenko
0608704626
Some micro-optimizations, including a memcpy that is faster than Linux for most distro/compiler versions.
8 years ago
Adam Ierymenko
508fa6a7fe
A few fixes for cluster mode.
9 years ago
Adam Ierymenko
459f1e7bfb
Refactor path stability stuff and add basic multipath support.
9 years ago
Grant Limberg
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.
9 years ago
Adam Ierymenko
640ad577d1
.
9 years ago
Adam Ierymenko
f18158a52d
.
9 years ago
Adam Ierymenko
2f20258807
.
9 years ago
Adam Ierymenko
baa10c2995
.
9 years ago
Adam Ierymenko
1b68d6dbdc
License header update.
9 years ago
Adam Ierymenko
e4896b257f
Add thread PTR that gets passed through the entire ZT core call stack and then passed to handler functions resulting from a call.
9 years ago
Adam Ierymenko
a97918f812
Windows build fixes.
9 years ago
Adam Ierymenko
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.
9 years ago
Adam Ierymenko
2bf9145ae6
Outgoing side of packet counter for link quality reporting. Also some cleanup and a cluster mode build fix.
9 years ago
Adam Ierymenko
5b6d27e659
Implement relay policy, and setting multicast limit to 0 now disables multicast on the network as would be expected.
10 years ago
Adam Ierymenko
8ef0e4bbaf
Get rid of HELLO rate gate on path since its basically worthless. There are 65535 ports per IP.
10 years ago
Adam Ierymenko
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.
10 years ago
Adam Ierymenko
a7d988745b
Use ECHO instead of HELLO where possible.
10 years ago
Adam Ierymenko
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.
10 years ago
Adam Ierymenko
43780742b0
comments, docs
10 years ago
Adam Ierymenko
d7f2287ce9
More tweaks to path behavior.
10 years ago
Adam Ierymenko
4992ac2d9f
Cluster sub-optimal is in fact necessary...
10 years ago
Adam Ierymenko
e8f6b4b5d3
Rest of big Path canonicalization refactor.
10 years ago
Adam Ierymenko
a3bdae9735
Work in progress: Path canonicalization refactor.
10 years ago
Adam Ierymenko
584228b2b5
Dead code removal, and get rid of reliable() because we will no longer make that distinction.
10 years ago
Adam Ierymenko
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.
10 years ago
Adam Ierymenko
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.
10 years ago
Adam Ierymenko
4c455876f9
Revise peer path weighting to always prioritize cluster-optimal paths.
10 years ago
Adam Ierymenko
82348e1537
Temporarily blacklist he.net IPv6 tunnel addresses for paths: these usually have a very low MTU which causes packet loss and other issues.
10 years ago
Adam Ierymenko
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.
10 years ago
Adam Ierymenko
4e4fd51117
boring doc stuff
10 years ago
Adam Ierymenko
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
10 years ago
Adam Ierymenko
d8143a5e18
Implement first pass on rapid dead path detection, and increment version to 1.1.3 (dev)
10 years ago
Adam Ierymenko
436c1fac1d
Selectively move over changes from "edge" to "dev" excluding netcon.
10 years ago
Adam Ierymenko
aa39b0dc24
Show paths as active or preferred in listpeers.
10 years ago
Adam Ierymenko
2160164e8c
(1) Get rid of path sorting and just scan them, since sorting may have been a premature optimization that introduced a regression and path instability in a few edge cases, and (2) do not attempt to contact remote paths received via PUSH_DIRECT_PATH if we already have that path and it is already active (dumb, should have done this originally)
10 years ago
Adam Ierymenko
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.
11 years ago
Adam Ierymenko
9f0f0197fe
More dead code removal.
11 years ago
Adam Ierymenko
a994573a43
Eliminate some more dead code. We may do path trust, but not like that.
11 years ago
Adam Ierymenko
51fcc75354
Some cleanup, and use getPeerNoCache() exclusively in Cluster.
11 years ago
Adam Ierymenko
16bc3e0398
Factor out RemotePath subclass of Path -- no longer needed, just cruft.
11 years ago
Adam Ierymenko
0b2e5ed499
Fix some broken logic in Path::reliable()
11 years ago
Adam Ierymenko
5076c49210
Peer serialization and related changes.
11 years ago
Adam Ierymenko
a3db7d0728
Refactor: move network COMs out of Network and into Peer in prep for tightening up multicast lookup and other things.
11 years ago
Adam Ierymenko
11ff96ba1d
Consider IPv6 paths reliable (no constant keepalives needed)
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
0e5aac6a11
Prefer IPv6 paths if available.
11 years ago
Adam Ierymenko
0b354803f3
Clean up some YAGNI issues with implementation of GitHub issue #180 , and make best path choice aware of path rank.
11 years ago