Commit Graph
1195 Commits
Author SHA1 Message Date
Lee Smet 3d2106fc01 Update myceliumd-private lock file
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-23 12:43:27 +02:00
dependabot[bot] 3e728fd6a1 Bump tokio from 1.38.0 to 1.38.1
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.38.0 to 1.38.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.38.0...tokio-1.38.1)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 12:41:17 +02:00
dependabot[bot] 9505c23680 Bump wintun from 0.4.0 to 0.5.0
Bumps [wintun](https://github.com/nulldotblack/wintun) from 0.4.0 to 0.5.0.
- [Release notes](https://github.com/nulldotblack/wintun/releases)
- [Changelog](https://github.com/nulldotblack/wintun/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nulldotblack/wintun/commits)

---
updated-dependencies:
- dependency-name: wintun
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 12:06:05 +02:00
dependabot[bot] be29b38da1 Bump thiserror from 1.0.62 to 1.0.63
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.62 to 1.0.63.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.62...1.0.63)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 12:05:09 +02:00
dependabot[bot] 41aeed9fa0 Bump tokio from 1.38.0 to 1.38.1 in /myceliumd-private
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.38.0 to 1.38.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.38.0...tokio-1.38.1)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 12:04:51 +02:00
dependabot[bot] 1b51255fe6 Bump tokio from 1.38.0 to 1.38.1 in /myceliumd
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.38.0 to 1.38.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.38.0...tokio-1.38.1)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 12:04:30 +02:00
dependabot[bot] 0bb1835b4a Bump openssl from 0.10.64 to 0.10.66 in /myceliumd-private
Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.64 to 0.10.66.
- [Release notes](https://github.com/sfackler/rust-openssl/releases)
- [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.64...openssl-v0.10.66)

---
updated-dependencies:
- dependency-name: openssl
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-23 12:02:33 +02:00
Lee Smet 7f66fd7117 Update binary lockfiles
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-19 12:20:28 +02:00
dependabot[bot] 151771a261 Bump bytes from 1.6.0 to 1.6.1
Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.6.0 to 1.6.1.
- [Release notes](https://github.com/tokio-rs/bytes/releases)
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/bytes/compare/v1.6.0...v1.6.1)

---
updated-dependencies:
- dependency-name: bytes
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-19 11:49:01 +02:00
dependabot[bot] 6b23640e5e Bump blake3 from 1.5.1 to 1.5.3
Bumps [blake3](https://github.com/BLAKE3-team/BLAKE3) from 1.5.1 to 1.5.3.
- [Release notes](https://github.com/BLAKE3-team/BLAKE3/releases)
- [Commits](https://github.com/BLAKE3-team/BLAKE3/compare/1.5.1...1.5.3)

---
updated-dependencies:
- dependency-name: blake3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-19 11:48:32 +02:00
dependabot[bot] e614e10ba3 Bump clap from 4.5.8 to 4.5.9 in /myceliumd-private
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.8 to 4.5.9.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.8...v4.5.9)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-18 21:07:23 +02:00
dependabot[bot] de6d5b6146 Bump clap from 4.5.8 to 4.5.9 in /myceliumd
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.8 to 4.5.9.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.8...v4.5.9)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-18 21:07:03 +02:00
dependabot[bot] d40727e015 Bump thiserror from 1.0.61 to 1.0.62
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.61 to 1.0.62.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.61...1.0.62)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-18 21:06:40 +02:00
Lee Smet 767060eb8b Add metric for unfeasbile update to unknown subnet
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-17 12:04:36 +02:00
Lee Smet e67a111cd8 Fix debug log indentation
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-17 11:57:19 +02:00
Lee Smet aa8eca71b0 Only notify interested peers for seqno changes
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-17 11:55:06 +02:00
Lee Smet 825ee8e2c9 Use send_update function more
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-17 11:05:47 +02:00
Lee Smet 301102586c Also exit early from update on retractions
If we don't know the subnet, and the update is a retraction, we can also
exit early

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-17 11:02:31 +02:00
Lee Smet e5ce09545b Manually implement absorb_second in RouterInner
This allows us to avoid a clone on the routelist Arc.

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-17 09:58:18 +02:00
Lee Smet e6c5990b89 Update RoutingTableIterMut to use regular reference
Rather than using Rc<Refcell<..>>, use a &mut directly internally

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-16 18:07:46 +02:00
Lee Smet 817907630f Don't use Iterator for RoutingTableIterMut
Instead use a manual `next` method and iterate using `while let Some(...)`.
We can then return items with lifetimes, which allows us to reduce the
internal complexity of the structs.

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-16 15:14:22 +02:00
Lee Smet 7d2a1cbdbe Improve source table contention
Rewrite the loops which send updates to peers, to create the update
first, apply it to the source table, then loop over the peers. This is
an improvement on the old behavior where updaing the source table was
part of sending to a peer, which lead to a lot of redundant updates to
the source table, and missing entries in case there were only 1 or 2
peers.

Closes #232
Fixes #322

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-16 14:39:04 +02:00
Lee Smet 1a01bf8247 Continue processing expired route keys
Instead of returning, we need to continue the loop

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-15 17:28:27 +02:00
Maxime Van Hees cb2e1b88e6 Fix indentation 2024-07-15 16:10:37 +02:00
Maxime Van Hees d5d879f878 disabling quic protocol rework 2024-07-15 16:10:37 +02:00
Maxime Van Hees 3e76455e35 first step towards option to disable quic protocol to find peers 2024-07-15 16:10:37 +02:00
Lee Smet 30dcc7f3d3 Add metric for updates denied by filters
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-12 15:22:22 +02:00
Maxime Van Hees ca4792f247 added nu-ansi-term feature 2024-07-12 14:59:30 +02:00
Maxime Van Hees d4c8e73611 moved LICENSE.rtf file + changed installer script to reflect new location 2024-07-12 14:59:30 +02:00
Maxime Van Hees f0f901b93c moved config example file to root dir + changed wix file to reflect that change 2024-07-12 14:59:30 +02:00
Maxime Van Hees 647522aa4c Windows installer now creates a default configuration file in C:\Users\Gebruiker\AppData\Roaming 2024-07-12 14:59:30 +02:00
Maxime Van Hees f9bc18b386 Updated CHANGELOG.md about Windows installer 2024-07-12 14:59:30 +02:00
Maxime Van Hees b0fd7c629b Added github action for MSI build + updated README + added WiX installer files 2024-07-12 14:59:30 +02:00
Maxime Van Hees d50e3cea86 Removed toml crate 2024-07-12 13:10:44 +02:00
Maxime Van Hees bf062ed264 Added all public nodes to example config file 2024-07-12 13:10:44 +02:00
Maxime Van Hees 74a9fb2e81 Config file support for myceliumd-private + slight optimization to merge_configs function 2024-07-12 13:10:44 +02:00
Maxime Van Hees 3d9ad65704 Fixed requested changes 2024-07-12 13:10:44 +02:00
Maxime Van Hees f9e0560990 Moved information from CHANGELOG to README 2024-07-12 13:10:44 +02:00
Maxime Van Hees 1667e71e0b updated mac os config path + updated changelog to reflect changes 2024-07-12 13:10:44 +02:00
Maxime Van Hees 3298c78719 Removed debug println 2024-07-12 13:10:44 +02:00
Maxime Van Hees 65c3c34e0f Platform specific config file location support 2024-07-12 13:10:44 +02:00
Maxime Van Hees 0ab40a7593 no_tun and disable_peer_disovery support in config file 2024-07-12 13:10:44 +02:00
Maxime Van Hees 5a103b7fca start mycelium with configuration file 2024-07-12 13:10:44 +02:00
Lee Smet f96cce9c70 Immediately remove expired unselected routes
There is no point in keeping an expired route, which is not selected, as
part of the fallback routes with infinite metric. Either there was no
selected route, so it can be removed, or the selected route got
retracted in which case that already caused a retraction to be sent.

Closes #330

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-11 15:47:28 +02:00
Lee Smet 81b44f9ddc Don't refresh route timer on unfeasible update
If an update is unfeasible, apply it as per the spec but don't update
the route timer. The main reason unfeasible routes are kept, is because
"it migh become feasible in the future". In our case, since we use
reliable transports (for protocol messages), and we send a seqno request
when a route is lost, we know that if a feasible route exists in one of
our peers, we will get it shortly after a route is lost. Even if we keep
the unfeasible route as fallback route, it won't be selected, and a
seqno request is needed to refresh it. In short, there is functionally
no difference for the route if we keep the unfeasible entry around or
not: a seqno request _must_ be send to a peer in the hopes of getting a
valid route again. All things considered, this changes allows unfeasible
routes to gracefully go out of scope, after which the unfeasible update
will be blocked.

Closes #320
Closes #159

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-10 12:49:22 +02:00
Lee Smet 895eff5616 Split line in CHANGELOG.md to adhere to line length
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-10 11:26:08 +02:00
Lee Smet 7682bc60c2 Skip route selection after unfeasible route update
If an unfeasible update is applied to an existing, unselected route, we
now skip route selection altogether. Since the route is not selected,
it can obviously not be unselected, and selecting it won't be possible
since its now not feasible.

By immediately returning we also can't notify downstream peers which
have sent a seqno request for this combination. This is fine, since if
there is an outstanding request for this seqno, considering it is
unfeasible, it won't be of interest to the downstream peer. Note that if
the seqno request triggered a bump of the route seqno, the _first_ update
is always feasible.

Also expose a metric value to track how often we just skip route
selection.

Closes #329

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-10 11:17:32 +02:00
Lee Smet 33730dbda9 Update binary lockfiles
Signed-off-by: Lee Smet <lee.smet@hotmail.com>
2024-07-09 10:45:25 +02:00
dependabot[bot] 58eab5f6dc Bump serde from 1.0.203 to 1.0.204 in /myceliumd-private
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.203 to 1.0.204.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.203...v1.0.204)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-09 10:42:57 +02:00
dependabot[bot] 9510bd3796 Bump serde from 1.0.203 to 1.0.204 in /myceliumd
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.203 to 1.0.204.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.203...v1.0.204)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-09 10:42:31 +02:00