124 Commits

Author SHA1 Message Date
Milos Gajdos
1e94d9fe5a
Router cleanup and refactoring for win and profit.
This commit adds the following changes to router package:
* it refactors Advertise() function which now does only what
it claims to do: advertising
* various router packages functions/methods have been renamed to make
their functionality more obvious and more in line with what they actually do
* function documentation changes related to the above bullet points
2019-07-24 17:16:52 +01:00
Milos Gajdos
94b6455577
Increment WaitGroup before launching advertiseEvents goroutine 2019-07-17 13:02:47 +01:00
Milos Gajdos
2803146673
Renaming rampage
Addressing the comments in #591, router.String() now returns "default"

Furthermore, a tonne of other renaming has been included in this commit
as a result of running go vet ./... inside the router package.
2019-07-17 00:06:11 +01:00
Milos Gajdos
92495d22db
Fixes advert dampening behaviour.
This commit adds the following changes:
* advert now stores a list of route events as opposed to just last one
* attempt to dedup route events before appending them to advert
* have max suppress threshold for long time suppressed adverts
* decaying events on every advert tick

Originally we werent decaying penalties on every advert tick.
That was incorrect behaviour. Furthermore some events would end up being
accumulated potentially causing memory leaks.

We were also overriding the last received router event which was causing
incorrect sequence of events to be applied when received by a receiver:
Create, Delete would be "squashed" into Delete only which would be
nonsensical since the Create event would never be delivered hence we
would be deleting nonexistent routes.

Not Decaying the events on every tick or not having the max suppression
threshold could lead to DoS by growing the router memory infinitely.
2019-07-16 19:00:25 +01:00
Asim Aslam
aa79c41fc5 update tunnel comment 2019-07-14 18:34:32 -07:00
Asim Aslam
5157241c88 Merge branch 'master' of ssh://github.com/micro/go-micro 2019-07-11 21:46:33 +01:00
Asim Aslam
70d811c47a don't use quic in the test 2019-07-11 21:46:27 +01:00
Milos Gajdos
9c851f297b
Added proto.Advert type to protobuf definitions 2019-07-11 21:14:34 +01:00
Milos Gajdos
35a1de91a9
Advertise full table every minute. 2019-07-11 12:39:20 +01:00
Asim Aslam
6581586226 Make tunnel test use quic 2019-07-11 10:34:01 +01:00
Asim Aslam
9b1cb4ef0e functioning tunnel with test 2019-07-11 00:55:50 +01:00
Asim Aslam
ae5376cc0e functioning tunnel/link code 2019-07-11 00:14:36 +01:00
Milos Gajdos
a0ee7d2092
Added update action to manageServiceRoutes. Table is embedded; skip opts 2019-07-10 21:28:32 +01:00
Asim Aslam
998a23c963 Functional code for link 2019-07-10 20:04:01 +01:00
Asim Aslam
e17ecf66b1 Fix breaking code 2019-07-10 20:03:55 +01:00
Asim Aslam
7c29be288b Update a tunnel top level comment 2019-07-10 19:33:34 +01:00
Asim Aslam
217f540601 The listener has no session id 2019-07-10 19:17:36 +01:00
Asim Aslam
ffae0f0fab Add a comment for tunnel processor 2019-07-10 19:13:50 +01:00
Asim Aslam
4cca2b43a3 Add further link comments 2019-07-10 19:11:32 +01:00
Asim Aslam
8c157c1d5f update link comments 2019-07-10 19:09:22 +01:00
Asim Aslam
1f218f7b48 Allow the socket to be specified 2019-07-10 19:07:18 +01:00
Asim Aslam
7e0d4fe0cf Merge branch 'master' of ssh://github.com/micro/go-micro 2019-07-10 19:01:38 +01:00
Asim Aslam
0a39fe39c3 Update tunnel to use id+session for the key 2019-07-10 19:01:24 +01:00
Milos Gajdos
163b917ec7
proto.EventType Insert is now Create to mirror table.Event 2019-07-10 18:37:46 +01:00
Asim Aslam
0f16eb2858 add further comments to tunnel 2019-07-10 18:35:10 +01:00
Asim Aslam
89231f701b Add comments and session 2019-07-10 18:26:11 +01:00
Asim Aslam
196e76e350 Merge branch 'master' of ssh://github.com/micro/go-micro 2019-07-10 18:24:12 +01:00
Asim Aslam
f3d9177233 Add sessions to tunnel 2019-07-10 18:24:03 +01:00
Asim Aslam
8b7ac8a3f9
Merge pull request #576 from milosgajdos83/router-rpc
Added List and Watch rpc calls.
2019-07-10 17:55:23 +01:00
Milos Gajdos
8f5aed707e
Table.Add is now Table.Create. Insesrt event is now Create event. 2019-07-10 17:46:22 +01:00
Asim Aslam
c71576a538 Update link Id comment 2019-07-10 17:43:36 +01:00
Asim Aslam
27cfc06828 Cleanup and move around the link code 2019-07-10 17:42:41 +01:00
Asim Aslam
717ba4b3c0 Add tunnel comments 2019-07-10 17:41:17 +01:00
Asim Aslam
4e3a230356 top level package comment 2019-07-10 17:40:14 +01:00
Asim Aslam
66c2519696 Add Tunnel: an interface for stream duplexing over a link 2019-07-10 17:36:04 +01:00
Milos Gajdos
86dfa82dfa
Added List and Watch rpc calls. 2019-07-10 17:21:55 +01:00
Asim Aslam
55f8045a70 Add link: a layer ontop of a transport socket 2019-07-10 17:12:51 +01:00
Asim Aslam
b23d955536 Use gateway if available 2019-07-10 08:26:33 +01:00
Asim Aslam
5b565f9f10 update comment 2019-07-10 07:56:52 +01:00
Asim Aslam
9955ed2034 move table 2019-07-10 07:56:18 +01:00
Asim Aslam
c36107e811 cleanup consts 2019-07-10 07:51:24 +01:00
Asim Aslam
a08b64c8ab remove the string methods 2019-07-10 07:50:33 +01:00
Asim Aslam
64ec0633a3 Fix breaks and go fmt 2019-07-10 07:47:17 +01:00
Asim Aslam
0a1b657221 visual cleanup of router code 2019-07-10 07:45:27 +01:00
Asim Aslam
34967e8e33
Merge pull request #573 from milosgajdos83/flap-detection
Router rework. Flap detection. Table package.
2019-07-10 07:12:18 +01:00
Asim Aslam
eda380284c remove network 2019-07-09 18:45:14 +01:00
Asim Aslam
0bf54c122f move transport back 2019-07-09 18:41:26 +01:00
Asim Aslam
97282a5377 remove resolver 2019-07-09 16:54:44 +01:00
Asim Aslam
b642d5e1c0 remove proto dir 2019-07-09 16:53:30 +01:00
Asim Aslam
c5a282ddd3 remove the tunnel 2019-07-09 16:52:44 +01:00