58 Commits (ec8e1178e5cfbe9cd790928dd06562af734a2d48)

Author SHA1 Message Date
Adam Ierymenko a97918f812 Windows build fixes. 9 years ago
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. 9 years ago
Adam Ierymenko 2bf9145ae6 Outgoing side of packet counter for link quality reporting. Also some cleanup and a cluster mode build fix. 9 years ago
Adam Ierymenko 5b6d27e659 Implement relay policy, and setting multicast limit to 0 now disables multicast on the network as would be expected. 10 years ago
Adam Ierymenko 8ef0e4bbaf Get rid of HELLO rate gate on path since its basically worthless. There are 65535 ports per IP. 10 years ago
Adam Ierymenko ab9afbc749 (1) Public networks now get COMs even though they do not gate with them since they will need them to push auth for multicast stuff, (2) added a bunch of rate limit circuit breakers for anti-DOS, (3) cleanup. 10 years ago
Adam Ierymenko a7d988745b Use ECHO instead of HELLO where possible. 10 years ago
Adam Ierymenko 48a374c82c (1) fix crazy bug introduced in doRENDEZVOUS(), (2) reclaim Paths after paths[] condense, (3) fix an edge case around symmetric NAT and external IP change detection. 10 years ago
Adam Ierymenko 43780742b0 comments, docs 10 years ago
Adam Ierymenko d7f2287ce9 More tweaks to path behavior. 10 years ago
Adam Ierymenko 4992ac2d9f Cluster sub-optimal is in fact necessary... 10 years ago
Adam Ierymenko e8f6b4b5d3 Rest of big Path canonicalization refactor. 10 years ago
Adam Ierymenko a3bdae9735 Work in progress: Path canonicalization refactor. 10 years ago
Adam Ierymenko 584228b2b5 Dead code removal, and get rid of reliable() because we will no longer make that distinction. 10 years ago
Adam Ierymenko 2c995f1f91 IPv6 links are unfortunately not "reliable." Many IPv6 gateways, while not 10 years ago
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. 10 years ago
Adam Ierymenko 4c455876f9 Revise peer path weighting to always prioritize cluster-optimal paths. 10 years ago
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. 10 years ago
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. 10 years ago
Adam Ierymenko 4e4fd51117 boring doc stuff 10 years ago
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 10 years ago
Adam Ierymenko d8143a5e18 Implement first pass on rapid dead path detection, and increment version to 1.1.3 (dev) 10 years ago
Adam Ierymenko 436c1fac1d Selectively move over changes from "edge" to "dev" excluding netcon. 10 years ago
Adam Ierymenko aa39b0dc24 Show paths as active or preferred in listpeers. 10 years ago
Adam Ierymenko 2160164e8c (1) Get rid of path sorting and just scan them, since sorting may have been a premature optimization that introduced a regression and path instability in a few edge cases, and (2) do not attempt to contact remote paths received via PUSH_DIRECT_PATH if we already have that path and it is already active (dumb, should have done this originally) 10 years ago
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. 11 years ago
Adam Ierymenko 9f0f0197fe More dead code removal. 11 years ago
Adam Ierymenko a994573a43 Eliminate some more dead code. We may do path trust, but not like that. 11 years ago
Adam Ierymenko 51fcc75354 Some cleanup, and use getPeerNoCache() exclusively in Cluster. 11 years ago
Adam Ierymenko 16bc3e0398 Factor out RemotePath subclass of Path -- no longer needed, just cruft. 11 years ago
Adam Ierymenko 0b2e5ed499 Fix some broken logic in Path::reliable() 11 years ago
Adam Ierymenko 5076c49210 Peer serialization and related changes. 11 years ago
Adam Ierymenko a3db7d0728 Refactor: move network COMs out of Network and into Peer in prep for tightening up multicast lookup and other things. 11 years ago
Adam Ierymenko 11ff96ba1d Consider IPv6 paths reliable (no constant keepalives needed) 11 years ago
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. 11 years ago
Adam Ierymenko 0e5aac6a11 Prefer IPv6 paths if available. 11 years ago
Adam Ierymenko 0b354803f3 Clean up some YAGNI issues with implementation of GitHub issue #180, and make best path choice aware of path rank. 11 years ago
Adam Ierymenko c863ff3f02 A bunch of comments and cleanup, including some to yesterday's direct path pushing changes. Move path viability check to one place, and stop trying to use link-local addresses since they are not reliable. 11 years ago
Adam Ierymenko 235f4762b7 Plumbing for local interface addresses -- GitHub issue #180 11 years ago
Adam Ierymenko 93bb934d4e Some cleanup, docs, and Path -> Path > RemotePath refactor. 11 years ago
Adam Ierymenko feddd946f9 For curiosity add Salsa20/8 to benchmarks. 11 years ago
Adam Ierymenko d9006712f6 Completely factor out "desperation" from the core. I thought of a significantly simpler way to move all of this logic entirely into the containing service, liberating the core from any concern over the nature of its pipe to the outside world. 11 years ago
Adam Ierymenko 49f031ccb4 Tons of refactoring, change to desperation algorithm to use max of core or link, porting over core loop code from old Node.cpp to new CAPI version, etc. 11 years ago
Adam Ierymenko 52c3b7c34e Implemented empirical determination of external addressing, paritioned per scope. 11 years ago
Adam Ierymenko 6eb9289367 Bunch more cleanup, improvements to NAT traversal logic, finished updating Switch. 11 years ago
Adam Ierymenko ee0f56355b Send path simplification. 11 years ago
Adam Ierymenko a69e1876f1 The concept of link desperation (escalating to less desirable transports) simplifies a ton of stuff. Loads of spaghetti logic can die since we no longer have to make these decisions down in the core. 11 years ago
Adam Ierymenko 93012b0ee5 Re-incorporation: ZeroTier Networks -> ZeroTier, Inc. [Delaware] 11 years ago
Adam Ierymenko 4e95384ad6 Cleanup, add tristate to config code in Network, and happy new year! 11 years ago
Adam Ierymenko 0e47f13f14 Simplify locking semantics some more to address a deadlock. 12 years ago