* When routers change (connect/disconnect), we re-check the mesh. We are passing in the routers to the channel and they can build up, which is unnecessary. We only need to signal once for all the routers that change since the last time we checked, that the mesh needs to be checked.
* We pass link changes through the run method, which is unnecessary since we pass it to a new goroutine. This inefficiency should be fixed.
* We're evaluating all faulted links for rerouting, even if they were still pending. Only reroute connected links.
* We're using time.After in each for loop, which can accumulate timers. Use a single Ticker instead.
* Initial work on adding route error codes to route responses
* updated messaging
* Split out terminator incrementors
Added handling for Service Errors
Added initial steps at deleting misbehaving terminators
* Added test for destroying and settin gprecedence on terminators
Added handling for terminator errors in routing
* inverted error switch
* cleanup for pr
* PR comments
* refactored conditional printing to account for single node paths that don't have links
* added error log when route status
* added another misconfigured error
Co-authored-by: Paul Lorenz <paul.lorenz@netfoundry.io>
* added allow traversal flag
* Added test to verify a single router connection that is marked untraversable fails path creating
* Updated default cost to be one step above the threshold to avoid overflow.
* Updated checks to only care about middle routers. Fixed relevant unit tests and added test with untraversable middle router.
* Refactor allowTraversal to be flipped to noTraversal
* default noTraversal to false
* Added cost to routers and relevant persistence and path checking.
* removed router cost from config
* changed cost to be required on update
* removed some import reorderings and added fingerprint to be required
* missed one line