50 Commits (deee39343e27a4ccae6a0ed8d61b8f5e4d200f45)

Author SHA1 Message Date
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
Adam Ierymenko 4e9280fc7a Rip out dead "firewall opener" code, replace in pipeline with anti-symmetric-NAT tactics. 12 years ago
Adam Ierymenko 158002d2d1 Tweak some timings and stuff. 12 years ago
Adam Ierymenko 6ab95e0391 Get : out of Path.toString() since this will conflict with : in IPv6 IPs. 12 years ago
Adam Ierymenko f13493edb2 Oops... turns out we need to differentiate incoming from outgoing TCP and indeed learn incoming TCP paths. Otherwise the recipient of a TCP connection does not know to reply via TCP! Heh. 12 years ago
Adam Ierymenko 8e587ae481 Clean dead paths from peers. 12 years ago
Adam Ierymenko acb056e3b1 Small readability fix. 12 years ago
Adam Ierymenko e6b23059ac Change the way TCP failover is invoked. 12 years ago
Adam Ierymenko 33ad3deaee Builds with new Path code. 12 years ago