summaryrefslogtreecommitdiff
path: root/node/NetworkConfig.cpp
AgeCommit message (Collapse)Author
2017-02-23Certificate of ownership -- used to secure against IP address spoofing, ↵Adam Ierymenko
especially for IPv4 and regular IPv6.
2017-02-04A bit of code cleanup.Adam Ierymenko
2016-09-07Credential TTL (tags/capabilities) should be credential time max delta, ↵Adam Ierymenko
since we could get pushed one that is newer.
2016-08-23Cleanup.Adam Ierymenko
2016-08-22Get rid of expiration in Capability and Tag and move this to NetworkConfig ↵Adam Ierymenko
so it can be set network-wide and reset if needed. Also add NetworkConfig field for this and centralize checking of credential time validity.
2016-08-09Handling of multi-part chunked network configs on the inbound side.Adam Ierymenko
2016-08-09Encode and decode of tags and capabilities in NetworkConfig.Adam Ierymenko
2016-08-02Kill network preferred relays -- this feature is gone (and was seldom used ↵Adam Ierymenko
anyway) in favor of federation.
2016-07-28Cleanup...Adam Ierymenko
2016-07-25Basic L2/L3 filter for rules engine (not integrated yet) and some cleanup.Adam Ierymenko
2016-06-23IPv6 NDP emulation flag in NetworkConfig, and implement Docker-friendlyAdam Ierymenko
(and other host friendly) IPv6 /80 magic subnetting to allow massive multicast-free NDP emulated IPv6 networks where each host can have a /48 worth of IPv6 IPs for internal containers, VMs, etc. Alan Kay, thou art avenged. https://ivanovivan.wordpress.com/2010/09/13/alan-kay-quotes/
2016-06-21Add rule type to match a COM field of the peer by ID and value because this ↵Adam Ierymenko
will be powerful.
2016-06-21Make Dictionary templatable so it can be used where we want a higher capacity.Adam Ierymenko
2016-06-17Linux bug fixes, small controller fix.Adam Ierymenko
2016-06-16New format now integrated, and it works.Adam Ierymenko
2016-06-16Big refactor mostly builds. We now have a uniform backward compatible netconf.Adam Ierymenko
2016-05-11Refactor controller to send both old and new format netconf.Adam Ierymenko
2016-05-06Simplify a bunch of NetworkConfig stuff by eliminating accessors, also makes ↵Adam Ierymenko
network controller easier to refactor.
2016-05-06Merge gateways and routes in netconf since they are the same thing.Adam Ierymenko
2016-04-26Bunch more refactoring for an even more compact NetworkConfig ↵Adam Ierymenko
representation, especially rules.
2016-04-26Replace two bools in NetworkConfig with a flags field.Adam Ierymenko
2016-04-26More refactoring to remove old Dictionary dependencies.Adam Ierymenko
2016-04-22Refactor rules table in-memory structure in new NetworkConfig to permit far ↵Adam Ierymenko
more rules with better space efficiency.
2016-04-12NetworkConfig refactor part 1Adam Ierymenko
2016-01-12boring doc stuffAdam Ierymenko
2015-10-28On semi-undocumented test net, assign a RFC4193 IPv6 address too. Will be ↵Adam Ierymenko
useful for our at-scale tests.
2015-10-01Simplify Dictionary and reduce memory usage, now no more std::maps in core.Adam Ierymenko
2015-09-24(1) Make ZT_ naming convention consistent (get rid of ZT1_), (2) Make local ↵Adam Ierymenko
interface a full sockaddr_storage instead of an int identifier, which turns out to be better for multi-homing and other uses.
2015-07-23Eliminate some poorly thought out optimizations from the netconf/controller ↵Adam Ierymenko
interaction, and go ahead and bump version to 1.0.4. For a while in 1.0.3 -dev I was trying to optimize out repeated network controller requests by using a ratcheting mechanism. If the client received a network config that was indeed different from the one it had, it would respond by instantlly requesting it again. Not sure what I was thinking. It's fundamentally unsafe to respond to a message with another message of the same type -- it risks a race condition. In this case that's exactly what could happen. It just isn't worth the added complexity to avoid a tiny, tiny amount of network overhead, so I've taken this whole path out. A few extra bytes every two minutes isn't worth fretting about, but as I recall the reason for this optimization was to save CPU on the controller. This can be achieved by just caching responses in memory *there* and serving those same responses back out if they haven't changed. I think I developed that 'ratcheting' stuff before I went full time on this. It's hard to develop stuff like this without hours of sustained focus.
2015-06-29Fix semantics of std::unique() to actually remove duplicates (hidden memory ↵Adam Ierymenko
leak?)
2015-06-26GitHub issue #191 - kill intra-network multicast rate limits (which were not ↵Adam Ierymenko
well supported or easily configurable anyway) -- this is really left over from the old collaborative multicast propagation algorithm. New algorithm (in for a while) has been sender-side replication in which sender "pays" all bandwidth, which intrinsically limits multicast.
2015-06-13Add new fields in operator==Adam Ierymenko
2015-06-13Gateways support in NetworkConfig object.Adam Ierymenko
2015-06-01Fix to GitHub issue #140 -- network preferred relays. Also go ahead and ↵Adam Ierymenko
allow RENDEZVOUS from regular peers.
2015-05-04Hack around GitHub issue #165 (?)Adam Ierymenko
2015-04-20Add per-network relays to NetworkConfig.Adam Ierymenko
2015-04-15Rename netconf to controller and NetworkConfigMaster to NetworkController ↵Adam Ierymenko
for consistency.
2015-04-08All of node/ now compiles again!Adam Ierymenko
2015-04-08Utils::now() removal and a bunch of compile fixes.Adam Ierymenko
2015-04-06Network now calls port config function as per new API.Adam Ierymenko
2015-03-18A whole lot of Sqlite netconf master work, and some fixes elsewhere in the code.Adam Ierymenko
2015-02-17Re-incorporation: ZeroTier Networks -> ZeroTier, Inc. [Delaware]Adam Ierymenko
2015-01-05Cleanup, add tristate to config code in Network, and happy new year!Adam Ierymenko
2014-10-10(1) Back off a little on default max multicast limit since 128 is pretty ↵Adam Ierymenko
bandwidth heavy, (2) add a little to default multicast rate limit since new MC algo is fairerererer, (3) decided not to involve netconf masters in multicast so take that out of list of who gets LIKEs.
2014-10-07Add IPv4 address assignment to ffffffffffffffff test network.Adam Ierymenko
2014-10-04Pull logic to always send new multicasts to supernode since we need to do ↵Adam Ierymenko
that differently, re-add support for active bridges, and remove some gratuitous use of std::set where not needed.
2014-10-03Plumb injectPacketFromHost through to API.Adam Ierymenko
2014-09-25.Adam Ierymenko
2014-09-24.Adam Ierymenko
2014-09-05Bit of network config parser cleanup.Adam Ierymenko