Dave Cottlehuber
88abd6ffc6
add support for debug flags in FreeBSD
2018-08-24 08:18:25 +00:00
Adam Ierymenko
553101e8b5
merge dev
2018-08-09 11:31:37 -07:00
Joseph Henry
20a25a6a45
Added debug traces
2018-08-06 14:31:12 -07:00
Joseph Henry
08d9dc5c68
Updated protocol version and versioning blurb
2018-08-06 10:29:37 -07:00
Adam Ierymenko
d724af6a99
Replace Sao Paolo root with Buenos Aires in default planet def (will push to network too)
2018-07-25 15:03:01 -07:00
Adam Ierymenko
5b114791e5
Fix a bug that caused a crash on empty HTTP requests (localhost only) and add a lightweight lock to the RX queue to prevent possible threads stepping on each other in parallel receive paths.
2018-07-20 14:01:58 -07:00
Adam Ierymenko
ac40f2191c
.
2018-07-20 07:41:47 -07:00
Joseph Henry
65b0030342
Added basic QoS rule handling
2018-07-11 16:55:13 -07:00
Joseph Henry
28cb40529d
Rough draft of fq-codel implementation
2018-07-10 16:50:12 -07: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
Adam Ierymenko
04b3525e0f
Merge pull request #755 from skunkwerks/fix/c++-17-deprecation
...
fix clang C++17 deprecation when building with ZT_DEBUG=1
2018-06-12 09:38:26 -07:00
Joseph Henry
9681fedbb4
Spellcheck sweep across codebase
2018-06-07 17:25:27 -07:00
Joseph Henry
b6d97af451
Added rate gates for QOS and ACK packets
2018-06-07 15:26:18 -07:00
Joseph Henry
a9ca26c698
Added TX queue cap for issue #769
2018-06-07 12:58:07 -07:00
Grant Limberg
b9975845ff
Merge branch 'rtnetlink' into edge
2018-06-04 12:24:58 -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
Grant Limberg
be469f4dd0
add/remove routes via rtnetlink
2018-05-25 14:18:06 -07:00
Dave Cottlehuber
c36c92e077
node: remove deprecated register hint for C++17 compatibility
...
when building with `ZT_DEBUG=1` this hint produces a warning:
> node/Packet.cpp:335:43: error: 'register' storage class specifier is deprecated and incompatible with C++17 [-Werror,-Wdeprecated-register]
See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4340
2018-05-18 09:09:27 +00: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
42ec780a6f
Merge branch 'dev' into netbsd-support
2018-04-25 06:39:02 -07:00
Adam Ierymenko
74f2b78c04
Refactor some potentially unsafe SharedPtr<> code.
2018-04-06 08:10:34 -07:00
Adam Ierymenko
40a9ebd078
GitHub issue #675
2018-03-29 10:44:57 -07:00
Adam Ierymenko
494cf4049e
Add specification of anchor and multicast hub address (optional) to new multicast and IPv4 enabled ad-hoc network ID format.
2018-03-21 15:31:48 -07:00
Adam Ierymenko
beb170e4fb
Use X64 ASM ed25519 signatures on Linux/x64, which are about 10X faster. Will matter a lot for network controllers, not so much for other things.
2018-03-13 06:51:17 -07:00
Adam Ierymenko
a59912f3af
SHA512 using libcrypto (not enabled by default)
2018-03-12 16:56:47 -07:00
Adam Ierymenko
610e594a50
Speed tweaks for signatures, etc.
2018-03-12 16:16:20 -07:00
Adam Ierymenko
78d9cee416
Other fixes to IPv4 ad-hoc networks.
2018-03-09 00:10:01 -08:00
Adam Ierymenko
bbdb2aa672
Some work on IPv4 enabled ad-hoc networks.
2018-03-08 23:53:57 -08:00
Adam Ierymenko
51aadcf901
A few fixes dicatated by valgrind.
2018-02-09 06:35:01 +00:00
Adam Ierymenko
c6949aad2d
Linux build fix on some versions.
2018-02-02 17:11:23 -08:00
Adam Ierymenko
fe1fa20c6c
Fix build on Intel C/C++ Compiler for Linux.
2018-02-01 12:46:35 -08:00
Adam Ierymenko
f7019d9e80
Tie up the rest of hub and spoke designated replicator multicast mode.
2018-01-26 22:14:10 -05:00
Adam Ierymenko
6d8e1e8783
More cleanup of old stuff.
2018-01-26 21:34:56 -05:00
Adam Ierymenko
939ab43ceb
Do not send to origin in second buffered multicast path.
2018-01-26 21:22:51 -05:00
Adam Ierymenko
d3d58ba8a7
Add support for designated multicast replicators to Multicaster::send().
2018-01-26 21:19:51 -05:00
Adam Ierymenko
f03fd57997
Clean up some multicast code.
2018-01-26 20:38:44 -05:00
Adam Ierymenko
e74cd4b4ef
A little more cleanup.
2018-01-26 20:06:11 -05:00
Adam Ierymenko
f3dfd63634
Clean up some old stuff.
2018-01-26 20:00:37 -05:00
Adam Ierymenko
384e5b66de
More work on GitHub issue #666
2018-01-25 14:16:07 -05:00
Adam Ierymenko
7e7723e98f
A small memory use reduction.
2018-01-25 09:57:02 -05:00
Adam Ierymenko
4419734a7d
Implement continuous contacting of designated anchors and multicast replicators - GitHub issue #666
2018-01-25 07:11:59 -05:00
Adam Ierymenko
f821db29f3
.
2018-01-24 17:12:53 -05:00
Adam Ierymenko
6c64f1816d
cleanup
2018-01-24 16:16:00 -05:00
Adam Ierymenko
34e2ad0dfc
Stub out NetworkConfig for GitHub issue #666
2018-01-24 14:43:04 -05:00
Adam Ierymenko
5f976d7430
Reenable faster lock.
2018-01-11 14:31:19 -08:00
Adam Ierymenko
f87326fc21
Fixes for lock ordering -- GitHub issue #573
2018-01-11 14:29:57 -08:00
Adam Ierymenko
86d5264167
Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev
2018-01-10 16:55:15 -08:00
Adam Ierymenko
5bc4399a58
cleanup
2018-01-10 16:55:07 -08:00
Grant Limberg
406bcf7d3f
Fix compilation on Windows
...
DEBUG macro from miniupnpc interferring with enum Trace::DEBUG;
2018-01-10 15:24:54 -08:00
Adam Ierymenko
07cb62a503
cleanup
2018-01-09 11:41:26 -08:00
Adam Ierymenko
01b4cb64ee
cleanup
2018-01-09 08:35:02 -08:00
Adam Ierymenko
6fbd15f8b2
cleanup
2018-01-08 15:56:53 -08: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
d3e8e9629b
More optimization work.
2017-12-15 14:24:17 -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
f13886d343
Warning removal.
2017-12-05 17:53:28 -05:00
Adam Ierymenko
431716e249
Disable trace by default, stderr message improvements in RethinkDB driver.
2017-12-05 17:16:45 -05:00
Adam Ierymenko
16613ab5fb
Clean up remote tracing code, add per-network remote trace settings, add remote trace level, and make local trace output readable again.
2017-12-04 14:40:10 -08:00
Adam Ierymenko
4166d8ca35
Fix a deadlock and some more work on RethinkDB (for central) integration.
2017-11-08 11:06:14 -08:00
Adam Ierymenko
4e88c80a22
RethinkDB native connector work, minor fixes.
2017-11-02 07:05:11 -07:00
Adam Ierymenko
fac7dc9c91
Stop duplciate IPv6 addresses due to privacy mode IPs.
2017-10-25 16:01:36 -07:00
Adam Ierymenko
508fa6a7fe
A few fixes for cluster mode.
2017-10-25 15:44:10 -07:00
Adam Ierymenko
71bdaa9508
Now with more worky.
2017-10-25 13:27:28 -07:00
Adam Ierymenko
459f1e7bfb
Refactor path stability stuff and add basic multipath support.
2017-10-25 12:42:14 -07:00
Adam Ierymenko
0d8b8d8426
Remove some unused constants.
2017-10-24 15:04:19 -07:00
Adam Ierymenko
2d0dc62a53
docs
2017-10-24 14:57:02 -07:00
Adam Ierymenko
c7d370c17f
Delete something that turns out not to be useful. This will be handled differently.
2017-10-24 14:49:38 -07:00
Adam Ierymenko
395d8b3139
Full and clearer implementation of GitHub issue #588
2017-10-24 13:33:53 -07:00
Grant Limberg
099bedd2e9
A few more uint64_t -> int64_t changes for timestamps
2017-10-04 12:01:17 -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
Grant Limberg
7cf70d111a
Return an explicit NULL shared pointer at the end of Topology::getPeer()
2017-09-28 10:40:27 -07:00
Grant Limberg
e564c56dce
Set size of buffer after setting data with unsafeData() call
2017-09-28 10:39:43 -07:00
Grant Limberg
239c2540d6
Mutex::lock and ::unlock just called themselves
2017-09-27 15:05:13 -07:00
Grant Limberg
9c903567bb
Hashtable needs to include Constants.hpp for ZT_EXCEPTION_OUT_OF_MEMORY
2017-09-25 13:42:19 -07:00
Adam Ierymenko
302c15140e
Fix API problem with path configuration..
2017-09-25 08:53:55 -07:00
Adam Ierymenko
52916eebcf
Keep attemting to upgrade direct path if path is not private to facilitate better use of LANs and backplane networks.
2017-09-14 20:56:50 -07:00
Adam Ierymenko
f8014413a3
Add UDP MTU configurability.
2017-09-01 16:25:34 -07:00
Adam Ierymenko
2d858b05ac
Another fix for ye old tyme clients.
2017-09-01 12:03:31 -07:00
Adam Ierymenko
b1fb020aea
Raise chunk size to max packet size for network configs. Chunking breaks really ancient clients, so this helps them live a little longer. No real downside for new clients.
2017-09-01 10:43:44 -07:00
Adam Ierymenko
02ed84774c
Non-x86 build fix.
2017-08-31 20:47:44 -04:00
Adam Ierymenko
49fa30d495
Ticket lock for x64/gcc/clang platforms.
2017-08-23 18:52:32 -07:00
Adam Ierymenko
dd8b03a5c5
Threading issue fix?
2017-08-23 18:28:40 -07:00
Adam Ierymenko
4d5983114c
Fix another deadlock.
2017-08-23 17:14:06 -07:00
Adam Ierymenko
0a9c3b5571
Fix possible deadlock.
2017-08-23 16:59:31 -07:00
Adam Ierymenko
180049a277
Fix pointer bug.
2017-08-23 16:55:22 -07:00
Adam Ierymenko
6ee201865b
Clean up WHOIS code.
2017-08-23 16:42:17 -07:00
Adam Ierymenko
b1d94c9f93
Performance improvement to RX queue ring buffer.
2017-08-23 15:19:26 -07:00
Adam Ierymenko
a156a4dbe2
Symmetric NAT cleanup.
2017-08-23 15:12:00 -07:00
Adam Ierymenko
9cfc109527
Tighten a few timings.
2017-08-23 14:00:08 -07:00
Adam Ierymenko
64758c46b6
Implement peer serialization and deserialization.
2017-08-23 13:40:51 -07:00
Adam Ierymenko
fcaf1d89c2
Get rid of some noisy remote traces that should not be needed.
2017-08-18 13:59:22 -07:00
Adam Ierymenko
a4bc40542b
GCC/G++ build fixes, GitHub issue #563
2017-08-14 11:43:39 -07:00
Adam Ierymenko
ff5e22031a
Small fix: should expire packets to prevent repeated WHOISes.
2017-08-08 13:24:37 -07:00
Adam Ierymenko
e3cf756785
Make rxQueue lock-free using an atomic counter ring buffer.
2017-08-08 13:21:10 -07:00
Adam Ierymenko
7e6598e9ca
Possible deadlock fix.
2017-08-07 14:13:08 -07:00
Adam Ierymenko
727ccb1125
Cleanup and stdin/stdout harness mode for controller.
2017-07-18 13:57:37 -07:00
Adam Ierymenko
1685659e37
Remote tracing works.
2017-07-17 17:02:50 -07:00
Adam Ierymenko
5e2ea4a81a
Cleanup.
2017-07-17 14:24:57 -07:00
Adam Ierymenko
b9e1d53d7a
Minor cleanup.
2017-07-17 14:21:09 -07:00
Adam Ierymenko
ab0806a036
Cleanup.
2017-07-17 13:48:39 -07:00
Adam Ierymenko
3a1ec07db0
Remove some exception copypasta.
2017-07-17 10:43:28 -07:00
Adam Ierymenko
d939d8d21d
A bit more remote tracing stuff.
2017-07-14 14:57:40 -07:00
Adam Ierymenko
4ecc0c59ca
Plumbing through of remote trace into controller code.
2017-07-14 13:03:16 -07:00
Adam Ierymenko
c692f2e740
Fix for new identity generation bug.
2017-07-13 16:31:16 -07:00
Adam Ierymenko
ba6fd16823
More tracing stuff.
2017-07-13 15:08:57 -07:00
Adam Ierymenko
495c5ce81d
Bunch of remote tracing work.
2017-07-13 10:51:05 -07:00
Adam Ierymenko
dab0fb9e05
Remote trace: plumbing, replace old TRACE with calls to Trace object.
2017-07-07 16:58:05 -07:00
Adam Ierymenko
6fc70f7c16
More cleanup, Linux build fixes.
2017-07-07 06:50:40 -07:00
Adam Ierymenko
f23a43fb81
More cleanup.
2017-07-06 17:32:41 -07:00
Adam Ierymenko
d2415dee00
Cleanup.
2017-07-06 16:11:11 -07:00
Adam Ierymenko
dff8c02cfe
Pull out and deprecate old cluster code. New cluster code will not be merged yet.
2017-07-06 12:33:00 -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
355cce3938
Rename Utils::snprintf due to it being a #define on one platform.
2017-06-27 11:31:29 -07:00
Adam Ierymenko
02d18af57d
Remove Cluster.hpp
2017-06-23 16:10:26 -07:00
Adam Ierymenko
dd68c207f4
Stuff old Cluster code in attic.
2017-06-08 08:51:49 -07:00
Adam Ierymenko
9b287392a4
.
2017-06-05 12:15:28 -07:00
Adam Ierymenko
aa06470cb6
More cleanup for cluster refactor.
2017-06-01 20:32:43 -07:00
Adam Ierymenko
6015b529a0
More clustering work.
2017-06-01 12:33:05 -07:00
Adam Ierymenko
76452b4e28
Data structure fixup.
2017-06-01 07:39:31 -07:00
Adam Ierymenko
64b7d9ef82
New clustering work.
2017-06-01 07:15:46 -07:00
Adam Ierymenko
2a4a50b1da
Add some also-ZeroTier-written ext/ code for use in new clustering, delete some old code, and change Mac to use -Os which is just as fast as -Ofast and may be faster due to cache effects.
2017-05-31 08:36:09 -07:00
Adam Ierymenko
2ec88e8008
Remove old circuit test code. Rules engine will let us do this much better and more simply.
2017-05-30 10:19:45 -07:00
Adam Ierymenko
f9a9c2d009
Config object was never even being initialized on leave. Never noticed since desktop and server clients did not use.
2017-05-23 14:45:16 -07:00
Adam Ierymenko
5e6a2a17b0
Cluster build fix.
2017-05-19 15:32:52 -07:00
Adam Ierymenko
2d74c60d47
Add branch hints to bounds checking in Buffer.
2017-05-09 21:54:23 -07:00
Adam Ierymenko
f479b76772
define likely/unlikely
2017-05-09 20:22:08 -07:00
Adam Ierymenko
b9c1407013
Adjust PUSH_DIRECT_PATH circuit breaker, and comment out traces to reduce noise.
2017-05-08 09:36:37 -07:00
Adam Ierymenko
107e3e4106
First pass of configurable MTU and max MTU increase.
2017-05-04 17:12:02 -07:00
Joseph Henry
ceeb8ee0bc
added isEqualPrefix to InetAddress
2017-05-04 15:25:48 -07:00
Adam Ierymenko
41c187ba12
Another very small crypto optimization.
2017-05-03 07:43:23 -07:00
Adam Ierymenko
718e1d6c08
Finish removing constantly changing stuff from controller.
2017-05-01 13:21:26 -07:00
Adam Ierymenko
1b68d6dbdc
License header update.
2017-04-27 20:47:25 -07:00
Adam Ierymenko
9e80db0fd1
Cleanup, fix a valgrind error, stack use reduction.
2017-04-27 00:59:36 -07:00
Adam Ierymenko
4f2a779769
JSONDB performance improvements, threading fix.
2017-04-24 20:51:02 -07:00
Adam Ierymenko
a8ced184dc
Some code cleanup and make sure any type punning is guarded with ZT_NO_TYPE_PUNNING.
2017-04-20 09:33:35 -07:00
Adam Ierymenko
e7a2c6ecef
Integrate ARM/NEON crypto.
2017-04-19 17:11:56 -07:00
Adam Ierymenko
aaf597f020
Cleanup, Windows fixes, Self test fix
2017-04-18 12:22:44 -07:00
Adam Ierymenko
72bd3064a2
Windows build fixes, self test cleanup.
2017-04-18 11:00:29 -07:00