summaryrefslogtreecommitdiff
path: root/node/IncomingPacket.cpp
AgeCommit message (Collapse)Author
2015-06-01Fix to GitHub issue #140 -- network preferred relays. Also go ahead and ↵Adam Ierymenko
allow RENDEZVOUS from regular peers.
2015-05-21Completely factor out "desperation" from the core. I thought of a ↵Adam Ierymenko
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.
2015-05-04So we need to keep track of external surface per reporter, since some NATs ↵Adam Ierymenko
assign different external IPs for each external destination. Keeping just one known surface could create a race condition.
2015-04-30Add reported external address to OK(HELLO) TRACE to verify SN behavior.Adam Ierymenko
2015-04-30Learn external IP addresses on OK(HELLO) too.Adam Ierymenko
2015-04-24Windows now builds and runs selftest correctly, and fixed a Windows (and ↵Adam Ierymenko
possibly other platforms) issue in Phy<>.
2015-04-17Add some TRACE instrumentation to external surface address awareness.Adam Ierymenko
2015-04-15More cleanup, and fix for the extremely unlikely case of identity collision.Adam Ierymenko
2015-04-15Rename netconf to controller and NetworkConfigMaster to NetworkController ↵Adam Ierymenko
for consistency.
2015-04-15Disable a few noisy TRACEs, and limit how often we confirm new paths to ↵Adam Ierymenko
avoid flooding.
2015-04-09TRACE compile fixes, other fixes, and it basically works! It says HELLO.Adam Ierymenko
2015-04-08Add events for packet decode errors, etc., and re-implement TRACE as an event.Adam Ierymenko
2015-04-07Implemented empirical determination of external addressing, paritioned per ↵Adam Ierymenko
scope.
2015-04-07Some external surface awareness work, and IP scope classification.Adam Ierymenko
2015-04-06Add code to check external surface against reported surface from other ↵Adam Ierymenko
trusted peers, and also rename ExternalSurface to SelfAwareness because lulz.
2015-04-06Bring IncomingPacket into line with new changes.Adam Ierymenko
2015-04-01Tons more refactoring: simplify Network, move explicit management of Tap ↵Adam Ierymenko
out, redo COM serialization, etc.
2015-02-24RedisNetworkConfigMaster in its own folder. Also fix some hex/decimal Redis ↵Adam Ierymenko
database confusion.
2015-02-24Make NetworkConfigMaster a plugin to get Redis and other non-endpoint code ↵Adam Ierymenko
out of node/
2015-02-17Re-incorporation: ZeroTier Networks -> ZeroTier, Inc. [Delaware]Adam Ierymenko
2015-02-02Drop support for legacy P5 multicast, as there are fewer than 1% of these ↵Adam Ierymenko
remaining on the network.
2015-01-09Add confirmation step to new netconf, with the caveat that it will be ↵Adam Ierymenko
disabled for older netconf servers to avoid race. Also add some comments.
2015-01-08Build fixes.Adam Ierymenko
2015-01-08C++ network config master ready to test.Adam Ierymenko
2015-01-05Cleanup, add tristate to config code in Network, and happy new year!Adam Ierymenko
2015-01-05Strip out old Service code, add new service message type.Adam Ierymenko
2014-12-16locallyValidate() is expensive -- stop doing it on every HELLO since in most ↵Adam Ierymenko
cases we already know the identity and know it is valid
2014-11-26docsAdam Ierymenko
2014-11-25Add ZT_SUPPORT_LEGACY_MULTICAST ifdef to enable the legacy code to all be ↵Adam Ierymenko
toggled.
2014-11-21Send multicasts in random order.Adam Ierymenko
This should not affect most users, but on large networks it should cause service announcements to work a lot better. This is the result of a prolonged discussion with a user about the visibility of game servers on a large network. The old multicast algorithm was de-facto randomized due to its distributed nature, while the new algorithm is more deterministic. This will restore some randomization beyond limit-overflow conditions. It won't affect small networks at all.
2014-11-13Prevent "software laser" in legacy multicast support. Already hotpatched in ↵Adam Ierymenko
supernodes.
2014-10-29More cleanup, and fix a bug in Multicaster::gather()Adam Ierymenko
2014-10-29Moderate efficiency improvement on multicast gather result parsing, and go ↵Adam Ierymenko
ahead and keep track of total known peers.
2014-10-21Simplify locking semantics some more to address a deadlock.Adam Ierymenko
2014-10-14More fixes to legacy support, and to a potential issue on quit.Adam Ierymenko
2014-10-13Permanently retire peers.persist, but make iddb.d always enabled instead ↵Adam Ierymenko
since identities are what we really want to cache.
2014-10-11Delete bunch of commented out code.Adam Ierymenko
2014-10-11Stop persisting last announcement time since Multicaster is volatile. Also ↵Adam Ierymenko
some more legacy multicast fixes.
2014-10-11Fixes to legacy peer support.Adam Ierymenko
2014-10-10Add a sanity limit to legacy multicast repeater function in supernode-mode ↵Adam Ierymenko
nodes, and change netconf-master to issue multicast limit (ml) instead of old p5 stuff.
2014-10-10<= MTUAdam Ierymenko
2014-10-09Return self in GATHER requests if self is a member of multicast group, and ↵Adam Ierymenko
reinstate legacy support.
2014-10-09New multicast bug fixes, TRACE improvements, and temporarily disable legacy ↵Adam Ierymenko
multicast for debugging purposes.
2014-10-09Reorg multicast packet, and a whole bunch of refactoring around the pushing ↵Adam Ierymenko
of certificates of membership.
2014-10-09Supernode propagation of legacy multicast frames was brokezored.Adam Ierymenko
2014-10-06Bug fix in new multicast frame handler, handling of old "P5" multicast ↵Adam Ierymenko
frames in new way.
2014-10-05Bump version to 1.0.0, add legacy support code to Multicaster to not send ↵Adam Ierymenko
new frame to known-to-be-old peers.
2014-10-03Do not multicast to self.Adam Ierymenko
2014-10-02Last steps before test: parse OK(MULTICAST_GATHER) and OK(MULTICAST_FRAME)Adam Ierymenko
2014-10-02Make multicast gathering a bit smarter.Adam Ierymenko