Matthias Radestock
f80410bf59
switch to gossip broadcast for topology updates
2015-04-06 14:17:23 +01:00
Matthias Radestock
f4416bfadc
introduce Routes.EnsureRecalculated
...
A means to ensure that any preceeding route recalculation requests
have been processed. It's akin to a global promise.
2015-04-06 14:17:23 +01:00
Matthias Radestock
6bc660068f
use GossipSender for GossipBroadcast
...
This makes GossipBroadcast properly async.
2015-04-06 14:17:23 +01:00
Matthias Radestock
8a2828d57d
add "representation of received update" to return of Peers.ApplyUpdate
2015-04-06 14:17:23 +01:00
Matthias Radestock
a58eb6ba7d
make gossip broadcast operate on GossipData
2015-04-06 14:00:51 +01:00
Matthias Radestock
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.
2015-04-06 13:57:13 +01:00
rade
fe4d8b7767
Merge pull request #518 from rade/canonical_sets
...
canonical sets
2015-04-06 13:29:03 +01:00
Matthias Radestock
e8e9a43abd
tired of typing "struct{}{}"
2015-04-06 11:53:51 +01:00
Matthias Radestock
6db12d682e
make PeerNameSet a more broadly used type
2015-04-06 11:45:17 +01:00
Matthias Radestock
74b3f8d44e
use map[...]struct{} for sets instead of map[...]bool
...
See https://groups.google.com/d/msg/golang-nuts/lb4xLHq7wug/MhrSLkyS4F8J
We don't really care about the performance aspect of this, but using
struct{}{} values is in some way canonical since it means the
representation carries no redundant information.
2015-04-06 11:35:11 +01:00
Matthias Radestock
6f2f25aca5
don't complain in weave status about weavedns absence/errors
...
it's tiresome to see this when weavedns isn't running
2015-04-05 18:50:17 +01:00
Matthias Radestock
80aa60b3ab
separate multiweave 'launch' and 'connect' phases
2015-04-05 17:04:43 +01:00
Matthias Radestock
624373ace2
simplify
2015-04-05 17:03:18 +01:00
Matthias Radestock
8c1015d2a4
cosmetic: consistent terminology in var names
2015-04-04 22:18:31 +01:00
Matthias Radestock
4ebbdabfa1
never, ever use 10.0 for anything
...
it has a high probability of conflicting
2015-04-04 22:00:06 +01:00
Matthias Radestock
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.
2015-04-04 21:56:30 +01:00
Matthias Radestock
3fba123bc0
comment
2015-04-04 21:14:25 +01:00
Matthias Radestock
b272dcf8c1
rename: less 'gossip' in gossip
2015-04-04 20:58:10 +01:00
Matthias Radestock
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
2015-04-04 20:36:48 +01:00
Matthias Radestock
bcd2a0184c
small refactor
2015-04-04 20:08:38 +01:00
Matthias Radestock
45fd750318
cosmetic: move some test helpers from test code into main code
...
since they reach quite deeply into the data structures
2015-04-04 20:02:22 +01:00
Matthias Radestock
0a02d1a926
cosmetic: rename a type
2015-04-04 20:02:01 +01:00
Matthias Radestock
ac0788cb5a
simplify test router creation
2015-04-04 19:50:19 +01:00
Matthias Radestock
683caef866
tweak comment
2015-04-04 19:46:47 +01:00
Matthias Radestock
fa5279ab3e
cosmetic
2015-04-04 16:02:01 +01:00
Matthias Radestock
6cda74d49f
refactor: inline
2015-04-04 15:36:42 +01:00
Matthias Radestock
582b582b98
fix silly bug
2015-04-03 19:52:28 +01:00
Matthias Radestock
fdea7d93f9
refactor: improve abstraction in connection gossip handling
...
- turn previously free-floating functions into methods on GossipChannel
- move gossip message type dispatch from connection into router
2015-04-03 19:38:01 +01:00
Matthias Radestock
6f398a7459
refactor(ish): raise GossipSender abstraction level slightly
2015-04-03 18:33:59 +01:00
Matthias Radestock
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.
2015-04-03 18:12:03 +01:00
Matthias Radestock
acbb911823
Merge remote-tracking branch 'upstream/master'
2015-04-03 10:09:49 +01:00
Matthias Radestock
604d210e55
more flexibility
2015-04-03 10:07:39 +01:00
David Wragg
587a67d701
Comment
...
It's not blindingly obvious where this 'found' comes from.
2015-04-02 16:37:30 +01:00
Matthias Radestock
5648f87717
oops
...
broke this in 45740b1419
2015-04-02 13:03:42 +01:00
Matthias Radestock
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).
Stop gap solution for #426 .
2015-04-02 12:38:45 +01:00
Matthias Radestock
a68d444c33
launch multiple test weaves
2015-04-02 10:14:43 +01:00
Matthias Radestock
24f3634254
pass WEAVE_CONTAINER_NAME to weavexec
2015-04-02 10:13:52 +01:00
Matthias Radestock
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.
The routers are not connected to the bridge and do not perform any
capture/injection. So this is mainly intended for testing of
administrative and control plane functionality, rather than routing.
2015-04-02 09:49:05 +01:00
Matthias Radestock
5230daf943
permit overriding of weave container name via WEAVE_CONTAINER_NAME
...
useful for testing
2015-04-02 09:48:22 +01:00
Matthias Radestock
e97a3f88aa
allow router to be started w/o capture/inject interface
...
useful for testing of the control plane
2015-04-02 09:46:29 +01:00
Matthias Radestock
e33d2eaf8e
cosmetic
2015-04-02 07:10:21 +01:00
rade
e66225ca9b
Merge pull request #512 from bboreham/stop_not_kill
...
Use docker stop instead of docker kill
2015-04-01 17:27:54 +01:00
Bryan Boreham
05b7162239
Use docker stop instead of docker kill
2015-04-01 16:58:16 +01:00
rade
a152d24892
Merge pull request #511 from bboreham/generalize_updater
...
Generalise updater.go and move into its own package
2015-04-01 16:57:20 +01:00
Bryan Boreham
68096b0437
Generalize updater.go
2015-04-01 16:48:11 +01:00
rade
b5c8258407
Merge pull request #509 from bboreham/master
...
Wait for the 'status' http call to return something after 'weave launch'
Fixes #500 .
2015-04-01 15:24:32 +01:00
Bryan Boreham
bacaf41017
Wait for the 'status' http call to return something after 'weave launch'
2015-04-01 15:14:59 +01:00
rade
3dad9fb593
Merge pull request #508 from tomwilkie/coverage
...
More feedback on test 'harness'
2015-04-01 13:35:51 +01:00
Tom Wilkie
db9a0d7528
More feedback on test 'harness'
2015-04-01 12:32:35 +00:00
rade
df7836df62
Merge pull request #505 from tomwilkie/coverage
...
Move away from recursive go test, as it cannot output a merged coverage profile.
2015-04-01 13:23:19 +01:00