summaryrefslogtreecommitdiff
path: root/node/Path.hpp
AgeCommit message (Collapse)Author
2019-03-11Revert "#ifdef'd out multipath/QoS statistics buffers allocations for ↵Grant Limberg
ZT_PROTOCOL_VERSION<10" This reverts commit 270debb3fc39c3f1f6a3f6fbc2c5fb6183182c8f.
2019-03-01#ifdef'd out multipath/QoS statistics buffers allocations for ↵Joseph Henry
ZT_PROTOCOL_VERSION<10
2019-01-14Updated licenses for 2019Joseph Henry
2018-06-22Improved path selection, more efficient traffic allocation, lower QoS/ACK ↵Joseph Henry
overhead
2018-06-14Fixed aggregateLinkLatency(). Also changed unit for throughput from byte to bitJoseph Henry
2018-06-14Added multipath field to zerotier-cli status output. Adjusted how path ↵Joseph Henry
estimates are computed and cached
2018-06-13Minor cleanup. More efficient push() operation for RingBufferJoseph Henry
2018-06-12Reduced how often relative path qualities and aggregate link allocations are ↵Joseph Henry
computed
2018-06-12Improved rate limit logic for QoS/ACK packets. Also reduced how often ↵Joseph Henry
processBackgroundPathMeasurements() is called
2018-06-07Spellcheck sweep across codebaseJoseph Henry
2018-06-01Added auto-escalation to multipath if both peers support it. Improved ↵Joseph Henry
QoS/ACK tracking. Related bug fixes
2018-05-30Added VERB_ACK and VERB_QOS_MEASUREMENT, refined notion of path qualityJoseph Henry
2018-05-02Adjusted locking order of _paths_m for path pruning. Other minor multipath ↵Joseph Henry
changes
2018-05-02Cleanup. Misc type conversion and signedness fixesJoseph Henry
2018-05-01Introduced basic multipath supportJoseph Henry
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