Milos Gajdos
195c6a8c90
Neighbour is now peer. Neighbourhood is Peers. Small refactor.
2019-09-13 03:03:54 +01:00
Milos Gajdos
f91d0408ab
Moved node implementation into dedicated source file
2019-09-13 03:03:54 +01:00
Milos Gajdos
eec780aaa7
Update neighbours when neighbour message is received
2019-09-13 03:03:54 +01:00
Milos Gajdos
f0a1031e97
Adding new peers up to given depth. Outline of node gaph Update
2019-09-13 03:03:54 +01:00
Asim Aslam
b5eea02f7a
Move link to tunnel/
2019-09-10 08:12:28 -07:00
Asim Aslam
e8aaca27d3
unlock before sending the message to avoid deadlock
2019-09-06 16:57:17 +01:00
Milos Gajdos
7971b1b7f9
Remove debug logs
2019-09-06 15:12:23 +01:00
Milos Gajdos
dafbacbdcb
Properly handle the list of the nodes. Send solicit on ControlChannel
2019-09-06 15:09:49 +01:00
Milos Gajdos
dddfb6f878
Fixed typos and simplified map iteration
2019-09-05 17:59:14 +01:00
Milos Gajdos
ec354934e3
Move Errors to separate init block
2019-09-05 17:44:47 +01:00
Milos Gajdos
b01c8e06e0
Update error name to ErrClientNotFound
2019-09-05 17:43:59 +01:00
Milos Gajdos
5ddfd911ba
Replace send message code by one network method
2019-09-05 17:18:16 +01:00
Milos Gajdos
2522d8cb96
Send solicit message when new neighbour is discovered
2019-09-05 16:04:44 +01:00
Milos Gajdos
4b1a7abb42
Freeze network graph when building full network topology
...
Also added some comments and debug logs
2019-09-05 00:16:22 +01:00
Asim Aslam
46a9767648
Merge pull request #730 from milosgajdos83/advert-lastseen
...
Update node.lastSeen properly. Set node.lastSeen when processing advert
2019-09-04 18:13:43 +01:00
Milos Gajdos
dd9f42e3b9
Update lastSeen timestamp properly. Set lastSeen when processing advert
2019-09-04 18:02:13 +01:00
Asim Aslam
f2c8492c77
Merge pull request #729 from micro/tunnel
...
Tunnel session management and unicast/multicast
2019-09-04 16:25:38 +01:00
Asim Aslam
b9c437fbfe
Tunnel discover/announce/open/session/close
2019-09-04 09:48:05 +01:00
Milos Gajdos
4f4b3d3bae
Send connect message to NetworkChannel once we are not at caller mercy
2019-09-03 19:51:52 +01:00
Milos Gajdos
6eb6d050ed
Major bug overhaul in how we handle network.Nodes and related handler
2019-09-03 16:39:27 +01:00
Milos Gajdos
3ea4490d6c
Don't preallocate the slice if you don't index later on.
2019-09-03 15:02:30 +01:00
Milos Gajdos
ec6318befc
Prune nodes that have not announced themselves for certain time period.
2019-09-03 10:00:14 +01:00
Milos Gajdos
fb13877904
Make Nodes() BFS implementation efficient
2019-09-03 02:58:17 +01:00
Milos Gajdos
a8d4299df9
Sort the returned slice of nodes before searching
...
See docs:
https://golang.org/pkg/sort/#Search
2019-09-02 20:00:52 +01:00
Milos Gajdos
86665454e7
Implementation of Nodes method. First take on full handler
2019-09-02 17:06:21 +01:00
Milos Gajdos
4f5a849211
Added Nodes method to Network interface
2019-09-02 12:40:05 +01:00
Milos Gajdos
bf53c16e4b
Rough outline of Network introspection interface
2019-09-02 12:40:05 +01:00
Asim Aslam
6fa9d7270f
Rename Tunnel ID to Channel
2019-08-30 20:05:00 +01:00
Milos Gajdos
b37837ad92
Add proto definitions for network introspection.
2019-08-30 12:29:26 +01:00
Milos Gajdos
e955e3f798
Avoid routes that route back to node without its being direct GW to dest
2019-08-30 00:04:46 +01:00
Milos Gajdos
ffa6b551f4
Don't override the neighbours.
2019-08-29 15:42:07 +01:00
Asim Aslam
3d03fe4076
Fix panic for nil slice
2019-08-29 15:09:01 +01:00
Asim Aslam
7479515099
add the ability to provide seed nodes to the network
2019-08-29 14:53:30 +01:00
Milos Gajdos
8606f1e143
Set the route.Metric before updating routing table
2019-08-29 11:45:47 +01:00
Milos Gajdos
db8e2620cb
Make tunnel channel clients key-able. Neighbour map simplified.
...
tunClient is a map of tunnel clients keyed on tunnel channel name.
Neighbour map is now a cimple map of nodes which contains its nodes.
2019-08-28 23:11:26 +01:00
Milos Gajdos
d09b7dbbef
Broadcast neighbourhood; fix critical bugs in channel connections
...
This commit introduces neighbourhood announcements which allows to
maintaing neighbour map if each next-hop node.
It also fixes a critical bug when accepting connections for a particular
tunnel channel.
2019-08-28 20:11:19 +01:00
Asim Aslam
a4f5772555
add network field to the routes
2019-08-28 08:41:19 +01:00
Milos Gajdos
5e7208119e
Adds network id. Skips processing routes when router is the origin.
2019-08-27 23:08:35 +01:00
Asim Aslam
87b56d46ac
Use tunnel transport and set server address
2019-08-27 13:21:36 +01:00
Milos Gajdos
371b23d055
Introduce DefaultLink; dont hardcode name of the link
2019-08-27 11:36:46 +01:00
Asim Aslam
f97565ef0a
Merge pull request #685 from milosgajdos83/default-network
...
Default network implementation
2019-08-27 11:02:55 +01:00
Milos Gajdos
ed8d28c9ab
Set Route.Link to "network" not Route.Network. Oops!
2019-08-23 21:08:18 +01:00
Milos Gajdos
88e47b9b06
Dont bail when unable to resolve network nodes.
2019-08-23 17:48:14 +01:00
Asim Aslam
1b0295de0d
Add a static network node resolver
2019-08-23 17:24:21 +01:00
Milos Gajdos
9448d7c164
Set Route.Network to "network" and Router.Gateway to network.Address
2019-08-23 16:01:57 +01:00
Milos Gajdos
8c3eec9f2a
Set the default resolver to registry
2019-08-23 15:14:16 +01:00
Milos Gajdos
e53484302c
Added ControlChannel tunnel.Listener to process incoming messages
2019-08-23 15:14:16 +01:00
Milos Gajdos
db89fc4efe
Set server name to the correct value.
2019-08-23 15:14:16 +01:00
Milos Gajdos
e1599b0f17
Set server name. Set default network name.
2019-08-23 15:14:16 +01:00
Milos Gajdos
a09d5d2e9a
Add Address method. Start and Stop router/server.
2019-08-23 15:14:16 +01:00
Milos Gajdos
6c1f1d66f7
Switch received messages on the right header
2019-08-23 15:14:16 +01:00
Milos Gajdos
a6e1287b27
Replaced incorrect proto import path
2019-08-23 15:14:15 +01:00
Milos Gajdos
fcec6e8eae
First attempt to implement default network interface
2019-08-23 15:14:15 +01:00
Milos Gajdos
6beae23afd
First commit. Outline of the default network.
2019-08-23 15:14:15 +01:00
Asim Aslam
34381213e7
Package comment
2019-08-05 18:04:47 +01:00
Asim Aslam
4030ccc27b
Move proxy/router
2019-08-05 17:44:33 +01:00
Asim Aslam
d250ac736f
In the event watchRegistry or watchTable exit then close the go routines
2019-08-02 15:17:48 +01:00
Asim Aslam
6719f8d655
Remove the table watcher when stopped
2019-08-02 14:59:08 +01:00
Asim Aslam
d7929ef8f3
Stop the ticker when exiting
2019-08-02 14:44:11 +01:00
Milos Gajdos
2720c6f28e
Removed trailing white characters
2019-08-01 13:32:55 +01:00
Asim Aslam
cdf0f14d58
remove this code
2019-07-31 17:19:49 +01:00
Asim Aslam
679c5f0ccd
Fix some connection bugs
2019-07-31 16:49:48 +01:00
Asim Aslam
873bfcc73c
Process/Stop router
2019-07-31 16:46:55 +01:00
Asim Aslam
7884e889f4
Don't publish the process rpc call and embed the router handler in the network
2019-07-31 16:36:53 +01:00
Asim Aslam
b1c49a0ddc
Add router handler
2019-07-31 16:10:04 +01:00
Asim Aslam
318367cd71
move NewNetwork
2019-07-31 15:37:12 +01:00
Asim Aslam
2d09e74b0e
add address/advertise
2019-07-31 15:35:51 +01:00
Asim Aslam
3e90d32f29
Add proxy/router
2019-07-31 15:30:51 +01:00
Asim Aslam
fca89e06ef
Some network inspiration
2019-07-31 15:22:57 +01:00
Asim Aslam
852abcaaed
yolo commit functioning router code. all credit to the milos gajdos
2019-07-29 18:57:40 +01:00
Asim Aslam
11f80708ce
move lock
2019-07-29 12:52:52 +01:00
Asim Aslam
104778e5e5
move lock
2019-07-29 12:52:32 +01:00
Asim Aslam
ae99b9a887
syntactic changes
2019-07-29 12:44:59 +01:00
Asim Aslam
8fdc050e2e
syntactic changes
2019-07-29 12:44:28 +01:00
Asim Aslam
8855beb62d
syntactic changes
2019-07-29 12:43:20 +01:00
Asim Aslam
47acdf6a4b
move Table to table
2019-07-29 12:40:13 +01:00
Asim Aslam
4fc9b9821a
Merge pull request #621 from milosgajdos83/no-table-package
...
[WIP] No table package. router/service package introduced
2019-07-29 12:36:40 +01:00
Asim Aslam
5b327ce723
change id to name in resolver
2019-07-28 20:00:09 +01:00
Asim Aslam
adb6760e21
readd the resolver
2019-07-28 12:14:40 +01:00
Milos Gajdos
3d2ec5dbb1
Regenerated proto because proto reasons.
2019-07-27 16:12:44 +01:00
Milos Gajdos
96f9ce1bd3
Proper router stopping. Printable router status.
2019-07-27 16:11:06 +01:00
Milos Gajdos
cb3052ce04
Proper stopping of service router
2019-07-27 16:11:06 +01:00
Milos Gajdos
2f1658c213
Table package is no more, hence removed references to it
2019-07-27 16:11:06 +01:00
Milos Gajdos
d8b00e801d
Stop watcher when router stops. Drain advert channel when stopping.
2019-07-27 16:11:06 +01:00
Milos Gajdos
002abca61f
Finished Advertise(). Implemented Process()
2019-07-27 16:11:06 +01:00
Milos Gajdos
c5740ae031
Outline of Advertise, Watch and start of the router.
2019-07-27 16:11:05 +01:00
Milos Gajdos
ddad43bd77
Added service.Router Route CRUD. Outlined watcher and run()
2019-07-27 16:11:05 +01:00
Milos Gajdos
b6fb969ab9
Add List and Lookup implementation. Default error for not implement.
2019-07-27 16:11:05 +01:00
Milos Gajdos
22d0f1f08f
Changed documentation.
2019-07-27 16:08:14 +01:00
Milos Gajdos
c3a8146d99
Added outline of router/service package.
2019-07-27 16:08:14 +01:00
Milos Gajdos
2338780a61
Full router RPC coverage
2019-07-27 16:08:14 +01:00
Milos Gajdos
e22c4b4c07
table package is no more. Cleaned up unnecessary code, too.
2019-07-27 16:04:08 +01:00
Asim Aslam
4e27aac398
regen router proto
2019-07-26 18:07:36 -07:00
Asim Aslam
7ca06f0c1d
set router proto package name to go.micro.router
2019-07-26 18:07:14 -07:00
Milos Gajdos
9ad5ae6644
Adds new RPC methods to router service interface
...
We have added Advertise() and Process() RPCs in this commit.
2019-07-24 21:07:04 +01:00
Milos Gajdos
809de7a052
Mutex Unlock when we fail to store route in cache.
2019-07-24 19:13:05 +01:00
Milos Gajdos
23f0231a09
Adds route watcher to mucp.Proxy
2019-07-24 19:03:13 +01:00
Milos Gajdos
b55adc0c30
mucp Proxy no longer uses RPC interface of router.Router directly
2019-07-24 18:32:39 +01:00
Milos Gajdos
13a8cfe7f3
Small function documentation update
2019-07-24 17:22:27 +01:00
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