Milos Gajdos
23d65145e6
Use the same logic for advertising routes in Router and Network
...
router.Query() allows to query the routes with given router.Strategy.
It uses the same logic as was implemented in flushRoutes but the code
was never updated. This way we are consistent across both router and
network packages.
2020-01-17 16:25:18 +00:00
Asim Aslam
d7b9b2713b
don't block forever
2020-01-17 15:23:10 +00:00
Milos Gajdos
7f9b3b5556
Remove Solicitation from the network
...
Instead, when a new peer is discovered it is sent a sync message i.e. we
do the full sync when discovering peers
2020-01-16 19:43:10 +00:00
Milos Gajdos
5e85194a13
QueryStrategy to allow querying routes based on Advertising Strategy
2020-01-16 12:48:36 +00:00
Asim Aslam
6027a81f06
Update router comments
2019-12-17 08:28:45 +00:00
Asim Aslam
d50f30d743
strip handlers
2019-12-10 11:46:13 +00:00
Asim Aslam
7e46ff5d92
strip some more logging down
2019-12-10 09:08:03 +00:00
Asim Aslam
59c1680594
Move Debug to Trace in router
2019-12-09 09:32:17 +00:00
Asim Aslam
c445aed6b1
Cleanup and speedup network convergence along with direct messaging for connect and solicit
2019-12-07 19:54:29 +00:00
Asim Aslam
ac9001ac74
advert ttl inline with router table tick
2019-12-05 17:50:32 +00:00
Milos Gajdos
bca12a7003
Changed a few router knobs to avoid storms ⛈
2019-12-05 17:11:17 +00:00
Milos Gajdos
5865e89bed
Fixing dead code and go vet moaning
2019-12-05 16:10:49 +00:00
a1eaf9cc20
linting fixes
...
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2019-12-04 00:22:02 +03:00
Milos Gajdos
4a11a4c546
Fix router race condition
2019-12-03 15:22:54 +00:00
Astone
29fb58db39
improve code quality
2019-12-03 20:59:02 +08:00
Asim Aslam
da04aa8ae8
Switch to AdvertiseLocal by default
2019-12-02 17:36:20 +00:00
Asim Aslam
6f1c30aef5
remove unused value in router
2019-11-30 21:39:03 +00:00
Asim Aslam
107124e5dc
Changes for the storm
2019-11-29 17:27:29 +00:00
Asim Aslam
8b63df7a98
regenerate the protos
2019-11-26 13:53:33 +00:00
Milos Gajdos
55252cbc32
Fix the router test; get rid of time dependency ( #964 )
2019-11-20 14:53:12 +00:00
Asim Aslam
fd5c29addc
Add the ability to only advertise local routes or don't advertise at all ( #932 )
...
* Add the ability to only advertise local routes or don't advertise at all
* Reorder processing to shortcircuit no advertising
2019-11-11 15:28:37 +00:00
Till Knuesting
5ae3e179b9
preallocated slices ( #934 )
2019-11-11 00:03:51 +00:00
Milos Gajdos
b84134581c
Flap detection vol2 ( #915 )
...
* We now purge flapping routes before regular tick processes them
* Updated comments
* Record the timestamp as soon as you receive the event
* Set route Address to routing table test
* Fixed a bunch of deadlocks. Added basic Router tests.
2019-11-05 17:44:24 +00:00
Till Knuesting
f67c5e779f
preallocated slices ( #917 )
2019-11-05 17:43:12 +00:00
Milos Gajdos
4a694c9d02
Change flap detection configuration ( #914 )
...
* Change flap detection configuration
* Make PenaltyHalfLife a float, not int 🤦♂️
* Lower event suppression to 200
2019-11-04 19:01:52 +00:00
Asim Aslam
2f3c251b00
Recovery should be < 500
2019-11-03 17:10:00 +00:00
Asim Aslam
c1b0a968ae
Augment the router penalty and decay as a hack fix ( #912 )
...
* Augment the router penalty and decay as a hack fix
* increase recovery cost
2019-11-03 16:29:10 +00:00
tegk
f88518d994
used gofmt with -s flag on whole project
2019-11-01 15:07:53 +00:00
Milos Gajdos
1ff65e140a
Change router.Route metric to int64. Set the route metric properly
2019-10-23 16:51:22 +01:00
Milos Gajdos
7a4bff4e9f
Changed names of some variables.
2019-10-09 19:08:24 +01:00
Milos Gajdos
d5ce96da24
Avoid locking on reading strategy for now
2019-10-09 18:19:48 +01:00
Milos Gajdos
837597fe6f
Make Optimal strategy default. Collapse routing tables based on strategy
2019-10-09 17:24:38 +01:00
Milos Gajdos
96e564e402
Add router advertisement Strategy option to router.
2019-10-09 17:24:38 +01:00
Asim Aslam
fe94237448
Update router querying method ( #834 )
...
* Add address to router query options. Drop Query interface for QueryOptions
* Cleanup isMatch function
* Update network proto
2019-10-09 17:13:52 +01:00
Milos Gajdos
2d7975a7ce
Rather than append to list of events just keep the last event for a route hash
2019-09-26 17:54:55 +01:00
Milos Gajdos
a4c04d8f50
Only emit Update event if a route was updated/added
2019-09-26 12:45:10 +01:00
Milos Gajdos
b2577e6022
Update log statement
2019-09-26 12:19:00 +01:00
Milos Gajdos
77f3e7ef48
Simplified table code. Fixed event dedup.
2019-09-26 11:56:30 +01:00
Asim Aslam
6f2a8298ef
Fix router log messages
2019-09-25 20:29:25 +01:00
Asim Aslam
4eb1aaae85
Fix the proxy watcher
2019-09-20 16:25:29 +01:00
Milos Gajdos
323a72be34
Small refactoring; Split horizon loop break.
2019-09-13 18:46:24 +01:00
Milos Gajdos
ef91d836eb
Implement Solicit method for handler.Router
2019-09-13 03:03:56 +01:00
Milos Gajdos
d58eb51976
Code change to make Solicit router.proto message
2019-09-13 03:03:55 +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
bb595c85b2
Lets make advert channel buffered so we don't lose adverts
2019-09-05 19:05:47 +01:00
Milos Gajdos
dddfb6f878
Fixed typos and simplified map iteration
2019-09-05 17:59:14 +01:00
Milos Gajdos
2522d8cb96
Send solicit message when new neighbour is discovered
2019-09-05 16:04:44 +01:00
Milos Gajdos
9161b20d6b
Add Solicit method to router interface
...
When calling Solicit, router lists all the routes and advertise them
straight away
2019-09-05 13:23:33 +01:00
Milos Gajdos
4f788c6fc7
Only emit the events when actually deleting the route
2019-08-29 16:25:21 +01:00
Milos Gajdos
f50bd400f8
Only emit event if Update actually happens
2019-08-29 16:21:30 +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
Milos Gajdos
30dd3f54f0
Make router.Table docs consistent
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
Milos Gajdos
75871287a1
Make stop idempotent. Small refactoring. Router name is memory.
2019-08-21 21:10:42 +01:00
Asim Aslam
fb750a0bb1
Don't start the router if its already running
2019-08-21 18:58:56 +01:00
Milos Gajdos
cb1679fd8d
Add Start method to router
...
Added Start to router packages.
Fixed potential deadlocks.
2019-08-12 22:23:46 +01:00
Asim Aslam
f1b6709722
Fix breaking api changes
2019-08-05 17:47:50 +01:00
Asim Aslam
4030ccc27b
Move proxy/router
2019-08-05 17:44:33 +01:00
Asim Aslam
3f97743e34
Move router and proxy into network package
2019-06-21 17:20:31 +01:00
Asim Aslam
7936d74602
Update comments
2019-06-21 16:17:12 +01:00
Milos Gajdos
1765be049b
router.Start() is now router.Advertise(). Updated code documentation.
2019-06-20 13:04:58 +01:00
Milos Gajdos
10a3636a9f
Renamed variables, options and functions
2019-06-19 21:22:14 +01:00
Milos Gajdos
4e5fbbf7eb
Replaced the debug network string by the correct router local address.
2019-06-19 18:11:16 +01:00
Milos Gajdos
59035ab801
Removed debug logs. advertiseToNetwork() replaced watchTable().
...
Debug logs that were helpful when squashing bugs have been removed.
advertiseToNetwork replaced the watchTable which originally watched the
routing table entries. We now take a different approach to propagating
the local registry services into the network registry.
2019-06-19 18:03:43 +01:00
Milos Gajdos
d3525ebab3
Debug messages. Squashed Add Route bugs and few others.
2019-06-19 18:03:43 +01:00
Milos Gajdos
2674294cbe
Delete route when no node is available.
2019-06-19 18:03:43 +01:00
Milos Gajdos
b20dd16f92
Watcher now emits events instead of results.
2019-06-19 18:03:43 +01:00
Milos Gajdos
5088c9d916
Increased Network registry TTL. Routing Table remove is now delete.
...
Remove has been renamed to Delete to be more in line with the framework.
A bunch of comments have been added/updated for the future generations
We have increased the Network Registry TTL to 2 minutes.
2019-06-19 18:03:42 +01:00
Milos Gajdos
f62fcaad76
Added router ID. Deregister remote services when router is stopped.
...
Added ID function to router interface.
Network registry addresses are deregistered when the router is stopped.
Query has been updated to search for particular GW in lookups.
2019-06-19 18:03:42 +01:00
Milos Gajdos
322eaae529
Small code refactoring. Added more comments and parseToNode func
2019-06-19 18:03:42 +01:00
Milos Gajdos
6a33b7576b
Removed router watcher code duplication. Small code refactor.
2019-06-19 18:03:42 +01:00
Milos Gajdos
6e669d4611
Reorganised source. Renamed files. No Code change.
2019-06-19 18:03:42 +01:00
Milos Gajdos
95fc625e99
Big refactor. New Registry watchers. New options. New names.
2019-06-19 18:03:42 +01:00
Milos Gajdos
338e0fdf18
Lots of refactoring. We now have basic routing table watcher.
2019-06-19 18:03:42 +01:00
Milos Gajdos
5899134b66
Simplified API. Correct Router initialization. Debug printing.
2019-06-19 18:03:41 +01:00
Milos Gajdos
da18ea4ab5
Changed default router table modifications. Entry is now Route.
2019-06-19 18:03:41 +01:00
Milos Gajdos
459f4c8387
Added Router ID and query options to limit number of results
2019-06-19 18:03:41 +01:00
Milos Gajdos
9c57f32f58
Added Entry type. Basic implementation of Router and Table
2019-06-19 18:03:41 +01:00
Milos Gajdos
ad92e6821e
Removed DefaultTable() from global vars
...
We will not initialize DefaultTable as global var unless the users asks
for it explicitly.
2019-06-19 18:03:41 +01:00
Milos Gajdos
d7f0db04ec
Added network ID option. Added mutex to routing table.
2019-06-19 18:03:41 +01:00
Milos Gajdos
e4311c3a10
Redefined and polished some interfaces and data structures.
2019-06-19 18:03:41 +01:00
Milos Gajdos
ee8b6b3114
Redefeind interfaces; Added better modelled data strauctures
...
Router interface has been redefined which fits better with what we are
looking for.
Routing table now offers a comprehensive set of information about its
entries which will make up for rich queries in the future
Query interface has been defined to enable current basic and more
advanced queries in the future.
2019-06-19 18:03:41 +01:00
Milos Gajdos
08da7c1283
First commit: Outline of Router interface
2019-06-19 18:03:40 +01:00