summaryrefslogtreecommitdiff
path: root/node/Path.hpp
AgeCommit message (Collapse)Author
2018-02-01Fix build on Intel C/C++ Compiler for Linux.Adam Ierymenko
2018-01-26More cleanup of old stuff.Adam Ierymenko
2018-01-08Copyright updates for 2018.Adam Ierymenko
2018-01-08Tear out old "link quality" stuff since it is not currently used and will be ↵Adam Ierymenko
done differently.
2017-12-15Some micro-optimizations, including a memcpy that is faster than Linux for ↵Adam Ierymenko
most distro/compiler versions.
2017-10-25A few fixes for cluster mode.Adam Ierymenko
2017-10-25Refactor path stability stuff and add basic multipath support.Adam Ierymenko
2017-10-02timestamps changed from uint64_t to int64_tGrant Limberg
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-07-06.Adam Ierymenko
2017-07-06.Adam Ierymenko
2017-07-06.Adam Ierymenko
2017-06-30.Adam Ierymenko
2017-04-27License header update.Adam Ierymenko
2017-03-27Add thread PTR that gets passed through the entire ZT core call stack and ↵Adam Ierymenko
then passed to handler functions resulting from a call.
2017-03-07Windows build fixes.Adam Ierymenko
2017-03-01ZeroTier now has link quality measurement. We are not using this yet but ↵Adam Ierymenko
decided to put it in to prep for future QoS support and SD-WAN stuff.
2017-03-01Outgoing side of packet counter for link quality reporting. Also some ↵Adam Ierymenko
cleanup and a cluster mode build fix.
2016-09-13Implement relay policy, and setting multicast limit to 0 now disables ↵Adam Ierymenko
multicast on the network as would be expected.
2016-09-13Get rid of HELLO rate gate on path since its basically worthless. There are ↵Adam Ierymenko
65535 ports per IP.
2016-09-09(1) Public networks now get COMs even though they do not gate with them ↵Adam Ierymenko
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-07Use ECHO instead of HELLO where possible.Adam Ierymenko
2016-09-06(1) fix crazy bug introduced in doRENDEZVOUS(), (2) reclaim Paths after ↵Adam Ierymenko
paths[] condense, (3) fix an edge case around symmetric NAT and external IP change detection.
2016-09-06comments, docsAdam Ierymenko
2016-09-05More tweaks to path behavior.Adam Ierymenko
2016-09-02Cluster sub-optimal is in fact necessary...Adam Ierymenko
2016-09-02Rest of big Path canonicalization refactor.Adam Ierymenko
2016-09-01Work in progress: Path canonicalization refactor.Adam Ierymenko
2016-08-24Dead code removal, and get rid of reliable() because we will no longer make ↵Adam Ierymenko
that distinction.
2016-05-31IPv6 links are unfortunately not "reliable." Many IPv6 gateways, while notAdam Ierymenko
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-04-19Cleanup in numerous places, reduce network chattiness around MULTICAST_LIKE, ↵Adam Ierymenko
and fix a "how was that working" latent bug causing some control traffic to take the scenic route.
2016-04-19Revise peer path weighting to always prioritize cluster-optimal paths.Adam Ierymenko
2016-02-10Temporarily blacklist he.net IPv6 tunnel addresses for paths: these usually ↵Adam Ierymenko
have a very low MTU which causes packet loss and other issues.
2016-02-08Make activity no longer a function of ping frequency, since this causes ↵Adam Ierymenko
compatibility bugs when the latter was modified due to timer interactions with other versions.
2016-01-12boring doc stuffAdam Ierymenko
2016-01-06Tighten up dead path detection. Should now auto-detect dead paths in less ↵Adam Ierymenko
than 10 seconds at a very small cost in ECHO requests (or HELLOs for older peers). GitHib issue #272
2016-01-05Implement first pass on rapid dead path detection, and increment version to ↵Adam Ierymenko
1.1.3 (dev)
2015-12-21Selectively move over changes from "edge" to "dev" excluding netcon.Adam Ierymenko
2015-11-09Mark geo-redirected paths as suboptimal and do not report that we have a ↵Adam Ierymenko
peer if all we have is one of these. Also a few other small fixes.
2015-10-29More dead code removal.Adam Ierymenko
2015-10-29Eliminate some more dead code. We may do path trust, but not like that.Adam Ierymenko
2015-10-27Some cleanup, and use getPeerNoCache() exclusively in Cluster.Adam Ierymenko
2015-10-27Factor out RemotePath subclass of Path -- no longer needed, just cruft.Adam Ierymenko
2015-10-19Fix some broken logic in Path::reliable()Adam Ierymenko
2015-10-01Peer serialization and related changes.Adam Ierymenko
2015-10-01Refactor: move network COMs out of Network and into Peer in prep for ↵Adam Ierymenko
tightening up multicast lookup and other things.
2015-09-30Consider IPv6 paths reliable (no constant keepalives needed)Adam Ierymenko
2015-09-24(1) Make ZT_ naming convention consistent (get rid of ZT1_), (2) Make local ↵Adam Ierymenko
interface a full sockaddr_storage instead of an int identifier, which turns out to be better for multi-homing and other uses.
2015-09-23Prefer IPv6 paths if available.Adam Ierymenko
2015-07-13Clean up some YAGNI issues with implementation of GitHub issue #180, and ↵Adam Ierymenko
make best path choice aware of path rank.
2015-07-07A bunch of comments and cleanup, including some to yesterday's direct path ↵Adam Ierymenko
pushing changes. Move path viability check to one place, and stop trying to use link-local addresses since they are not reliable.