Skip to content

Conversation

@dignifiedquire
Copy link
Contributor

@dignifiedquire dignifiedquire commented Dec 19, 2025

@dignifiedquire dignifiedquire changed the title feat: ping paths and trigger holepunching on networkchange feat(iroh): ping paths and trigger holepunching on networkchange Dec 19, 2025
@github-actions
Copy link

Documentation for this PR has been generated and is available at: https://n0-computer.github.io/iroh/pr/3796/docs/iroh/

Last updated: 2025-12-19T14:31:20Z

@github-actions
Copy link

Netsim report & logs for this PR have been generated and is available at: LOGS
This report will remain available for 3 days.

Last updated for commit: 500749d

};
tx.send(info).ok();
}
RemoteStateMessage::NetworkChange { is_major } => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we not do this with the local addr watcher? I don't like having two mechanisms for this, and a watcher seemed nice.

Copy link
Contributor Author

@dignifiedquire dignifiedquire Dec 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

addr change update happens a lot later, this is why I added this mechanism, and it also happens for potentially other reasons. The addr change will happen eventually when net report finishes, but we don't need to wait for that, to already know we want to recheck our connections in here

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. could we more often update our local addrs? i don't think if the interfaces change that we need to wait until we've also run netcheck until we get updates. I'd like to receive them all as quickly as possible, but still only via one API.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

one day, but that would require the much bigger refactor of netreport to be more stream based, which will not happen any time soon

}

if is_major {
self.trigger_holepunching();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so this code-path trigges holepunching less often than the watcher for the local addrs? but otherwise does the same? it seems more like the is_major detection should be added to trigger_holepunching. And that should also send pings if that is helpful. but i don't think this is helpful yet, i think we need to be able to see the number of in-flight tail-loss probes in select path to benefit from this.

@n0bot n0bot bot added this to iroh Dec 19, 2025
@github-project-automation github-project-automation bot moved this to 🏗 In progress in iroh Dec 19, 2025
@flub flub self-assigned this Dec 22, 2025
@flub flub added this to the iroh: v0.96 milestone Dec 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🏗 In progress

Development

Successfully merging this pull request may close these issues.

3 participants