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
|
cecfa99b7b
|
(1) cluster members send a flag indicating that a PUSH_DIRECT_PATHS is a cluster redirect, (2) 1.1.5 uses this to avoid a bug (this bug does not exist in 1.1.4)
|
2016-04-18 16:44:23 -07:00 |
|
Adam Ierymenko
|
e28838805f
|
Brace fix...
|
2016-04-12 13:17:16 -07:00 |
|
Adam Ierymenko
|
8a9762331f
|
Fix one more old NetworkConfig bit of code.
|
2016-04-12 12:54:14 -07:00 |
|
Adam Ierymenko
|
31db6f8f36
|
NetworkConfig refactor almost done.
|
2016-04-12 12:49:46 -07:00 |
|
Adam Ierymenko
|
ad1e83d8b9
|
Refactor IncomingPacket for new NetworkConfig
|
2016-04-12 12:32:33 -07:00 |
|
Adam Ierymenko
|
bbd9915056
|
Refactor Node for new NetworkConfig
|
2016-04-12 12:26:10 -07:00 |
|
Adam Ierymenko
|
51fecc0be9
|
Refactor Network for new NetworkConfig.
|
2016-04-12 12:16:29 -07:00 |
|
Adam Ierymenko
|
6f854c8391
|
NetworkConfig refactor part 1
|
2016-04-12 12:11:34 -07:00 |
|
Adam Ierymenko
|
56096be8b6
|
Tweak new RX queue algorithm to "expire" old entries to prevent always needing to traverse the whole queue array.
|
2016-04-06 16:28:40 -07:00 |
|
Adam Ierymenko
|
8ef78e7e7d
|
Preserve add local interface address add order and send in that order since this is a priority.
|
2016-04-06 11:50:00 -07:00 |
|
Adam Ierymenko
|
4a109658ab
|
More refactoring and prep for explicit interface bindings (for default route support).
|
2016-04-05 11:59:46 -07:00 |
|
Adam Ierymenko
|
52d9612301
|
Reduce symmetric prediction fuzz just a bit.
|
2016-04-05 10:49:14 -07:00 |
|
Adam Ierymenko
|
d8b89b0c86
|
Fix Cluster to send from a designated endpoint address instead of wildcard.
|
2016-04-05 10:47:13 -07:00 |
|
Adam Ierymenko
|
3df60995e1
|
nit pick... might this matter?
|
2016-03-30 16:49:21 -07:00 |
|
Adam Ierymenko
|
1a5e7cb0cb
|
More tweaks to OS determination stuff.
|
2016-03-28 12:26:49 -07:00 |
|
Adam Ierymenko
|
8035afae87
|
Try to define ZT_NO_TYPE_PUNNING on iOS in case it wasn't.
|
2016-03-28 12:22:05 -07:00 |
|
Adam Ierymenko
|
284e5d83b5
|
Fix some broken TRACEs and a tiny reorder in a few ifs.
|
2016-03-28 12:15:24 -07:00 |
|
Adam Ierymenko
|
76f9b4c582
|
A few other little formatting things.
|
2016-03-18 15:06:45 -07:00 |
|
Adam Ierymenko
|
c589bc4c57
|
Indentation
|
2016-03-18 14:32:48 -07:00 |
|
Adam Ierymenko
|
d6a1868d0a
|
Refactor incoming packet (rxQueue/fragmentQueue) to eliminate variable length queues and merge queues. This is both faster and saves memory.
|
2016-03-18 14:16:07 -07:00 |
|
Adam Ierymenko
|
fe3a84a422
|
Fix problems with previous commit.
|
2016-03-03 14:15:09 -08:00 |
|
Adam Ierymenko
|
7b5c1696eb
|
Fix a CIRCUIT_TEST bug in forwarding of tests along hop paths on private networks. Unfortunately this means full circuit testing for private nets will need an upgrade. :(
|
2016-02-23 14:56:51 -08:00 |
|
Adam Ierymenko
|
c7c61b4ac0
|
Fix checking of path address validity.
|
2016-02-22 16:01:35 -08:00 |
|
Adam Ierymenko
|
43fff1a87e
|
Deprecate reporting of local clock in circuit tests since a small number of users might have security problems with this.
|
2016-02-22 12:59:26 -08:00 |
|
Adam Ierymenko
|
2aa7138373
|
Reduce direct ping delay back to 1m and make SelfAwareness aware of local received-on address to eliminate false symmetric classification.
|
2016-02-22 09:47:50 -08:00 |
|
Adam Ierymenko
|
772551c45d
|
Try +1 and +2 existing surfaces for symmetric NATs.
|
2016-02-11 10:39:39 -08:00 |
|
Adam Ierymenko
|
0c951b6e56
|
More tweaks to new symmetric NAT buster, and stop using old iterative method since this supersedes it.
|
2016-02-10 18:41:39 -08:00 |
|
Adam Ierymenko
|
eadafd8de7
|
Little fix to NAT-t alg
|
2016-02-10 17:51:42 -08:00 |
|
Adam Ierymenko
|
f9230eb970
|
Widen max delta for TS/revision just a bit more for now.
|
2016-02-10 16:18:45 -08: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
|
10bb9919f1
|
Tweak certificate of membership revision/time tolerance to eliminate boundary packet loss issues occasionally seen in the wild.
|
2016-02-10 09:32:42 -08:00 |
|
Adam Ierymenko
|
4769dacf61
|
Tweak needsOurMembershipCertificate timing to resolve a possible source of occasional dropped packets.
|
2016-02-09 16:54:47 -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
|
a963810e02
|
Tweak a few cluster params for higher perf / lower initial setup latency.
|
2016-02-08 09:57:46 -08:00 |
|
Adam Ierymenko
|
7a63fdc447
|
Fix for GitHub issue #298 and hopefully #297
|
2016-02-01 14:41:54 -08:00 |
|
Adam Ierymenko
|
2e5caa335a
|
Old SF root is dead. Now we are just on Alice and Bob. (world update for 1.1.4)
|
2016-01-13 10:18:41 -08:00 |
|
Adam Ierymenko
|
4e4fd51117
|
boring doc stuff
|
2016-01-12 14:04:55 -08:00 |
|
Adam Ierymenko
|
3883ac08c7
|
Docs and cleanup.
|
2016-01-12 13:17:30 -08:00 |
|
Adam Ierymenko
|
740eb6ebc4
|
Simplify Peer locking to eliminate deadlock with new path recursion check code (and also probably improve performance).
|
2016-01-12 12:12:25 -08:00 |
|
Adam Ierymenko
|
d6f0f1a82a
|
Use network user ptr in lookup for Ethernet frame handling to eliminate map lookup.
|
2016-01-12 11:34:22 -08:00 |
|
Adam Ierymenko
|
83ef98a9dc
|
Add a network-associated user ptr in API.
|
2016-01-12 11:04:35 -08:00 |
|
Adam Ierymenko
|
704205c5f7
|
Dead code removal.
|
2016-01-12 09:33:14 -08:00 |
|
Adam Ierymenko
|
bbcc3304a0
|
Check shouldUsePathForZeroTierTraffic in legacy beacon responder.
|
2016-01-11 15:57:58 -08:00 |
|
Adam Ierymenko
|
b3e3d4cacc
|
Instead of using binary packet comparison, add a callback to the API to explicitly check whether paths should be used. Check in with this callback (if present) when learning new paths or sending initial packets.
|
2016-01-11 10:17:44 -08:00 |
|
Adam Ierymenko
|
1023ef23b7
|
Remove somewhat ugly and costly anti-recursion hack -- we will switch to more explicit methods.
|
2016-01-11 09:06:10 -08:00 |
|
Adam Ierymenko
|
a56fbc1929
|
Close another potential anti-recursion loophole.
|
2016-01-06 15:35:27 -08:00 |
|
Adam Ierymenko
|
47ce52228b
|
Roots should probably not do this since it would likely be a waste of packets.
|
2016-01-06 12:54:51 -08:00 |
|
Adam Ierymenko
|
9aee72099e
|
AntiRecursion cleanup and some other minor things.
|
2016-01-06 10:59:39 -08:00 |
|
Adam Ierymenko
|
05b2c0743f
|
Tighten up dead path detection. Should now auto-detect dead paths in less than 10 seconds at a very small cost in ECHO requests (or HELLOs for older peers). GitHib issue #272
|
2016-01-06 10:00:03 -08:00 |
|
Adam Ierymenko
|
4d94ae77b4
|
simplify if
|
2016-01-05 16:48:35 -08:00 |
|
Adam Ierymenko
|
d8143a5e18
|
Implement first pass on rapid dead path detection, and increment version to 1.1.3 (dev)
|
2016-01-05 16:41:54 -08:00 |
|
Adam Ierymenko
|
cba739fd6b
|
more dead code
|
2016-01-05 14:46:26 -08:00 |
|
Adam Ierymenko
|
fb5237d5b6
|
Outline dead path detection mechanism.
|
2016-01-05 14:42:56 -08:00 |
|
Adam Ierymenko
|
258f95b2cd
|
dead code removal
|
2016-01-05 14:19:16 -08:00 |
|
Adam Ierymenko
|
436c1fac1d
|
Selectively move over changes from "edge" to "dev" excluding netcon.
|
2015-12-21 16:15:39 -08:00 |
|
Adam Ierymenko
|
ceaef19fb7
|
Fix for GitHub issue #260 -- fix for (non-exploitable) crash in network preferred relay code
|
2015-11-30 17:20:12 -08:00 |
|
Janjaap Bos
|
e6808c69f8
|
Increase maximum number of paths per IP scope to 4
Otherwise, local discovered routes are ignored.
Don't know what the best value would be. Taking 4 for now.
|
2015-11-30 19:48:38 +01:00 |
|
Adam Ierymenko
|
ce5b7f0305
|
The World as of 2015-11-20
|
2015-11-20 12:49:23 -08:00 |
|
Adam Ierymenko
|
9169b6c999
|
Fix crash on exit in Windows (does not affect other OSes) and revert debugging tweak in Windows version that prevented service from starting after real install.
|
2015-11-17 09:56:19 -08:00 |
|
Adam Ierymenko
|
456bfea58d
|
Real World -- edge now talks to real net.
|
2015-11-16 19:27:36 -08:00 |
|
Grant Limberg
|
75f8ee1b9c
|
get the compiler to stop complaining about two string literals (one a macro) next to each other without an intervening space
|
2015-11-14 18:19:33 -08:00 |
|
Adam Ierymenko
|
0d9f33dc4f
|
Fix: (1) Windows stack overflow due to buffer too large in peer deserialize, (2) clean up some other stuff seen during debugging and reduce the sizes of some buffers due to Windows small stack size, (3) remove a redundant try/catch.
|
2015-11-13 12:14:28 -08:00 |
|
Adam Ierymenko
|
ccae473783
|
Eliminate Windows warnings.
|
2015-11-12 16:51:33 -08:00 |
|
Adam Ierymenko
|
54f68280bd
|
Minor Windows build fixes. Builds on VS2012 again.
|
2015-11-12 16:48:42 -08:00 |
|
Adam Ierymenko
|
8ac411a9e4
|
Stashing utun work for OSX -- abandoning for now since utun excludes mDNS among other issues.
|
2015-11-12 10:47:50 -08:00 |
|
Adam Ierymenko
|
0940d673db
|
Always advertise to the cluster when we have a peer even if we have also initiated handoff. This might be the cause of the warmup problem -- will test later. At the very least it should not hurt anything due to pick-latest logic and the fact that cluster members with only suboptimal paths do not respond to WANT_PEER.
|
2015-11-11 14:36:22 -08:00 |
|
Adam Ierymenko
|
b94335f115
|
Increase WHOIS retry delay slightly to allow for global cluster latency (e.g. 300+ms from New York to Johhannesburg)
|
2015-11-11 11:07:08 -08:00 |
|
Adam Ierymenko
|
451b8aa7b2
|
Query both root and network controller for multicast last resort GATHER.
|
2015-11-10 17:37:38 -08:00 |
|
Adam Ierymenko
|
2854f14966
|
Some cluster parameter tweaks, and change the test code in tests/http to dramatically reduce the amount of data transfer to/from the test master. Also add results of first successful 50k test.
|
2015-11-10 11:59:03 -08:00 |
|
Adam Ierymenko
|
4328c6c3bc
|
Fix delete oldest logic.
|
2015-11-10 09:46:14 -08:00 |
|
Adam Ierymenko
|
b171c9a0db
|
Replace slow std::list<> with an O(log(N)) data structure for the cluster relaying send queue.
|
2015-11-10 09:05:01 -08:00 |
|
Adam Ierymenko
|
32ec378e3b
|
Announce that we have peers on the cluster when we first see them to improve startup times, and add a result crunching script to tests/http.
|
2015-11-09 18:01:23 -08:00 |
|
Adam Ierymenko
|
2cc50bdb10
|
Try bringing back TTL escalation -- may help with Docker (IP-MASQ) type NAT
|
2015-11-09 15:44:13 -08:00 |
|
Adam Ierymenko
|
94f4316a0e
|
Fix for possible high CPU usage on multicast queries.
|
2015-11-09 14:54:05 -08:00 |
|
Adam Ierymenko
|
35c4e28f31
|
Mark geo-redirected paths as suboptimal and do not report that we have a peer if all we have is one of these. Also a few other small fixes.
|
2015-11-09 14:25:28 -08:00 |
|
Adam Ierymenko
|
47424df417
|
Fix (1) a deadlock bug and (2) a bug that prevented distributed rendezvous messages from being sent.
|
2015-11-09 13:39:06 -08:00 |
|
Adam Ierymenko
|
73e2c6e511
|
How did that ever work?
|
2015-11-09 12:24:49 -08:00 |
|
Adam Ierymenko
|
4ad2ff2f71
|
.
|
2015-11-09 11:08:52 -08:00 |
|
Adam Ierymenko
|
b57c855a8c
|
PROXY_SEND fix.
|
2015-11-09 10:25:20 -08:00 |
|
Adam Ierymenko
|
ed954c5ca2
|
.
|
2015-11-09 10:09:16 -08:00 |
|
Adam Ierymenko
|
21341ab15c
|
Ready to test.
|
2015-11-09 09:45:43 -08:00 |
|
Adam Ierymenko
|
f4d12603e0
|
Tweak how Switch passes off to Cluster on relay to fit new paradigm.
|
2015-11-09 09:19:03 -08:00 |
|
Adam Ierymenko
|
ff81415ffe
|
Build fixes...
|
2015-11-09 09:14:26 -08:00 |
|
Adam Ierymenko
|
57b71bfff0
|
Cluster simplification and refactor work in progress...
|
2015-11-08 13:57:02 -08:00 |
|
Adam Ierymenko
|
6bc8c9d8ef
|
Clustering cleanup, still a work in progress.
|
2015-11-06 16:12:41 -08:00 |
|
Adam Ierymenko
|
5f39d5b7ea
|
Further pare down Cluster messaging and rename some stuff.
|
2015-11-06 14:37:17 -08:00 |
|
Adam Ierymenko
|
9490b1f136
|
Try prioritizing cluster-send over direct send in cluster mode -- may improve cluster relaying reliability.
|
2015-11-06 13:38:56 -08:00 |
|
Adam Ierymenko
|
8ea5f424fd
|
Small amount of cleanup.
|
2015-11-06 11:15:06 -08:00 |
|
Adam Ierymenko
|
ba5008c370
|
Now make cluster announcements slightly more frequent.
|
2015-11-05 17:28:55 -08:00 |
|
Adam Ierymenko
|
3fa1b5a89d
|
Make cluster HAVE_PEER a little lighter by removing full identity. Technically this is not necessary and they will propagate over time in any case. Might restore it in some form in the future.
|
2015-11-05 17:22:22 -08:00 |
|
Adam Ierymenko
|
3e22fee842
|
Integrate deferred background processing into main OneService implementation.
|
2015-11-05 12:41:14 -08:00 |
|
Adam Ierymenko
|
8ef4edebbf
|
Deferred decode for HELLO to prevent HELLOcalypse under high load of new peers.
|
2015-11-05 12:22:58 -08:00 |
|
Adam Ierymenko
|
a42d714a87
|
.
|
2015-11-03 11:18:45 -08:00 |
|
Adam Ierymenko
|
c9e6e60c09
|
Handle ZeroTier-RFC4193 IPv6 address NDP queries inline by spoofing responses if the addressing scheme matches -- this allows multicast-free instant lookup of local IPv6 for better performance and reliability.
|
2015-11-03 10:46:41 -08:00 |
|
Adam Ierymenko
|
4e9d430476
|
Make root and relay selection somewhat more robust.
|
2015-11-02 16:03:28 -08:00 |
|
Adam Ierymenko
|
7fbe2f7adf
|
Tweak some more timings for better reliability.
|
2015-11-02 15:38:53 -08:00 |
|
Adam Ierymenko
|
60ce886605
|
Tweak some timings for better reliability.
|
2015-11-02 15:15:20 -08:00 |
|
Adam Ierymenko
|
f1b6427e63
|
Decided to make this 1.1.0 (semantic versioning increment is warranted), and add a legacy hack for older clients working with clusters.
|
2015-11-02 09:32:56 -08:00 |
|