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 |
|
Adam Ierymenko
|
1b4cc4af5c
|
Fix evil bug, and instrument/assert on some other stuff, and a bit of cleanup.
|
2015-10-30 15:54:40 -07:00 |
|
Adam Ierymenko
|
7382c328da
|
Null pointer bug appears fixed... testing again at large scale.
|
2015-10-30 14:23:28 -07:00 |
|
Adam Ierymenko
|
641b0dec44
|
.
|
2015-10-30 14:12:20 -07:00 |
|
Adam Ierymenko
|
2fbb5d0bbf
|
.
|
2015-10-30 14:11:45 -07:00 |
|
Adam Ierymenko
|
d8dbbf7484
|
Add some debug code in TRACE mode to catch a bug.
|
2015-10-30 14:11:10 -07:00 |
|
Adam Ierymenko
|
377ccff600
|
getPeer() had a small potential to be unsafe.
|
2015-10-30 13:39:28 -07:00 |
|
Adam Ierymenko
|
b6725c4415
|
Optimize AntiRecursion.
|
2015-10-30 11:48:33 -07:00 |
|
Adam Ierymenko
|
5bfa29dded
|
Make antirec tail len slightly shorter, better performance and still plenty long enough.
|
2015-10-30 11:09:40 -07:00 |
|
Adam Ierymenko
|
d6c0d176ee
|
Periodically re-announce peers that we have.
|
2015-10-29 10:10:09 -07:00 |
|
Adam Ierymenko
|
9f0f0197fe
|
More dead code removal.
|
2015-10-29 09:44:25 -07:00 |
|
Adam Ierymenko
|
a994573a43
|
Eliminate some more dead code. We may do path trust, but not like that.
|
2015-10-29 09:42:15 -07:00 |
|
Adam Ierymenko
|
883c84bdb9
|
Tweak some timings, and remove some dead code.
|
2015-10-29 09:39:36 -07:00 |
|
Adam Ierymenko
|
68d6d3c4ff
|
Fix bug in peer count.
|
2015-10-28 14:29:08 -07:00 |
|
Adam Ierymenko
|
0034efafe4
|
On semi-undocumented test net, assign a RFC4193 IPv6 address too. Will be useful for our at-scale tests.
|
2015-10-28 11:08:15 -07:00 |
|
Adam Ierymenko
|
0fd15d9cf3
|
Fix inverted sense bug.
|
2015-10-28 10:38:37 -07:00 |
|
Adam Ierymenko
|
938d0a970b
|
TRACE build fixes.
|
2015-10-28 10:01:32 -07:00 |
|
Adam Ierymenko
|
fdc3e103cc
|
Cleanup and docs.
|
2015-10-28 09:38:33 -07:00 |
|
Adam Ierymenko
|
c1b0329969
|
Only check IP equality to detect external surface changes (should prevent some spurious resets under symmetric NATs), and simplify some logic.
|
2015-10-28 09:32:07 -07:00 |
|
Adam Ierymenko
|
da93712846
|
Clean up PUSH_DIRECT_PATH limits a bit more and make them a bit smarter.
|
2015-10-28 09:11:30 -07:00 |
|
Adam Ierymenko
|
cdc99bfee1
|
Add a circuit breaker for VERB_PUSH_DIRECT_PATHS.
|
2015-10-27 18:18:26 -07:00 |
|
Adam Ierymenko
|
88b100e5d0
|
More cleanup.
|
2015-10-27 17:59:17 -07:00 |
|
Adam Ierymenko
|
51fcc75354
|
Some cleanup, and use getPeerNoCache() exclusively in Cluster.
|
2015-10-27 17:36:47 -07:00 |
|
Adam Ierymenko
|
4221552c0b
|
Use getPeerNoCache() in Cluster to avoid keeping all peers cached everywhere.
|
2015-10-27 16:52:44 -07:00 |
|
Adam Ierymenko
|
cc1b275ad9
|
Replicate peer endpoints and forget paths if we have them -- this allows two clusters to talk to each other, whereas forgetting all paths does not.
|
2015-10-27 16:47:13 -07:00 |
|
Adam Ierymenko
|
cc6080fe38
|
(1) No need to confirm if we are a root (small optimization), (2) Refactor peer affinity tracking.
|
2015-10-27 15:57:26 -07:00 |
|
Adam Ierymenko
|
6399f6f094
|
This no longer has to be quite so fast.
|
2015-10-27 15:02:15 -07:00 |
|
Adam Ierymenko
|
218ef07d8e
|
Build fix in TRACE mode.
|
2015-10-27 15:01:11 -07:00 |
|
Adam Ierymenko
|
16bc3e0398
|
Factor out RemotePath subclass of Path -- no longer needed, just cruft.
|
2015-10-27 15:00:16 -07:00 |
|
Adam Ierymenko
|
40976c02a4
|
Forget paths to peers if we are handing them off.
|
2015-10-27 14:37:38 -07:00 |
|
Adam Ierymenko
|
f692cec763
|
Change how cluster relays packets -- just PROXY_UNITE and then send packet via normal ZeroTier front plane -- more efficient and eliminates fragmentation issues.
|
2015-10-27 14:04:12 -07:00 |
|
Adam Ierymenko
|
cfe166ef35
|
Tweak some size limits.
|
2015-10-27 12:29:01 -07:00 |
|
Adam Ierymenko
|
0ffbd05c0e
|
--wtf; prevent roots from TCP fallback
|
2015-10-27 12:21:57 -07:00 |
|
Adam Ierymenko
|
a1a0ee4edb
|
Fix infinite loop in Cluster, clean up some stuff elsewhere, and back out rate limiting in PUSH_DIRECT_PATHS for now (but we will do something else to mitigate amplification attacks)
|
2015-10-27 12:01:00 -07:00 |
|
Adam Ierymenko
|
54a99d8e32
|
Well that was broken.
|
2015-10-27 11:14:07 -07:00 |
|
Adam Ierymenko
|
62db18b6dd
|
Lessen this limit just a bit to make cluster settle faster.
|
2015-10-27 11:01:58 -07:00 |
|
Adam Ierymenko
|
f32e9d07dd
|
Don't include COM if not necessary (fix).
|
2015-10-27 10:58:01 -07:00 |
|
Adam Ierymenko
|
700c3166b7
|
Fix inverted sense bug.
|
2015-10-27 10:51:11 -07:00 |
|
Adam Ierymenko
|
17e7528e2c
|
More root cleanup.
|
2015-10-27 10:40:31 -07:00 |
|
Adam Ierymenko
|
8a7a0b6b88
|
Cleanup, including simplification of root server picking algorithm since we no longer need all that craziness.
|
2015-10-27 10:37:39 -07:00 |
|
Adam Ierymenko
|
9617208e40
|
Some cleanup, and use VERB_PUSH_DIRECT_PATHS to redirect newer peers.
|
2015-10-27 09:53:43 -07:00 |
|
Adam Ierymenko
|
69857b4ba8
|
Refactor cluster redirects to move code to push peers out of the actual Cluster function that checks for redirect, and clean up Peer::received() to be a bit more logical.
|
2015-10-27 09:36:48 -07:00 |
|
Adam Ierymenko
|
e713f7a54c
|
Can redirect in response to a few more verbs, just not these.
|
2015-10-26 18:20:40 -07:00 |
|
Adam Ierymenko
|
98d856daa2
|
Only send redirects to the sending InetAddress and only in response to a set of certain frame types to avoid potential race conditions.
|
2015-10-26 17:58:51 -07:00 |
|
Adam Ierymenko
|
8bfb02ba3c
|
Only send redirects for the same address class, and elminiate some TRACE noise.
|
2015-10-26 16:55:55 -07:00 |
|
Adam Ierymenko
|
0b82c9ebad
|
Fix infinite loop if there are no live roots (never happened before?!? wow!)
|
2015-10-26 16:09:56 -07:00 |
|
Adam Ierymenko
|
de761c5a82
|
Fix test world def.
|
2015-10-26 15:47:32 -07:00 |
|
Adam Ierymenko
|
6cf1da166f
|
Add the whole new World, though with test identities at this point.
|
2015-10-26 15:12:28 -07:00 |
|
Adam Ierymenko
|
debed1ac2d
|
Expose cluster status in /status JSON response.
|
2015-10-26 13:06:10 -07:00 |
|
Adam Ierymenko
|
5ff7733f84
|
More plumbing of cluster status.
|
2015-10-26 12:49:17 -07:00 |
|
Adam Ierymenko
|
865acfa40f
|
Cluster status plumbing.
|
2015-10-26 12:41:08 -07:00 |
|
Adam Ierymenko
|
3ce5ad9e2c
|
For forward compatibility, add minimal parse for some future physical address types.
|
2015-10-26 10:42:30 -07:00 |
|
Adam Ierymenko
|
d2b1dfe424
|
Fully specify new network in alice-test, this will (with different identities) eventually become the World.
|
2015-10-23 15:51:50 -07:00 |
|
Adam Ierymenko
|
35676217e8
|
Refactor multicast group announcement to work directly or indirectly.
|
2015-10-23 14:50:07 -07:00 |
|
Adam Ierymenko
|
e9648a6cdf
|
Clarify logic in pinging, and prevent roots from pinging "down."
|
2015-10-23 14:05:12 -07:00 |
|
Adam Ierymenko
|
e6a63f5547
|
Fix bug in setWorld that might have caused a peer entry for myself (which would never be used)
|
2015-10-23 13:57:02 -07:00 |
|
Adam Ierymenko
|
29b966894c
|
(1) Fix bug in geo-ip service that prevented cache lookup, (2) fix problem in SelfAwareness (will need to test ALL versions in the wild with this), and (3) add more TRACE instrumentation to Cluster.
|
2015-10-23 13:03:34 -07:00 |
|
Adam Ierymenko
|
964b30902a
|
Cluster fix: was accumulating remote endpoints endlessly.
|
2015-10-23 11:51:18 -07:00 |
|
Adam Ierymenko
|
7711eba297
|
More cluster wiring...
|
2015-10-22 16:02:01 -07:00 |
|
Adam Ierymenko
|
978b056a01
|
Wire in redirectPeer(), now about ready to test clustering!
|
2015-10-20 17:36:10 -07:00 |
|
Adam Ierymenko
|
6a7b47e5e1
|
Forgot a return true.
|
2015-10-20 17:27:57 -07:00 |
|
Adam Ierymenko
|
d6dee7bb5c
|
Clustered handling of relaying.
|
2015-10-20 17:22:53 -07:00 |
|
Adam Ierymenko
|
35a12b94ea
|
Outfit Cluster with TRACE for debugging.
|
2015-10-20 16:48:49 -07:00 |
|
Adam Ierymenko
|
2258e36a59
|
Move replication of COMs to avoid race condition.
|
2015-10-20 16:34:21 -07:00 |
|
Adam Ierymenko
|
59e1444b27
|
Finish wiring up Cluster, fix some issues with other recent changes.
|
2015-10-20 16:31:41 -07:00 |
|
Adam Ierymenko
|
eb79d4a2f3
|
Wire up peer announcement in cluster.
|
2015-10-20 16:24:21 -07:00 |
|
Adam Ierymenko
|
57e29857cf
|
Cluster work -- integrating with the rest of the code.
|
2015-10-20 15:27:53 -07:00 |
|
Adam Ierymenko
|
5e6eae620b
|
Make _members dynamically allocated due to static array limit on ARM.
|
2015-10-19 16:18:57 -07:00 |
|
Adam Ierymenko
|
69dad37d8f
|
Restore default World for commit to upstream
|
2015-10-19 15:23:43 -07:00 |
|
Adam Ierymenko
|
cfdcce6d12
|
Fix very obscure IP scope classification logic bug.
|
2015-10-19 15:19:04 -07:00 |
|
Adam Ierymenko
|
0b2e5ed499
|
Fix some broken logic in Path::reliable()
|
2015-10-19 15:11:43 -07:00 |
|
Adam Ierymenko
|
9150778757
|
.
|
2015-10-19 15:04:26 -07:00 |
|
Adam Ierymenko
|
50f3ccd3c9
|
.
|
2015-10-19 15:03:58 -07:00 |
|
Adam Ierymenko
|
584072fa6a
|
Fix for V4/V6 stable addressing.
|
2015-10-19 14:04:36 -07:00 |
|
Adam Ierymenko
|
3adb183c5f
|
Fix bad COM attachment bug and eliminate an unnecessary redundant check.
|
2015-10-19 13:38:27 -07:00 |
|
Adam Ierymenko
|
95953b48f9
|
Do not allow VERB_RENDEZVOUS from non-upstream peers to block potential DOS vector.
|
2015-10-19 12:56:29 -07:00 |
|
Adam Ierymenko
|
aa6e3c79a0
|
Some test stuff that will not be pushed elsewhere.
|
2015-10-19 10:49:31 -07:00 |
|
Adam Ierymenko
|
738fa5a5e5
|
.
|
2015-10-16 12:10:57 -07:00 |
|
Adam Ierymenko
|
cc4d0199e7
|
Fix vProto init.
|
2015-10-16 10:58:59 -07:00 |
|
Adam Ierymenko
|
781f06ef82
|
Accept OK for confirm of HELLO or ECHO.
|
2015-10-16 10:48:38 -07:00 |
|
Adam Ierymenko
|
f9f60f89d9
|
Peer save/restore fix.
|
2015-10-16 10:45:58 -07:00 |
|
Adam Ierymenko
|
5ce3aac929
|
Add rate limit on receive of DIRECT_PATH_PUSH to prevent DOS exploitation.
|
2015-10-16 10:28:09 -07:00 |
|
Adam Ierymenko
|
2229e91b57
|
IPv6 support fixes.
|
2015-10-16 10:10:12 -07:00 |
|
Adam Ierymenko
|
2debde3451
|
GitHub issue #235, and I also see no reason not to communicate with people from other Worlds.
|
2015-10-15 07:22:17 -07:00 |
|
Adam Ierymenko
|
9ece8c465e
|
decrypt fix
|
2015-10-14 15:49:41 -07:00 |
|
Adam Ierymenko
|
59389b3dce
|
Untested cluster code, not enabled.
|
2015-10-14 14:17:55 -07:00 |
|
Adam Ierymenko
|
619e113748
|
Work in progress on Cluster for new root infrastructure, multi-homing.
|
2015-10-14 14:12:12 -07:00 |
|
Adam Ierymenko
|
c312ae221f
|
Fix for world size in OK(HELLO)
|
2015-10-14 10:45:33 -07:00 |
|
Adam Ierymenko
|
719233617c
|
Add uint16_t key to Hashtable, and make Salsa20 zero its keyspace on destruction.
|
2015-10-14 10:14:07 -07:00 |
|
Adam Ierymenko
|
489e1a5b83
|
Don't keep connections up longer than the alive timeout (unless they are relays or roots)
|
2015-10-13 13:51:54 -07:00 |
|
Adam Ierymenko
|
824ed99160
|
.
|
2015-10-13 12:42:54 -07:00 |
|
Adam Ierymenko
|
70d8e3ad94
|
Expose world ID and world timestamp in ZT_NodeStatus
|
2015-10-13 12:31:38 -07:00 |
|
Adam Ierymenko
|
e268d9492a
|
cleanup
|
2015-10-13 12:18:47 -07:00 |
|
Adam Ierymenko
|
123c466843
|
Full integration of World and World updates.
|
2015-10-13 12:17:47 -07:00 |
|
Adam Ierymenko
|
5d2f523e81
|
World stuff...
|
2015-10-13 12:10:44 -07:00 |
|
Adam Ierymenko
|
05677f57e2
|
Add C output to mkworld.
|
2015-10-13 08:55:21 -07:00 |
|
Adam Ierymenko
|
cae58f43f1
|
More World stuff, and mkworld.
|
2015-10-13 08:49:36 -07:00 |
|
Adam Ierymenko
|
1b1945c63e
|
Work in progress on refactoring root-topology into World and adding in-band updates.
|
2015-10-12 18:25:29 -07:00 |
|
Adam Ierymenko
|
70fe7dd1fd
|
cleanup
|
2015-10-12 16:40:57 -07:00 |
|
Adam Ierymenko
|
eff1fe3c61
|
Create files for each hop (more convenient) and fix a packet parse bug.
|
2015-10-09 16:22:34 -07:00 |
|
Adam Ierymenko
|
aec13b50fd
|
Be a bit more verbose in circuit test reports to more clearly track current and upstream hop in graph traversal history.
|
2015-10-09 15:05:26 -07:00 |
|
Adam Ierymenko
|
a95fa379cc
|
Circuit tests basically work but need some tweaks, and fix some issues found with valgrind.
|
2015-10-09 14:51:38 -07:00 |
|
Adam Ierymenko
|
0c498556d5
|
Unroll Salsa20 fully for a little more speed (non-SSE now almost as fast as SSE)
|
2015-10-09 09:39:27 -07:00 |
|
Adam Ierymenko
|
3fa6dd377f
|
docs
|
2015-10-09 08:51:57 -07:00 |
|
Adam Ierymenko
|
160278c489
|
Little bit of reorg in Salsa20 which seems to speed things up very slightly.
|
2015-10-08 17:42:53 -07:00 |
|
Adam Ierymenko
|
558775d544
|
Merge branch 'adamierymenko-dev' of http://10.6.6.2/zerotier/ZeroTierOne into adamierymenko-dev
|
2015-10-08 13:26:43 -07:00 |
|
Adam Ierymenko
|
a3876353ca
|
Abiltiy to post a test via the controller web API, and parsing of CIRCUIT_TEST_REPORT messages.
|
2015-10-08 13:25:38 -07:00 |
|
Adam Ierymenko
|
273f0d18b0
|
docs
|
2015-10-08 09:05:25 -07:00 |
|
Grant Limberg
|
9347d6c866
|
Make it so ZeroTierOne.h can be used with a C compiler again.
|
2015-10-07 18:04:40 -07:00 |
|
Adam Ierymenko
|
fea1b6b2c3
|
docs
|
2015-10-07 16:25:08 -07:00 |
|
Adam Ierymenko
|
0ce0bc00d2
|
Make sure received() gets called for some new messages, and docs.
|
2015-10-07 16:20:54 -07:00 |
|
Adam Ierymenko
|
69b44bf9a5
|
Finally add an ECHO.
|
2015-10-07 16:11:50 -07:00 |
|
Adam Ierymenko
|
73cafbe0ec
|
Limit proof of work difficulty to something sane.
|
2015-10-07 13:46:44 -07:00 |
|
Adam Ierymenko
|
e5f168f599
|
Add proof of work request for future DDOS mitigation use.
|
2015-10-07 13:35:46 -07:00 |
|
Adam Ierymenko
|
7d62dbe9f7
|
Tune NAT-t keepalives so that timing is better obeyed, clean up a build warning, and fix a potential source of network recursion (though harmless).
|
2015-10-07 11:57:59 -07:00 |
|
Adam Ierymenko
|
13f14c2f4c
|
Kill debug line.
|
2015-10-07 10:56:47 -07:00 |
|
Adam Ierymenko
|
c952fbbd8d
|
Only enable 128-bit Poly1305 on X86_64 right now. Has compilation issues on ARM, but the 64-bit version should be fine.
|
2015-10-07 10:40:59 -07:00 |
|
Adam Ierymenko
|
ab0228f626
|
More cleanup and simple refactoring, consolidate InetAddres serialize/deserialize into the class.
|
2015-10-07 10:30:47 -07:00 |
|
Adam Ierymenko
|
1b2cac0cc5
|
Trim some cruft that is not used and probably never would be.
|
2015-10-07 09:38:33 -07:00 |
|
Adam Ierymenko
|
598a1d8dd7
|
Try reopening /dev/urandom if there is a problem.
|
2015-10-06 18:10:40 -07:00 |
|
Adam Ierymenko
|
64aaea3978
|
Cleanup, and add an even faster Poly1305 on systems that support it.
|
2015-10-06 18:04:53 -07:00 |
|
Adam Ierymenko
|
477feee8a3
|
Some work on CIRCUIT_TEST, and a significant speedup to Poly1305.
|
2015-10-06 17:55:57 -07:00 |
|
Adam Ierymenko
|
3593fb3462
|
Send initial CIRCUIT_TEST packet.
|
2015-10-06 15:16:41 -07:00 |
|
Adam Ierymenko
|
d3f29d09e8
|
Plumbing through circuit test stuff.
|
2015-10-06 14:42:51 -07:00 |
|
Adam Ierymenko
|
5341afcdcd
|
Handling of CIRCUIT_TEST, should be ready to test.
|
2015-10-06 11:47:16 -07:00 |
|
Adam Ierymenko
|
57c857e89a
|
Fix TRACE output.
|
2015-10-06 06:57:00 -07:00 |
|
Grant Limberg
|
c16ad053b6
|
no toString() method on peer. Commenting out for now.
|
2015-10-02 19:39:46 -07:00 |
|
Grant Limberg
|
6080a45c9c
|
change cert to com. no variable named cert.
|
2015-10-02 19:39:13 -07:00 |
|
Adam Ierymenko
|
5384f185ae
|
Simplify Dictionary and reduce memory usage, now no more std::maps in core.
|
2015-10-01 18:12:16 -07:00 |
|
Adam Ierymenko
|
76a95dc58f
|
The return of peer peristence.
|
2015-10-01 17:09:01 -07:00 |
|
Adam Ierymenko
|
5076c49210
|
Peer serialization and related changes.
|
2015-10-01 15:40:54 -07:00 |
|
Adam Ierymenko
|
2fa21aa676
|
.
|
2015-10-01 13:43:57 -07:00 |
|
Adam Ierymenko
|
3999e468b7
|
Need to hold nconf so *com does not die while being used.
|
2015-10-01 13:43:15 -07:00 |
|
Adam Ierymenko
|
6693149f3e
|
Send COM with MULTICAST_GATHER for future use.
|
2015-10-01 13:34:12 -07:00 |
|
Adam Ierymenko
|
2c196307ee
|
--bugs;
|
2015-10-01 13:01:18 -07:00 |
|
Adam Ierymenko
|
d6676a9d6c
|
Always announce multicast groups, not just to peers with direct links, and push network COMs to any MULTICAST_LIKE recipient for future use.
|
2015-10-01 12:50:19 -07:00 |
|
Adam Ierymenko
|
a7409850d6
|
Get trim() out of core where it is not needed.
|
2015-10-01 12:37:18 -07:00 |
|
Adam Ierymenko
|
53e5f94b99
|
.
|
2015-10-01 12:25:43 -07:00 |
|
Adam Ierymenko
|
64bf3ffe6c
|
Mutex cleanup.
|
2015-10-01 11:44:09 -07:00 |
|
Adam Ierymenko
|
9405150b11
|
Restore group announcement on Peer::receive() but centralize packet composition in one place.
|
2015-10-01 11:37:02 -07:00 |
|
Adam Ierymenko
|
a3db7d0728
|
Refactor: move network COMs out of Network and into Peer in prep for tightening up multicast lookup and other things.
|
2015-10-01 11:11:52 -07:00 |
|
Adam Ierymenko
|
11ff96ba1d
|
Consider IPv6 paths reliable (no constant keepalives needed)
|
2015-09-30 15:20:08 -07:00 |
|
Adam Ierymenko
|
0d0039674f
|
Add new verb names, and fix some Mac compiler flags.
|
2015-09-30 14:48:07 -07:00 |
|
Adam Ierymenko
|
789046ca57
|
Speed up Salsa20 just a bit.
|
2015-09-30 14:35:05 -07:00 |
|
Adam Ierymenko
|
1a4f16e0ed
|
More work on circuit testing...
|
2015-09-30 13:59:05 -07:00 |
|
Adam Ierymenko
|
2d0adb562d
|
Specify circuit test messages.
|
2015-09-27 11:37:39 -07:00 |
|
Adam Ierymenko
|
f69454ec98
|
(1) Make ZT_ naming convention consistent (get rid of ZT1_), (2) Make local interface a full sockaddr_storage instead of an int identifier, which turns out to be better for multi-homing and other uses.
|
2015-09-24 16:21:36 -07:00 |
|
Adam Ierymenko
|
0e5aac6a11
|
Prefer IPv6 paths if available.
|
2015-09-23 16:16:36 -07:00 |
|
Adam Ierymenko
|
a3ed5277ef
|
Make sure ZT_NO_TYPE_PUNNING also obeyed here.
|
2015-09-23 14:09:27 -07:00 |
|
Adam Ierymenko
|
2a527ea82e
|
Fix for timer jitter problem.
|
2015-09-23 14:01:41 -07:00 |
|
Adam Ierymenko
|
367ffde00c
|
Plumb through localInterfaceId to track local interfaces corresponding with remote addresses.
|
2015-09-23 13:49:56 -07:00 |
|
Adam Ierymenko
|
4464fa5d39
|
Eliminate another warning.
|
2015-09-23 10:29:05 -07:00 |
|