226 Commits

Author SHA1 Message Date
Milos Gajdos
cbce5490d7
Lock the Nodes method properly when collecting them. 2019-09-13 03:03:55 +01:00
Milos Gajdos
4c709f7ac1
Write Lock() advert update: we are writing into peers map here 2019-09-13 03:03:55 +01:00
Milos Gajdos
baf4c05663
Send solicit message to ControlChannel 2019-09-13 03:03:55 +01:00
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