Commit Graph

257 Commits

Author SHA1 Message Date
Paul Lorenz 91fd7097f0 Add support for sticky termininator selection on dials. Fixes #2019 2024-05-21 13:18:15 -04:00
Paul Lorenz 898e41ae2a Implement router data model changesets. Fixes #1966 2024-04-23 11:56:10 -04:00
Paul Lorenz d62e3cb71f Use cmap IterCB instead of IterBuffered where possible. Fixes #1902 2024-04-04 21:27:38 -04:00
Paul Lorenz ad779ed118 Improve link mgmt backwards compatibility. Fixes #1900
* We're sending peer change messages to older routers that don't understand them.
* We should probably use the older controller link management code for routers without the link management stability fixes
* Includes a few minor cleanups
2024-04-04 19:07:24 -04:00
Paul Lorenz 8d11af3d97 Optimize network run loop. Fixes #1897
* 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.
2024-04-04 18:46:50 -04:00
Paul Lorenz aaceb84a0f Don't save old link statues in memory, the info is in link events. Fixes #1896 2024-04-04 18:18:35 -04:00
Paul Lorenz 3c3bfb69f7 Fix panic if router is disconnected in unroute. Fixes #1854 2024-03-21 10:02:39 -04:00
Paul Lorenz fab81e4cd4 Add terminator chaos testing and fix issues found. Fixes #1794 Fixes #1369 2024-03-12 10:31:36 -04:00
Paul Lorenz 8423a8dd6a Fix link management race conditions found by chaos testing. Fixes #1709 2024-01-29 17:23:51 -05:00
Paul Lorenz c03c3c2851 Additional fixes and tweaks 2024-01-19 17:35:25 -05:00
Paul Lorenz c4abcae949 Link management fixes. Fixes #1692 Fixes #1693 2024-01-19 17:33:21 -05:00
Paul Lorenz 41a37ebe7e Add initial router link validation utility. Fixes #1678 2024-01-05 13:10:02 -05:00
Paul Lorenz df2ab68ad5 Make sure link accepts are not single threaded. Fixes #1669 2023-12-29 10:18:50 -05:00
Paul Lorenz 9ddd1b941d Add service max idle time. Fixes #1496. Add decomission router support. Fixes #1402 2023-12-08 12:48:56 -05:00
Paul Lorenz a84369a6e9 Consolidate fabric and edge persistence code. Fixes #1555 2023-12-06 17:36:37 -05:00
Paul Lorenz 16cf13ac08 Support filter/sort/page on circuits and links. Fixes #1547 2023-12-05 10:30:08 -05:00
Paul Lorenz db6554ee06 Implement idempotency for sdk terminators. Fixes #1446 2023-12-01 15:44:05 -05:00
Paul Lorenz 9bed8a14a8 Add optional command rate limiter. Fixes #1445 2023-10-23 13:45:49 -04:00
Paul Lorenz 47a00aaf3d Shutdown network watchdog when controller stops. Fixes #1442 2023-10-16 13:05:48 -04:00
Paul Lorenz f3d67b7f49 Update fabric imports 2023-09-28 23:34:28 -04:00
Paul Lorenz 700ec34177 Make link heartbeats configurable. Add unresponsive close timeout. Fixes openziti/fabric#796 2023-09-18 22:40:19 -04:00
Paul Lorenz bed7b0eb02 Allow specifying snapshot name with templating. Fixes #794 Fixes openziti/fabric#792 2023-09-18 15:19:23 -04:00
Paul Lorenz a7fe59e184 Do some configuration tidying 2023-08-22 20:37:25 -04:00
Paul Lorenz 509364d908 Remove trace events from dispatcher. Move trace to common 2023-08-16 12:39:42 -04:00
Paul Lorenz cdfd037da9 Move protobuf definitions to common 2023-08-10 19:38:48 -04:00
Paul Lorenz 13fc2a12c1 Move metrics package to common 2023-08-10 18:08:06 -04:00
Paul Lorenz 00a39c9900 Move logcontext package to common 2023-08-10 18:07:00 -04:00
Paul Lorenz 368d6e5568 Move config, ctrl_msg and handler_common to common/ 2023-08-10 17:29:08 -04:00
Paul Lorenz 8dbc759d45 move event and events packages to controller 2023-08-10 17:10:17 -04:00
Paul Lorenz f15b8bef23 Add some more config value validation and guardrails 2023-08-03 17:07:49 -04:00
Paul Lorenz 2ee9539f9c Move link calculation to routers. Fixes #692, fixes #749, fixes openziti/fabric#343 2023-08-03 17:07:48 -04:00
Paul Lorenz 8149b69614 Add support for quiescing and dequiescing routers. Fixes openziti/fabric#538
Quiesce marks all terminators as failed and stores the previous state.
Dequiesce restores all terminators with failed state and stored previous
state to their previous state
2023-06-05 17:46:13 -04:00
Paul Lorenz 5c9a942fa5 Timeout is getting reported as conn refused instead of timeout. Fixes openziti/fabric#738 2023-06-05 16:17:29 -04:00
Paul Lorenz ef555a536e Notify controller of forward faults on links. Fixes #724. If reroute fails, circuit should be torn down. Fixes openziti/fabric#725 2023-05-25 15:05:28 -04:00
Paul Lorenz bc9bac6f0d Add config support for link groups. Doesn't use group config yet. 2023-05-11 09:34:33 -04:00
Paul Lorenz a19a2ab2fe Annotate circuit events with circuit tags, similar to usage. Fixes openziti/fabric#684 2023-04-25 22:54:22 -04:00
Paul Lorenz 23110fccb2 Implement entity change events. Fixes openziti/fabric#562 2023-04-25 11:38:03 -04:00
Paul Lorenz f0b83d0010 Track raft index in Db. Let's us start without rerunning all cmds at startup. Fixes #677. Fixes openziti/fabric#582 2023-04-25 11:32:35 -04:00
Paul Lorenz bf76453ce8 Update to go 1.20 2023-04-25 11:32:34 -04:00
Paul Lorenz d1d0fe781b Update for storage API changes. 2023-04-25 11:32:33 -04:00
Paul Lorenz 9bb47428b7 Add network.run watchdog. Closes openziti/fabric#668 2023-04-11 17:11:27 -04:00
Paul Lorenz cc09f32c34 Implement batched terminator deletes 2023-03-28 13:18:59 -04:00
Paul Lorenz 32da1861ca Add router disable flag. Fixes openziti/fabric#651 2023-03-27 14:18:43 -04:00
gberl002 fbf01410e2 Reordering for 64 bit alignment 2023-03-14 14:54:15 -04:00
gberl002 40a57aadd3 Adding simple tests for checking 64 bit alignment of existing 64 bit values with atomic operations. 2023-03-14 14:47:42 -04:00
Paul Lorenz a7957d0e4a Fix concurrent map error. Fixes openziti/fabric#622 2023-03-02 11:09:13 -05:00
Michael Quigley cdb550892b externalize the interval age threshold 2023-03-01 14:04:05 -05:00
Michael Quigley 7e5340a298 use the already provided metrics report interval 2023-03-01 13:57:49 -05:00
Michael Quigley 53dcd24e26 tweaks for reporting interval 2023-02-28 11:56:39 -05:00
Paul Lorenz 1379618165 Update inspect names from routers -> connected-routers and clusterconfig -> cluster-config 2023-02-17 13:39:40 -05:00