summaryrefslogtreecommitdiff
path: root/node/Path.hpp
AgeCommit message (Collapse)Author
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.
2015-07-06Plumbing for local interface addresses -- GitHub issue #180Adam Ierymenko
2015-07-06Some cleanup, docs, and Path -> Path > RemotePath refactor.Adam Ierymenko
2015-07-06For curiosity add Salsa20/8 to benchmarks.Adam Ierymenko
2015-05-21Completely factor out "desperation" from the core. I thought of a ↵Adam Ierymenko
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-04-07Tons of refactoring, change to desperation algorithm to use max of core or ↵Adam Ierymenko
link, porting over core loop code from old Node.cpp to new CAPI version, etc.
2015-04-07Implemented empirical determination of external addressing, paritioned per ↵Adam Ierymenko
scope.
2015-04-03Bunch more cleanup, improvements to NAT traversal logic, finished updating ↵Adam Ierymenko
Switch.