Adam Ierymenko
d530356055
RingBuffer<> is now templated with size, buffer is now static.
2019-03-22 14:39:52 -07:00
Grant Limberg
d4c0349de9
Revert "#ifdef'd out multipath/QoS statistics buffers allocations for ZT_PROTOCOL_VERSION<10"
...
This reverts commit 270debb3fc
.
2019-03-11 09:44:40 -07:00
Joseph Henry
270debb3fc
#ifdef'd out multipath/QoS statistics buffers allocations for ZT_PROTOCOL_VERSION<10
2019-03-01 13:28:00 -08:00
Joseph Henry
0e597191b8
Updated licenses for 2019
2019-01-14 10:25:53 -08:00
Joseph Henry
bdcdccfcc3
Improved path selection, more efficient traffic allocation, lower QoS/ACK overhead
2018-06-22 16:30:20 -07:00
Joseph Henry
52264d5e28
Fixed aggregateLinkLatency(). Also changed unit for throughput from byte to bit
2018-06-14 16:48:35 -07:00
Joseph Henry
17fbb020e7
Added multipath field to zerotier-cli status output. Adjusted how path estimates are computed and cached
2018-06-14 16:34:45 -07:00
Joseph Henry
f8005b88ad
Minor cleanup. More efficient push() operation for RingBuffer
2018-06-13 14:50:37 -07:00
Joseph Henry
0faa655b83
Reduced how often relative path qualities and aggregate link allocations are computed
2018-06-12 16:30:46 -07:00
Joseph Henry
6fddf31db3
Improved rate limit logic for QoS/ACK packets. Also reduced how often processBackgroundPathMeasurements() is called
2018-06-12 15:24:12 -07:00
Joseph Henry
9681fedbb4
Spellcheck sweep across codebase
2018-06-07 17:25:27 -07:00
Joseph Henry
91a22a686a
Added auto-escalation to multipath if both peers support it. Improved QoS/ACK tracking. Related bug fixes
2018-06-01 18:03:59 -07:00
Joseph Henry
46a7a2be2e
Added VERB_ACK and VERB_QOS_MEASUREMENT, refined notion of path quality
2018-05-30 17:45:29 -07:00
Joseph Henry
91c8e82c42
Adjusted locking order of _paths_m for path pruning. Other minor multipath changes
2018-05-02 15:24:14 -07:00
Joseph Henry
1debe2292d
Cleanup. Misc type conversion and signedness fixes
2018-05-02 11:22:07 -07:00
Joseph Henry
6a2ba4baca
Introduced basic multipath support
2018-05-01 16:32:15 -07:00
Adam Ierymenko
fe1fa20c6c
Fix build on Intel C/C++ Compiler for Linux.
2018-02-01 12:46:35 -08:00
Adam Ierymenko
6d8e1e8783
More cleanup of old stuff.
2018-01-26 21:34:56 -05:00
Adam Ierymenko
65c07afe05
Copyright updates for 2018.
2018-01-08 14:33:28 -08:00
Adam Ierymenko
9c7ee5a21e
Tear out old "link quality" stuff since it is not currently used and will be done differently.
2018-01-08 13:06:24 -08:00
Adam Ierymenko
0608704626
Some micro-optimizations, including a memcpy that is faster than Linux for most distro/compiler versions.
2017-12-15 11:03:20 -08:00
Adam Ierymenko
508fa6a7fe
A few fixes for cluster mode.
2017-10-25 15:44:10 -07:00
Adam Ierymenko
459f1e7bfb
Refactor path stability stuff and add basic multipath support.
2017-10-25 12:42:14 -07:00
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.
2017-10-02 15:52:57 -07:00
Adam Ierymenko
640ad577d1
.
2017-07-06 11:56:46 -07:00
Adam Ierymenko
f18158a52d
.
2017-07-06 11:45:22 -07:00
Adam Ierymenko
2f20258807
.
2017-07-06 10:25:36 -07:00
Adam Ierymenko
baa10c2995
.
2017-06-30 17:32:07 -07:00
Adam Ierymenko
1b68d6dbdc
License header update.
2017-04-27 20:47:25 -07:00
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.
2017-03-27 17:03:17 -07:00
Adam Ierymenko
a97918f812
Windows build fixes.
2017-03-07 13:57:31 -08:00
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.
2017-03-01 14:36:52 -08:00
Adam Ierymenko
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
Adam Ierymenko
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
Adam Ierymenko
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
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.
2016-09-09 11:36:10 -07:00
Adam Ierymenko
a7d988745b
Use ECHO instead of HELLO where possible.
2016-09-07 12:01:03 -07:00
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.
2016-09-06 14:05:58 -07:00
Adam Ierymenko
43780742b0
comments, docs
2016-09-06 11:10:04 -07:00
Adam Ierymenko
d7f2287ce9
More tweaks to path behavior.
2016-09-05 15:47:22 -07:00
Adam Ierymenko
4992ac2d9f
Cluster sub-optimal is in fact necessary...
2016-09-02 14:20:55 -07:00
Adam Ierymenko
e8f6b4b5d3
Rest of big Path canonicalization refactor.
2016-09-02 11:51:33 -07:00
Adam Ierymenko
a3bdae9735
Work in progress: Path canonicalization refactor.
2016-09-01 15:43:07 -07:00
Adam Ierymenko
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
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.
2016-05-31 10:30:00 -07:00
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.
2016-04-19 12:09:35 -07:00
Adam Ierymenko
4c455876f9
Revise peer path weighting to always prioritize cluster-optimal paths.
2016-04-19 09:22:51 -07:00
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.
2016-02-10 11:06:26 -08:00
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.
2016-02-08 10:03:01 -08:00
Adam Ierymenko
4e4fd51117
boring doc stuff
2016-01-12 14:04:55 -08:00