-
Notifications
You must be signed in to change notification settings - Fork 184
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(iroh-net): ICMPv6 probe support in netcheck (#2057)
## Description Now that we support IPv6 it becomes worth it to add an ICMPv6 probe. This adds the probe, the two main features are: - latency from the probe is used for the derper selection. - the information is used in network change detection. Note that this also tweaks the definition of this for network change detection a bit. If one of the netcheck reports did not include any information about ICMP availability then it is ignored in the comparison. This makes sense because the report stops before ICMP probes are run if things are decent, so just because in one report some STUN UDP packets got lost and the ICMP probe did get to run does not mean anything changed. This also improves respecting the STUN-only setting of derp servers, all probes now respect this. ## Notes & open questions Some other changes that are more incidental: - DerpMap::nodes() now returns just the values of the map. Each node knows it's URL anyway. - Add separate DNS lookup functions for IPv4 and IPv6. Probes want that level of control anyway. - Use stricter types for global_v4 and global_v6 fields in netcheck report. - Minor refactor in reportgen to split off processing probe reports and making probe logic decisions. This separates concerns better and makes testing purely functional bits easier. - Individual probes no longer have a timeout. The global probe timeout is all that matters. The individual probe timeout was already applied irregularly between the different probe types. Closes #1853 ## Change checklist - [x] Self-review. - [x] Documentation updates if relevant. - [x] Tests if relevant.
- Loading branch information
Showing
11 changed files
with
998 additions
and
425 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.