f4416bfadc
introduce Routes.EnsureRecalculated A means to ensure that any preceeding route recalculation requests have been processed. It's akin to a global promise.
Matthias Radestock2015-04-05 10:25:18 +01:00
6bc660068f
use GossipSender for GossipBroadcast This makes GossipBroadcast properly async.
Matthias Radestock2015-04-05 10:22:49 +01:00
8a2828d57d
add "representation of received update" to return of Peers.ApplyUpdate
Matthias Radestock2015-04-05 10:17:16 +01:00
9b9d8a03aa
refactor: make Peer.Connections() return a set instead of a slice This is more flexible since it allows callers to perform efficient lookups on the result.
Matthias Radestock2015-04-06 13:57:13 +01:00
fe4d8b7767
Merge pull request #518 from rade/canonical_sets
rade2015-04-06 13:29:03 +01:00
6f2f25aca5
don't complain in weave status about weavedns absence/errors it's tiresome to see this when weavedns isn't running
Matthias Radestock2015-04-05 18:50:17 +01:00
4ebbdabfa1
never, ever use 10.0 for anything it has a high probability of conflicting
Matthias Radestock2015-04-04 22:00:06 +01:00
95c1e226f0
use routes based on tcp overlay connectivity for gossip i.e. include asymmetric and non-established connections This is TRTTD since gossip flows over the tcp overlay.
Matthias Radestock2015-04-04 21:56:30 +01:00
91ed22a953
refactor(ish): generalise an abstraction LocalPeer.NextBroadcastHops -> ConnectionsTo thus separating the computation of who we want to connect to from obtaining the associated Connections
Matthias Radestock2015-04-04 20:36:48 +01:00
45fd750318
cosmetic: move some test helpers from test code into main code since they reach quite deeply into the data structures
Matthias Radestock2015-04-04 20:02:22 +01:00
7166d151aa
make route calculcation more efficient and properly async Instead of following the usual actor pattern, we use a 1-place channel with a non-blocking send. Essentially, if there is already a pending recalculation request queued up, there is no point enqueuing another one.
Matthias Radestock2015-04-03 18:12:03 +01:00
488c5c5a2d
bump default connection limit to 30 I can get 29 weaves running on my laptop, and once all connections are established, the avg cpu load is ~10%. 30 runs into difficulty because the concurrent connection establishment does create a very high load, resulting in some timeouts. But that wouldn't happen when running each weave in a separate machine (with more CPU resources overall than my single laptop).
Matthias Radestock2015-04-02 12:38:45 +01:00
ea3c5c5f90
introduce (undocumented) weave test-launch command which allows launching of several weave routers on the same machine, by invoking this multiple times with different WEAVE_CONTAINER_NAMEs.
Matthias Radestock2015-04-02 09:49:05 +01:00
5230daf943
permit overriding of weave container name via WEAVE_CONTAINER_NAME useful for testing
Matthias Radestock2015-04-02 09:48:22 +01:00
e97a3f88aa
allow router to be started w/o capture/inject interface useful for testing of the control plane
Matthias Radestock2015-04-02 09:46:29 +01:00
df7836df62
Merge pull request #505 from tomwilkie/coverage
rade2015-04-01 13:23:19 +01:00
d28d52da15
Move away from recursive go test, as it cannot output a merged coverage profile. Update said profile to coveralls.io; add badge.
Tom Wilkie2015-04-01 10:38:36 +00:00
f2a340772a
Revert stty manipulation of CRLF behaviour
Adam Harrison2015-04-01 12:52:15 +01:00
254b837a92
Merge pull request #498 from awh/467_multi_cidr_launch
rade2015-04-01 10:58:36 +01:00
7969566b27
Setup Travis CI for Weave. Add .travis.yml; add target to makefile which doesn't use docker; add image to readme.
Tom Wilkie2015-03-31 15:02:35 +00:00
592be90904
Use recursive go test instead of naming directories individually
Tom Wilkie2015-03-31 12:03:45 +00:00
10f37db9da
tidy up DNSServer fields - make Zone, Iface and Upstream public - this is safe and makes sense since all are immutable, and the former two are passed to the constructor and are thus known anyway, and the latter is derived from external information - remove IfaceName - we can just use Iface instead - log Upstream on startup
Matthias Radestock2015-03-31 12:04:31 +01:00
de557a3e03
introduce WEAVEDNS_DOCKER_ARGS same purpuse as WEAVE_DOCKER_ARGS, except for weavedns This allows us to get rid if the -fallback option since WEAVEDNS_DOCKER_ARGS="--dns=..." has the same effect.
Matthias Radestock2015-03-31 11:48:33 +01:00
b50688b4de
act immediately on weave connecting existing addresses we simply reset the vars controlling backoff for that address Note that we do not interrupt any current connection attempt, since that is hard.
Matthias Radestock2015-03-31 11:05:11 +01:00
b00be096f7
Fix returns when iterating over Connections()
David Wragg2015-03-29 19:10:44 +01:00
d708cb7d4e
prevent PMTUVerfied handling from blocking ...due to blocking on sending the pmtu to the forwarder, because the forwarder has terminated.
Matthias Radestock2015-03-29 14:04:28 +01:00
4eda7e361b
put back forwarder channel nil check since otherwise forward(...) can block indefinitely due to both the forwarder channel and finshed channel being nil
Matthias Radestock2015-03-29 10:36:01 +01:00
b6448fa196
more idiomatic closing of forwarders, by closing a 'finished' channel The previous scheme set the reference to main channel to nil and then drained it. That was racy and hence could lead to deadlock in the following scenario:
Matthias Radestock2015-03-28 20:58:42 +00:00