Adam Ierymenko
6c44fcc290
more warning cleanup
2019-08-08 10:28:57 -05:00
Adam Ierymenko
c8e7031198
warning cleanup
2019-08-08 10:01:57 -05:00
Adam Ierymenko
3db0197865
Add try/catch in LFDB and add introspection into multicast subscriptions in client network status API
2019-08-06 15:22:57 -05:00
Adam Ierymenko
818b7e4a2e
GitHub issue #993 (???)
2019-08-04 15:35:43 -07:00
Adam Ierymenko
00d63f6046
GitHub issue #993 (???)
2019-08-04 15:15:02 -07:00
Adam Ierymenko
639fc60257
GitHub issue #990
2019-08-04 15:08:33 -07:00
Adam Ierymenko
75ebe5172f
Fix for sharing of capabilities in 1.4 (problem introduced when push frequency was reduced)
2019-08-02 20:43:02 -07:00
Adam Ierymenko
d9432f2f1e
cleanup
2019-07-29 10:19:20 -07:00
Joseph Henry
6958ba9557
Added ZT_DISABLE_COMPRESSION build flag for SDK and low-end NAS builds
2019-07-23 12:39:07 -07:00
Adam Ierymenko
1b2d9e202e
Remove 44/8 as pseudoprivate since it is now partly global.
2019-07-19 13:33:14 -07:00
Adam Ierymenko
90872c906f
Fix FileDB stuff and latency measurement.
2019-07-15 16:30:34 -05:00
Adam Ierymenko
fee6aae442
Drop in faster C25519 agreement code.
2019-07-09 10:31:08 -04:00
Adam Ierymenko
a019c3dd5d
Tighten up credential push just a bit for faster up-time with older nodes, should not have significant impact on bandwidth. Also some cleanup and push direct path timing fixes.
2019-06-25 13:42:20 -07:00
Adam Ierymenko
a3ef9b8a15
Cleanup
2019-06-25 10:06:50 -07:00
Adam Ierymenko
f0295b154b
Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev
2019-06-17 15:50:11 -07:00
Adam Ierymenko
b041de831a
More stack->heap
2019-06-17 15:50:05 -07:00
Grant Limberg
21e844cd82
Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev
2019-06-17 15:32:27 -07:00
Grant Limberg
4e2439bd12
Don't call _phy->getIfName if localSocket is -1
2019-06-17 15:32:21 -07:00
Adam Ierymenko
e2900f4f3c
Fix valgrind warning... not sure if it is an actual issue.
2019-06-17 15:23:52 -07:00
Adam Ierymenko
aa831dd843
More stack->heap...
2019-06-17 14:55:33 -07:00
Adam Ierymenko
2dc783214c
Allocate outp on heap in Peer.
2019-06-17 14:38:27 -07:00
Adam Ierymenko
9c51ce9c40
Windows build fixes, fix double/float types to get rid of warnings.
2019-06-17 13:32:41 -07:00
Grant Limberg
47d29ddcaf
Compiler warning cleanup
2019-06-13 10:28:09 -07:00
Joseph Henry
94bd2918fa
Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev
2019-06-12 13:14:23 -07:00
Joseph Henry
c3bfcf560b
Removed check for port number in multipath path replacement logic
2019-06-12 13:14:14 -07:00
Adam Ierymenko
5b2b088714
Cleanup, version bump.
2019-06-11 14:58:23 -07:00
Adam Ierymenko
848f822171
.
2019-06-06 10:04:11 -07:00
Joseph Henry
d4199ddb3e
Commented out RingBuffer::dump() as an alternative solution to PR #952
2019-06-03 11:00:04 -07:00
Joseph Henry
90d324ae96
Fixed ZT_SDK build issue. Moved ZT_SDK preprocessor directives to more permanent homes
2019-05-17 10:15:40 -07:00
Adam Ierymenko
cacdb445c7
Bump protocol version to 10
2019-05-14 13:54:27 -07:00
Joseph Henry
2d5c6fa975
Disabled compression for outbound packets in SDK build
2019-05-13 12:24:22 -07:00
Joseph Henry
95ef13f7a1
Added divisor for ZT_PEER_ACTIVITY_TIMEOUT, gives quicker indication to status change in SDK
2019-05-13 12:24:01 -07:00
Adam Ierymenko
6914425b03
cleanup
2019-03-28 13:58:19 -07:00
Adam Ierymenko
89f57124b2
Never mind, only unused on some builds so leave them there.
2019-03-27 09:30:45 -07:00
Adam Ierymenko
65823332d4
Comment out some unused functions.
2019-03-27 09:29:34 -07:00
Adam Ierymenko
ee8682ac75
Temporarily disable the symmetric NAT port prediction code since the current version adds protocol overhead and probably is not that effective.
2019-03-26 15:23:51 -07:00
Adam Ierymenko
d81549a7b1
Various other fixes including removal of more mem*() issues and netlink fixes for AARCH64.
2019-03-25 22:19:52 +00:00
Adam Ierymenko
d5ac8512e3
...
2019-03-25 12:58:43 -07:00
Adam Ierymenko
f23e354272
Nope, more...
2019-03-25 12:56:03 -07:00
Adam Ierymenko
6475e1faf6
I think this is the last one.
2019-03-25 12:53:31 -07:00
Adam Ierymenko
752fc0742e
More mem*() stuff... sigh...
2019-03-25 12:52:19 -07:00
Adam Ierymenko
e1091611da
More mem*() stuff...
2019-03-25 12:41:59 -07:00
Adam Ierymenko
678116b6d1
One more.
2019-03-25 12:36:54 -07:00
Adam Ierymenko
0a9e2227e8
... and more
2019-03-25 12:00:54 -07:00
Adam Ierymenko
2600b1f144
Removal of more mem*() calls.
2019-03-25 11:59:14 -07:00
Adam Ierymenko
b56753ea9f
Get rid of some mem* calls that are bad C++ form (but worked fine) and cause warnings.
2019-03-25 11:45:32 -07:00
Adam Ierymenko
2966eac64f
Get rid of ZT_FAST_MEMCPY because this is not really needed.
2019-03-22 15:50:15 -07:00
Adam Ierymenko
d530356055
RingBuffer<> is now templated with size, buffer is now static.
2019-03-22 14:39:52 -07:00
Adam Ierymenko
39e1021f62
Replace certificate based gating of multicast like/gather with a simpler more efficient method, fix some minor issues with request based com/cert push, and clean up some other random stuff.
2019-03-21 16:18:49 -07:00
Adam Ierymenko
63ec19674c
.
2019-03-19 16:43:43 -07:00
Adam Ierymenko
087c75d5ee
More cleanup.
2019-03-14 16:40:22 -07:00
Adam Ierymenko
e03102dbcb
Clean out some unnecessarily pedantic auth stuff in favor of a simpler way of gating multicast gathers.
2019-03-14 14:29:15 -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
23996c7e6b
Fixed potential memory leak in RingBuffer
2019-01-27 14:43:29 -08:00
Joseph Henry
d7091a0bac
Fixed sign-comparison compile warnings in QoS code
2019-01-25 13:24:31 -08:00
Joseph Henry
0e597191b8
Updated licenses for 2019
2019-01-14 10:25:53 -08:00
Adam Ierymenko
e6f9ab929d
More speed stuff.
2018-12-06 12:47:58 -08:00
Adam Ierymenko
18d1772bb4
stuff for speed and stuff (testing)
2018-12-06 12:00:49 -08:00
Adam Ierymenko
5535cad773
Revert mutex change.
2018-12-04 16:15:46 -08:00
Adam Ierymenko
ec84934d48
Disable spinlock to check CPU usage implications on multithreaded controllers.
2018-12-04 15:59:39 -08:00
Adam Ierymenko
b3c2c0866f
Times should be int64_t, not uint64_t
2018-11-11 17:38:17 -08:00
Grant Limberg
7c72653385
because Windows....
2018-10-23 13:21:25 -07:00
Adam Ierymenko
60d5a3c631
Merge pull request #853 from darkain/dev
...
Fix IPv6 address string representation
2018-09-25 15:32:39 -07:00
Vincent Milum Jr
79b47b055a
Only null terminate the first character
2018-09-15 12:13:06 -07:00
Vincent Milum Jr
8e260bae11
Correcting conversion to/from IP address / string
...
1) Use existing standard libraries to convert to/from IPv4/IPv6 strings and binary representation.
2) Move null terminator assignment InetAddress::toIpString to top of function, this way if ANY errors occurs that don't write content to the buffer, we're not passing a potentially dangerous buffer around.
2018-09-14 22:42:58 -07:00
Adam Ierymenko
af61ee6f3a
Merge pull request #836 from skunkwerks/feature/add-freebsd-debugs
...
add support for debug flags in FreeBSD
2018-09-14 08:08:59 -07:00
Joseph Henry
258b1c8b55
Merge branch 'edge' into multipath
2018-09-12 13:57:57 -07:00
Joseph Henry
7b87e9c0cb
Added ability for OneService to monitor local.conf for changes and automatically reload
2018-09-11 16:55:46 -07:00
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
Adam Ierymenko
a1e94154be
Just incorporate the X64 ASM version of Salsa20/12 for X64 platforms. This gives us (for example) 1.5gb/sec encryption on a Core i5 2.8ghz.
2017-04-18 08:45:37 -07:00
Adam Ierymenko
4938e82795
Delete junk.
2017-04-17 18:01:51 -07:00
Adam Ierymenko
7a94f63058
Back out NaCl since the old one with xmm6 salsa2012 does not support multi-block use and the new one is slower.
2017-04-17 17:54:12 -07:00
Adam Ierymenko
df48738ac9
Enable use of NaCl for faster X64 Salsa20 implementations. Also include binary for OSX for easy build. Blazingly fast.
2017-04-17 16:43:03 -07:00
Adam Ierymenko
d8f5cfdee4
Windows profile build target (CPU profiling), and a little bit of optimization revealed by such.
2017-04-17 15:45:49 -07:00
Adam Ierymenko
95e5345cc3
Cluster build fix.
2017-04-17 10:12:13 -07:00
Adam Ierymenko
ba5d0cc2f9
Silence some TRACE noise.
2017-04-17 09:31:07 -07:00
Adam Ierymenko
1d8ded3293
Tiny largely non-consequential credential fix.
2017-04-17 09:30:28 -07:00
Adam Ierymenko
2487a8bede
Fix for 100% cpu issue.
2017-04-17 09:14:21 -07:00
Adam Ierymenko
f1c0563c40
Fix for cluster handoff.
2017-04-14 18:02:04 -07:00
Adam Ierymenko
139c4b5633
Significant simplification to path logic.
2017-04-14 17:53:32 -07:00
Adam Ierymenko
88a4a3b1ba
Pass tptr on leave.
2017-04-11 08:47:02 -07:00
Adam Ierymenko
5ad120208f
Small fix, should filter by temporal validity.
2017-04-04 08:46:12 -07:00
Adam Ierymenko
eddbc7e757
Logic simplification, cleanup, and memory use improvements in Membership. Also fix an issue that may cause network instability in some cases.
2017-04-04 08:07:38 -07:00
Adam Ierymenko
8a62ba07e5
Membership cleanup work in progress.
2017-04-04 06:47:01 -07:00
Adam Ierymenko
91c9f4cb20
Fix TRACE and CLUSTER builds.
2017-03-27 17:33: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
78ef2c5f16
Windows build fixes, app about text revisions.
2017-03-17 20:01:58 -07:00
Adam Ierymenko
e10325e133
GitHub issue #461 -- plus a bit of cleanup and optimization
2017-03-17 17:15:23 -07:00
Adam Ierymenko
ef46d3c97d
LZ4 cleanup
2017-03-17 23:09:18 +00:00
Adam Ierymenko
a9c08c5975
.
2017-03-17 22:35:56 +00:00
Adam Ierymenko
c467c3b7e4
ARM tweaks
2017-03-17 22:26:08 +00:00
Adam Ierymenko
cdc0eaec3a
Fix attempt to WHOIS self.
2017-03-17 22:13:34 +00:00
Adam Ierymenko
a7cb738175
.
2017-03-17 14:25:54 -07:00
Adam Ierymenko
d1bb22a583
.
2017-03-17 14:09:30 -07:00
Adam Ierymenko
c6a39ed927
Fixes for possible ARM issues, cleanup, fix for spurious meaningless exceptions on NETWORK_CONFIG_REQUEST
2017-03-17 13:55:26 -07:00
Adam Ierymenko
010d0a7d56
Docs and a bit of cleanup. In particular ALL makes no sense for revocations because they have IDs. In that case you would just revoke the COM.
2017-03-13 06:53:23 -07:00
Adam Ierymenko
0f3148bda2
Roots need to respond to lots of WHOISes
2017-03-10 20:08:07 -08:00
Adam Ierymenko
e3b1fc2ac0
Tweak WHOIS path for federation.
2017-03-10 19:52:08 -08:00
Adam Ierymenko
db87d95c1d
getUpstreamPeer issue with interim federated roots
2017-03-10 19:31:51 -08:00
Adam Ierymenko
47166c9614
Sigh. Another thinko.
2017-03-10 17:54:14 -08:00
Adam Ierymenko
ecacdf27a9
Build fix (typo)
2017-03-10 17:45:05 -08:00
Adam Ierymenko
aad6f79efa
Also must mask off counter bits in IV in cryptField.
2017-03-10 17:44:25 -08:00
Adam Ierymenko
0c00b83702
cryptField() used to obscure extended fields in HELLO cannot use mangleKey()
2017-03-10 17:34:41 -08:00
Adam Ierymenko
a97918f812
Windows build fixes.
2017-03-07 13:57:31 -08:00
Adam Ierymenko
5e6a4e5f5e
Send revocations automatically on deauth for instant kill, also fix some issues with the RP.
2017-03-06 15:12:28 -08:00
Adam Ierymenko
d56f740dc6
Now with less bugs.
2017-03-03 13:49:21 -08:00
Adam Ierymenko
a577b8d381
Update how controller handles circuit tests -- save results to filesystem.
2017-03-01 16:33:34 -08:00
Adam Ierymenko
136fddc7f1
Fix FILTER_TRACE breakage.
2017-03-01 15:14:57 -08:00
Adam Ierymenko
ce0c87f8ff
Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev
2017-03-01 15:12:26 -08:00
Adam Ierymenko
d79585d44d
Circuit tests now report link quality. Also fixed a little thing in revocation propagation.
2017-03-01 15:12:17 -08:00
Grant Limberg
592b628523
comment broken TRACE message
2017-03-01 14:50:28 -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
127bcb02ff
Save space in expecting-reply-to tracking.
2017-03-01 09:41:37 -08:00
Adam Ierymenko
2b10a982e9
Match on tag sender equals or tag recipient equals.
2017-02-28 09:22:10 -08:00
Adam Ierymenko
31bece7fa0
Add ipauth handling of IPv6 NDP neighbor solicitations and advertisements. IPv6 works well now with ipauth.
2017-02-28 07:43:40 -08:00
Adam Ierymenko
4436824faf
ipauth characteristic now works with ARP
2017-02-27 17:51:58 -08:00
Adam Ierymenko
9d7ff26f25
Helps if you actually add the ipauth mask to the characteristics mask.
2017-02-23 14:27:31 -08:00
Adam Ierymenko
010dbc8b2b
Merge.
2017-02-23 12:35:20 -08:00
Adam Ierymenko
72653e54f9
Finish wiring up ipauth and macauth to Network filter.
2017-02-23 12:34:17 -08:00
Grant Limberg
93ec86a26e
iOS fixes
2017-02-23 12:26:11 -08:00
Adam Ierymenko
10185e92fa
Certificate of ownership -- used to secure against IP address spoofing, especially for IPv4 and regular IPv6.
2017-02-23 11:47:36 -08:00
Adam Ierymenko
b679ebde3b
Ad-hoc networks, a cool and easy to implement little feature that allows controllerless networks. These only allow IPv6 6plane, no multicast, and the network ID encodes the allowed port range.
2017-02-22 15:32:55 -08:00
Adam Ierymenko
afba19e01c
When deciding whether to send PUSH_DIRECT_PATHS we should check global trust flag, not the one passed into receive().
2017-02-16 09:44:04 -08:00
Adam Ierymenko
af4e79735c
Fix "orbit" semantics. Federation works.
2017-02-13 16:38:21 -08:00
Adam Ierymenko
969e09210d
Fix loading of existing moons.
2017-02-13 16:14:48 -08:00
Adam Ierymenko
4b11566505
Integrate moon concept into http config bus, and clean up that code quite a bit.
2017-02-13 14:27:08 -08:00
Adam Ierymenko
e4b6611201
Only accept world updates from upstreams.
2017-02-13 09:46:34 -08:00
Adam Ierymenko
e6840a1863
Can't erase from vector using const_iterator on some C++ compilers.'
2017-02-13 09:26:05 -08:00
Adam Ierymenko
42f28bce52
Cleanup and make moons (federated roots) a little easier to deal with.
2017-02-13 09:03:48 -08:00
Adam Ierymenko
cdc289fa9c
Tags work.
2017-02-07 14:06:40 -08:00
Adam Ierymenko
672f17c6e9
Add a mask and value range to the IP tos rule field. This allows TOS to be matched more usefully. This will break anyone using tos in the beta, but nobody seems to be and its pre-release so now is the time.
2017-02-07 09:33:39 -08:00
Adam Ierymenko
723a9a6e9a
Small additional efficiency improvement.
2017-02-06 17:20:22 -08:00
Adam Ierymenko
59ba7c8bf5
Improve efficiency of pushCredentials() method since it gets called a lot.
2017-02-06 17:10:20 -08:00
Adam Ierymenko
78d548458b
Capabilities basically work but need to refactor a bit for performance reasons.
2017-02-06 16:38:48 -08:00
Adam Ierymenko
9ddc2a4331
Add a break action to rules engine to make capabilities easier to use.
2017-02-06 14:00:49 -08:00
Adam Ierymenko
435e4c4695
Fix HELLO parse bug.
2017-02-06 12:06:10 -08:00
Adam Ierymenko
21f4a97c35
CSPRNG performance improvement, self test build fix.
2017-02-06 11:49:41 -08:00
Adam Ierymenko
e0d63c50db
One more tweak after thinking about related keys and key stream reuse. Just a precaution.
2017-02-06 07:45:57 -08:00
Adam Ierymenko
803f74634a
Tweak how we do crypto of the masked portions of HELLO just to be more "boring" in the DJB sense.
2017-02-06 07:39:38 -08:00
Adam Ierymenko
f85a630a64
Docs and a small build fix in debug mode.
2017-02-06 07:17:45 -08:00
Adam Ierymenko
43182f8f57
Docs, code cleanup, and protect the extra new fields of HELLO with encryption as a precaution.
2017-02-05 16:19:03 -08:00
Adam Ierymenko
594cb1fad8
Small fix for duplicates in world definitions.
2017-02-04 19:29:39 -08:00
Adam Ierymenko
3587aa1ea7
Add and send certificates of representation to tell people what our valid upstreams are. These are not used yet but will be needed for future privacy modes, etc. Also some cleanup.
2017-02-04 13:17:00 -08:00
Adam Ierymenko
beb642faa5
Stub out CAN_REACH.
2017-02-04 10:21:31 -08:00
Adam Ierymenko
31db768e4d
A bit of code cleanup.
2017-02-04 00:23:31 -08:00
Adam Ierymenko
d9e4ba1280
Eliminate a little copypasta.
2017-02-04 00:04:44 -08:00
Adam Ierymenko
dcb1233b0d
Slight refactor to RENEDEZVOUS sending code for federation.
2017-02-03 23:54:02 -08:00
Adam Ierymenko
8a2ff0b31e
Actual documentation.
2017-02-03 19:47:00 -08:00
Adam Ierymenko
9284e4edfe
agree() must be called on our identity, the one with the secret
2017-02-01 15:22:14 -08:00
Adam Ierymenko
62a705af1c
Eliminate another check in cluster frontplane mode.
2017-02-01 14:35:07 -08:00
Adam Ierymenko
29ec7bf3a2
Add more specific check in source==self case instead of dumping it.
2017-02-01 14:18:56 -08:00
Adam Ierymenko
fc3f4fb988
Yeah that could never have worked (normal packets in cluster mode).
2017-02-01 14:05:13 -08:00
Adam Ierymenko
60ff280dcb
Another tweak to cluster I/O rules.
2017-02-01 13:52:53 -08:00
Adam Ierymenko
b378f5dcd7
Take 3
2017-02-01 13:20:51 -08:00
Adam Ierymenko
e778d45128
Still want to send WANT_PEER under two failure modes.
2017-02-01 12:51:52 -08:00
Adam Ierymenko
5e11cf6378
Can't armor() a packet until all flags are set.
2017-02-01 12:32:06 -08:00
Adam Ierymenko
5dbebc513a
Minor send path refactor to make packet I/O work on clusters if they are members of networks. Also fix a crash if compiled in cluster mode but no cluster is enabled.
2017-02-01 12:00:25 -08:00
Adam Ierymenko
6d5a3cd2e2
Remove debug code. Cluster network config sharing seems to work.
2017-01-30 16:23:38 -08:00
Adam Ierymenko
f9ad80aa13
.
2017-01-30 16:15:47 -08:00
Adam Ierymenko
ed31cb76d6
Fix to cluster network configs.
2017-01-30 16:04:05 -08:00
Adam Ierymenko
eebd271bb1
Implement cross cluster sharing of network configs to make clusters able to actually join networks.
2017-01-30 15:40:22 -08:00
Adam Ierymenko
471108f2e4
Slightly increase thread stack size for safety (primary Alpine related) possibly GitHub #443
2017-01-30 08:01:36 -08:00
Adam Ierymenko
2ceb162df0
Merge pull request #442 from zielmicha/allow-managed
...
allow user to specify arbitrary allowed IP networks in allowManaged
2017-01-30 06:54:49 -08:00
Adam Ierymenko
5fa1d9796c
zerotier-idtool commands to init and generate moons
2017-01-27 17:34:39 -08:00
Adam Ierymenko
77a1dd4737
Dead code removal, fix minor issue in upstream endpoint check.
2017-01-27 16:25:53 -08:00
Adam Ierymenko
9e7c778cc8
Fix deadlock.
2017-01-27 16:16:06 -08:00
Adam Ierymenko
1d775af34a
Fix moon persistence.
2017-01-27 15:35:21 -08:00
Adam Ierymenko
9f7919f71f
Add comments to join ("orbit") moons.
2017-01-27 15:27:26 -08:00
Adam Ierymenko
0b3b994241
Relay policy can now be computed.
2017-01-27 14:05:09 -08:00
Adam Ierymenko
bc218f9414
little fix
2017-01-27 13:52:29 -08:00
Adam Ierymenko
f102fd7f92
Extend in-band world updates to handle moons too.
2017-01-27 13:50:56 -08:00
Adam Ierymenko
64774d0d4f
Replace piecemeal designation of upstreams with the concept of moons, which is simpler and easier to use and inherits all the cool live update stuff of worlds (now called planets) and global roots.
2017-01-27 13:27:52 -08:00
Michał Zieliński
8f2a42d1ad
allow user to specify arbitrary allowed IP networks in allowManaged
2017-01-23 12:16:40 +01:00
Adam Ierymenko
9a475eeff9
Windows build fix, warning removal.
2017-01-20 12:00:18 -08:00
Adam Ierymenko
0995c1dcaa
Encapsulate LZ4 in Packet.cpp to eliminate dependency.
2017-01-19 15:16:04 -08:00
Adam Ierymenko
7612bf3302
Fix LZ4 warning.
2017-01-19 14:54:39 -08:00
Adam Ierymenko
0fb3d1d582
Add a build version for software update use so we can do very minor updates within a version.
2017-01-18 09:16:23 -08:00
Adam Ierymenko
1346e31a8e
Windows build fixes, Software update fix, warning removal.
2017-01-13 14:22:36 -08:00
Adam Ierymenko
d7e7ad4f88
Can't send a user message to self.
2017-01-11 17:46:52 -08:00
Adam Ierymenko
d5528e4e9a
Wire up VERB_USER_MESSAGE in core.
2017-01-09 15:55:07 -08:00
Daniel Skowroński
18c9dc8a06
fix RTF_MULTICAST and g++ -w
2016-12-27 13:07:05 +01:00
Daniel Skowroński
546e8a3b44
initial netbsd support in makefile/flags
2016-12-25 20:59:12 +01:00
Adam Ierymenko
c8554504f3
.
2016-12-22 18:37:46 -08:00
Adam Ierymenko
6b12d86209
Add a workaround for an edge case in TEE/REDIRECT if we are the inbound destination and teeing is only being done on the outbound side.
2016-12-22 18:06:35 -08:00
Adam Ierymenko
fe530548bb
Fix MATCH_RANDOM in controller.
2016-12-22 16:57:45 -08:00
Adam Ierymenko
2eaff6d484
Fix to characteristcs in rules engine.
2016-12-22 16:36:38 -08:00
Adam Ierymenko
244f37179c
Minor security: lock roots to only be reachable via World IPs.
2016-12-05 16:09:42 -08:00
Adam Ierymenko
fa2bb91ae5
Kill some old debug code.
2016-11-30 10:48:09 -08:00
Adam Ierymenko
84732fcb12
Wire through external path lookup. Static paths should now work.
2016-11-22 14:23:13 -08:00
Adam Ierymenko
42ba70e79e
Replace long callback arg list with struct, and implement path whitelisting, path blacklisting, and local.conf support for roles.
2016-11-22 10:54:58 -08:00
Adam Ierymenko
cbaef66e82
Fix a deadlock in federation/upstream code.
2016-11-21 16:04:01 -08:00
Adam Ierymenko
97d915b06c
Expose relay policy in node settings.
2016-11-21 15:35:18 -08:00
Adam Ierymenko
ccdd4ffda7
Move split() to OSUtils since it is not used in core.
2016-11-18 15:49:28 -08:00
Adam Ierymenko
673c0c811e
Wire through upstream stuff and add setRole().
2016-11-18 13:48:49 -08:00
Adam Ierymenko
6e1da35c12
Remove debug.
2016-11-18 13:15:58 -08:00
Adam Ierymenko
25f9c294dc
Small bug fix and warning removal.
2016-11-18 13:01:45 -08:00
Adam Ierymenko
2ea9f516e1
Rate gate expensive validation of new identities in HELLO.
2016-11-18 12:59:04 -08:00
Adam Ierymenko
ab4021dd0e
Do packet MAC check before locallyValidate(), and add timing measurement in selftest.
2016-11-18 11:09:19 -08:00
Adam Ierymenko
1fcbb1fbed
Proactively auto-load designated upstreams.
2016-11-18 10:39:26 -08:00