Commit Graph

159 Commits

Author SHA1 Message Date
Paul Lorenz 898e41ae2a Implement router data model changesets. Fixes #1966 2024-04-23 11:56:10 -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 16cf13ac08 Support filter/sort/page on circuits and links. Fixes #1547 2023-12-05 10:30:08 -05: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 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 2ee9539f9c Move link calculation to routers. Fixes #692, fixes #749, fixes openziti/fabric#343 2023-08-03 17:07:48 -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 a19a2ab2fe Annotate circuit events with circuit tags, similar to usage. Fixes openziti/fabric#684 2023-04-25 22:54:22 -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 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
Paul Lorenz cf2ee0347a Support showing connected routers. Fixes openziti/fabric#598 2023-02-16 17:11:58 -05:00
Paul Lorenz abb0eb96fb Add more raft configuration options. Fixes openziti/fabric#597
Add more raft config knobs
Refactor peer handles to be consistent with other handlers
Allow inspect to work across controllers
Add config and clusterconfig inspect support
2023-02-15 23:47:57 -05:00
Paul Lorenz 8f5b5b5c33 Compress snapshots with gzip for efficiency. Fixes openziti/fabric#583 2023-02-09 14:40:34 -05:00
Paul Lorenz 3a110eccc7 Add ability to report initiator local/remote addr. Add to circuit events. Fixes openziti/fabric#592 2023-01-24 16:16:53 -05:00
Cam Otts c299a06669 Added raft leave and raft list members (#580)
* Added raft leave and raft list members

* reordered agent raft leave to only check address if is is not found

* instead of adding second raft ctrl, just cast the dispatcher
2023-01-12 10:18:13 -06:00
Paul Lorenz 374b74ea79 Support auto-migrate and agent initiated migration. Fixes openziti/fabric#569 2022-12-28 17:06:27 -05:00
Paul Lorenz ec885daed5 Always use a new router instance for connected routers so we can ensure
disconnect handling applies to the right instance
2022-10-24 14:44:27 -04:00
Paul Lorenz 02539e9e16 Support multiple control channels. Fixes openziti/fabric#469 2022-09-29 12:06:41 -04:00
Paul Lorenz 519574497e Update to channel v2 2022-09-26 17:00:34 -04:00
Paul Lorenz aa6124105d Update to usage v3. Adds circuit tags to usage. Fixes openziti/fabric#496 2022-09-15 17:34:33 -04:00
Paul Lorenz 096e981959 Add remote addr to circuit events. Fixes openziti/fabric#459 2022-09-06 22:58:06 -04:00
Paul Lorenz e0f5092a08 Use one port for ctrl channel to router and controllers. Allow syncing existing DB to raft. Fixes #471. Fixes openziti/fabric#479. 2022-08-22 12:09:07 -04:00
Paul Lorenz 40ef589193 Fixes panic when dialing service with terminator but none for instanceId. Fixes openziti/fabric#463 2022-08-04 21:42:01 -04:00
Paul Lorenz 98160bb8b0 Merge pull request openziti/fabric#448 from openziti/link-events
Refactor events subsystem. Add link events. Fixes openziti/fabric#415
2022-07-19 10:59:27 -04:00
Paul Lorenz 7abe5d5605 Cleanup circuits for deleted routers. Fixes openziti/fabric#452 2022-07-18 15:03:35 -04:00
Paul Lorenz 960dfe88f6 Report high latency on latency timeout. Use marker value of 88.888888888 seconds. Fixes openziti/fabric#443 2022-07-15 23:45:31 -04:00
Paul Lorenz 77bce93e85 Refactor events subsystem. Add link events. Fixes openziti/fabric#415
Previously we often had two sets of events, one in the network
package, and then another in the events package. We now only
have one, in the events package. Events now have a public API,
 with minimal deps. There's an implementation package which has
the dependencies. This allows the network package to generate
events, without have a circular dependency on the events
implementation package.
2022-07-15 18:31:52 -04:00
Paul Lorenz 70d37bf44a Merge pull request openziti/fabric#430 from openziti/prevent-strange-loops
Prevent strange loops
2022-07-01 15:37:59 -04:00